web-dev-qa-db-ja.com

トラフィックをインターフェイスに選択的にルーティングします

別のルーティングテーブル(tovpn)を設定しました

#echo 200 tovpn >> /etc/iproute2/rt_tables  

今、私はそれにルートを割り当てます。

ここで、10.0.0.1はtun2 P-t-Pで、10.0.0.2はinetです。

#ip route add 10.0.0.1 dev tun2 table tovpn  
#ip route add default via 10.0.0.2 dev tun2 table tovpn  

一部のネットワーク172.20.20.0/24には、テーブルに転送されたトラフィックがあります

#ip rule add from 172.22.22.0/24 table tovpn  
#iptables -t nat -A POSTROUTING -s 172.22.22.0/24 -o tun2 -j MASQUERADE  

素晴らしい、すべてが機能します。

ホストIPを指定して、トンネルを通過するトラフィック追加トラフィックを指定するにはどうすればよいですか?

たとえば、トラフィックをトンネル経由で8.8.4.4にルーティングしたい場合、以下は機能しません。

#ip rule add to 8.8.4.4/32 table tovpn  

あるいは

#ip rule add to 8.8.4.4/32 lookup tovpn  

どんな援助も大歓迎です、ありがとう。

1
user165813

ルーティングテーブルが正しく設定されていません。次のように正しい設定:

# ip route add $PTPADDR src $INETADDR proto kernel dev tun1 table tovpn  
# ip route add default dev tun1 table tovpn  

パケットにマークを付ける

# iptables -t mangle -A PREROUTING -i $LANINTERFACE -d 8.8.8.8/32 -j MARK --set-mark 300
1
user165813