NetworkManagerというとIPアドレスを設定するGUIという認識で、 とりあえず無効化してしまうLinux機能の1つだったのですけど、 CUI環境でもnmcliコマンドで設定するのがRHEL7からのスタイルらしいです。
NICの命名規則
手始めにnmcliコマンドで状態を表示させてみます。
NetworkManagerではdeviceが仮想も含めたネットワークインタフェースそのものを指し、
connectionが/etc/sysconfig/network-scripts/配下の設定ファイルを指しているようです。
なおCentOS 7を仮想マシンホスト構成でインストールしたので最初からvirbr0が作られていました。
[root@localhost ~]# nmcli device DEVICE TYPE STATE CONNECTION virbr0 bridge connected virbr0 virbr0-nic tap connected virbr0-nic enp0s31f6 ethernet disconnected -- enp3s0 ethernet unavailable -- lo loopback unmanaged -- wlp4s0 wifi unmanaged -- [root@localhost ~]# nmcli connection NAME UUID TYPE DEVICE virbr0 b93007c6-e0e6-4916-b186-050966e59bb2 bridge virbr0 enp0s31f6 714634a0-f8b2-40d1-a169-1cddc501e836 802-3-ethernet -- enp3s0 20ba6fa2-4a25-4747-b3e8-fb37459caa7e 802-3-ethernet -- virbr0-nic 1e0e6f66-4257-47a6-b48a-f4b6c57f49e7 generic virbr0-nic
ところでこのPCのマザーボード(GA-Z170N-WIFI)には有線LANが2つと無線LANが搭載されています。 どれにどんな名前が付いているのか「予想可能なネットワークインターフェイスデバイスの命名」に従って予想してみました。
デバイス | タイプ | Pci bus | Slot | Function | チップ |
---|---|---|---|---|---|
enp3s0 | EtherNet | 0x03 | 0x00 | - | Intel I211 |
enp0s31f6 | EtherNet | 0x00 | 0x1f (31) | 6 | Intel I219-V |
wlp4s0 | WirelessLan | 0x04 | 0x00 | - | Intel 8260 |
予想結果がlspciコマンドで確認できるPCIバスの番号と一致しました。 ちなみにバックパネルの有線LANポートのうち無線LAN寄りにあるものがenp3s0のようですが、これはLANケーブルを挿してリンクアップしてみれば当然わかります。
[root@localhost ~]# lspci 00:00.0 Host bridge: Intel Corporation Sky Lake Host Bridge/DRAM Registers (rev 07) 00:02.0 VGA compatible controller: Intel Corporation Sky Lake Integrated Graphics (rev 06) 00:14.0 USB controller: Intel Corporation Sunrise Point-H USB 3.0 xHCI Controller (rev 31) 00:14.2 Signal processing controller: Intel Corporation Sunrise Point-H Thermal subsystem (rev 31) 00:16.0 Communication controller: Intel Corporation Sunrise Point-H CSME HECI #1 (rev 31) 00:17.0 RAID bus controller: Intel Corporation SATA Controller [RAID mode] (rev 31) 00:1b.0 PCI bridge: Intel Corporation Sunrise Point-H PCI Root Port #17 (rev f1) 00:1c.0 PCI bridge: Intel Corporation Sunrise Point-H PCI Express Root Port #1 (rev f1) 00:1c.4 PCI bridge: Intel Corporation Sunrise Point-H PCI Express Root Port #5 (rev f1) 00:1c.5 PCI bridge: Intel Corporation Sunrise Point-H PCI Express Root Port #6 (rev f1) 00:1d.0 PCI bridge: Intel Corporation Sunrise Point-H PCI Express Root Port #9 (rev f1) 00:1d.4 PCI bridge: Intel Corporation Sunrise Point-H PCI Express Root Port #13 (rev f1) 00:1f.0 ISA bridge: Intel Corporation Sunrise Point-H LPC Controller (rev 31) 00:1f.2 Memory controller: Intel Corporation Sunrise Point-H PMC (rev 31) 00:1f.3 Audio device: Intel Corporation Sunrise Point-H HD Audio (rev 31) 00:1f.4 SMBus: Intel Corporation Sunrise Point-H SMBus (rev 31) 00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (2) I219-V (rev 31) 03:00.0 Ethernet controller: Intel Corporation I211 Gigabit Network Connection (rev 03) 04:00.0 Network controller: Intel Corporation Wireless 8260 (rev 3a)
ブリッジの作成
名前がハッキリしたところでenp0s31f6の方を使って 仮想マシンが家庭内LANに直接繋がるためのブリッジを作成し、 ホストマシンにアクセスするためのIPアドレスも設定します。
[root@localhost ~]# nmcli connection add type bridge ifname br0 stp no 接続 'bridge-br0' (19b14072-cf3f-491b-8f86-bca39d822977) が正常に追加されました。 [root@localhost ~]# nmcli connection modify bridge-br0 ipv4.method manual ipv4.addresses 192.168.3.91/24 [root@localhost ~]# nmcli connection modify bridge-br0 ipv4.gateway 192.168.3.1 ipv4.dns 192.168.3.1 [root@localhost ~]# nmcli connection add type bridge-slave ifname enp0s31f6 master br0 接続 'bridge-slave-enp0s31f6' (6e0bb72c-7c61-4e16-8ef5-61d08908c124) が正常に追加されました。 [root@localhost ~]# nmcli connection delete enp0s31f6 Connection 'enp0s31f6' (714634a0-f8b2-40d1-a169-1cddc501e836) successfully deleted. [root@localhost ~]# reboot
再起動したらbr0にDHCPでIPアドレスが設定されてしまったので調べたところ、 /etc/sysconfig/network-scripts/ifcfg-bridge-br0の他にifcfg-br0が作成されていました。 なのでこの設定ファイルを削除したら解決しました。
[root@localhost ~]# nmcli connection delete br0 Connection 'br0' (d4043198-f545-447b-bb95-7efa8fcda68a) successfully deleted.
connectionをdeleteして消えるのはあくまで設定ファイルです。 再起動の前にenp0s31f6もdeleteしていますけど、それはdeviceとしてのenp3s0の管理を ifcfg-enp0s31f6からifcfg-bridge-slave-enp0s31f6へ移す目的で行っています。
[root@localhost ~]# nmcli device DEVICE TYPE STATE CONNECTION br0 bridge connected bridge-br0 virbr0 bridge connected virbr0 enp0s31f6 ethernet connected bridge-slave-enp0s31f6 virbr0-nic tap connected virbr0-nic enp3s0 ethernet unavailable -- lo loopback unmanaged -- wlp4s0 wifi unmanaged -- [root@localhost ~]# nmcli connection NAME UUID TYPE DEVICE bridge-br0 19b14072-cf3f-491b-8f86-bca39d822977 bridge br0 enp3s0 20ba6fa2-4a25-4747-b3e8-fb37459caa7e 802-3-ethernet -- bridge-slave-enp0s31f6 6e0bb72c-7c61-4e16-8ef5-61d08908c124 802-3-ethernet enp0s31f6 virbr0-nic 9f76e889-2b08-4c22-b645-7a4545e25207 generic virbr0-nic virbr0 8756b226-eb23-4ca9-a31b-3741a4910e0e bridge virbr0 [root@localhost ~]# brctl show bridge name bridge id STP enabled interfaces br0 8000.408d5c52d894 no enp0s31f6 virbr0 8000.525400a1a3d6 yes virbr0-nic
nmcliはコマンドラインをTABキーで補完できるので設定ファイルを直書きするより楽でした。
0 件のコメント: