pfでv6NATしてみる
Posted on 2011/02/21(Mon) 21:22 in technical
今までv6ってほらグローバルだし!の妄想にとりつかれていたので、pfでv6NATしてフレッツ・スクウェアv6に抜けていくことを、ちっとも考えていなかった。
そろそろv6NAT使いたい状況ってのも増えてくるはずだし…と、思っていたら、手元の環境はフレッツ・スクウェアv6にproxyで抜けてた。NATしろよ俺。
設定を書き散らかそうと思ったけど、実はpf.confに以下を書き足しただけだった。:
#----------------------------------------------- # IPv6 NAT #----------------------------------------------- #binat on $ra_if inet6 from 2001:380:e08:f7::/64 to 2001:c90::/32 -> 2001:c90:XXXX:XXXX::/64 nat on $ra_if inet6 from 2001:380:e08:f7::/64 to 2001:c90::/32 -> 2001:c90:XXXX:XXXX::3
あとは pfctl -f /etc/pf/pf.conf 。
ISPを変更した場合のことを考えておくと、アドレス部分を変数で表現したほうがいいと思うけど、
NAPT後のアドレスは($eth0)みたいな表記をすると、fe80::のアドレスにラウンドロビンし始めたりするから、静的にアドレス範囲を設定しておく方がいいと思うのですよ。
あ、#binatの行はおまけなので不要です。
で、割とこんなんなる。:
# pfctl -sn \grep inet6 nat on eth0 inet6 from 2001:380:e08:f7::/64 to 2001:c90::/32 -> 2001:c90:XXXX:XXXX::3 # pfctl -ss \grep c90 all tcp 2001:c90:ff:1::1[80] <- 2001:380:e08:f7:d14b:87cc:5a4e:4f5c[4837] ESTABLISHED:ESTABLISHED all tcp 2001:380:e08:f7:d14b:87cc:5a4e:4f5c[4837] -> 2001:c90:XXXX:XXXX::3[56357] -> 2001:c90:ff:1::1[80] ESTABLISHED:ESTABLISHED all tcp 2001:c90:ff:1::1[80] <- 2001:380:e08:f7:d14b:87cc:5a4e:4f5c[4838] ESTABLISHED:ESTABLISHED all tcp 2001:380:e08:f7:d14b:87cc:5a4e:4f5c[4838] -> 2001:c90:XXXX:XXXX::3[55163] -> 2001:c90:ff:1::1[80] ESTABLISHED:ESTABLISHED
当然なんだけど、戻ってくるパケットのNSに応えるために、ルータのIFにNAPTしたアドレス振っておかないといけない。
安易にBINATの設定入れると、行きはいいんだけど帰りにNSがウロウロして終わる。
これだからRAは...って知ったかぶりしてみるよ!
今日はここまで。