LoginSignup
0
0

More than 1 year has passed since last update.

IPv4 over IPv6設定その1

Last updated at Posted at 2020-12-24

概要

DS-Lite対応ルーター無しに、インターリンンクZOOT NATIVEによるIPv4 over IPv6接続を使用する手順について説明します。

インターリンク ZOOT NATIVE

インターリンンクZOOT NATIVEサービス紹介抜粋

「ZOOT NATIVE」はNTT東日本・西日本の「フレッツ光」対応のサービスです。
次世代のネットワーク(IPv6 IPoE接続)の「DS-Lite(Dual-Stack Lite)」方式を採用。
「DS-Lite」はIPv6のネットワークを経由してIPv4通信を行う(IPv4 over IPv6)規格です。
IPv4、IPv6の両方で「高速で安定的な通信」ができる新しいインターネット接続サービスです。

前提

以下が契約済であること。

  • フレッツ・V6オプション
  • ZOOT NATIVE

IPv6アドレスの割り当て

Linux KernelでIPv6が有効になっていれば、特に設定することなくIPv6アドレスが割り当てられます。
以下はRealtekのイーサネットを使った場合の例です。
ネットワークデバイス名はeth0とします。

# /sbin/modprobe r8169
# ip link set eth0 up

しばらく待つと以下のようにIPv6アドレスが割り当てられます。
この方法ではMACアドレスを元にIPv6アドレスが構成されます。

# /sbin/ip addr show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
    inet6 xxxx:xxx:xx:xxxx:xxxx:xxxx:xxxx:xxxx/64 scope global dynamic mngtmpaddr
       valid_lft 14342sec preferred_lft 12542sec
    inet6 xxxx::xxxx:xxxx:xxxx:xxxx/64 scope link
       valid_lft forever preferred_lft forever

GoogleのIPv6のDNSサーバにpingが通ります。

# ping6 -nc1 2001:4860:4860::8888
PING 2001:4860:4860::8888 (2001:4860:4860::8888): 56 data bytes
64 bytes from 2001:4860:4860::8888: icmp_seq=0 ttl=115 time=21.004 ms
--- 2001:4860:4860::8888 ping statistics ---
1 packets transmitted, 1 packets received, 0% packet loss
round-trip min/avg/max/stddev = 21.004/21.004/21.004/0.000 ms

DS-Lite IPv4 over IPv6接続

DS-LiteのIPv4 over IPv6接続サービスは、LinuxではIPv6トンネリングを設定することで使用することができます。
設定に必要な情報は、自身のIPv6アドレスと、IPトンネルの対向側のIPv6アドレスです。
ZOOT NATIVEの対向側のアドレスは「gw.transix.jp」になります。

参考:SEIL/x86の設定マニュアル

interface tunnel0 tunnel dslite gw.transix.jp

但し、IPトンネリングの設定ではDNS名ではなくIPv6アドレスが必要になります。

正しくはDNSでIPv6アドレスを取得するべきですが、ここではひとまず、現時点のgw.transix.jpのIPv6アドレスの1つである、2404:8e01::feed:100を使用します。

ローカルのIPv6アドレスがxxxx:xxx:xx:xxxx:xxxx:xxxx:xxxx:xxxxの場合、以下のように設定します。

# ip tunnel add dslite mode ipip6 remote 2404:8e01::feed:100 localxxxx:xxx:xx:xxxx:xxxx:xxxx:xxxx:xxxx encaplimit none dev eth0
# ip link set dslite up
  • dslite: IPトンネルデバイスのデバイス名です。名前は任意に指定できます。
  • mode ipip6: IPv4 over IPv6用のトンネリング設定を表します。

2022/4/12追記
今までIPv4とIPv6の性能比較をしていなかったのですが、Encapsulation limitオプション(encaplimit)がとても重要なことがわかりました。
Linuxではデフォルトは4になっていますが、デフォルトのままだと、IPv4はIPv6の半分にも満たない性能になります。
制限なしの「none」にすることで、ほぼ性能劣化は発生しなくなりました。

なお、リンクアップさせていますが、以下のようにトンネルデバイスのstateはUPにならずUNKOWNとなります。問題はありません。

4: dslite@eth0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1452 qdisc noqueue state UNKNOWN group default qlen 1000
    link/tunnel6 xxxx:xxx:xx:xxxx:xxxx:xxxx:xxxx:xxxx peer 2404:8e01::feed:100 permaddr xxxx:xxxx:xxxx::
    inet6 xxxx::xxxx:xxxx:xxxx:xxxx/64 scope link
       valid_lft forever preferred_lft forever

このdsliteをデフォルトルートに設定します。

ip route replace default dev dslite

GoogleのIPv4のDNSサーバにpingが通ります。

# ping -nc1 8.8.8.8
PING 8.8.8.8 (8.8.8.8): 56 data bytes
64 bytes from 8.8.8.8: icmp_seq=0 ttl=119 time=18.481 ms
--- 8.8.8.8 ping statistics ---
1 packets transmitted, 1 packets received, 0% packet loss
round-trip min/avg/max/stddev = 18.481/18.481/18.481/0.000 ms

以上の通り、DL-Lite対応ルーターを使用せずに、IPv4 over IPv6の接続ができました。

課題は以下です。

  • MACアドレスベースでIPv6アドレスを設定していること。
  • gw.transix.jpのIPv6アドレスは変更される可能性があること。

特にgw.transix.jpのIPv6アドレスが変更されると通信ができなくなるため、変更に応じてIPトンネリング設定を再設定する必要があります。これらをDHCPv6を使用して解決します。

IPv4 over IPv6接続その2』で説明します。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0