13. 13
RHEL7/CentOS7 NetworkManager徹底入門
新規接続の追加
次は、デバイス「ens6」に紐付けられた接続「ens6-con」を作成して、IPアドレ
スの設定を行う例です。
– デバイス名と接続名が独立していることに注意してください。
– 「nmcli c mod」では、次のように複数の項目をまとめて設定可能です。
• nmcli c mod <接続名> <設定項目> <設定内容> <設定項目> <設定内容> ...
– 設定可能な項目は、現在の設定内容をすべて出力すると分かります。
# nmcli c add type eth ifname ens6 con-name ens6-con
# nmcli c mod ens6-con ipv4.method manual ipv4.addresses "192.168.1.11/24" ipv4.gateway "192.168.1.1"
# nmcli c down ens6-con; nmcli c up ens6-con
「デバイス名」 「接続名」
「設定変更を反映」
# nmcli c show ens6-con
connection.id: ens6-con
connection.uuid: d9388c4e-31af-4ba9-bfda-c58e74316b14
connection.interface-name: ens6
...(中略)...
ipv4.method: manual
ipv4.dns:
ipv4.dns-search:
ipv4.addresses: { ip = 192.168.100.11/24, gw = 0.0.0.0 }
ipv4.routes:
...(以下省略)...
「IP/Mask」 「Gateway」
14. 14
RHEL7/CentOS7 NetworkManager徹底入門
既存接続の変更
既存の接続を設定変更する際は、先に説明した「nmcli c mod」を使用します。
– 次は、IPアドレスの設定をDHCPに変更する例です。
– 「nmcli c edit」は対話的に変更するオプションですが、次の「describe」コマンドで設
定項目の説明が表示できます。
# nmcli c mod ens6-con ipv4.method auto ipv4.addresses "" ipv4.gateway ""
# nmcli c down ens6-con; nmcli c up ens6-con
# nmcli c edit ens6-con
...
nmcli> describe ipv4.addresses
=== [addresses] ===
[NM プロパティの詳細]
Array of IPv4 address structures. Each IPv4 address structure is composed of 3 32-bit values; the
first being the IPv4 address (network byte order), the second the prefix (1 - 32), and last the
IPv4 gateway (network byte order). The gateway may be left as 0 if no gateway exists for that
subnet. For the 'auto' method, given IP addresses are appended to those returned by automatic
configuration. Addresses cannot be used with the 'shared', 'link-local', or 'disabled' methods as
addressing is either automatic or disabled with these methods.
[nmcli 固有の詳細]
次のような形式で IPv4 アドレスの一覧を入力してください。
ip[/prefix] [gateway], ip[/prefix] [gateway],...
プレフィックスがないものはプレフィックス 32 とみなします。
例: 192.168.1.5/24 192.168.1.1, 10.0.0.11/24
nmcli> quit
15. 15
RHEL7/CentOS7 NetworkManager徹底入門
接続の削除
既存の接続を削除する際は、「nmcli c delete」を使用します。
– 次は、先に作成した「ens6-con」を削除する例です。
nmcliの使い方は、次のオンラインドキュメントも参考になります。
– # man nmcli
• nmcliコマンドの全般的な説明
– # man nmcli-examples
• Bonding, Teaming, Bridgeなどの構成例が記載されています
# nmcli c
名前 UUID タイプ デバイス
eth2 bc302e8f-f5f3-478d-bf87-e77d3288dac7 802-3-ethernet eth2
ens6-con d9388c4e-31af-4ba9-bfda-c58e74316b14 802-3-ethernet ens6
# nmcli c delete ens6-con
# nmcli c
名前 UUID タイプ デバイス
eth2 bc302e8f-f5f3-478d-bf87-e77d3288dac7 802-3-ethernet eth2
18. 18
RHEL7/CentOS7 NetworkManager徹底入門
仮想ブリッジの作成手順 (1)
次は、仮想ブリッジ「br0」を作成して、物理NIC「ens6」を接続する手順です。
– 確認用にbrctlコマンドを提供する「bridge-utils」を導入しておきます。
– 仮想ブリッジ「br0」とその接続「bridge-br0」を作成します。
• 「con-name」オプションを省略すると、接続名は「bridge-<デバイス名>」になります。
– 仮想ブリッジにIPアドレスなどの設定を追加します。
– 仮想ブリッジに物理NIC「ens6」を接続するための接続「bridge-slave-ens6」を追加し
ます。
• 「con-name」オプションを省略すると、接続名は「bridge-slave-<デバイス名>」になります。
# nmcli c add type bridge ifname br0 con-name bridge-br0
# yum -y install bridge-utils
# nmcli c mod bridge-br0 bridge.stp no
# nmcli c mod bridge-br0 ipv4.method manual ipv4.addresses "192.168.1.11/24" ipv4.gateway "192.168.1.1"
# nmcli c mod bridge-br0 ipv4.dns 8.8.8.8 ipv4.dns-search redhat.com
# nmcli c add type bridge-slave ifname ens6 con-name bridge-slave-ens6 master bridge-br0
19. 19
RHEL7/CentOS7 NetworkManager徹底入門
仮想ブリッジの作成手順 (2)
– それぞれの「接続」をdown/upして、設定変更を反映します。
– 設定結果を確認します。
# brctl show
bridge name bridge id STP enabled interfaces
br0 8000.525400eb919c no ens6
# ip addr show br0
6: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
link/ether 52:54:00:eb:91:9c brd ff:ff:ff:ff:ff:ff
inet 192.168.1.11/24 brd 192.168.1.255 scope global br0
valid_lft forever preferred_lft forever
inet6 fe80::5054:ff:feeb:919c/64 scope link
valid_lft forever preferred_lft forever
# nmcli c down bridge-slave-ens6
# nmcli c down bridge-br0
# nmcli c up bridge-br0
# nmcli c up bridge-slave-ens6
eth2
ens7
br0 192.168.1.11
ens6
20. 20
RHEL7/CentOS7 NetworkManager徹底入門
VLANデバイスの作成手順 (1)
次は、物理NIC「ens7」にVLAN IDが10と11のVLANデバイスを接続する例です。
– VLANデバイス「vlan10」と、それを物理デバイス「ens7」にVLAN ID「10」で接続す
るための接続「vlan-vlan10」を作成します。
• 「con-name」オプションを省略すると、接続名は「bridge-<デバイス名>」になります。
– VLANデバイス「vlan10」にIPアドレスの設定を追加します。
– 同様にVLANデバイス「vlan11」を作成して、IPアドレスを設定します。
– それぞれの「接続」をdown/upして、設定変更を反映します。
# nmcli c add type vlan ifname vlan10 con-name vlan-vlan10 dev ens7 id 10
# nmcli c mod vlan-vlan10 ipv4.method manual ipv4.addresses "192.168.10.101/24"
eth2
ens6
vlan10 192.168.10.101
192.168.11.101
# nmcli c add type vlan ifname vlan11 con-name vlan-vlan11 dev ens7 id 11
# nmcli c mod vlan-vlan11 ipv4.method manual ipv4.addresses "192.168.11.101/24"
vlan11
ens7
# nmcli c down vlan-vlan10; nmcli c up vlan-vlan10
# nmcli c down vlan-vlan11; nmcli c up vlan-vlan11
21. 21
RHEL7/CentOS7 NetworkManager徹底入門
VLANデバイスの作成手順 (2)
– 設定結果を確認します。
# cat /proc/net/vlan/config
VLAN Dev name | VLAN ID
Name-Type: VLAN_NAME_TYPE_RAW_PLUS_VID_NO_PAD
vlan10 | 10 | ens7
vlan11 | 11 | ens7
# ip addr show vlan10
17: vlan10@ens7: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
link/ether 52:54:00:aa:a4:66 brd ff:ff:ff:ff:ff:ff
inet 192.168.10.101/24 brd 192.168.10.255 scope global vlan10
valid_lft forever preferred_lft forever
inet6 fe80::5054:ff:feaa:a466/64 scope link
valid_lft forever preferred_lft forever
# ip addr show vlan11
18: vlan11@ens7: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
link/ether 52:54:00:aa:a4:66 brd ff:ff:ff:ff:ff:ff
inet 192.168.11.101/24 brd 192.168.11.255 scope global vlan11
valid_lft forever preferred_lft forever
inet6 fe80::5054:ff:feaa:a466/64 scope link
valid_lft forever preferred_lft forever
23. 23
RHEL7/CentOS7 NetworkManager徹底入門
Teamデバイスとは?
RHEL7では、物理NICの冗長化について、Bondingドライバーに加えて、Teamド
ライバーが使用できます。
– BondingドライバーとTeamドライバーの比較は次の資料が参考になります。
• If You Like Bonding, You Will Love Teaming
http://rhelblog.redhat.com/2014/06/23/team-driver/
Teamドライバーの機能は、基本的にはBondingドライバーと同じですが、実装上
で次のような違いがあります。
– Bondingドライバーはすべての機能がカーネルモジュールとして実装されており、機能拡
張が困難。また、設定変更にはモジュールの再読み込みが必要。
– Teamドライバーは、カーネルモジュールとユーザーランドで機能を分離したデザインに
なっており、機能拡張や管理ツールの実装が容易。
ここでは、nmcliコマンドを用いて、TeamドライバーによるNIC冗長化を設定する
手順を紹介します。
24. 24
RHEL7/CentOS7 NetworkManager徹底入門
Teamデバイスの作成 (1)
次は、物理デバイス「ens6」「ens7」をまとめたTeamデバイス「team0」を作成
する手順です。
– Teamデバイス「team0」とその接続「team-team0」を作成した上で、IPアドレスを設
定しておきます。
• 「con-name」オプションを省略すると、接続名は「team-<デバイス名>」になります。
– 物理NIC「ens6」と「ens7」をTeamデバイスのスレーブとして追加する接続「team-
slave-ens6」と「team-slave-ens7」を作成します。
• 「con-name」オプションを省略すると、接続名は「team-slave-<デバイス名>」になります。
– Teamingの構成は、デフォルトではラウンドロビン方式になります。デフォルトの構成で
かまわない場合は、それぞれの接続をdown/upしてTeamデバイスを有効化します。
# nmcli c add type team-slave ifname ens6 con-name team-slave-ens6 master team-team0
# nmcli c add type team-slave ifname ens7 con-name team-slave-ens7 master team-team0
# nmcli c add type team ifname team0 con-name team-team0
# nmcli c mod team-team0 ipv4.method manual ipv4.addresses "192.168.1.101/24"
# nmcli c down team-team0
# nmcli c down team-slave-ens6
# nmcli c down team-slave-ens7
# nmcli c up team-slave-ens6
# nmcli c up team-slave-ens7
# nmcli c up team-team0
25. 25
RHEL7/CentOS7 NetworkManager徹底入門
Teamデバイスの作成 (2)
Teamデバイスの稼動状態を確認します。
– 接続の状態は次のようになります。
– Teamデバイスの稼動状態は、「teamdctl」コマンドで確認します。
# teamdctl team0 state
setup:
runner: roundrobin
ports:
ens7
link watches:
link summary: up
instance[link_watch_0]:
name: ethtool
link: up
ens6
link watches:
link summary: up
instance[link_watch_0]:
name: ethtool
link: up
# nmcli c
名前 UUID タイプ デバイス
team-slave-ens7 0114a0a7-e3f0-43aa-9ba8-b716ca9d55f9 802-3-ethernet ens7
eth2 bc302e8f-f5f3-478d-bf87-e77d3288dac7 802-3-ethernet eth2
team-slave-ens6 00d62380-6f5a-4d53-887d-3509d65ec400 802-3-ethernet ens6
Team-team0 869751cf-d123-4fa1-88a6-ce7d86474e5a team team0
27. 27
RHEL7/CentOS7 NetworkManager徹底入門
Teamデバイスの構成変更 (2)
次は、TeamデバイスをActive-Bakcup(自動切り戻し無し)に設定する例です。
# cat myconfig.conf
{
"device": "team0",
"runner": {"name": "activebackup"},
"link_watch": {"name": "ethtool"},
"ports": {
"ens6": {
"prio": -10,
"sticky": true
},
"ens7": {
"prio": 100
}
}
}
# nmcli c mod team-team0 team.config myconfig.conf
# nmcli c down team-team0
# nmcli c down team-slave-ens6
# nmcli c down team-slave-ens7
# nmcli c up team-slave-ens6
# nmcli c up team-slave-ens7
# nmcli c up team-team0
# teamdctl team01 state
setup:
runner: activebackup
ports:
ens6
link watches:
link summary: up
instance[link_watch_0]:
name: ethtool
link: up
ens7
link watches:
link summary: up
instance[link_watch_0]:
name: ethtool
link: up
runner:
active port: ens7
自動切り戻し無し
eth2
ens6
ens7
team0
192.168.1.101
Active
Backup