Edited at

DS-Liteをとりあえず試すために1NICで接続環境を作る

More than 1 year has passed since last update.


目的

IIJmioやInterlinkで提供しているDS-Liteについて、対応ルーターを持っていなくてもお試しで接続できるように、

無料のLinuxベースのルータOSであるVyOSを利用しつつ、かつ2NICの専用マシンを準備しなくても接続を試せる手順について記載する。


注意事項


今回記載の環境について

速度テストをする程度までのお試し環境を作ることを目的としているので、ファイアーウォールの設定は省略します。

特にONU直結だとIPv6でPCにダイレクトなので注意してください。ついでにDNSもモロ空きです。

ルータが入っているなら、それである程度防がれるかもしれませんが必ずしも効果を保証するものではありません。


IPv6環境について

ひかり電話の有無やNTT東西で細かいところが変わります。

本記事に記載の内容は、NTT東のフレッツネクストで、ひかり電話なしの環境で試しています。


準備物

VyOS

VyOSをインストールするためのデータが飛んでもいいPCまたは仮想環境

Windows PC

IIJmio FiberAccess/NF」または「IIJmioひかり + IPoEオプション」または「Interlink ZOOT NATIVE」などの、「インターネットマルチフィードのtransixサービスでIPv6 IPoE接続を提供するプロバイダ」

非対応のプロバイダを利用している場合でも、PPPoEを利用するプロバイダとIPoEを利用するプロバイダの併用は可能です。

Interlinkなら無料期間があるので試しやすいかもしれないです。

なお、申し込みにはフレッツ開通時に届く書類に記載される、お客様IDとアクセスキーが必要です。


事前準備

PCがIPv6で外に出られる状態であることを確認しておく。

ルーターやHGWがある場合は、IPv6ブリッジやパススルーなどの名称の機能を有効化する必要があります。


VyOSのインストール


仮想マシンの設定

VirtualBoxにインストールしますが、VirtualBoxのインストールは省略します。

新規の仮想マシンを作成し、仮想マシンの「タイプ/バージョン」を「Linux/Ubuntu(64-bit)」とし、メモリサイズやディスク容量はデフォルトのままで作成します。

作成後に仮想マシンの設定を開き、ネットワークアダプタの設定を以下の通り変更します。


  • 割り当て:ブリッジアダプター

  • 名前:ネット側に接続されるインタフェース

  • アダプタータイプ:1000MTか準仮想化

    設定保存後、仮想マシンを起動し、VyOSのイメージからブートさせます。


イメージインストール

ユーザー名/パスワードの初期値は「vyos」でログインします。

以降、時折出てくる「INIT: Id "TO" respawning too fast: disabled for 5 minutes」は今は無視して問題ありません。

インストールを実行します。

vyos@vyos:~$ install image

(中略)
Would you like to continue? (Yes/No) [YES]: [そのままエンター]
(中略)
Partition (Auto/Parted/Skip) [Auto]: [そのままエンター]
(中略)
Install the image on? [sda]: [そのままエンター]

This will destroy all data on /dev/sda.
Continue? (Yes/No) [No] : [「Yes」と入力してエンター]

How big of a root partition should I create? (1000MB - 10737MB) [10737]MB: [そのままエンター]
(中略)
What would you like to name this image? [1.1.7]: [そのままエンター]
(中略)
Which one should I copy to sda? [/config/config.boot]: [そのままエンター]
(中略)
Enter password for user 'vyos': [設定するパスワードを入力してエンター]
Retype password for user 'vyos': [もう一度パスワードを入力してエンター]
(中略)
Which drive should GRUB modify the boot partition on? [sda]: [そのままエンター]

Setting up grub: OK
Done!
vyos@vyos:~$ poweroff
Proceed with poweroff? (Yes/No) [No] [Yesと入れてエンター]
(中略)
(仮想マシン終了)

仮想マシンが終了したら、ISOイメージを取り出したあと、再度仮想マシンを起動します。


初期の細かい設定

キーボード設定、時間帯設定、シリアルコンソール無効化、IPアドレス設定、SSHの有効化を行っておきます。

Welcome to VyOS - vyos tty1

vyos login: vyos
Password: [先ほど設定したパスワード]
(中略)
vyos@vyos:~$ set console keymap

[Generic 105-key (Intl) PC] -> [Other] -> [Japan] -> [Japan] ->
[The default for the keyboard layout] -> [No compose key]

vyos@vyos:~$ conf
vyos@vyos# set system time-zone Asia/Tokyo
vyos@vyos# delete system console
vyos@vyos# set interfaces ethernet eth0 address '192.168.0.1/24'
vyos@vyos# set service ssh listen-address 192.168.0.1
vyos@vyos# commit
vyos@vyos# save
vyos@vyos# exit
vyos@vyos:~$


DNSの設定

NGN網内のDNSサーバを面倒なので直接指定します。

ついでに、ルーターの代わりに名前解決に対応できるようにDNSフォワードの設定を入れます。

踏み台が怖い場合は「set service dns ~」の二行は省略して、別のDNS設定を使ってください(後述)

vyos@vyos:~$ conf

vyos@vyos# set system name-server '2404:1a8:7f01:a::3'
vyos@vyos# set system name-server '2404:1a8:7f01:b::3'
vyos@vyos# set service dns forwarding listen-on 'eth0'
vyos@vyos# set service dns forwarding 'system'
vyos@vyos# commit
vyos@vyos# save
vyos@vyos# exit
vyos@vyos:~$


IPv6設定/確認

VyOSがIPv6アドレスを受け取るように設定します。

vyos@vyos:~$ conf

vyos@vyos# set system ipv6 'disable-forwarding'
vyos@vyos# set interfaces ethernet eth0 ipv6 address 'autoconf'
vyos@vyos# commit
vyos@vyos# save
vyos@vyos# exit
vyos@vyos:~$

ひかり電話がある場合でHGWの下に居る場合は「set interfaces ethernet eth0 address dhcpv6」も必要かもしれません。

IPv6アドレスが割り当てられたことを確認します

vyos@vyos:~$ sh int

Codes: S - State, L - Link, u - Up, D - Down, A - Admin Down
Interface IP Address S/L Description
--------- ---------- --- -----------
eth0 192.168.0.1/24 u/u
2409:x:x:x:1234:5678:90ab:cdef/64
lo 127.0.0.1/8 u/u
::1/128
vyos@vyos:~$

このIPv6アドレスは後で使うので、コピってメモ帳にでも貼り付けておいてください。


DS-Liteのトンネル張りと経路設定

DS-LiteのIPIPトンネルを張り、IPv4はそっちへ流れるように経路設定します。

接続先は「gw.transix.jp」ですが、ホスト名指定できないので「2404:8e00::feed:100」か「2404:8e00::feed:101」のどちらかを適当に選択します。

なお、NTT東西でアドレスは変わる事と、将来的に変更になる場合もあるので、ここを見たり、hostやdigを叩いて確認してください。

vyos@vyos:~$ conf

vyos@vyos# set interfaces tunnel tun0 encapsulation 'ipip6'
vyos@vyos# set interfaces tunnel tun0 local-ip '2409:x:x:x:1234:5678:90ab:cdef'
vyos@vyos# set interfaces tunnel tun0 mtu '1500'
vyos@vyos# set interfaces tunnel tun0 remote-ip '2404:8e00::feed:100'
vyos@vyos# set protocols static interface-route 0.0.0.0/0 next-hop-interface 'tun0'
vyos@vyos# commit
vyos@vyos# save
vyos@vyos# exit
vyos@vyos:~$

二行目のlocal-ipは先ほどコピペしたもの。

Linux系は自身のアドレスを指定しておかないとダメな仕様っぽいので、アドレスが変わったらその時にまた考えましょう。


IPv4疎通確認

とりあえずGoogleにPingを飛ばしてみます。

ここまで設定すればVyOSはDS-Lite経由でIPv4に出ていけます。

vyos@vyos:~$ ping www.google.com count 4

PING www.google.com (172.217.25.68) 56(84) bytes of data.
64 bytes from nrt13s50-in-f4.1e100.net (172.217.25.68): icmp_req=1 ttl=57 time=9.10 ms
64 bytes from nrt13s50-in-f4.1e100.net (172.217.25.68): icmp_req=2 ttl=57 time=5.63 ms
64 bytes from nrt13s50-in-f4.1e100.net (172.217.25.68): icmp_req=3 ttl=57 time=7.55 ms
64 bytes from nrt13s50-in-f4.1e100.net (172.217.25.68): icmp_req=4 ttl=57 time=5.76 ms

--- www.google.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3006ms
rtt min/avg/max/mdev = 5.638/7.013/9.100/1.427 ms

vyos@vyos:~$

ついでに、経路も確認してみます

vyos@vyos:~$ traceroute www.mfeed.ad.jp

Resolving Address: www.mfeed.ad.jp
traceroute to www.mfeed.ad.jp (210.173.170.40), 30 hops max, 60 byte packets
1 ike-gw00.transix.jp (14.0.9.66) 4.048 ms 4.557 ms 4.557 ms
2 ike-bbrt10.transix.jp (14.0.9.65) 5.229 ms 5.216 ms 5.210 ms
3 ike-gate1.nw.mfeed.ad.jp (14.0.10.2) 5.042 ms 4.052 ms 4.145 ms
(以下略)
vyos@vyos:~$

普段使っているプロバイダではなく、transix.jpを通っています。


PCの設定変更と確認くん

PCのDNSサーバとデフォルトゲートウェイをVyOS側に向けます。

DNSフォワードの設定を入れていない場合は、既存のルーターとかを設定してください。PPPoE接続してるなら大体生き残ってます。たぶん。

最後に確認くんにでもアクセスすると、ホスト名がプロバイダと別になっているのが判ると思います。

あとは好きに速度テストをやって評価してみてください。




最後に

とりあえずお試し環境なので、1ポートで賄っています。

なので、2ポートでLANとWANを分ける一般的なやり方よりも速度が落ちる傾向にあります。

それでも混雑していると思われる日曜19:00台の速度テストで600Mbps出ていたので(なおPPPoEだと40Mbpsでした)もっとDS-Lite流行れ。


参考元

VyOSでIIJmioにDS-Lite接続(ひかり電話契約なし)