web-dev-qa-db-ja.com

ネットプランがresolv.confを書いたようにする

私はOdroid C2を持っています-ARM用の18.04 Minimalを実行するシングルボードコンピューター。もともとはNetworkManager + systemd-resolvedを使用してネットワーク接続を管理していましたが、私はイーサネットのみを使用し、常に同じネットワークに接続しているため、少しやり過ぎになっているので、両方を無効にしてNetplanに移動しました。これが私の/etc/netplan/02-networkd.yamlです:

network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp4: yes

ご覧のとおり、これは単純なDHCP構成です。これはその設定を使用した結果です:

# netplan ip leases eth0
ADDRESS=10.0.0.4
NETMASK=255.255.255.0
ROUTER=10.0.0.1
SERVER_ADDRESS=10.0.0.1
T1=7200
T2=12600
LIFETIME=14400
DNS=10.0.0.1
NTP=10.0.0.1
DOMAINNAME=vault
CLIENTID=fff75f76ac00020000ab11a7b5e398b7e20ac7

IPアドレスとすべてのインターフェイスパラメータが正しく設定されている。私が持っている唯一の問題はDNSにあります。リースにすべての必須情報が含まれていても、netplanが/etc/resolve.confを更新しないことがわかりました。

NetworkManagerを使用せずに、または解決せずにDHCPから受信したDNS情報を使用してNetplaneを更新/構成/etc/resolve.confする方法はありますか?ここにいくつかの追加情報があります:

# ls -lA /etc/resolv.conf
-rw-r--r-- 1 root root 20 Apr 21 00:13 /etc/resolv.conf

# cat /etc/resolv.conf 
nameserver 10.0.0.1
search vault
2
e-pirate

Netplanがリゾルバー構成の管理をsystemd-resolvedに委任するのは、意図的な設計決定です。 dhcpクエリへの回答に基づいて/etc/resolv.confを直接管理するためのネットプランのサポートはありません。実際、systemd-networkdはこの情報をsystemd-resolvedに渡すことを期待しており、netplanはこの動作に依存しています。

0
slangasek

よく見ます。ユーザーは/etc/resolv.confのシンボリックリンクを削除し、そこに手書きのファイルを配置しました。このシンボリックリンクが参照する3つの異なる場所が実際にあり、最も一般的な場所を紹介します...

terminal...

cd /etc#ディレクトリを変更

Sudo mv resolv.conf resolv.conf.BAK#現在のresolv.confの名前をバックアップファイルに変更します

Sudo ln -s /run/resolvconf/resolv.conf /etc/resolv.conf#標準のシンボリックリンクを再作成

:/etc/resolv.confを手動で編集しないでください!

0
heynnema

静的設定を試しましたか

/etc/NetworkManager/NetworkManager.confを編集し、systemd-resolved.serviceを無効にします(この回答のように https://askubuntu.com/a/907249/719422 )。しかし、それだけでは不可欠ですが、改ざん防止のresolv.confを保証するものではありません。

これをSuperUserとして実行します。

echo nameserver 8.8.8.8 > /etc/resolv.conf
chattr -e /etc/resolv.conf
chattr +i /etc/resolv.conf
0
Jbizboca