プログラミングとかLinuxとかの備忘録

プログラミング、Linuxでハマった箇所や環境構築のメモ

Ubuntu16.04でのbondingとWake on Lanの設定

スポンサーリンク

NIC冗長化

設定前

eno1の方のIPを固定してそっちを使ってる

$ sudo nmcli device
DEVICE   TYPE      STATE         CONNECTION
eno1     ethernet  connected     eno1
enp14s0  ethernet  disconnected  --
lo       loopback  unmanaged     --

設定

bondingデバイスの作成

$ sudo nmcli connection add type bond con-name bond0 ifname bond0 mode active-backup
Connection 'bond0' (d1619bdf-38b7-4f20-8a0d-fa9f419951ad) successfully added.

$ nmcli connection show
NAME                UUID                                  TYPE            DEVICE
eno1   bcd81468-59c2-401e-bfb8-33b23c2b7d57  802-3-ethernet  eno1
bond0  d1619bdf-38b7-4f20-8a0d-fa9f419951ad  bond            --

enp14s0をスレーブに追加する

$ sudo nmcli connection add type bond-slave ifname enp14s0 master bond0
Connection 'bond-slave-enp14s0' (3405d7d6-6e5a-4f8f-82c9-f4c386feae85) successfully added.

$ nmcli connection show
NAME                UUID                                  TYPE            DEVICE
eno1                bcd81468-59c2-401e-bfb8-33b23c2b7d57  802-3-ethernet  eno1
bond-slave-enp14s0  3405d7d6-6e5a-4f8f-82c9-f4c386feae85  802-3-ethernet  --
bond0               d1619bdf-38b7-4f20-8a0d-fa9f419951ad  bond            --

bond0の設定

$ sudo nmcli connection modify bond0 ipv4.addresses 192.168.1.12/24
$ sudo nmcli connection modify bond0 ipv4.method manual
$ sudo nmcli connection modify bond0 ipv4.gateway 192.168.1.1
$ sudo nmcli connection modify bond0 ipv4.dns 192.168.1.1

enp14s0だけをつないだbond0を起動する

$ sudo nmcli connection modify bond-slave-enp14s0 connection.autoconnect yes
$ sudo nmcli connection modify bond0 connection.autoconnect yes
$ sudo nmcli connection up bond0

これで,bond0を使ってSSH等で接続できるようになったのでeno1も追加する

$ sudo nmcli connection delete eno1
$ sudo nmcli connection add type bond-slave ifname eno1 master bond0
$ sudo nmcli connection modify bond-slave-eno1 connection.autoconnect yes

$ sudo nmcli connection down bond0 && sudo nmcli connection up bond0

接続状態を確認する

$ cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)

Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: eno1
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

Slave Interface: eno1
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 38:d5:47:c7:c0:ad
Slave queue ID: 0

Slave Interface: enp14s0
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 38:d5:47:c7:c0:ae
Slave queue ID: 0

Wake on Lan

Wake on Lanは実デバイス(eno1enp14s0)で有効になっている必要がある
以下のように1 (default)となっていれば何も設定する必要はない

$ nmcli -f "802-3-ethernet.wake-on-lan" con show bond-slave-eno1
802-3-ethernet.wake-on-lan:             1 (default)

MACアドレスを調べる

$ nmcli -f "GENERAL.HWADDR" device show eno1
GENERAL.HWADDR:                         38:D5:47:C7:C0:AD

enp14s0で調べても同じMACアドレスが表示された. 本当は38:d5:47:c7:c0:aeのはずなので,bodingしていることと関係がある?

$ nmcli -f "GENERAL.HWADDR" device show enp14s0
GENERAL.HWADDR:                         38:D5:47:C7:C0:AD

とりあえずeno1Wake on Lanができれば良いことにしておく

これで,クライアントから以下のコマンドを実行すれば起動できる

$ sudo ether-wake -i eno1 38:D5:47:C7:C0:AD

もし起動できない場合はUEFIWake by PCIeみたいな項目をEnableにする