CentOS6 からデフォルトになった NetworkManager の備忘録.ここでの備忘録は,他のページを探してもなかなか見つからなかった部分のみ.
まず,前提として,基本的な部分は,CUI の nmcli ではなく,半分GUIの nmtui で設定しています.大量に設定しない限り,全部 nmcli で設定するのは正直辛い.
ブリッジ接続の設定
nmtui → 「接続の編集」→ 「追加」 → 「ブリッジ」で設定.ここで設定すると,
- /etc/sysconfig/network-scripts/ifcfg-br0(プロファイル名を br0 とした場合)
- /etc/sysconfig/network-scripts/ifcft-eth0(br0 を eth0 にブリッジした場合)
が以下のようになる.
$ cat /etc/sysconfig/network-scripts/ifcfg-br0 DEVICE=br0 STP=no TYPE=Bridge BOOTPROTO=none DEFROUTE=no IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=no IPV6_FAILURE_FATAL=no NAME="br0" UUID=96262bbe-816c-44bc-ba07-1f04efg14498 ONBOOT=yes DOMAIN=terrace.local DNS1=192.168.0.1 IPADDR=192.168.0.2 PREFIX=24 DNS2=::1 IPV6_PEERDNS=no IPV6_PEERROUTES=yes
$ cat ifcfg-eth0 HWADDR=00:00:00:00:00:00 TYPE=Ethernet NAME="eth0" UUID=f817dfff-4fff-fffa-ffcc-ffacccfffed4 DEVICE=eth0 ONBOOT=yes BRIDGE=br0
なお,nmtui で設定するとき,例えば,br0 に eth0 をブリッジするには,デバイスの欄に
eth0 (00:00:00:00:00:00)
のように記す様ですね (00:00:00:00:00:00 は MAC アドレス).
/etc/resolv.conf の制御
NetworkManager は DHCP 等からの情報を元に /etc/resolv.conf を勝手に書き換えますが,自分自身が DNS になるなどの場合,この仕様は困ります.NetworkManager を生かしたままこれを実現する方法は以下の通り.なお,これは,以下のページの説明が参考になった.
まず,現在繋がっているネットワークインターフェース一覧の確認.
$ nmcli connection show 名前 UUID タイプ デバイス br0 962ffffe-ff7c-ffbc-ff07-1ffffff14498 bridge br0 eth0 f817ffff-4991-497a-84cc-04accc3dfed4 802-3-ethernet eth0 eth1 2fffebad-fff2-4ff8-bff4-8ffffff050bc 802-3-ethernet eth1 eth2 27fffff5-bffe-4fff2-ffff-85ffff7ed41 802-3-ethernet eth2 eth3 2fefff73-1d8a-426c-ab67-d66ffff3dbf0 802-3-ethernet eth3
例えば eth3 の設定値の詳細を確認するには,
$ nmcli connection show eth3 〜中略〜 ipv4.method: manual ipv4.dns: 127.0.0.1 ipv4.dns-search: example.local ipv4.addresses: 192.168.0.2/24 ipv4.gateway: 192.168.0.1 ipv4.routes: ipv4.route-metric: -1 ipv4.ignore-auto-routes: no ipv4.ignore-auto-dns: no ipv4.dhcp-client-id: -- ipv4.dhcp-send-hostname: yes ipv4.dhcp-hostname: -- ipv4.never-default: no ipv4.may-fail: yes ipv6.method: auto ipv6.dns: ::1 ipv6.dns-search: ipv6.addresses: ipv6.gateway: -- ipv6.routes: ipv6.route-metric: -1 ipv6.ignore-auto-routes: no ipv6.ignore-auto-dns: no ipv6.never-default: yes ipv6.may-fail: yes 〜中略〜
で,今回の場合,DHCP などで配られる DNS アドレスを無視すれば良いので,
# nmcli connection modify eth3 ipv4.ignore-auto-dns yes # nmcli connection modify eth3 ipv6.ignore-auto-dns yes
とすれば良い.この場合でも,nmtui 等で手動で設定した DNS (上の例だと 127.0.0.1 と ::1)は /etc/resolv.conf に書き込まれるし,search domain として example.local も設定される.これを全ての IP を持つインターフェースに適用すれば良い.
ipv 6 が有効だと,手動で DNS を設定していても,RA? から配られる DNS が /etc/resolv.conf に書き込まれてしまうのに注意が必要.つまり,ipv4 はともかく,ipv6 は上記の様に設定しないと,/etc/resolv.conf は結局書き換わってしまう.
とりあえず今の所はこんなところ.また,何かあれば追記します.