computerの日記

Cisco,SHELL,C,Qt,C++,Linux,ネットワーク,Windows Scriptなどの発言です

DHCP-DNS DDNS-UPDATES について、実験をおこないました-7.2

今回は、DNS サーバの 2台目を追加してみました。

DNS1 とは同じネットワークに配置しますが、異なるスイッチにぶら下げます。

これは、DNS1のスイッチが故障しても、名前解決に支障を生じさせないための処置となります。

f:id:intrajp:20180622225606p:plain

DNS2 の設定は、以下となります。

options {
     listen-on port 53 { any; };
     listen-on-v6 port 53 { ::1; };
     directory "/var/named";
     dump-file "/var/named/data/cache_dump.db";
     statistics-file "/var/named/data/named_stats.txt";
     memstatistics-file "/var/named/data/named_mem_stats.txt";
     allow-query { any; };
     recursion yes;
};

zone "intrajp-test.org" IN {
     type slave;
     file "data/bak.intrajp-test.org";
     masters { 172.16.100.2; };
     allow-update { any; };
};

zone "100.16.172.in-addr.arpa" IN {
     type slave;
     file "data/bak.172.16.100.intrajp-test.org";
    masters { 172.16.100.2; };
    allow-update { any; };
};

zone "100.168.192.in-addr.arpa" IN {
     type slave;
     file "data/bak.192.168.100.intrajp-test.org";
     masters { 172.16.100.2; };
     allow-update { any; };
};

zone "0.0.127.in-addr.arpa" IN {
     type master;
     file "data/db.127.0.0.intrajp-test.org";
     allow-update { any; };
};

logging {
     channel default_debug {
         file "data/named.run";
        severity dynamic;
     };
};

# service named start

/etc/named/data に、bak ファイルが生成されました。内容は、DNS1(マスター)から取ってきた zone データとなっていました。

DHCP-DNS DDNS-UPDATES について、実験をおこないました-7.1

今回も、前回のトポロジの続きです。

DHCP-DNS DDNS-UPDATES について、実験をおこないました-7 - computerの日記

DNSサーバの設定ですが、あまりにもいい加減過ぎたので、ちょっとまともになるように修正してみました。

 /etc/named.conf

options {
     listen-on port 53 { any; };
     listen-on-v6 port 53 { ::1; };
     directory "/var/named";
     dump-file "/var/named/data/cache_dump.db";
     statistics-file "/var/named/data/named_stats.txt";
     memstatistics-file "/var/named/data/named_mem_stats.txt";
     allow-query { any; };
     recursion yes;

    //these check statements can be overloaded in each zone
     check-names master fail: //bind default
     //check-names master warn; //you can set warn if you want
    check-name slave warn; //bind default
     //check-names slave ignore; //you can set ignore if you want
    check-names response ignore;
};

zone "intrajp-test.org" IN {
     type master;
     file "data/db.intrajp-test.org";
     allow-update { any; };
};

zone "100.16.172.in-addr.arpa" IN {
     type master;
     file "data/db.172.16.100.intrajp-test.org";
     allow-update { any; };
};

zone "100.168.192.in-addr.arpa" IN {
     type master;
     file "data/db.192.168.100.intrajp-test.org";
     allow-update { any; };
};

logging {
     channel default_debug {
         file "data/named.run";
        severity dynamic;
     };
};

forward mapping file (正引きファイル)です。

db.intrajp-test.org

 $ORIGIN .
$TTL 86400 ; 1 day
intrajp-test.org. IN SOA ns1.intrajp-test.org. hostmaster.intrajp-test.org. (
     2018060328 ; serial
     21600 ; refresh (6 hours)
     3600 ; retry (1 hour)
     604800 ; expire (1 week)
     86400 ; minimum (1 day as a negative cache TTL)
)
;
;NAME SERVER
;

intrajp-test.org. IN NS ns1.intrajp-test.org.

;
;addresses for forward mapping
;

localhost.intrajp-test.org. IN A 127.0.0.1
ns1.intrajp-test.org. IN A 172.16.100.2
dhcp-primary.intrajp-test.org. IN A 192.168.100.1

;
;CNAME
;

dhcp1.intrajp-test.org. IN CNAME dhcp-primary.intrajp-test.org.

 reverse mapping file (逆引きファイル)です。

db.172.16.100.intrajp-test.org

 $ORIGIN .
$TTL 86400 ; 1 day
100.16.172.in-addr.arpa. IN SOA ns1.intrajp-test.org. hostmaster.intrajp-test.org. (
     2018060311 ; serial
     28800 ; refresh (8 hours)
     14400 ; retry (4 hours)
     3600000 ; expire (5 weeks 6 days 16 hours)
     86400 ; minimum (1 day as a negative cache TTL)
)
;
;NAME SERVER
;

100.16.172.in-addr.arpa. IN NS ns1.intrajp-test.org.

;
;addresses for reverse mapping
;

2.100.16.172.in-addr.arpa IN PTR ns1.intrajp-test.org.

 db.192.168.100.intrajp-test.org

$ORIGIN .
$TTL 86400 ; 1 day
100.168.192.in-addr.arpa. IN SOA ns1.intrajp-test.org. hostmaster.intrajp-test.org. (
     2018060311 ; serial
     28800 ; refresh (8 hours)
     14400 ; retry (4 hours)
     3600000 ; expire (5 weeks 6 days 16 hours)
     86400 ; minimum (1 day as a negative cache TTL)
)
;
;NAME SERVER
;

100.168.192.in-addr.arpa. IN NS ns1.intrajp-test.org.

;
;addresses for reverse mapping
;

1.100.168.192.in-addr.arpa IN PTR dhcp-primary.intrajp-test.org. 

 

db.127.0.0.intrajp-test.org

$ORIGIN .
$TTL 86400 ; 1 day
0.0.127.in-addr.arpa. IN SOA ns1.intrajp-test.org. hostmaster.intrajp-test.org. (
     2018060311 ; serial
     28800 ; refresh (8 hours)
     14400 ; retry (4 hours)
     3600000 ; expire (5 weeks 6 days 16 hours)
     86400 ; minimum (1 day as a negative cache TTL)
)
;
;NAME SERVER
;

0.0.127.in-addr.arpa. IN NS ns1.intrajp-test.org.

;
;addresses for reverse mapping
;

1.0.0.127.in-addr.arpa IN PTR localhost.

/etc/nsswich.conf

#hosts: files dns
#### fixed for intranet system
hosts: dns files

DNS サーバ上で

$ hostname

ns1.intrajp-test.org

DHCP サーバ上で

$ hostname

dhcp-primary.intrajp-test.org

 

また、DHCP サーバからでも、dig コマンドにより正引き、逆引きができました。

DHCP-DNS DDNS-UPDATES について、実験をおこないました-7

お疲れさまです。

前回は、5 でしたが、今回は、7 にしました。

実は、IOU がうまく働かなくて、なぜかとパケットを見たりして調べていたら、どうも、ルータからの ICMP しか流れていません。これは、片通信となっているということなのだと直感しました。そこで、トランクポートを range 指定して、# duplex full としたところ、PING が通りました。

そこで、今回も、PC1 から IP を採ってみました。IP は、前回と同じ様に採れました。

今回も、以下のようなトポロジで実験しましたが、やはり、DNS の updatge はできませんでした。今回も、前回と同様、.... .... ...0 .... = Non-authenticated data: Unacceptable のようになってしまったのですが、その理由として、DNS サーバの方で、なにもセキュリティの設定をしていないからだと思います。

どうしたらいいのかな?

f:id:intrajp:20180618220239p:plain

f:id:intrajp:20180618220544p:plain

 

 

DHCP-DNS DDNS-UPDATES について、実験をおこないました-5

今さらながらですが、管理端末から telnet 接続できるようにしました。

今回、管理端末は、DHCP サーバとして、 NIC を追加しました。

f:id:intrajp:20180617085051p:plain

ところで、今回実験したのは、DHCP サーバに設定を追加して、クライアントが DHCP REQUEST をかけてきた時に、DNS サーバの zone ファイルにクライアントの IP アドレスを修正させる、ということです。

dhcpd.conf には、以下のような記述を追加しました。あ、アドレスを間違って記述していました。。。

...(snip)...

    zone intrajp-test.org. {

        primary 17.16.100.2;

    }

    zone in-addr.arpa. {

        primary 172.16.100.2;

    }

}

結果は、今回は IP アドレスの ACK は成功となり、アドレスの配布には成功しましたが、DNS エントリの修正には失敗となりました。

DHCP サーバには、以下のようなログが残りました。

Unable to add forward map from PC-11.intrajp-test.org. to 10.0.100.12: timed out

DNS のパケットを確認すると、以下のようになっていました。

Non-authenticated data: Unacceptable

 

f:id:intrajp:20180617094739p:plain

DHCP-DNS DDNS-UPDATES について、実験をおこないました-4

少しトポロジを発展させて、PC1 が IP アドレスを得られるようにしました。

f:id:intrajp:20180616175751p:plain

DHCP サーバの設定です。

OS は、CentOS6.9 で、ISC DHCP の 4.1.1 esv を使っていて、ソースからコンパイルしています。

起動コマンドです。

# strace /usr/local/sbin/dhcpd -cf /etc/dhcp/dhcpd.conf -pf /var/run/dhcpd.pid

設定ファイルです。

/etc/dhcp/dhcpd.conf

--------

authoritative;
option domain-name "intrajp-test.org";
option domain-name-servers ns1.intrajp-test.org;
default-lease-time 600;
max-lease-time 7200;
ddns-update-style interim;
ignore client-updates;
ddns-domainname "intrajp-test.org.";
ddns-rev-domainname "in-addr.arpa.";
log-facility local7;

subnet 192.168.100.0 netmask 255.255.255.0 {
}

subnet 10.0.100.0 netmask 255.255.255.0 {
     pool {
         range 10.0.100.10 10.0.100.20;
         default-lease-time 600;
         max-lease-time 7200;
         option subnet-mask 255.255.255.0;
         option broadcast-address 10.0.100.255;
         option routers 10.0.100.254;
         option domain-name-servers 172.16.100.2;
         option domain-name "intrajp-test.org";
     }
}

----

DNS サーバの設定です。

OS は、CentOS6.9 で、RPM パッケージを使用しています。

設定ファイルです。

--------

/etc/named.conf

--------

options {
     listen-on port 53 { any; };
     listen-on-v6 port 53 { ::1; };
     directory "/var/named";
     dump-file "/var/named/data/cache_dump.db";
     statistics-file "/var/named/data/named_stats.txt";
     memstatistics-file "/var/named/data/named_mem_stats.txt";
     allow-query { any; };
     recursion yes;

};

zone "intrajp-test.org" IN {
     type master;
     file "data/intrajp-test.org.zone";
     allow-update { any; };
};

zone "in-addr.arpa" IN {
     type master;
     file "data/intrajp-test.org.rr.zone";
    allow-update { any; };
};

logging {
     channel default_debug {
     file "data/named.run";
     severity dynamic;
     };
};

--------

正引きファイルです。

--------

/var/named/data/intrajp-test.org.zone

--------

$ORIGIN .
$TTL 86400 ; 1 day
intrajp-test.org IN SOA ns1.intrajp-test.org. hostmaster.intrajp-test.org. (
     2018060328 ; serial
     21600 ; refresh (6 hours)
     3600 ; retry (1 hour)
     604800 ; expire (1 week)
     86400 ; minimum (1 day)
)
NS ns1.intrajp-test.org.
$ORIGIN intrajp-test.org.
dhcp1 A 192.168.100.1
ns1 A 172.16.100.2

--------

逆引きファイルです。

--------

/var/named/data/intrajp-test.org.rr.zone

--------

$ORIGIN .
$TTL 86400 ; 1 day
in-addr.arpa IN SOA ns1.intrajp-test.org. hostmaster.intrajp-test.org. (
     2018060311 ; serial
     28800 ; refresh (8 hours)
     14400 ; retry (4 hours)
     3600000 ; expire (5 weeks 6 days 16 hours)
     86400 ; minimum (1 day)
)
NS ns1.intrajp-test.org.
$ORIGIN in-addr.arpa.
2.100.16.172 PTR ns1.intrajp-test.org.
1.100.168.192 PTR dhcp1.intrajp-test.org.

--------

PC1> dhcp

10.0.100.10 が採れ、DEFAULT DATEWAY の設定等も採れました。

DHCP-DNS 関連-2

さて、今回のトポロジなんですが、ネットワークを増やして、DHCPDNSもやりたいという贅沢な仕様になっています。

ということで、DNS サーバの設定を直してみました。

一つの zone に全てのネットワークを含めるという、安直な設定になります。

/etc/named.conf

options {

    listen-on port 53 { any; };

    listen-on-v6 port 53 { ::1; };

    directory "/var/named";

    dump-file "/var/named/data/cache_dump.db";

    statistics-file "/var/named/data/named_stats.txt";

    memstatistics-file "/var/named/data/named_mem_stats.txt";

    allow-query { any; };

    recursion yes;

};

zone "intrajp-test.org" IN {

    type master;

    file "data/intrajp-test.org.zone";

    allow-update { any; };

}

zone "in-addr.arpa" IN {

    type master;

    file "data/intrajp-test.org.rr.zone";

    allow-update { any; };

}

logging {

    channel default_debug {

        file "data/named.run";

        severity dynamic;

    };

}

/var/named/data/intrajp-test.org.zone

$ORIGIN .

$TTL 86400 ; 1 day

intrajp-test.org IN SOA ns1.intrajp-test.org. hostmaster.intrajp-test.org. (

    2018060316 ; serial

    21600 ; refresh (6 hours)

    3600 ; retry (1 hour)

    604800 ; expire (1 week)

    86400 ; minimum (1 day)

)

NS ns1.intrajp-test.org.

$ORIGIN intrajp-test.org.

ns1     A 172.16.100.2

dhcp1 A 192.168.100.1

 /var/named/data/intrajp-test.org.rr.zone

$ORIGIN .

$TTL 86400 ; 1 day

in-addr.arpa IN SOA ns1.intrajp-test.org. hostmaster.intrajp-test.org. (

    2018060316 ; serial

    21600 ; refresh (6 hours)

    3600 ; retry (1 hour)

    604800 ; expire (1 week)

    86400 ; minimum (1 day)

)

NS ns1.intrajp-test.org.

$ORIGIN in-addr.arpa.

2.100.16.172   PTR ns1.intrajp-test.org.

1.100.168.192 PTR dhcp1.intrajp-test.org.

 

 

 

DHCP-DNS DDNS-UPDATES について、実験をおこないました-3

前回は、以下のようなことをしました。

DHCP-DNS DDNS-UPDATES について、実験をおこないました-2 - computerの日記

今回は、VLAN 300 を追加して、PC1 を VLAN300に加入させてみました。

DHCPサーバの設定をして、10.0.100.x ネットワークのアドレスを配布するようにしたところ、10.0.100.10 が払い出されました。

f:id:intrajp:20180613204851p:plain

 

DHCP-DNS DDNS-UPDATES について、実験をおこないました-2

先日のトポロジ

DHCP-DNS DDNS-UPDATES について、実験をおこないました - computerの日記

と一緒ですが、VTP の設定を加えました。

またここから変化させていきます。

f:id:intrajp:20180613061521p:plain

DHCP-DNS DDNS-UPDATES について、実験をおこないました

DHCP-DNS DDNS-UPDATES について、実験をおこないました。

設定は、前のブログを基準としています。

トポロジと設定は、以下のようにしました。

ここで、右下の PC1 から、PC1> dhcp としたところ、172.16.100.10 が割り振られました。これは、DNS サーバで設定していた筆頭アドレスでした。

f:id:intrajp:20180611232414p:plain

パケットは、次のようなパケットになりました。

フィルタ文字列となります。

(udp.port == 53 || udp.port == 67) && !(icmp) && !(frame contains weather) && !(frame contains wpad) && !(ip.addr == 192.112.36.4) && !(ip.addr == 128.63.2.53) && !(ip.addr == 192.58.128.30) && !(ip.addr == 192.228.79.201) && !(ip.addr == 192.5.5.241) && !(ip.addr == 193.0.14.129) && !(ip.addr == 192.203.230.10)

f:id:intrajp:20180611232343p:plain

DNSサーバを確認すると、/var/named/data にジャーナルファイルができていました。
開いてみたら、バイナリファイルでした。
さて、この状態では、zone ファイルにはデータはアップデートできていません。
以下のページを読むと、しばらくすると反映されるようです。
--------
(参考)
https://ftp.isc.org/www/bind/arm95/Bv9ARM.ch04.html

Dynamic Update

The journal file

All changes made to a zone using dynamic update are stored in the zone's journal file.
This file is automatically created by the server when the first dynamic update takes place.
The name of the journal file is formed by appending the extension .jnl to the name of the
corresponding zone file unless specifically overridden. The journal file is in a binary
format and should not be edited manually.

The server will also occasionally write ("dump") the complete contents of the updated
zone to its zone file. This is not done immediately after each dynamic update, because
that would be too slow when a large zone is updated frequently. Instead, the dump is
delayed by up to 15 minutes, allowing additional updates to take place.
--------

一晩待ってみましたが、jnl ファイルの内容が反映してはいませんでした。

もう一度、PC1> dhcp を実行して、DNS サーバで service named restart とすると、反映されました(PC-11 のアドレスが 10 になっていました)。

Cisco IOU を使って、VLAN 100 と VLAN 200(異なるネットワーク)を複数のスイッチとルーターで繋ぐ実験

前回は、同一ネットワークで、同一 VLAN の実験をおこないました。

今回は、異なるネットワーク、すなわち、異なる VLAN のマシンを、IOU-L3 も使って、繋いでみます。

画像に設定を書いておきました。

f:id:intrajp:20180610143408p:plain

これで繋がりました。

(参考)

ルータを使用したVLAN間ルーティングとは

L2 switch add vlan - Google 検索

 

Cisco IOU を使って、VLAN 100 (同一ネットワーク)を複数のスイッチで繋ぐ実験

VLAN 100 を、複数のスイッチで繋ぐ実験

f:id:intrajp:20180610032748p:plain

 

IOU-L2-1,IOU-L2-2 ですが、何もしなくても、繋がりました。
これは、デフォルト VLAN 1 により、繋がっていると思います。

では、vlan 100 に収容しても、繋がるでしょうか。

まず、vlan 100 を作成します。

IOU-L2-1# conf t
IOU-L2-1(config)# vlan 100
IOU-L2-1(config-vlan)# name sales
IOU-L2-1(config-vlan)# exit
IOU-L2-1# show vlan
...(snip)...
100 sales active
...(snip)...

IOU-L2-2 でも同様に、vlan 100 を作成します。

では、fa1/1 を vlan100 のみにしてみます。

IOU-L2-1# conf t
IOU-L2-1(config)# interface e0/0
IOU-L2-1(config-if)# switchport access vlan 100
IOU-L2-1# show interfaces e0/0 switchport
...(snip)...
Access Mode VLAN: 100 (sales)
...(snip)...
IOU-L2-1# show vlan
...(snip)...
100 sales active Et0/0
...(snip)...

ping が通らなくなりました。

では、e0/1 を trunk にして、allowed vlan 100 を実行してみます。

IOU-L2-1# conf t
IOU-L2-1(config)# interface e0/1
IOU-L2-1(config-if)# switchport trunk enc dot1q
IOU-L2-1(config-if)# switchport mode trunk
IOU-L2-1(config-if)# switchport trunk allowed vlan 100
IOU-L2-1# show interfaces trunk で trunk port の確認もしましょう。
IOU-L2-1# copy run start

まだ繋がらないですね。

R2 でも同じようにします。

繋がりました。

これらの設定を保存しているので、次回起動した時にも繋がるかと思いきや、繋がらなかったです。
仮想イメージでは、Trunking の Negotiation Mode が、On となっています。
そして、これは変更できません。
なので、タイミングの話になると考えました。

一方のスイッチを停止して、しばらくおいてから再起動してみました。
もちろん、設定は同じです。

繋がりました。

タイミングの問題ですね。

実機ではこのようなことはおこらない、というか、desirable とかに設定すると思いますが。

Fedora28 で GNS3 環境を構築する

毎回忘れそうなので、メモします。

Fedora28 で GNS3 環境を構築してみます。

ソースパッケージをダウンロードします。
https://github.com/GNS3/gns3-gui/releases
今回は、以下のパッケージをダウンロードします。
gns3-gui-2.1.6.tar.gz
tar zxvf gns3-gui-2.1.6.tar.gz
cd gns3-gui-2.1.6
以下のファイルを読みます。
README.rst
ドキュメントが、WEB上にあるようですので、読んでみます。
https://gns3.com/support/docs/linux-installation
結局、コレみたいです。
要すれば、ソースからではなくて、rpm パッケージを入れることにします。
# dnf install gns3-server gns3-gui wireshark wireshark-qt
# dnf install qemu-kvm qemu-system-x86
# dnf copr enable athmane/gns3-extra
# dnf install vpcs dynamips
VirtualBox の最新版をインストールします。
動かなかったら、以下を実行します。
# dnf install kernel*
# dnf update kernel-devel
# /sbin/vboxconfig
エラーになったら、/var/log/vbox-install.log を確認します。
# dnf install elfutils-libelf-devel
# shutdown -r now
# /sbin/vboxconfig
それでもエラーになったら、以下を実行します。
# dnf update kernel*
# shutdown -r now
# /sbin/vboxconfig
dmesg を見ろ、というエラーになりました。
ここは、BOIS の設定で、「セキュアブート」をオフにします。
# /sbin/vboxconfig
うまくいきました。。
VirtualBox のネットワーク設定を、「未設定」にします。
project にいって、スタートボタンをクリックします。
# dnf install xterm

今回、ソースを見て rpm を入れたら、結局、2.1.5 となっていました。

では、pip3 install gns3-server==2.1.5 、pip3 install gns3-gui==2.1.5 とします。

同じバージョンの GNS3VM をダウンロードします。

Releases · GNS3/gns3-gui · GitHub

VirtualBox 版です。

したがって、Preferences の Host binding は、192.168.56.1 とします。

Port は、3080 TCP です。

Preferences の GNS VM も、適切に設定します。

メモリは、多く割り当てた方がいいかも。

この状態で、一度 gns3 とタイプして、立ち上げてみます。

緑色になっていれば良いです。

なお、IOS と IOU のイメージを加える場合は、「GNS VM 上で動かす」にチェックを入れないと、いけません。

Preferences では、Server が、/usr/local/bin/gns3server になっていればよいです。

iourc は、GNS3VM 上で作成して、ホストマシンに持って来て、それを取り込みます。GNS3VM で、sudo apt-get update すると、python-minimal がインストールできます。それで、iourc を generate します。

これで、謎のエラーが出ることなく、最新のバイナリで、IOU も IOS も立ち上がりました。

DHCP-DNS 関連

DDNS の実験をしていました。

環境は、VirtualBox で、GNS3 上で実験です。

DHCPサーバが割り振ったIPアドレスをもとに、DNSサーバに設定を書いていくものです。

 配役は、こんな感じです。

DHCP: 192.168.100.1

DNS:192.168.100.2

PC:0.0.0.0

--------

まず、DHCP サーバです。

今回は、ISC-DHCP の、4.1-ESV-R15 をチェックアウトしました。

別の環境(CentOS6.9)に移して、./configure ; make ; make install しました。

バイナリは、/usr/local/sbin/dhcpd です。

dhcpd.conf は、/usr/share 以下に存在しているファイルをコピーして、適当に作成します。

続きを読む