サーラリマンは働き過ぎ、社畜化に注意しよう!!

dhcp failover ubuntu

ubuntu
スポンサーリンク

目的

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
ubuntu
スポンサーリンク
シェアする
ふじやんをフォローする
なんでもDIY

コメント