NetworkManagerはデフォルトのルーティングポリシーを変更します。

NetworkManagerはデフォルトのルーティングポリシーを変更します。

Raspberry PiのDHCPサーバーとして機能するNIC(eth0)を搭載したコンピューターがあります。また、イーサネットデバイスeth1として表示されるUSB 3Gモデムもあります。 eth0の固定IPは192.168.100.1です/etc/network/interfaces。 Piをサーバーに接続すると、/var/log/syslog次のように表示されます。

NetworkManager[2366]: <info> Policy set 'Ifupdown (eth0)' (eth0) as default for IPv4 routing and DNS.

ip route showそれ以来

default via 192.168.1.100 dev eth0  proto static

その後、手動で行う必要があります。

ip route delete default
ip route add default via 192.168.1.1

3Gモデムを介して再びインターネットに接続してみてください。私はサーバー上でDebian 7 wheezyに基づいてCrunchBang Linuxを使用し、Piでは最新のRaspbianを使用しています。

NetworkManagerへのデフォルトパスをどのように選択しますか?

編集:これは私のものです/etc/network/interfaces

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

allow-hotplug eth0
auto eth0
iface eth0 inet static
    address 192.168.100.1
    netmask 255.255.255.0

allow-hotplug eth1
auto eth1
iface eth1 inet dhcp

/etc/NetworkManager/NetworkManager.confに変更されました。参考にしてください。

[ifupdown]
managed=true

nm-appletを使ってeth1(3Gモデム)を切断したいからです。これは/etc/NetworkManager/NetworkManager.conf

[main]
plugins=ifupdown,keyfile

[ifupdown]
managed=true

答え1

  • GUIを使用している場合は、[この接続のリソースのみ]チェックボックスをオンにしてみてください。
  • 設定ファイルを使用している場合(あなたのように:)、[ipv4]セクションに追加してくださいnever-default=true
  • コマンドラインツールを使用している場合は、次を実行します。sudo nmcli con mod "connection name" ipv4.never-default yes

これにより、トンネルからデフォルトルートを削除し、独自のルートを追加できます。

答え2

私はパーティーに4年遅れていましたが、この問題を発見して解決するのに12時間を費やしました。状況はここでも似ています。 Linux 4 TegraカーネルとUbuntu 18.04オペレーティングシステムを実行し、ローカルネットワーク用のイーサネットポート(eth0)とインターネット用のUSBセルラーアダプタ(eth1)を備えたARMベースのJetson Nano。

症状は似ています。イーサネットケーブルを接続するとすぐにインターフェイスが起動し、3分後に次のメッセージが表示されます。

NetworkManager[3773]:[1562908622.2587] ポリシー: IPv4 ルーティングおよび DNS の「有線接続 1」(eth0) をデフォルト値に設定

システムログに記録され、インターネット接続が失われました。

NetworkManagerは難解な方法で動作し、プログラミングが困難です。ユーザーが前に座って必要に応じてアイテムをリセットできるようにすることをお勧めします。そんな余裕がなくてちゃんと働かせるべきです。

ipv4.route-metricついに効果があったのは、eth1により低い(より高い優先順位)設定をしたことです。出力を確認して、route -n現在の指標が何であるかを確認してください。いくつかのパスで追加の20000を無視します。これは、NetworkManagerがインターネットに接続していないパスの優先順位を解除しようとしているのに奇妙です。

eth0のインデックスが100であるとします。 eth1インターフェイスに優先順位を付けます。

sudo nmcli con mod "Wired connection 2" ipv4.route-metric 99

そして再起動してください。

これで、トラブルシューティングにかかる​​時間を10時間節約できます。ルーティング指標はDNS優先順位とは何の関係もないことに注意してください。したがって、接続の問題がまだ発生している場合は、DNS解決の問題ではないことを確認してください(たとえば、DHCPサーバーが仮想検証サービスを提供しているなど)。その場合は、ipv4.dns-priorityeth0 接続の優先順位を上げて下げるか、ipv4.dns-searcheth1 接続を "~" に設定して、お好みのオプションになるようにしてください。

答え3

他の回答を使用して問題を解決できない場合は、干渉している他のネットワーク管理者がインストールされていることを確認することもできます。 ConnManとNetworkManagerをインストールしましたが、ConnManをアンインストールして再起動した後、問題が解決しました。

これは私が以前に詳細に議論したものです。

Debian 12では、NetworkManagerで「この接続でのみリソースを使用する」を選択しましたが、SSH / SFTP接続のためにUSB経由で携帯電話を接続した後、ルーティングの変更によりインターネット接続が機能しなくなり、ネットワークに再接続する必要がありました。その後、USBとイーサネットを同時に使用します。携帯電話のUSBケーブルを抜いた後も、ネットワークに再接続する必要がありました。

答え4

Network Manager は常に設定をオーバーライドするため、以下を編集する必要があります。

vi /etc/ネットワーク/インターフェース

eth0を見つけて設定します。

gateway 192.168.1.1

ネットワークサービスを再起動します。

/etc/init.d/networking restart

関連情報