私は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.io
eth0が提供するゲートウェイを構成する正しい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