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でも、うまく踊ってくれました。

 

2017年2月

      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28        

ウェブページ

アーカイブ

Webデータ

このブログ記事について

このページは、T-Saitohが2011年5月16日 20:28に書いたブログ記事です。

ひとつ前のブログ記事は「RT @dnobori: プログラマ...(05/15)」です。

次のブログ記事は「雑がみも資源回収の雑誌と一緒に」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。