Slide 1

Slide 1 text

NetworkManagerとnetplanについて 変更作業視点でちょっとだけ考える 大野 哲生(@g_plains) On 2020/05/05

Slide 2

Slide 2 text

アジェンダ?  自己紹介  ことの発端  Net-toolsでの設定  NetworkManager(nmcli/nmtui)での設定  Netplanでの設定  ここまでのまとめ  課題

Slide 3

Slide 3 text

自己紹介  ハンドル : こてつ(@g_plains)  出身 : 愛知で銀杏のおいしいところ  おしごと :オンプレ基盤(SV/NW)の管理  最近の趣向 :近所をゆるーくお散歩・自転車 善光寺参りからのお饅頭が美味しい

Slide 4

Slide 4 text

ことの発端  派遣先でのRHEL7系での設定作業 「コテツ君これルート増やしといて」  Net-toolsの感覚で route-eth0なんかにごにょる  思い出したようにnmtui実行

Slide 5

Slide 5 text

Net-toolsでの設定例  一般的な設定ファイル(eth0の場合) /etc/sysconfig/network-scripts/ 配下の ifcfg-eth0 routes-eth0  一般的な起動停止 確認: ifconfig とか route とか arp とか 起動:ifup eth0 停止:ifdown eth0

Slide 6

Slide 6 text

iproute2での設定-1  一般的な設定ファイル (eth0の場合) /etc/sysconfig/network-scripts/ 配下の ifcfg-eth0 routes-eth0  一般的なコマンド 確認:ip a とか ip route とか ip neigh とか 起動:ifup eth0 停止:ifdown eth0

Slide 7

Slide 7 text

iproute2での設定-2 (NetworkManager有効時のはまり)  稀によくある失敗例 ◦ テキストエディタでifcfg-xxx を書き換える ◦ 既存のifcfg-xxx と比較する ◦ 意気揚々とifdown xxx ; ifup xxx する ◦ ip a して結果にニヤニヤする ◦ 再起動する

Slide 8

Slide 8 text

iproute2での設定-2 (NetworkManager有効時のはまり)  稀によくある失敗例 ◦ テキストエディタでroute-xxx を書き換える ◦ 既存のroute-xxx と比較する ◦ 結果にニヤニヤする ◦ nmtuiを実行する ◦ cat route-xxx する

Slide 9

Slide 9 text

iproute2での設定-3 (NetworkManager有効時お作法)  基本的な流れ ◦ 形式上、既存コンフィグを /tmpにコピー cp –p ifcfg-(iface) /tmp/ifcfg-(iface) cp –p route-(iface) /tmp/route-(iface) ◦ nmtuiかnmcliで設定を作り込む ◦ 変更部位をdiffで比較する diff /tmp/ifcfg-(iface) ifcfg-(iface) diff /tmp/route-(iface) route-(iface) ◦ ifup-(iface) やifup-routesで反映 ※ルーティング削除は ip route delete

Slide 10

Slide 10 text

iproute2での設定-3 (NetworkManager有効時お作法)  nmtuiの場合 #nmtui  ipアドレスもルーティングも自由に書けます  自働化するにはちょっと面倒臭い  反映には別途コマンド実行が必要 IP変更: ifdown-eth0; ifup-eth0 RT追加:ifup-routes (削除は ip route delete)

Slide 11

Slide 11 text

iproute2での設定-3 (NetworkManager有効時お作法)  nmcliの場合(eth0の場合) 確認: nmcli con show eth0 | grep ipv4 変更: nmcli con mod eth0 ipv4.addresses a.b.c.d/mask ipv4.gateway a.b.c.d ipv4.dns “a.b.c.d e.f.g.h” IP追加: nmcli con mod eth0 +ipv4.addresses e.f.g.h/i IP解除: nmcli con mod eth0 -ipv4.addresses e.f.g.h/i RT追加: nmcli c m eth0 +ipv4.routes “j.k.l.m/n o.p.q.r”  自働化はしやすいが、”ふっかつのじゅもん”ぽい  反映には別途コマンド実行が必要 IP変更: ifdown-eth0 ; ifup-eth0 RT追加:ifup-routes (削除は ip route delete)

Slide 12

Slide 12 text

Netplan での設定方法 (Ubuntu 18.04以降?)  Ubuntu 18.04 (のserver)からはnetplanが有効 /etc/netplan/50-cloud-init.yaml renderer: networkd  一応netplanでNetworkManagerを使うことも可 renderer: NetworkManager  YAMLなので少し慣れが必要… network: version: 2 ethernets: eth0: dhcp4: no addresses: [192.168.10.2/24] gateway4: 192.168.10.1 nameservers: addresses: [192.168.10.1]

Slide 13

Slide 13 text

Netplan での設定方法 (Ubuntu 18.04以降?)  考え得る流れ ◦ 便宜上、既存コンフィグを リネームして複製 cd /etc/netplan/ cp –p 50-cloud-init.yaml 99-oreore-init.yaml ◦ vi 99-oreore-init.yaml で設定を作り込む ◦ 変更部位をdiffで比較する diff 50-cloud-init.yaml 99-oreore-init.yaml ◦ 設定反映 即時: netplan apply 試行: netplan try ※try時は、デフォルト120秒で切り戻しする

Slide 14

Slide 14 text

ここまでのまとめ  NetworkManagerの場合 ◦ nmcliを使えば概ねshellscriptで完結できる ◦ IP変更の時は切り戻しコマンドを予め用意 ◦ nmcli con show の結果を比較しよう  netplanの場合 ◦ 2020/4時点でnmcli的なコマンドはなさそう ◦ 既存ファイルと変更先をdiffで比較しよう ◦ netplan try でお試しできるよ  でも本当は上位にLoadBalancer置いて、そっちで IPアドレスの追削やらせたいよね(ぼそ)

Slide 15

Slide 15 text

今後まとめたい課題  FreeBSDのネットワーク設定どうしよう?  ip netns とか、dummyインタフェースは どうやって使おう?  Firewalldまじでわからんのですが… (どれもお題には入っていないけど)