linuxで特定の送信先ポートや特定のプロセス,プログラムの場合はデフォルトルートと違うルートで通信したいのですがそういったルーティング設定は可能でしょうか?
可能な場合はどのように設定をすればよいのでしょうか?
fedora8を入れたPCサーバにてBフレッツハイパーファミリーの回線を使ってISP-A(動的IP,ppp0),ISP-B(固定IP,ppp1)にPPPoEでマルチセッションで接続しています。
デフォルトルートをppp0にし,iproute2でISP-B経由のパケットはppp1で返す設定をし、
LANのクライアントPCやPCサーバからインターネットへのアクセスはISP-A経由、
PCサーバ上で公開しているdns,http,smpt,pop3等の各種サーバはISP-B経由で公開しているのですが
メールの送信がISP-A経由だとoutbound25で引っかかったり、
SMTPが外部から宛先不明のメールを受け取ったときのバウンスメールの送信がISP-A経由になったり、
PPPoEの接続しなおしでISP-Aから振られるIPが変わった場合にDNSのSPFを毎回書き換えるのが面倒な上書き換えた場合にすぐに伝播するようにTTLを短めに設定しないといけない、
等で困っています。よろしくお願いします。
おそらくPolicy Based Routingで実現できると思うのですが、
http://www.linux.or.jp/JF/JFdocs/IP-Masquerade-HOWTO-7.html
の7.36辺りを参考にしてみてはいかがでしょうか。
回答ありがとうございます。
LAN1 => WAN1, LAN2 => WAN2のやり方は知ってました。
今回はLO => WAN1の中でも
特定送信先ポートのときだけ LO => WAN2にしたいので7.36項だけでは不十分でした。
コメント(2008-03-14 12:57:57)の方にも書きましたが昨日帰宅後、iptablesのmangleの使い方に目覚めて
iptablesとiproute2を併用して実現できました。
質問はコメントの方にも書きましたが
コメントに書いたやり方に対する技術的なつっこみ(セキュリティがやばくない?こうした方がもっと簡単に出来るぜ!)やその他の実現方法、
及び当初の質問にある「特定のプロセス,プログラム」の通信のルーティングの変更方法(例えばBitTorrentのようなP2Pで送信先ポートが定まってないもの)で継続させていただきます。