nmcli
ネットワーク関連の設定を行うことができるツール
Tips
- サブコマンドは前方一致で認識されればよいので、必ずしもフルスペルで入力する必要はない
address
はa
のみで認識される
- サブコマンドは前方一致で認識されればよいので、必ずしもフルスペルで入力する必要はない
ホスト名の確認と設定
# nmcli general hostname
デバイスの確認
# nmcli device DEVICE TYPE STATE CONNECTION eth0 ethernet 接続済み eth0 lo loopback 管理無し --
デバイス情報の確認(eth0)
# nmcli device show eth0 GENERAL.DEVICE: eth0 GENERAL.TYPE: ethernet GENERAL.HWADDR: 52:54:00:BF:A5:3C GENERAL.MTU: 1500 GENERAL.STATE: 100 (接続済み) GENERAL.CONNECTION: eth0 GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/2 WIRED-PROPERTIES.CARRIER: オン IP4.ADDRESS[1]: 10.0.12.88/8 IP4.GATEWAY: 10.0.0.1 IP4.ROUTE[1]: dst = 10.0.0.0/8, nh = 0.0.0.0, mt = 100 IP4.ROUTE[2]: dst = 0.0.0.0/0, nh = 10.0.0.1, mt = 100 IP4.DNS[1]: 172.16.0.111 IP4.DNS[2]: 172.16.0.112 IP6.ADDRESS[1]: fe80::2c07:4ead:a77f:9e03/64 IP6.ADDRESS[2]: fe80::b91e:63ec:3964:2840/64 IP6.ADDRESS[3]: fe80::d38c:4044:4f14:28e8/64 IP6.GATEWAY: -- IP6.ROUTE[1]: dst = ff00::/8, nh = ::, mt = 256, table=255 IP6.ROUTE[2]: dst = fe80::/64, nh = ::, mt = 256
接続の確認
# nmcli connection NAME UUID TYPE DEVICE eth0 e6a4b89d-8900-4274-934e-45e6d6cd79c0 ethernet eth0
接続の情報の出力
# nmcli connection show eth0
IPv4 のみ出力
# nmcli --fields ipv4 connection show eth0 ipv4.method: manual ipv4.dns: 172.16.0.111,172.16.0.112 ipv4.dns-search: -- ipv4.dns-options: "" ipv4.dns-priority: 0 ipv4.addresses: 10.0.12.88/8 ipv4.gateway: 10.0.0.1 ipv4.routes: -- ipv4.route-metric: -1 ipv4.route-table: 0 (unspec) ipv4.ignore-auto-routes: いいえ ipv4.ignore-auto-dns: いいえ ipv4.dhcp-client-id: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: はい ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- ipv4.never-default: いいえ ipv4.may-fail: はい ipv4.dad-timeout: -1 (default)
接続の追加
# nmcli connection add type ethernet con-name eth1 ifname eth1 接続 'eth1' (14aa345d-4f62-46e0-8dd9-8ec3634fc4aa) が正常に追加されました。
接続を手動変更にする
ipaddress を 10.0.12.89 に設定(ipaddress/prefix gateway の形式で指定)
# nmcli connection modify eth1 ipv4.method manual ipv4.addresses 10.0.12.89/24 ipv4.gateway 10.0.0.1
DNS を 172.16.0.111 と 172.16.0.112 に設定
# nmcli connection modify eth1 ipv4.dns "172.16.0.111 172.16.0.112"
静的ルートの追加
# nmcli connection modify eth1 ipv4.routes "192.168.111.0/24 192.168.108.1" # cat /etc/sysconfig/network-scripts/route-eth1 ADDRESS0=192.168.111.0 NETMASK0=255.255.255.0 GATEWAY0=192.168.108.1
追加と削除
DNS サーバの追加(+)
# nmcli connection modify eth1 +ipv4.dns "192.168.111.2"
DNS サーバの削除(-)
指定するのは 0 からのインデックス
3 番目を削除したいなら 2 を指定
# nmcli connection modify eth1 -ipv4.dns 2
接続の開始と切断
開始
# nmcli connection up eth1 接続が正常にアクティベートされました (D-Bus アクティブパス: /org/freedesktop/NetworkManager/ActiveConnection/3)
切断
通信が切れるので注意
# nmcli connection down eth1
削除
# nmcli connection delete eth1 接続 'eth1' (14aa345d-4f62-46e0-8dd9-8ec3634fc4aa) が正常に削除されました。
ボンディングの設定(vagrant)
インタフェースの追加
# nmcli connection add type ethernet con-name eth5 ifname eth5 # nmcli connection add type ethernet con-name eth6 ifname eth6
ボンディングインタフェース追加
# nmcli connection add type bond con-name bond0 ifname bond0 mode active-backup 接続 'bond0' (adb9f988-c056-4f3e-bc28-44d41205ef40) が正常に追加されました。 # nmcli c NAME UUID TYPE DEVICE bond0 adb9f988-c056-4f3e-bc28-44d41205ef40 bond bond0 eth5 9b637a5f-6328-4aca-bf3c-048131f142ca ethernet -- eth6 b3f08279-d1ab-4776-9320-d6380138693e ethernet --
ボンディングインタフェースの設定
# nmcli connection modify bond0 ipv4.method manual ipv4.addresses 10.211.55.28/24 ipv4.gateway 10.211.55.1 # nmcli connection modify bond0 ipv4.dns "10.211.55.1" ipv4.dns-search ""
スレーブインタフェースの追加
# nmcli connection add type bond-slave autoconnect no ifname eth5 master bond0 接続 'bond-slave-eth5' (31e5c121-260c-40f8-b4e0-0de4ab48b684) が正常に追加されました。 # nmcli connection add type bond-slave autoconnect no ifname eth6 master bond0 接続 'bond-slave-eth6' (462755f8-56bb-4c7e-8b7d-d2771f437967) が正常に追加されました。 # nmcli c NAME UUID TYPE DEVICE bond0 adb9f988-c056-4f3e-bc28-44d41205ef40 bond bond0 bond-slave-eth5 31e5c121-260c-40f8-b4e0-0de4ab48b684 ethernet -- bond-slave-eth6 462755f8-56bb-4c7e-8b7d-d2771f437967 ethernet -- eth5 9b637a5f-6328-4aca-bf3c-048131f142ca ethernet -- eth6 b3f08279-d1ab-4776-9320-d6380138693e ethernet --
- スレーブインタフェースがいきなり起動するのを避けるために autoconnect は no にする
eth5, eth6 の自動起動を無効にして、スレーブインタフェースの自動起動を有効にしてから network サービスを再起動する
# nmcli connection modify eth5 connection.autoconnect no # nmcli connection modify eth6 connection.autoconnect no # nmcli connection modify bond-slave-eth5 connection.autoconnect yes # nmcli connection modify bond-slave-eth6 connection.autoconnect yes # systemctl restart network # nmcli c NAME UUID TYPE DEVICE System eth0 5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03 802-3-ethernet eth0 System eth1 9c92fad9-6ecb-3e6c-eb4d-8a47c6f50c04 802-3-ethernet eth1 bond-slave-eth2 2022f5cd-924b-40cc-90e5-c45716c85b18 802-3-ethernet eth2 bond-slave-eth3 702ebfb4-4f56-4ff3-b3e2-28ae2c4e6fc4 802-3-ethernet eth3 bond0 e68909a1-8790-455f-9882-1bdd4a5dd476 bond bond0 System eth2 3a73717e-65ab-93e8-b518-24f5af32dc0d 802-3-ethernet -- System eth3 c5ca8081-6db2-4602-4b46-d771f4330a6d 802-3-ethernet --
ボンディング状態確認
# ip addr show 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 52:54:00:5f:94:78 brd ff:ff:ff:ff:ff:ff inet 10.0.2.15/24 brd 10.0.2.255 scope global dynamic eth0 valid_lft 86341sec preferred_lft 86341sec inet6 fe80::5054:ff:fe5f:9478/64 scope link valid_lft forever preferred_lft forever 3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 08:00:27:7f:50:af brd ff:ff:ff:ff:ff:ff inet 192.168.33.10/24 brd 192.168.33.255 scope global eth1 valid_lft forever preferred_lft forever inet6 fe80::a00:27ff:fe7f:50af/64 scope link valid_lft forever preferred_lft forever 4: eth2: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bond0 state UP qlen 1000 link/ether 08:00:27:95:e0:4b brd ff:ff:ff:ff:ff:ff 5: eth3: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bond0 state UP qlen 1000 link/ether 08:00:27:95:e0:4b brd ff:ff:ff:ff:ff:ff 7: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP qlen 1000 link/ether 08:00:27:95:e0:4b brd ff:ff:ff:ff:ff:ff inet 192.168.56.103/24 brd 192.168.56.255 scope global dynamic bond0 valid_lft 1143sec preferred_lft 1143sec inet6 fe80::b2b5:1186:1446:df49/64 scope link valid_lft forever preferred_lft forever
# 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: eth2 MII Status: up MII Polling Interval (ms): 100 Up Delay (ms): 0 Down Delay (ms): 0 Slave Interface: eth2 MII Status: up Speed: 1000 Mbps Duplex: full Link Failure Count: 0 Permanent HW addr: 08:00:27:95:e0:4b Slave queue ID: 0 Slave Interface: eth3 MII Status: up Speed: 1000 Mbps Duplex: full Link Failure Count: 0 Permanent HW addr: 08:00:27:70:a2:f4 Slave queue ID: 0
Currently Active Slave: eth2
なのでこの状態では eth2 が使用されている
スレーブの切り替え
# ifenslave -c bond0 eth3
# 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: eth3 MII Status: up MII Polling Interval (ms): 100 Up Delay (ms): 0 Down Delay (ms): 0 Slave Interface: eth2 MII Status: up Speed: 1000 Mbps Duplex: full Link Failure Count: 0 Permanent HW addr: 08:00:27:95:e0:4b Slave queue ID: 0 Slave Interface: eth3 MII Status: up Speed: 1000 Mbps Duplex: full Link Failure Count: 0 Permanent HW addr: 08:00:27:70:a2:f4 Slave queue ID: 0
チーミングの設定(vagrant)
インタフェースの追加
# nmcli connection add type team con-name team0 ifname team0
設定 ※ GW などはスレーブの設定に合わせる
# nmcli connection modify team0 ipv4.method manual ipv4.addresses 192.168.33.30/24
スレーブインタフェースの追加
# nmcli connection add type team-slave autoconnect no ifname eth2 master team0 Connection 'team-slave-eth2' (fb25c355-d137-487f-bc6d-97018fb04778) successfully added. # nmcli connection add type team-slave autoconnect no ifname eth3 master team0 Connection 'team-slave-eth3' (01bf2b5c-0781-46e9-9a93-4ac40a788ab7) successfully added. # nmcli c NAME UUID TYPE DEVICE System eth0 5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03 802-3-ethernet eth0 System eth1 9c92fad9-6ecb-3e6c-eb4d-8a47c6f50c04 802-3-ethernet eth1 System eth2 3a73717e-65ab-93e8-b518-24f5af32dc0d 802-3-ethernet eth2 System eth3 c5ca8081-6db2-4602-4b46-d771f4330a6d 802-3-ethernet eth3 team0 6d7aca73-25ce-405a-ac7f-ff236d4c31d8 team team0 team-slave-eth2 fb25c355-d137-487f-bc6d-97018fb04778 802-3-ethernet -- team-slave-eth3 01bf2b5c-0781-46e9-9a93-4ac40a788ab7 802-3-ethernet --
eth2, eth3 の自動起動は無効、スレーブインタフェースの自動起動有効にして network サービスを再起動
# nmcli connection modify "System eth2" connection.autoconnect no # nmcli connection modify "System eth3" connection.autoconnect no # nmcli connection modify team-slave-eth2 connection.autoconnect yes # nmcli connection modify team-slave-eth3 connection.autoconnect yes # systemctl restart network
確認
# teamdctl team0 state setup: runner: roundrobin ports: eth2 link watches: link summary: up instance[link_watch_0]: name: ethtool link: up down count: 0 eth3 link watches: link summary: up instance[link_watch_0]: name: ethtool link: up down count: 0
- ブリッジの設定
ブリッジ化するインタフェースは eth2(192.168.33.15)
インタフェースの追加
# nmcli connection add type bridge ifname br0 Connection 'bridge-br0' (e31885a0-993d-4d4e-8797-23a01fc14e3f) successfully added. # nmcli connection modify bridge-br0 ipv4.method manual ipv4.addresses 192.168.33.15
ブリッジスレーブインタフェースの追加
# nmcli connection add type bridge-slave ifname eth2 master bridge-br0 Connection 'bridge-slave-eth2' (ad315f7d-66a7-4c53-806b-304ce29e2b39) successfully added.
ブリッジ化したインタフェースから設定を削除
# nmcli connection modify "System eth2" ipv4.addresses "" ipv4.dns "" ipv4.method disable
再起動
# systemctl restart NetworkManager