CentOS7 KVM(仮想化ホスト) Bonding+Bridge

NO IMAGE
ディストリビューション : CentOS7
アプリケーション : KVM
NIC(ネットワークカード) 4枚
NIC構成 ボンディング&ブリッジ
NICグループ(virbr1) ens34,ens35(ローカル接続用)
NICグループ(virbr2) ens36,ens37(グローバル接続用)
動作モード active-backup
監視モード MII
virbr1 IP Address 192.168.100.0/24
virbr2 IP Address 192.168.200.0/24
デフォルトゲートウェイ virbr1

初期状態では「virbr0」が存在するので「virbr1」「virbr2」を作成する。

また、インターフェイスは必ずブリッジから作成すること。

インターフェイスの確認

nmcli c

初期の状態

NAME    UUID                                  TYPE      DEVICE
virbr0  26ae9e02-1775-419e-a59b-5e8e88ec9e36  bridge    virbr0
ens33   38480900-188d-4fa6-a861-85552b8f2d07  ethernet  --
ens34   9545309e-c9ed-4db1-b6c9-52f9769c5af3  ethernet  --    
ens35   444169f1-376b-42b8-b7ad-553e1b3eb89d  ethernet  --    
ens36   37968286-23c1-446f-aefc-77c192abbfa1  ethernet  --

ブリッジの作成

nmcli c add type bridge ifname virbr1 con-name virbr1
nmcli c mod virbr1 bridge.stp no
nmcli c mod virbr1 ipv4.method manual ipv4.address "192.168.100.100/24" ipv4.gateway "192.168.100.1" ipv4.dns "192.168.100.1"
nmcli c down virbr1
nmcli c up virbr1
NAME    UUID                                  TYPE      DEVICE 
virbr0  26ae9e02-1775-419e-a59b-5e8e88ec9e36  bridge    virbr0 
virbr1  0287a5ab-890d-4add-ab97-aefe638b477d  bridge    virbr1 
ens33   b5e690d6-2e23-4ac6-8121-618c0b3ce22e  ethernet  --
ens34   7a8be77a-1558-49c8-9416-db4261ef8307  ethernet  --     
ens35   444169f1-376b-42b8-b7ad-553e1b3eb89d  ethernet  --     
ens36   37968286-23c1-446f-aefc-77c192abbfa1  ethernet  --

ブリッジの確認

brctl show

ボンディングの作成

nmcli c add type bond ifname bond1 con-name bond1 mode active-backup miimon 100 updelay 0 downdelay 0
nmcli c mod bond1 connection.master virbr1 connection.slave-type bridge
nmcli c add type bond-slave ifname ens33 con-name bond-slave-ens33 master bond1
nmcli c add type bond-slave ifname ens34 con-name bond-slave-ens34 master bond1
NAME              UUID                                  TYPE      DEVICE 
bond-bond1        36891a6b-98b7-4249-aa21-49241855111b  bond      bond1  
bond-slave-ens33  8beb7ec5-7ad3-4e3a-8e9a-dee179490bfc  ethernet  ens33
bond-slave-ens34  827620df-2245-49ec-895b-246db8ebc908  ethernet  ens34  
virbr0            26ae9e02-1775-419e-a59b-5e8e88ec9e36  bridge    virbr0 
virbr1            0287a5ab-890d-4add-ab97-aefe638b477d  bridge    virbr1
ens33             b5e690d6-2e23-4ac6-8121-618c0b3ce22e  ethernet  --     
ens34             7a8be77a-1558-49c8-9416-db4261ef8307  ethernet  --     
ens35             444169f1-376b-42b8-b7ad-553e1b3eb89d  ethernet  --     
ens36             37968286-23c1-446f-aefc-77c192abbfa1  ethernet  --

物理インターフェイスの削除

nmcli c del ens33
nmcli c del ens34
NAME              UUID                                  TYPE      DEVICE 
bond-bond1        36891a6b-98b7-4249-aa21-49241855111b  bond      bond1  
bond-slave-ens33  8beb7ec5-7ad3-4e3a-8e9a-dee179490bfc  ethernet  ens33  
bond-slave-ens34  827620df-2245-49ec-895b-246db8ebc908  ethernet  ens34  
virbr0            26ae9e02-1775-419e-a59b-5e8e88ec9e36  bridge    virbr0 
virbr1            0287a5ab-890d-4add-ab97-aefe638b477d  bridge    virbr1 
ens35             444169f1-376b-42b8-b7ad-553e1b3eb89d  ethernet  --     
ens36             37968286-23c1-446f-aefc-77c192abbfa1  ethernet  --

ブリッジ名やボンディング名を変更してens35,ens36のインターフェイスも上記繰り返し作業となる。ただし、どちらかだけにゲートウェイを設定することが必要となる。一通り設定が完了したら、マシーンを再起動して問題なく稼働しているかチェックする。

現時点で筆者が試した限りでは、テキスト形式のGUIで設定の反映はできるがブリッジの中にボンディングを作成することが出来ないので注意が必要かもしれない。(Ethernet、Wi-Fi、VLANの作成は出来る)

テキスト形式のGUIで操作したい場合

nmtui

状態確認(bond1は上記で作成されたデバイス名

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

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

Slave Interface: ens33
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 1
Permanent HW addr: 00:50:56:24:43:8a
Slave queue ID: 0

Slave Interface: ens34
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:50:56:2a:bb:c4
Slave queue ID: 0

ens33のケーブルを抜くと「Currently Active Slave: 」が、ens34に切り替わることが確認できる。または、/var/log/messagesに下記のようなメッセージが記載される。

 

e1000: ens33 NIC Link is Down
bond1: link status definitely down for interface ens33, disabling it
bond1: making interface ens34 the new active one

内部仮想スイッチ(virbr0)

IPアドレスは内部仮想スイッチからDHCPで割り当てされ、外部から内部へのアクセスは不可である。公開サーバで使う予定がない場合は停止しても問題はない。

仮想ブリッジの停止

virsh net-destroy default

自動起動の確認

virsh net-list --all

仮想ブリッジの自動起動の停止

virsh net-autostart default --disable

元に戻したい場合

virsh net-start default
virsh net-autostart default

最終的には内部仮想スイッチを停止した場合は下記のようになるはず。

NAME              UUID                                  TYPE      DEVICE 
bond-slave-ens33  049083ab-8a95-4fc3-bf46-02e0b852a1a4  ethernet  ens33  
bond-slave-ens34  451a049a-9a11-47f8-8a21-f8c588d53e50  ethernet  ens34  
bond-slave-ens35  6b127199-7d76-4787-ad37-b08e09b7ec51  ethernet  ens35  
bond-slave-ens36  6b9e77df-500c-4c0f-966e-b453df3c6f01  ethernet  ens36  
bond1             af5a9947-edca-41af-87a6-6c1100bd7e7a  bond      bond1  
bond2             2d178019-f362-41e1-bc3e-bcbf1c4f510c  bond      bond2  
virbr1            c7fa4965-a54b-4467-996f-676d25a1f586  bridge    virbr1 
virbr2            7baf492b-266c-4eb7-a6e1-e0e27ff758b0  bridge    virbr2

通信できない場合はルーテォング情報の確認をする。下記のようになっている場合は修正が必要となる。

 

ip route
default via 192.168.100.1 dev virbr1 proto static metric 425 
default via 192.168.200.1 dev virbr2 proto dhcp metric 426 
192.168.100.0/24 dev virbr1 proto kernel scope link src 192.168.150.16 metric 425 
192.168.200.0/24 dev virbr2 proto kernel scope link src 192.168.209.149 metric 426

これではデフォルトゲートウェイが二つ存在することになるので問題が発生する。なぜこのような自体になるかと言うと、要因は2つある。

1. 二つのインターフェイスに対して、IPを設定をする際に「ipv4.gateway “xxx.xxx.xxx.xxx”」を追加して設定した場合

2. DHCPで設定した場合

環境によりどちらをゲートウェイにするのか違うかと思われるが、ここではvirbr1をデフォルトゲートウェイとする。修正方法は下記二通り。

1. /etc/sysconfig/network-scripts/ifcfg-virbr2に「DEFROUTE=no」を記載

2. nmtuiコマンドで「virbr2」のIPの設定、「Never use this network for default route」にチェックを入れる。(推奨)

 

 

 

Linuxカテゴリの最新記事