目的
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




コメント