プライマリインターフェイス以外のインターフェイスを介して特定のポートを送信する

プライマリインターフェイス以外のインターフェイスを介して特定のポートを送信する

私はLinuxに初めて触れました。私はたくさんの記事を読んでいますが、私の設定で問題を見つけることができず、助けが必要です。

私は2つのインターフェースを備えたDebian PCを持っています:

  • ens192- 10.20.30.0/26 デフォルトゲートウェイ
  • ens256- 10.10.10.8/29

ルータ10.20.30.40(デフォルト)と10.10.10.10を使用する2つのインターネットプロバイダがあります。

10.10.10.10ルーターを介してのみTCP / 443およびTCP / 8080トラフィックを送信したいと思います。他のすべての通信は10.20.30.40を介して行う必要があります。

追加しました

80   special

行って/etc/iproute2/rt_tables走る

sudo ip route add table 80 10.10.10.8/29 dev ens256 scope link src 10.10.10.12    
sudo ip route add table 80 default dev ens256 via 10.10.10.10
sudo iptables -t mangle -N markports
sudo iptables -t mangle -I PREROUTING 1 -j CONNMARK --restore-mark
sudo iptables -t mangle -I OUTPUT 1 -m mark --mark 0 -j markports
sudo iptables -t mangle -I OUTPUT 2 -j CONNMARK --save-mark
sudo iptables -t mangle -A markports -p tcp --dport 443 -j MARK - set-mark 0x80
sudo ip rule add fwmark 0x80 lookup 80
sudo iptables -t nat -I POSTROUTING 1 -m mark --mark 0x80 -j MASQUERADE

しかし、まだ動作しません!何を変えるべきですか?

ベストアンサー1

iptables/rules/routingについてまだ学んでいるので、私のアドバイスを受けてください。ただし、設定したパス/テーブルを適用するための「ipルール」がありません。

たとえば、次のようなことがうまくいくと思います。

ip rule add iif lo ipproto tcp dport 80 lookup 80
ip rule add iif lo ipproto tcp dport 443 lookup 80

詳しくは、この質問をご覧ください。特定のインターフェイスを介したポートトラフィックのルーティング

おすすめ記事