systemd-networkdが管理するenp1s0でDHCPによるnetwork設定を有効にする。
10-lan.networkの内容を選ぶ。
適切な設定はどれか。
systemd-networkdの.network fileでは[Match] Name=で対象interfaceを選び、[Network] DHCP=yesでDHCP clientを有効にする。
詳細解説
[Network]
Name=enp1s0
[Match]
DHCP=yesNameとDHCPを置くsectionが逆である。
誤り。Name=はlinkを選ぶ[Match]へ、DHCP=はnetwork動作を定める[Network]へ置く必要がある。
[Match]
Device=enp1s0
[DHCP]
Enabled=yesinterface名のmatchとDHCP有効化に使う標準key・sectionではない。
誤り。標準的な.network構文ではName=でmatchし、[Network]のDHCP=で取得方式を指定する。
[Match]
Name=enp1s0
[Network]
DHCP=yesNameでinterfaceをmatchし、Network sectionでDHCPを有効にする。
正しい。[Match] Name=enp1s0で対象を選び、[Network] DHCP=yesでDHCP設定を有効にする。
[Link]
Name=enp1s0
[Network]
Address=dhcpAddressへdhcpという値を置く構文ではない。
誤り。[Link]でName=をmatchする構成でも、Address=dhcpでDHCP clientを有効化する構成でもない。
実際に確かめる
一時的な検証環境で実行できる例です。
printf '%s
' '[Match]' 'Name=enp1s0' '[Network]' 'DHCP=yes'期待される結果
[Match]
Name=enp1s0
[Network]
DHCP=yes理解のポイント
- [Match]で対象選択
- Name=はinterface名
- [Network] DHCP=yes
確認時の注意
- 確認環境: 設定blockの表示のみ
- systemd-networkdや実interfaceは変更しない。
基礎のおさらい
.network file
matchingしたlinkへaddress、route、DHCP等を適用するsystemd-networkdの設定unitである。
最初のmatch
複数の.network fileが一致する場合は辞書順で最初に一致したfileが適用されるため、名前順も設計対象になる。