- CentOS 7.3 で nmcli でボンディング、ブリッジの設定をする すごい参考になる
- NetworkManagerの設定変更、nmtuiとnmcliについてまとめたよ!
- nmcliで仮想ブリッジ作成
- nmcliを使って、enp3s0をブリッジとして設定を行います。
- OS: CentOS7
bridgeを作る際には次のようにifcfg-XXXを編集していました。
/etc/sysconfig/network-scripts/ifcfg-brenp3s0
DEVICE=brenp3s0
ONBOOT=yes
TYPE=Bridge
BOOTPROTO=none
IPADDR0=xxx.xxx.xxx.xxx
PREFIX0=24
NM_CONTROLLED=no
#DEFROUTE=no
#IPV4_FAILURE_FATAL=no
#IPV6INIT=no
#IPV6_AUTOCONF=yes
#IPV6_DEFROUTE=yes
#IPV6_PEERDNS=yes
#IPV6_PEERROUTES=yes
#IPV6_FAILURE_FATAL=no
#NAME=brenp3s0
#UUID=4ef34231-5268-4597-8ea6-4ae37faa64db
/etc/sysconfig/network-scripts/ifcfg-enp3s0
DEVICE=enp3s0
ONBOOT=yes
BRIDGE=brenp3s0
NM_CONTROLLED=no
OS導入直後の、初期状態の/etc/sysconfig/network-scripts/ifcfg-enp3s0
HWADDR=xx:xx:xx:xx:xx:xx
TYPE=Ethernet
BOOTPROTO=dhcp
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=enp3s0
UUID=abb51b04-420b-49bb-bfca-3c159ebbc6ee
ONBOOT=no
有効なデバイスを表示する。nmcli deviceの実行結果
# nmcli device
DEVICE TYPE STATE CONNECTION
eno1 ethernet connected eno1
enp3s0 ethernet disconnected --
eno2 ethernet unavailable --
lo loopback unmanaged --
コネクションの情報を出力するnmcli showの出力
# nmcli connection show
NAME UUID TYPE DEVICE
eno1 f3b463df-5cc8-4c3b-b5d4-c245134f77fe 802-3-ethernet eno1
enp3s0 abb51b04-420b-49bb-bfca-3c159ebbc6ee 802-3-ethernet --
eno2 a7787771-26a8-4ccd-9b1e-cb64bffe34ad 802-3-ethernet --
ブリッジインターフェースの作成
実行結果例
# nmcli c add type bridge ifname brenp3s0
Connection 'bridge-brenp3s0' (f1ea72c8-e773-4bd9-aff7-d6873b015f74) successfully added.
ifnameでインターフェースを指定した場合
- /etc/sysconfig/network-scripts/ifcfg-bridge-<ifnameで指定した名前>のファイルが作成される。
- DEVICEのエントリ: ifnameの値
- NAMEのエントリ: bridge-<ifnameで指定した名前>になる。
- STP=yesになる
ifcfg-bridge-brenp3s0の中身を確認する
# cat ifcfg-bridge-brenp3s0
DEVICE=brenp3s0
STP=yes
BRIDGING_OPTS=priority=32768
TYPE=Bridge
BOOTPROTO=dhcp
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=bridge-brenp3s0
UUID=f1ea72c8-e773-4bd9-aff7-d6873b015f74
ONBOOT=yes
STP(Spanning Tree Protocol)を無効にする
# nmcli con modify bridge-brenp3s0 bridge.stp no
もう一度ファイルを確認する。STP=noに変わっていることがわかる。
# cat ifcfg-bridge-brenp3s0
DEVICE=brenp3s0
STP=no
TYPE=Bridge
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
NAME=bridge-brenp3s0
UUID=f1ea72c8-e773-4bd9-aff7-d6873b015f74
ONBOOT=yes
PEERDNS=yes
PEERROUTES=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
ブリッジのインターフェースにIPアドレスを割り当てする
# nmcli con modify bridge-brenp3s0 ipv4.method manual ipv4.addresses 10.10.10.2/24
ファイルを確認する。IPアドレス(IPADDR0)が設定されていることが確認できる。またネットマスク(PREFIX0)がセットされている。
# cat ifcfg-bridge-brenp3s0
DEVICE=brenp3s0
STP=no
TYPE=Bridge
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
NAME=bridge-brenp3s0
UUID=f1ea72c8-e773-4bd9-aff7-d6873b015f74
ONBOOT=yes
IPADDR0=10.10.10.2
PREFIX0=24
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
ifcfg-enp3s0の確認、こちらは特に変化がない
# cat ifcfg-enp3s0
HWADDR=xx:xx:xx:xx:xx:xx
TYPE=Ethernet
BOOTPROTO=dhcp
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=enp3s0
UUID=abb51b04-420b-49bb-bfca-3c159ebbc6ee
ONBOOT=no
物理ポートenp3s0をブリッジに接続します。
# nmcli con add type bridge-slave ifname enp3s0 master bridge-brenp3s0
Connection 'bridge-slave-enp3s0' (3264fc3b-9b7c-4241-87b0-3b207dc7cc92) successfully added.
新しく、ifcfg-bridge-slave-enp3s0というファイルができました。
# ls
ifcfg-bridge-enp3s0
ifcfg-bridge-slave-enp3s0
ifcfg-enp3s0
作成されたファイルの中身を確認します。
# cat ifcfg-bridge-slave-enp3s0
TYPE=Ethernet
NAME=bridge-slave-enp3s0
UUID=3264fc3b-9b7c-4241-87b0-3b207dc7cc92
DEVICE=enp3s0
ONBOOT=yes
BRIDGE=f1ea72c8-e773-4bd9-aff7-d6873b015f74
# nmcli device
brenp3s0 bridge connected bridge-brenp3s0
eno1 ethernet connected eno1
enp3s0 ethernet connected bridge-slave-enp3s0
eno2 ethernet unavailable --
lo loopback unmanaged --
nmcli c show
NAME UUID TYPE DEVICE
eno1 f3b463df-5cc8-4c3b-b5d4-c245134f77fe 802-3-ethernet eno1
enp3s0 abb51b04-420b-49bb-bfca-3c159ebbc6ee 802-3-ethernet --
eno2 a7787771-26a8-4ccd-9b1e-cb64bffe34ad 802-3-ethernet --
bridge-slave-enp3s0 3264fc3b-9b7c-4241-87b0-3b207dc7cc92 802-3-ethernet enp3s0
bridge-brenp3s0 f1ea72c8-e773-4bd9-aff7-d6873b015f74 bridge brenp3s0
これは不要だと思うが、enp3s0の設定を変更します。
# nmcli con modify enp3s0 ipv4.dns "" ipv4.addresses "" ipv4.dns-search "" ipv4.method disable
中身を確認します。
# cat ifcfg-enp3s0
TYPE=Ethernet
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
NAME=enp3s0
UUID=abb51b04-420b-49bb-bfca-3c159ebbc6ee
ONBOOT=no
HWADDR=xx:xx:xx:xx:xx:xx
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
NetworkManagerをリスタートします。
# systemctl restart NetworkManager
nmcli deviceの結果を確認します。
# nmcli d
DEVICE TYPE STATE CONNECTION
brenp3s0 bridge connected bridge-brenp3s0
eno1 ethernet connected eno1
enp3s0 ethernet connected bridge-slave-enp3s0
eno2 ethernet unavailable --
lo loopback unmanaged --
nmcli connection showの結果を確認します。
# nmcli c show
nmcli c show
NAME UUID TYPE DEVICE
bridge-slave-enp3s0 3264fc3b-9b7c-4241-87b0-3b207dc7cc92 802-3-ethernet enp3s0
bridge-brenp3s0 f1ea72c8-e773-4bd9-aff7-d6873b015f74 bridge brenp3s0
eno2 a7787771-26a8-4ccd-9b1e-cb64bffe34ad 802-3-ethernet --
enp3s0 9bd21e62-df5c-4d81-ab1d-b5a46de5ed5d 802-3-ethernet --
eno1 f3b463df-5cc8-4c3b-b5d4-c245134f77fe 802-3-ethernet eno1
enp3s0 abb51b04-420b-49bb-bfca-3c159ebbc6ee 802-3-ethernet --
デバイスとの関連は、UUIDを使って行われているようです。
grep f1ea72c8-e773-4bd9-aff7-d6873b015f74 ifcfg-*
ifcfg-bridge-brenp3s0:UUID=f1ea72c8-e773-4bd9-aff7-d6873b015f74
ifcfg-bridge-slave-enp3s0:BRIDGE=f1ea72c8-e773-4bd9-aff7-d6873b015f74
# brctl show
bridge name bridge id STP enabled interfaces
brenp3s0 8000.002590df8219 no enp3s0