computerの日記

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

Docker 備忘録その2

さて、自分の好きな docker イメージをつくりたいのですが、やり方をすっかり忘れているので、ここでまたメモします。

前回までで、hello-world イメージが一般ユーザで動きましたよね。

今までに作成したイメージを確認してみます。

$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos 7 49f7960eb7e4 2 weeks ago 200MB
centos latest 49f7960eb7e4 2 weeks ago 200MB
hello-world latest e38bc07ac18e 2 months ago 1.85kB
hello-world latest f2a91732366c 7 months ago 1.85kB
intrajp/centos7_kea ver1.1 62624c59d0ac 13 months ago 654MB
intrajp/centos7_kea ver1.0 aa2f983fde6d 13 months ago 621MB
centos latest a8493f5f50ff 14 months ago 192MB

 一つのイメージを動かしてみます。

$ docker run -it <tab>
centos hello-world intrajp/centos7_kea:ver1.0
centos:7 hello-world:latest intrajp/centos7_kea:ver1.1
centos:latest intrajp/centos7_kea
$ docker run -it centos:latest
[root@696fe9d155e9 /]#

 動いたようなので、exit しました。

では、一つのイメージに名前をつけてみます。

$ docker tag 49f7960eb7e4 intrajp/centos_for_gns3_user

確認します。

]$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
intrajp/centos_for_gns3_user latest 49f7960eb7e4 2 weeks ago 200MB
...(snip)...

 では、このイメージ intrajp/centos_for_gns3_user を動かして、このコンテナにはいくつのパッケージがインストールされているのかを確認します。

[$ docker run -it intrajp/centos_for_gns3_user
[root@67768806eeb3 /]# rpm -qa | sort;rpm -qa | wc -l
acl-2.2.51-14.el7.x86_64
audit-libs-2.8.1-3.el7.x86_64
basesystem-10.0-7.el7.centos.noarch
bash-4.2.46-30.el7.x86_64
bind-license-9.9.4-61.el7.noarch
binutils-2.27-27.base.el7.x86_64
bzip2-libs-1.0.6-13.el7.x86_64
ca-certificates-2018.2.22-70.0.el7_5.noarch
centos-release-7-5.1804.el7.centos.2.x86_64
chkconfig-1.7.4-1.el7.x86_64
coreutils-8.22-21.el7.x86_64
cpio-2.11-27.el7.x86_64
cracklib-2.9.0-11.el7.x86_64
cracklib-dicts-2.9.0-11.el7.x86_64
cryptsetup-libs-1.7.4-4.el7.x86_64
curl-7.29.0-46.el7.x86_64
cyrus-sasl-lib-2.1.26-23.el7.x86_64
dbus-1.10.24-7.el7.x86_64
dbus-glib-0.100-7.el7.x86_64
dbus-libs-1.10.24-7.el7.x86_64
dbus-python-1.1.1-9.el7.x86_64
device-mapper-1.02.146-4.el7.x86_64
device-mapper-libs-1.02.146-4.el7.x86_64
diffutils-3.3-4.el7.x86_64
dracut-033-535.el7.x86_64
elfutils-default-yama-scope-0.170-4.el7.noarch
elfutils-libelf-0.170-4.el7.x86_64
elfutils-libs-0.170-4.el7.x86_64
expat-2.1.0-10.el7_3.x86_64
file-libs-5.11-33.el7.x86_64
filesystem-3.2-25.el7.x86_64
findutils-4.5.11-5.el7.x86_64
gawk-4.0.2-4.el7_3.1.x86_64
gdbm-1.10-8.el7.x86_64
glib2-2.54.2-2.el7.x86_64
glibc-2.17-222.el7.x86_64
glibc-common-2.17-222.el7.x86_64
gmp-6.0.0-15.el7.x86_64
gnupg2-2.0.22-4.el7.x86_64
gobject-introspection-1.50.0-1.el7.x86_64
gpgme-1.3.2-5.el7.x86_64
grep-2.20-3.el7.x86_64
gzip-1.5-10.el7.x86_64
hardlink-1.0-19.el7.x86_64
hostname-3.13-3.el7.x86_64
info-5.1-5.el7.x86_64
iputils-20160308-10.el7.x86_64
keyutils-libs-1.5.8-3.el7.x86_64
kmod-20-21.el7.x86_64
kmod-libs-20-21.el7.x86_64
kpartx-0.4.9-119.el7.x86_64
krb5-libs-1.15.1-19.el7.x86_64
libacl-2.2.51-14.el7.x86_64
libassuan-2.1.0-3.el7.x86_64
libattr-2.4.46-13.el7.x86_64
libblkid-2.23.2-52.el7.x86_64
libcap-2.22-9.el7.x86_64
libcap-ng-0.7.5-4.el7.x86_64
libcom_err-1.42.9-12.el7_5.x86_64
libcurl-7.29.0-46.el7.x86_64
libdb-5.3.21-24.el7.x86_64
libdb-utils-5.3.21-24.el7.x86_64
libffi-3.0.13-18.el7.x86_64
libgcc-4.8.5-28.el7_5.1.x86_64
libgcrypt-1.5.3-14.el7.x86_64
libgpg-error-1.12-3.el7.x86_64
libidn-1.28-4.el7.x86_64
libmount-2.23.2-52.el7.x86_64
libpwquality-1.2.3-5.el7.x86_64
libselinux-2.5-12.el7.x86_64
libsemanage-2.5-11.el7.x86_64
libsepol-2.5-8.1.el7.x86_64
libssh2-1.4.3-10.el7_2.1.x86_64
libstdc++-4.8.5-28.el7_5.1.x86_64
libtasn1-4.10-1.el7.x86_64
libuser-0.60-9.el7.x86_64
libutempter-1.1.6-4.el7.x86_64
libuuid-2.23.2-52.el7.x86_64
libverto-0.2.5-4.el7.x86_64
libxml2-2.9.1-6.el7_2.3.x86_64
libxml2-python-2.9.1-6.el7_2.3.x86_64
lua-5.1.4-15.el7.x86_64
lz4-1.7.5-2.el7.x86_64
ncurses-5.9-14.20130511.el7_4.x86_64
ncurses-base-5.9-14.20130511.el7_4.noarch
ncurses-libs-5.9-14.20130511.el7_4.x86_64
nspr-4.19.0-1.el7_5.x86_64
nss-3.36.0-5.el7_5.x86_64
nss-pem-1.0.3-4.el7.x86_64
nss-softokn-3.36.0-5.el7_5.x86_64
nss-softokn-freebl-3.36.0-5.el7_5.x86_64
nss-sysinit-3.36.0-5.el7_5.x86_64
nss-tools-3.36.0-5.el7_5.x86_64
nss-util-3.36.0-1.el7_5.x86_64
openldap-2.4.44-15.el7_5.x86_64
openssl-libs-1.0.2k-12.el7.x86_64
p11-kit-0.23.5-3.el7.x86_64
p11-kit-trust-0.23.5-3.el7.x86_64
pam-1.1.8-22.el7.x86_64
passwd-0.79-4.el7.x86_64
pcre-8.32-17.el7.x86_64
pinentry-0.8.1-17.el7.x86_64
pkgconfig-0.27.1-4.el7.x86_64
popt-1.13-16.el7.x86_64
procps-ng-3.3.10-17.el7_5.2.x86_64
pth-2.0.7-23.el7.x86_64
pygpgme-0.3-9.el7.x86_64
pyliblzma-0.5.3-11.el7.x86_64
python-2.7.5-68.el7.x86_64
python-chardet-2.2.1-1.el7_1.noarch
python-gobject-base-3.22.0-1.el7_4.1.x86_64
python-iniparse-0.4-9.el7.noarch
python-kitchen-1.1.1-5.el7.noarch
python-libs-2.7.5-68.el7.x86_64
python-pycurl-7.19.0-19.el7.x86_64
python-urlgrabber-3.10-8.el7.noarch
pyxattr-0.5.1-5.el7.x86_64
qrencode-libs-3.4.1-3.el7.x86_64
readline-6.2-10.el7.x86_64
rootfiles-8.1-11.el7.noarch
rpm-4.11.3-32.el7.x86_64
rpm-build-libs-4.11.3-32.el7.x86_64
rpm-libs-4.11.3-32.el7.x86_64
rpm-python-4.11.3-32.el7.x86_64
sed-4.2.2-5.el7.x86_64
setup-2.8.71-9.el7.noarch
shadow-utils-4.1.5.1-24.el7.x86_64
shared-mime-info-1.8-4.el7.x86_64
sqlite-3.7.17-8.el7.x86_64
systemd-219-57.el7.x86_64
systemd-libs-219-57.el7.x86_64
tar-1.26-34.el7.x86_64
tzdata-2018e-3.el7.noarch
ustr-1.0.4-16.el7.x86_64
util-linux-2.23.2-52.el7.x86_64
vim-minimal-7.4.160-4.el7.x86_64
xz-5.2.2-1.el7.x86_64
xz-libs-5.2.2-1.el7.x86_64
yum-3.4.3-158.el7.centos.noarch
yum-metadata-parser-1.1.4-10.el7.x86_64
yum-plugin-fastestmirror-1.1.31-45.el7.noarch
yum-plugin-ovl-1.1.31-45.el7.noarch
yum-utils-1.1.31-45.el7.noarch
zlib-1.2.7-17.el7.x86_64
144
 

 しかし、なんで dracut が必要なんだろうか。

あるパッケージ(hping3)をいれたいのですが、epel にしかないので、まずは、epel-release をいれます。

# yum install epel-release

# yum -y install hping3

 まあ、これでこのイメージについては、固まった感じですね。次は、ネットワークになじませるところをやりたいですね。

 

Docker 備忘録その1

Docker イメージなんですが、ほかのことにかまけて最近とんとやっていなくて、すっかり忘れていました。

別の blog に書いていたことを、もう一度体験してやってみようという趣旨になります。別の blog では、Fedora25 でしたが、今回は、Fedora28 での作業となります。

まずは、最初に、現在インストールされているパッケージを削除します。

Get Docker CE for Fedora | Docker Documentation

# dnf remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-selinux \
                  docker-engine-selinux \
                  docker-engine 

Docker-CE をインストールします。

リポジトリの設定をします。

docs.docker.com

 

# dnf -y install dnf-plugins-core

# dnf config-manager \ --add-repo \ https://download.docker.com/linux/fedora/docker-ce.repo

# dnf config-manager --set-enabled docker-ce-edge

# dnf config-manager --set-enabled docker-ce-test

# dnf install docker-ce
#
dnf list docker-ce --showduplicates | sort -r

Docker を起動します。次回起動時にも起動するようにします。

# systemctl start docker
# systemctl enable docker

 hello-world イメージをダウンロードして、Docker が動くかどうか確認します。

# docker run hello-world

 成功すると、各種メッセージが出力されます。

 postinstall の設定をします。

Post-installation steps for Linux | Docker Documentation

# groupadd docker
#
usermod -aG docker $USER

 では、一般ユーザで docker を実行してみます。

$ docker run hello-world

エラーとはならず、root で実行したときと同じような表示が出れば成功です。

とりあえず、今回はここまで。 

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 以下に存在しているファイルをコピーして、適当に作成します。

続きを読む