目的
linuxシステムで重要な役割を担っているdhcpである。
これがこけるとネットに接続できない端末が発生する。
dhcp serverが1台であると不安がある。
そこで1台がこけてももう1台が役割をになうシステムがfailoverシステムである。
実現方法
2台のサーバーのisc-dhcp-serverを連携させて実現する。
isc-dhcp-serverをfailover対応に設定値を変更すればOK
設定に用いたサーバー
プライマリサーバー
Ubuntu 18.04.2 isc-dhcp-server DHCP Server version 4.3.5
セカンダリーサーバー
Debian 8.11 isc-dhcp-server DHCP Server version 4.3.1
参考サイト
isc-dhcp-serverの/etc/dhcp/dhcpd.confの設定
プライマリーサーバー
ddns-update-style none; # option definitions common to all supported networks... option domain-name "private.ckenko25.jp"; option domain-name-servers 192.168.1.2, 8.8.8.8; default-lease-time 86400; max-lease-time 86400; failover peer "failover-partner" { primary; address 192.168.1.2; port 519; peer address 192.168.1.6; peer port 520; max-response-delay 60; max-unacked-updates 10; mclt 3600; load balance max seconds 3; } subnet 192.168.1.0 netmask 255.255.255.0 { option domain-name-servers 192.168.1.2; option routers 192.168.1.1; pool { failover peer "failover-partner"; range 192.168.1.41 192.168.1.110; # MACアドレスで固定IPを割り当てる host iphone6_au { hardware ethernet D4:F4:6F:96:13:38; fixed-address 192.168.1.103; } host iphone6_docomo { hardware ethernet 60:A3:7D:9B:3F:C2; fixed-address 192.168.1.82; } host moto_g4 { hardware ethernet 68:c4:4d:4b:33:5f; fixed-address 192.168.1.51; } } } authoritative; log-facility local7;
セカンダリーサーバー
ddns-update-style none; # option definitions common to all supported networks... option domain-name "private.ckenko25.jp"; option domain-name-servers 192.168.1.2, 8.8.8.8; default-lease-time 86400; max-lease-time 86400; failover peer "failover-partner" { secondary; address 192.168.1.6; port 520; peer address 192.168.1.2; peer port 519; max-response-delay 60; max-unacked-updates 10; load balance max seconds 3; } subnet 192.168.1.0 netmask 255.255.255.0 { option domain-name-servers 192.168.1.2; option routers 192.168.1.1; pool { failover peer "failover-partner"; range 192.168.1.41 192.168.1.110; # MACアドレスで固定IPを割り当てる host iphone6_au { hardware ethernet D4:F4:6F:96:13:38; fixed-address 192.168.1.103; } host iphone6_docomo { hardware ethernet 60:A3:7D:9B:3F:C2; fixed-address 192.168.1.82; } host moto_g4 { hardware ethernet 68:c4:4d:4b:33:5f; fixed-address 192.168.1.51; } } } authoritative; log-facility local7;
確認
確認はdhcpに設定している端末で確認する。
端末のLAN口がwifi機器を経由している場合は経由を外して確認する。
$ sudo ifdown enp1s0 && sudo ifup enp1s0
正常な場合
Listening on LPF/enp1s0/54:ab:3a:02:b1:97 Sending on LPF/enp1s0/54:ab:3a:02:b1:97 Sending on Socket/fallback DHCPDISCOVER on enp1s0 to 255.255.255.255 port 67 interval 3 (xid=0x804ead35) DHCPDISCOVER on enp1s0 to 255.255.255.255 port 67 interval 8 (xid=0x804ead35) DHCPDISCOVER on enp1s0 to 255.255.255.255 port 67 interval 11 (xid=0x804ead35) DHCPREQUEST of 192.168.1.42 on enp1s0 to 255.255.255.255 port 67 (xid=0x35ad4e80) DHCPOFFER of 192.168.1.42 from 192.168.1.2 DHCPACK of 192.168.1.42 from 192.168.1.2 bound to 192.168.1.42 -- renewal in 237 seconds.
うまく動かない場合はバージョンを揃えてトライ
ダウンロード
ソースをコンパイルする
コンパイル後は/usr/sbinにdhcpdが出力される。
aptのdhcpdと置き換わる。
$ sudo tar -zxvf dhcp-4.4.1.tar.gz $ cd dhcp-4.4.1 $ sudo ./configure $ sudo make $ sudo make install
aptのバージョンに戻す
$ cd dhcp-4.4.1 $ sudo make uninstall $ apt purge isc-dhcp-server $ apt install isc-dhcp-server
コメント