« TCPパケットがルータで蹴落とされた件まとめ | メイン | Eee PC 901-XのSSD換装 »

NAT下からNATに割り当てられているグローバルIPを叩けるようにしてみる

BUFFALOのBBR-4HGでは、NAT下からNATのWAN側IPをたたいたときでも外部からアクセスしたときとかわりなくルーティングしてくれるんだけど、iptablesでやるとこんなに汚いのがわかった。

元ネタ: DNATターゲット

まとめると、こんな感じか。

  • iptables -t nat -A PREROUTING -p [プロトコル] -d [おそとのIP] --dport [おそとから叩かせたいポート] -j DNAT --to-destination [飛ばす先]
  • iptables -t nat -A POSTROUTING -p [プロトコル] --dst [飛ばす先] --dport [おそとから叩かせたいポート] --src [膣内のIP範囲] -j SNAT --to-source [NATの内側IP]
  • iptables -t nat -A OUTPUT --dst [おそとのIP] -p [プロトコル] --dport [おそとから叩かせたいポート] -j DNAT
  • この下はnatテーブルじゃなくてfilterテーブルなことに注意

  • iptables -A FORWARD -d [飛ばす先] -p [プロトコル] --dport [おそとから叩かせたいポート] -j ACCEPT

無論、いったんパケットはルータに流れてそこからサーバに流れるので、効率は落ちる。これはDynamic DNSの試験に使うといいよ。だって、hostsに手書きしたり、DNSMasq使ったり、あまつさえ専用のDNSサーバ立てるの面倒でしょ……。え、こっちのほうが面倒だって? それは知らないよ。

あ、動的IP環境だとおそとのIP取るの面倒か。ifconfig ppp0の結果をsedとかawkとかperlとかrubyとかで処理すりゃいいんじゃないかな、かな?

目標はlinux-igdに同様のルールを追加させることだ……。

About

2010年2月 3日 00:04に投稿されたエントリーのページです。

ひとつ前の投稿は「TCPパケットがルータで蹴落とされた件まとめ」です。

次の投稿は「Eee PC 901-XのSSD換装」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

このサイトは、S.A Studioの中の人の備忘録です。別名をまとめサイトといいます。

このサイトに記載されている事象・事項などはすべて各エントリの更新時点での情報に基づいています。最新情報が反映されていない場合がありますので、利用前に各種情報源で最新情報を得ることをおすすめします。

このサイトに記載されている事象・事項などについて、筆者は内容の保証をしておりません。利用の際には十分お気をつけください。