おのたく日記 YouTubeも始めました→
2007-10-15(Mon) やっと出来た「Port番号によってルーティングを変える」 [長年日記]
■ やっと出来た「Port番号によってルーティングを変える」
おうちサーバで利用しているプロバイダーもOutband Port 25 Block(OP25B)しているので、SMTPで外にメールを送るためにマイIPを利用している。
そのときに、SMTPを張るときにPPTPで接続したマイIPの回線へルーテングする必要がある。
今まではPort番号(SMTPならば25番)でルーテングを掛けられなかったので、SMTPする必要があるメールサーバが出てきた所でひとつづつroute addしていた。(もちろん、mailqの結果を見て自動的に設定していたのだけど…)
これだと、route addされるまでメールが止まるので、不評だった。
そんななか、「15.5. netfilter, iproute2, ipchains, squid を用いた透過 Web キャッシュ」という文章を見つけた。
これを少し改造して、
iptables -A OUTPUT -o eth0 -t mangle -p tcp --dport 25 -j MARK --set-mark 2
iptables -A POSTROUTING -o $PPP_IFACE -t nat -s server -p tcp --dport 25 -j SNAT --to-source $PPP_LOCAL
ip rule add fwmark 2 table 2
ip route add default via $PPP_REMOTE dev $PPP_IFACE table 2
ip route flush cache
という設定を/etc/ppp/ip-up.localで行うことにより、SMTP発信の時にだけPPTP(マイIP)接続にルーティングすることが出来るようになった。
iptablesで、MARKをつけておいて、ip ruleで、そのマーク(今回は2)を見つろるのがミソです。
やったぜ「Port number routing完成!!」
|