ボンディングがうまくいかない
問題文
ある会社ではサーバ同士をボンディングで接続する検証を行っていた。
検証VMでボンディングを行い、VLANインターフェースを複数アタッチして、他のVMとの疎通を確認したい。 疎通先のVMでは正しい設定がなされた状態となっているらしいが、検証VMからはpingが通らない。
何も言わずに検証VMの構築を担当していた社員が、辞めてしまった。 なんとかして、検証VMからpingを飛ばせるようにしてほしい。
初期状態
- 検証VMから192.168.20.1にpingが通らない
- 検証VMから192.168.30.1にpingが通らない
終了状態
- 検証VMの
eth0
とeth1
がLACPでボンディングを行っている - 検証VMにVLAN ID 20とVLAN ID 30のVLANインターフェースが作成され
eth0
とeth1
のボンディングインターフェースにアタッチされている - VLAN ID 20のインターフェースに 192.168.20.0/24 のIPアドレスが振られている
- VLAN ID 30のインターフェースに 192.168.30.0/24 のIPアドレスが振られている
- 検証VMから192.168.20.1にpingが通る
- 検証VMから192.168.30.1にpingが通る
採点基準
設定内容 | 割合 |
---|---|
bondingの設定(lsmodにてbondingが有効になっていたら) | 40% |
VLANの設定のみ | 10% |
pingによる疎通確認ができている | 50% |
解説
この問題では、検証VM側でbondingのモジュールがロードされていないこととVLANの設定が抜けていることが原因です。lsmod
でbondingのモジュールが入っていないことを確認します。 lsmod | grep bonding
にて、確認することができます。
bondingモジュールはmodprobe bondingで有効にすることができます。
VLANの設定方法として、/etc/sysconfig/network-scripts上にある設定ファイルを触る必要があります。modprobe bonding
としてモジュールをロードしようとすると、
modprobe: ERROR: could not find module by name='off'
modprobe: ERROR: could not insert 'off': Function not implemented
というエラーが出て読み込むことができなかったと思います。
無効化にするコンフィグとして、/etc/modprobe.d/modprobe.confにあるので削除する必要があります。
削除後はmodprobe bondingでモジュールをロードすると使えるようになります。
次に、VLAN側の設定を変更する必要があります。/etc/sysconfig/network-scripts/ifcfg-bond0.20
DEVICE=bond0.20
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.20.2
NETMASK=255.255.255.0
/etc/sysconfig/network-scripts/ifcfg-bond0.30
DEVICE=bond0.30
ONBOOT=yes
IPADDR=192.168.30.2
NETMASK=255.255.255.0
初期状態のコンフィグでは上記のようになっていますが、 /etc/sysconfig/network-scripts/ifcfg-bond0.20
DEVICE=bond0.20
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.20.2
NETMASK=255.255.255.0
VLAN=yes
/etc/sysconfig/network-scripts/ifcfg-bond0.30
DEVICE=bond0.30
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.30.2
NETMASK=255.255.255.0
VLAN=yes
最後にsystemctl restart network
にてネットワークサービスを再起動することで、pingによる疎通が取れるようになります。