VPS への OpenVPN 接続を備えた 4G ルーターがあります。
すべてのインターネット トラフィックを VPS 経由で送信すると、スループット速度が低すぎて使用できなくなりますが、VPN 経由で何もルーティングしない場合は、ISP によって DNS 要求の数が制限されます。そのため、ポート 53 のみを VPN で通過させ、残りのトラフィックは 4G 接続で直接通過させたいと思います。
IPTABLES を使用してこれを行う方法があると思うのですが、見つけることができません... ご協力いただければ幸いです。ありがとうございます!
答え1
「通常の」ルーティングは宛先アドレスを介して行われます。Google DNS のみを使用することもできます。
- IPv4: 8.8.8.8、8.8.4.4
- IPv6: 2001:4860:4860::8888、2001:4860:4860::8844
そして、たとえば ipv4 に対して次のコマンドを発行します。
ip route add 8.8.8.8/32 via 172.16.1.1 dev tun0
ip route add 8.8.4.4/32 via 172.16.1.1 dev tun0
宛先ポートに関係なく、172.16.1.1 がトンネル ゲートウェイで、tun0 がトンネル デバイスであると仮定すると、8.8.8.8 および 8.8.4.4 へのネットワーク トラフィックは VPN 経由で送信されます。
IPv6 のルート コマンドの発行は少し複雑ですが、必要がない場合もあることに注意してください。
あるいは、ポリシー ルーティング (ip rule add) を使用して、ファイアウォール マーク (iptables の fwmark) に基づいてルーティングすることも可能です。ただし、これは設定が少し複雑で、ルーターにワークロードのオーバーヘッドが発生する可能性があります。