私の信頼できるSlackwareボックスが破損し、すでに構築されているLinux Mint v18と交換する必要がありました。私はもともとこれがドロップされた交換になることを望んでいましたが、iproute2のルーティングは長年にわたって変更されました。 「route add default gw 192.168.1.1 eth1」を追加するだけで効果があることを願っていました。実際に動作します。しかし、問題は、私のゲートウェイシステムがeth0のどれにも接続できないことです。
簡略化されたレイアウト:
|192.168.0.0/24|---|ゲートウェイ|---|192.168.1.0/24| | ---|Router192.168.1.1|---|インターネット|
ゲートウェイにはeth0とeth1があり、192.168.0.0/24のすべてのファイアウォールです。ルータは通常192.168.1.0/24でWiFiデバイスを処理します。
現在の設定では、KDEネットワーク管理者にインターフェイスをロードさせ、上記のようにgwコマンドを追加しました。
#path -n カーネルIPルーティングテーブル Ifaceを使用したターゲットゲートウェイGenmaskマークメトリックリファレンス 0.0.0.0 192.168.1.1 0.0.0.0 UG 100 0 0 eth1 192.168.0.0 0.0.0.0 255.255.255.0 有 1 0 0 eth0 192.168.1.0 0.0.0.0 255.255.255.0 有 1 0 0 eth1
これはうまくいきます。 192.168.0.0/24のすべてのデバイスが正しくルーティングされ、192.168.1.0/24で問題なくゲートウェイとインターネットに接続できます。
ただし、ゲートウェイで192.168.0.0/24の任意のエントリでpingを開始することはできません。 tcpdumpを実行してみると、ソースIPが192.168.1.2(eth1)に変更されたことがわかりました。したがって、これは、ゲートウェイ回線のメトリックを他の回線よりも高く設定し、最初に考慮しなかったにもかかわらず、パケットが間違ったインターフェイスから出てくることを示します。
私は多くのstackexchangeの投稿と、次のいくつかのウェブサイトを読みました。ポリシールーティングとLinux-IPしかし、解決策が見つからないようです。
私はiproute2についてはよくわかりませんが、192.168.0.0/24を動作させるために私ができることは次のとおりです。
echo "管理者1人" >> /etc/iproute2/rt_tables 優先順位 1 テーブル管理として、192.168.0.0/24 で IP ルールが追加されます。 192.168.0.0/24優先順位1テーブル管理にIPルールが追加されました。 IP ルート 192.168.0.0/24 table admin dev eth0 追加 IP ルーティングキャッシュの更新
これは、デフォルトよりも優先順位の高いテーブルを作成し、開始/終了でルールを作成し、同じテーブルにパスを追加してeth0を介して転送することです。しかし、これはうまくいきません。
私が逃したものがあるようですが、見つかりません。
#uname -a Linux neXuss2 3.13.0-37-generic #64-Ubuntu SMP 月 9月 22日 21:28:38 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
答え1
iproute2
このように単純なケースは必要ありません。
ただし、IPルーティング用のデフォルトスイッチがオンになっていることを確認する必要があります。/etc/sysctl.conf
包含ラインを確認してください。
net.ipv4.ip_forward=1
その後、実行するsudo sysctl -p
とすぐに適用されます。
sysctl のデフォルト値はnet.ipv4.ip_forward
0 で、これはすべての IPv4 ルーティング機能を完全に無効にします。
また、基本を確認する必要があります。つまり、eth0インターフェイスに実際にリンクがあり、エラーが発生していないことを確認する必要があります。 NICドライバのethtool eth0
リンク状態を確認し、統計カウンタを表示します。ethtool -S eth0