基本インターフェイスとして使用されるネットワークインターフェイスの制御

基本インターフェイスとして使用されるネットワークインターフェイスの制御

私は、外部の世界に接続された2つのネットワークインターフェース、つまりイーサネット(ADSLルーターなど)とpppを持つシステム(カーネル4.4)を持っています。どちらもNATを通過します。 (しかし、着信接続を受け入れる必要はなく、ipv6はありません。)イーサネット接続は失敗しやすいです。ローカルケーブルだけが問題になる可能性がありますが、ADSLルーター(オフなど)またはISP / ADSL回線も問題かもしれません。 。インターフェイスを具体的にpingしてそれを検出できます。この場合、ppp をシステムのデフォルトに設定して、アプリケーションが新しい接続を開くときにどのインターフェイスを使用するかを知ったり指定したりする必要はありません。 。 ethインターフェイスがいつ再びアクティブになるかを知るためには、常にpingを送信する必要があるため、単にethインターフェイスを終了したくありません。

路線情報は次のとおりです。

route -n

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.10.254  0.0.0.0         UG    100    0        0 eth0
0.0.0.0         10.68.55.242    0.0.0.0         UG    700    0        0 ppp0
10.68.55.242    0.0.0.0         255.255.255.255 UH    700    0        0 ppp0
192.168.10.0    0.0.0.0         255.255.255.0   U     100    0        0 eth0

ip route

default via 192.168.10.254 dev eth0  proto static  metric 100
default via 10.68.55.242 dev ppp0  proto static  metric 700
10.68.55.242 dev ppp0  proto kernel  scope link  src 10.68.55.242  metric 700
192.168.10.0/24 dev eth0  proto kernel  scope link  src 192.168.10.125  metric 100

[I'm unsure about there being two 'default', or indeed why there are...]

ip address

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:c6:7f:e5:50 brd ff:ff:ff:ff:ff:ff
    inet 192.168.10.125/24 brd 192.168.10.255 scope global dynamic eth0
       valid_lft 75591sec preferred_lft 75591sec
3: ppp0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 3
    link/ppp
    inet 10.68.55.242/32 scope global ppp0
       valid_lft forever preferred_lft forever

パスの1つを削除/再追加して、他のインターフェイスよりも高いまたは低いメトリックを提供することで、必要なものを得ることができると思います。しかし、これはスクリプトの構文解析が少し曲がっていることを意味します。

それでは、これを行うための「より柔軟な」方法があるかどうか疑問に思います。私はiptablesとルールに関する多くのページを読んでいますが、少し異なるシナリオでは、特定の(より単純な?)状況に原則を適用しようとしています。結局、もっと滑らかになるかどうかはわかりません。

ここでも検索しましたが、ルート指標を変更することが実際に最も簡単なアプローチであると思います。しかし、私が見ることができる他の迅速できれいな方法はありますか?オブジェクトを前後に押すための非常に簡単なコマンドを提供します。ありがとうございます。

関連情報