目的地に応じてさまざまなインターフェイスを介したトラフィックルーティング

目的地に応じてさまざまなインターフェイスを介したトラフィックルーティング

私はiptablesとルーティング作業をしています。

だから私はeth0(192.168.2.100、gw 192.168.2.1)とtun0(10.7.7.2、gw 10.7.7.1)の2つのインターフェースを持つUbuntuシステムを持っています。
トラフィックが tun0(10.7.7.1) 経由で ifconfig.me に到達し、eth0(192.168.2.1) 経由で ipinfo.io に到達したい。

だから私はこれをしました:

次の場所に新しい項目を作成しました/etc/iproute2/rt_tables

echo 1 vpn >> /etc/iproute2/rt_tables

その後、新しいテーブルにデフォルトパスを追加しました。

ip route add default via 10.7.7.1 dev tun0 table vpn

Makr 1を含むすべてのパケットがテーブルVPNを介してルーティングされるようにルールを追加しました。

ip rule add fwmark 0x1 table vpn

タグ 1 を使用して、ifconfig.me に送信されるすべてのトラフィックにタグを付けます。

iptables -A OUTPUT -t mangle -d ifconfig.me -j MARK --set-mark 1

ipinfo.ioにアクセスすると、curl ipinfo.ioeth0が提供するゲートウェイを構成する正しいIPを取得しますが、ifconfig.meから応答を取得しようとするとcurl ifconfig.me何も起こりません(タイムアウトしたようです)。したがって、トラフィックは正しいテーブルを通過するように見えますが、そこから輻輳します。

ip route show table vpn:

default via 10.7.7.1 dev tun0

ベストアンサー1

このすべての混乱は必要ありません。ルーティングは宛先とゲートウェイに基づいているため、一部のトラフィックが特定のインターフェイスを通過するようにするには...ルーティングを正しく設定してください。

# ifconfig thru vpn link
ip route add 153.121.72.212 via 10.7.7.1
ip route add 153.121.72.211 via 10.7.7.1
# everything else via default network
ip route add default via 192.168.2.1

おすすめ記事