ネットプランを使用してネットワークを設定し、18.04マシンでレンダラーとしてネットワーク化しようとしています。テレビに接続され、マルチメディアに使用されるため、デスクトップディストリビューションを実行しますが、説明が簡単で、ネットワークが正常に稼働するとdnsおよびdhcpサーバーが実行されるため、サーバーと呼びます。
ネットプランを介してネットワークを構成すると、最初にサーバーからクライアントにpingを実行しない限り、Windows 10クライアント(他のOSでテストされていない)からサーバーにpingを実行できないことに気付きました。クライアントでは、次のようになります:
Reply from [CLIENT'S OWN IP]: Destination host unreachable.
ただし、最初にサーバーからpingを実行した後、クライアントにはARPエントリがあり、すべて正常です。
私は非常に長い間ソリューションを検索し、次のことを確認しました:
- サブネットは正しいです–これを除外するために、現時点ではすべてがルーターからのDHCPです
- MACまたはIPアドレスの競合はありません
- インターフェースの電源管理がオフになっています
- 唯一の変更点がnetwork-managerとnetworkdであるため、ドライバーの問題ではないようです
- ファイアウォールはOKです
- ルーターはOKです
現時点では、マシンはWiFi経由で接続されており、構成をnetwork-managerから変更するために、/ etc / netplan / 01-network-manager-all.yamlの名前を変更して使用しないようにし、/ etc / netplan/configを作成しました。 yamlは次のとおりです:
network:
version: 2
renderer: networkd
wifis:
wlp3s0:
dhcp4: yes
dhcp6: no
access-points:
"MyAP":
password: "MyPassword"
/ etc / network/interfacesは単なるiface lo inet loopback
手動で設定されたインターフェースが管理されていないことを報告するだけなので、network-managerを無効にする必要はなかったと読みました。そのため、上記の変更を行っただけです。
Wiresharkを使用して、netplanで構成した場合、サーバーIPのARPエントリがないクライアントからpingを実行すると、サーバーがARPパケットを受信しないことを確認しました。 network-managerがインターフェースを処理しているときにそれらを受け取ります。最初にルーターに通知し、次にクライアントに通知します。
助けてくれてありがとう!
編集1 :追加情報:
/ etc / NetworkManager / system-connections / [NETWORKNAME]は次のとおりです:
[connection]
id=XXXX
uuid=992e3be7-dea0-49b7-a474-60832236b8bf
type=wifi
permissions=
timestamp=1530425561
[wifi]
mac-address=C4:E9:84:E1:61:FF
mac-address-blacklist=
mode=infrastructure
seen-bssids=50:C7:BF:38:01:91;
ssid=XXXX
[wifi-security]
key-mgmt=wpa-psk
psk=XXXX
[ipv4]
dns=8.8.8.8;8.8.4.4;
dns-search=
method=auto
[ipv6]
addr-gen-mode=stable-privacy
dns-search=
method=auto
/run/systemd/network/10-netplan-wlp3s0.networkにあるnetplanで生成されたネットワーク構成は次のとおりです。
[Match]
Name=wlp3s0
[Network]
DHCP=ipv4
[DHCP]
UseMTU=true
RouteMetric=600
編集2 :Wiresharkを詳しく見ると、systemd-networkd構成を使用する場合、サーバーがソースである場合を除いて、IGMPアクティビティ、MDNSアクティビティはなく、ARPアクティビティはゲートウェイとサーバーの間のみであることがわかります。 サーバーはクライアントにpingを実行しようとします。サーバーがクライアントにpingを実行しようとすると、最初のARPは「クライアントIPがサーバーIPを通知する」であり、直後に「サーバーIPがあり、クライアントIPを通知する」が続き、最後にpingがクライアントに送信されます。これ以降、クライアントはサーバーにpingを実行できます。
関連:ウェブカメラでストップモーションまたはタイムラプスビデオを作成するにはどうすればよいですか?サーバーは常に、内部および外部のあらゆるネットワークサービスにアクセスできます。
承認された回答:
このバグの影響を受けていることに気づき、修正したところ、networkctlがワイヤレスインターフェイスを「構成中」のステータスとして表示していることがわかりました。
次に、NetworkManagerが実行されていることを確認し、sudo systemctl stop NetworkManager
を使用して停止しました。 、続いてsudo systemctl restart systemd-networkd
、最後にWindowsクライアントのARPエントリを削除してから、再度pingを実行すると、すべてが機能しました。 sudo systemctl disable NetworkManager
を実行しました そして再起動して、ソリューションが持続し、しなかったことを確認しました。 …
Ubuntu IRCチャンネルの親切な人が私を導いてくれました:
sudo systemctl mask network-manager.service
sudo systemctl mask NetworkManager-dispatcher.service
sudo systemctl mask NetworkManager-wait-online.service
これで問題が解決し、networkctlに「構成済み」のステータスが表示されるようになりました。 network-managerとsystemd-networkdがワイヤレスインターフェースの設定をめぐって争っていたようです。 /etc/NetworkManager/system-connections/
に設定がない場合、network-managerがそのままにしておくという私の理解は正しいと思います。 しかし、この理論はテストしていません。解決されて安心しました。