2012-05-05

Linux による IPv6 パケットのルーティング

Linux で IPv6-in-IPv4 を設定し, ルータとして使用する方法をまとめる. ここでは, Redhat EL 6 を例にして説明する. Hurricane Electric では, /64 セグメントと /48 セグメントを割り当ててトンネリングするサービスを無料で提供している. このサービスで IPv6 アドレスを取得して, Linux マシンをルータとして使用する.

構成

ホスト Host1, Host2 があり, Host1 はインターネットに接続されており, Host1-Host2 間は LAN で接続されている. Host1 のインターネット側のデバイスは eth1, LAN 側のデバイスは eth0 と割り当てている.

トンネリングの設定

まずは, Host1 で IPv6-in-IPv4 の設定を行う. Hurricane Electric で /64 アドレスを取得すると, 丁寧に設定方法を教えてもらえる.
ifconfig sit0 up
ifconfig sit0 inet6 tunnel ::xx.xx.xx.xx
ifconfig sit1 up
ifconfig sit1 inet6 add 20xx:xxxx:xxxx:xxxx::2/64
ip route add ::/0 dev sit1
少し設定方法を変えてしまったが, これで設定が完了. ping6 で接続されているか確認する.
ping6 www.kame.net
この設定をパーマネントに反映させる方法はまだ調べていない.

アドバータイズの設定

yum install radvd
cat >/etc/radvd.conf <<EOF interface eth0 { AdvSendAdvert on; prefix 20yy:yyyy:yyyy:1::1/64 { AdvOnLink on; AdvAutonomous on; }; }; EOF ifconfig eth0 add 20yy:yyyy:yyyy:1::1/64 service radvd start
20yy:yyyy:yyyy:1::1 の部分には, /48 セグメントの中の /64 セグメントを選んで設定する.

パケットフォワーディングの設定

sudo tee /proc/sys/net/ipv6/conf/all/forwarding <<<1
ip6tables -I FORWARD 1 -p tcp -j ACCEPT -m state --state ESTABLISHED,RELATED # 確立された tcp パケットを許可
ip6tables -I FORWARD 2 -j ACCEPT -i eth0 -o sit1 -p tcp -m tcp --dport http # http ポートへの接続を許可
# ip6tables -I FORWARD 3 -j ACCEPT -i eth0 -o sit1 # LAN からインターネットへの全てのパケットを許可 (設定してもよい)
# ip6tables -I FORWARD 4 -j ACCEPT -o eth0 -i sit1 # インターネットから LAN への全てのパケットを許可 (設定するべきでない)

0 件のコメント:

コメントを投稿