Linux(debian)で特定のインターフェイスを介してトラフィックをルーティングする方法は?

Linux(debian)で特定のインターフェイスを介してトラフィックをルーティングする方法は?

可能であれば、eth0の代わりにusb0(セルラーモデム)を介してトラフィックをルーティングしたいと思います。 usb0のIPアドレスは時間の経過とともに変化する可能性があります。 IPアドレスが変更される可能性がありますが、この場合はどのようにルートを作成しますか?

私は試した:ip route add default dev usb0

ただし、これを行うとusb0でpingできますが、eth0を介してpingすることはできません。どんなアイデアがありますか?

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         172.24.1.1      0.0.0.0         UG    10     0        0 eth0
172.19.200.136  *               255.255.255.252 U     0      0        0 usb0
172.24.1.0      *               255.255.255.0   U     0      0        0 eth0

答え1

コメントでudhcpcDHCPクライアントとして使用していると述べました。

udhcpcゲートウェイアドレス(またはアドレスが複数ある場合)は、/usr/share/udhcpc/default.script(デフォルトでは)という変数で実行されているスクリプトに渡されますrouter。その後、スクリプトはそれに応じてデフォルトゲートウェイを設定する必要があります。

すでに設定されている場合、デフォルトスクリプトはデフォルトゲートウェイ設定を無視すると推測します。

より:https://udhcp.busybox.net/README.udhcpc

既存のネットワークインターフェイスからパケットをプッシュすることはできません。インターフェイスがイーサネットをエミュレートする場合(おそらくそのようにusb0)、パケットには有効なレイヤ2宛先アドレスが必要です。システムはゲートウェイのIPアドレスに対してARP要求を実行して自動的にこの情報を取得できますが、まずゲートウェイのIPアドレスを知る必要があります。

関連情報