ホーム » コンピュータ » Linux » Debian » IPv6でようやくルータ以外のPCもつながった

システム

最近の投稿

アーカイブ

カテゴリー

IPv6でようやくルータ以外のPCもつながった

6to4を使ったIPv6接続には成功していたけど、 radvd を使ったルータ以外のPCのIPv6接続には失敗していた。 色々と試した結果、tun6to4には、2002:XXXX:XXXX:0000::1を設定し、 自宅サーバには 2002:XXXX:XXXX:0001::1を設定する。 radvd には、2002:XXXX:XXXX:0001:****:****:****:**** を使うように設定した。

(( ネットワーク構成 ))
                    +------------------------+
Internet--[router]--+ 192.168.1.2            |
 (IPv4)             | 2002:XXXX:XXXX:0001::1 +--[radvd]
                    |    (eth0)              |
                    |    (tun6to4)           |
::192.88.99.1-[tun]-+ 2002:XXXX:XXXX:0000::1 |
 (IPv6)             +------------------------+

interfaceファイルは、ルータから取得した2002:XXXX:XXXX形式のファイルから、 address部にバッククオートを使って設定した。

(( /etc/network/interfaces ))
auto tun6to4
iface tun6to4 inet6 v4tunnel
   endpoint any
   address  `/bin/cat /var/run/DDNS.ipv6`::1
   netmask  16
   gateway  ::192.88.99.1
   local    192.168.1.2
   # DynamicDNSのアドレス更新
   # /var/run/DDNS.ipv6 = 2002:XXXX:XXXXを生成
   pre-up   /etc/DDNS/mydns-jp.sh
   # eth0内のアドレスを割り当て
   post-up  /sbin/ip addr add \
      `/bin/cat /var/run/DDNS.ipv6`:1::1/64 dev eth0
   # 2002:XXXX:XXXXを使ったradvd.confを生成
   post-up  /etc/network/script/update-radvd.pl
   # radvdを再起動
   post-up  /etc/init.d/radvd reload
   pre-down /sbin/ip addr del \
      `/bin/cat /var/run/DDNS.ipv6`:1::1/64 dev eth0

ちなみに、radvd.conf ファイルの生成には、以下のようなスクリプトを用いた。 6to4 による IPv6 対応ルーター設定によれば、わざわざこんなことをしなくても、Base6to4Interface という 設定を使えばいいのだけど、我が家の場合はルータを間に挟んでいるため、 IPv4なルータ(外側)のIPアドレスが取れないので、このようなスクリプトを使うしかない…

(( /etc/network/script/update-radvd.pl ))
#!/usr/bin/perl
my $dir   = "/etc/network/script" ;
my $rconf = "/etc/radvd.conf" ;
my $rtemp = "$dir/radvd.conf.template" ;
my $ddip6 = "/var/run/DDNS.ipv6" ;
my $ip6h = "" ;
if ( -f $ddip6 ) {
   open( FH , $ddip6 ) or die( "Can't open $ddip6\n" ) ;
   $ip6h =  ;
   close( FH ) ;
   if ( $ip6h =~ s/^(2002:[0-9A-Z]+:[0-9A-Z]+)$/$1/i ) {
      open( FHD,">$rconf" ) or die( "Can't open $rconf\n" ) ;
      open( FHS,"$rtemp" ) or die( "Can't open $rtemp\n" ) ;
      while(  ) {
         s/<IPV6>/$ip6h/ if ( /^\s+prefix\s+<IPV6>/ ) ;
         print FHD $_ ;
      }
      close( FHS ) ;
      close( FHD ) ;
   }
}
(( /etc/network/script/radvd.conf.template ))
interface eth0
{
   AdvSendAdvert on;
   AdvManagedFlag on;
   AdvOtherConfigFlag on;
   prefix <IPV6>:1::/64
   {
      AdvOnLink on;
      AdvAutonomous on;
      AdvRouterAddr on;
   };
};

無事、http://www.kame.net/ のDancingカメさんも http://[2001:200:dff:fff1:216:3eff:feb1:44d7]のURLであれば、 サーバ&radvdクライアントなPCでも、うまく踊ってくれました。

Google 検索

My Google   Yahoo

Microsoft

ファンサイト