NetworkManager 備忘録

Server
Photo by hyt.

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 コマンドで DNSサーバを変更できない時の対応方法(CentOS7)
NetworkManager の nmcli コマンドで、DHCPにより設定されたDNSサーバを削除できないため、参照先のDNSサーバを変更できない場合があります。これはコマンドを1行打てば回避できます。ついでに NetworkManage

まず,現在繋がっているネットワークインターフェース一覧の確認.

$ 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 は結局書き換わってしまう.

とりあえず今の所はこんなところ.また,何かあれば追記します.

Server
スポンサーリンク
Following hyt!
hyt adversaria
タイトルとURLをコピーしました