セカンダリIPのゲートウェイを一時的に変更する方法は?


2

次の状況があります。

ルート-n
カーネルIPルーティングテーブル
宛先ゲートウェイGenmaskフラグメトリックRef使用Iface
0.0.0.0 192.168.42.129 0.0.0.0 UG 0 0 0 usb0
192.168.0.0 0.0.0.0 255.255.255.0 U 9 0 0 wlan1
192.168.42.0 0.0.0.0 255.255.255.0 U 1 0 0 usb0

そして、私はワンライナーを使用してゲートウェイをセットアップしたいと思い192.168.0.0/24ます192.168.0.1(現在のセカンダリIPはです192.168.0.4)。
次のようなものを使用できますか

sudo ip route add 192.168.0.4から192.168.0.1 dev wlan1経由
RTNETLINK回答:ファイルが存在します


繰り返しますが、送信元のすべてのパケット192.168.0.4をゲートウェイから強制的に通過させる一時的なものが必要です192.168.0.1(スクリプトのセット/これを行わないようにしたくない)。使用できるライナーは1つありますか?

乾杯!


それは非対称ルーティングで行うことができますが、私が知っている限りではワンライナーとしてはできません。:この詳細microhowto.info/howto/...
nKn

1
いいえ、できません:私の答えをここで読み直してください、superuser.com
questions / 1018196 /…

「192.168.0.4から送信」とはどういう意味ですか?送信元IPアドレスが正確に192.168.0.4であることを意味しますか?
デビッドシュワルツ

ゲートウェイはルートごとであり、ルートは宛先ごと(ソースではない)であるため、セカンダリIPにゲートウェイを設定できません。192.168.0.0/24のゲートウェイのみ192.168.0.1に設定できます。その場合、192.168.0.0ネット宛てのすべてのトラフィックは192.168.0.1を通過しますが、トラフィックの発信元が192.168.0.4であるか、そのLAN上の別のIPであるかは関係ありません。
フランクトーマス

@MariusMatutiae以下の最初の答えを試してみます。私はあなたが間違っていることを望みますが、あなたは移民がちょうど良いことです:)
エマヌエーレ

回答:


1

wlan1代わりにすべてのトラフィックを強制する方法usb0は、新しいゲートウェイを強制することです:sudoとして、

ip route del default
ip route add default via 192.168.0.1 dev wlan1

(ゲートウェイがIPアドレスを持っていると想定しますが192.168.0.1、それに応じて変更しない場合)。以前の状況を復元するには、次の方法を使用します

ip route del default 
ip route add default via 192.168.42.129 dev usb0

ゲートウェイのIPアドレスがわからない場合は、代わりに使用します

ip route del default
dhclient -v usb0

-vオプションは冗長であり、すべてのディストリビューションに存在するわけではないため、削除する必要あります)。

また、インターフェイスごとに1つずつ、2つのゲートウェイを用意することもできます。Linuxカーネル(およびLinuxカーネルのみ)でこれを行うことができます。David'Schwartzの回答に、その方法の優れた短い説明があります。実行したら、各アプリケーションの出力がどのインターフェイスを通過するかを決定する必要があります(アプリケーションごとに決定できます)。これは、たとえば、特定のアプリケーションがいずれかのインターフェイスにバインドされるssh可能性があること、つまり、ssh開始元のIPアドレスがIPアドレスまたはIPアドレスである可能性があることをusb0意味しwlan1ます。ruleデビッド・シュワルツによって議論はその後正しくルーティングの自動世話をしますssh

この方法では、1つのssh接続がwlan1通過し、別の接続が通過することに注意してくださいwlan1

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.