以前、「ZOOT NATIVE」を契約してDS-Liteで高速インターネットを利用する構築をしましたが、今回はさらに発展させます。
簡単にまとめると、「高速なインターネットを構築し、かつ、拠点間のVPNのスピードもめちゃ速い環境の構築する」といった感じです。
構築イメージ
イメージ図を見た方がパッとわかりやすいので、作ってみました。
「拠点A」と「拠点B」という分け方をしています。
拠点A視点では、「tunnel1」で「IPv4 over IPv6」のインターネットを利用。
また、「tunnel2」でNGN網を経由して拠点Bとの拠点間VPNを実現している形です。
また、各拠点の現状をまとめたものが以下になります。
拠点A
・光回線:フレッツ光 ファミリーギガラインタイプ
・光電話:契約なし
・プロバイダ:ZOOT NEXT
・ルータ:RTX1210
拠点B
・光回線:ドコモ光
・光電話:契約あり
・プロバイダ:ドコモ光 with nifty
・ルータ:RTX830
光電話を利用しているか(HGWがあるか)で設定の仕方が変わってくるため、
光電話の存在の確認も重要です。
早速、やってみます。
事前準備
フレッツ・v6オプションへの加入
(https://flets.com/v6option/)
まずは、両拠点共にv6オプションへの加入を済ませます。
サービス情報サイトから、電話からもしくは、
プロバイダからの「フレッツ・v6オプション」を事前に加入しておきます。
ZOOT NATIVE プランの契約
https://www.interlink.or.jp/service/zootnative/index.html
今回は、メインとなる「拠点A」のみで「ZOOT NATIVE」プランを利用します。こちらも事前に契約を済ませておき、設定値を確認します。
申請は簡単にすることができ、プロバイダの発行も1日ほどもあれば完了できると思います。
ルータをv6対応・接続確認
ルータのconfig流し込み
「# フレッツ・v6オプションへの加入」が無事に終わっていることを確認するため、両拠点のルータ(拠点A:RTX 1210 / 拠点B:RTX830)にconfigを追記します。
ひかり電話を利用している場合と、利用していない場合でconfigが異なるため、注意が必要です。
参考:http://www.rtpro.yamaha.co.jp/RT/FAQ/FLETS-HIKARI-NEXT/ipv6_ipoe.html
ipv6 prefix 1 ra-prefix@lan2::/64
ipv6 lan1 address ra-prefix@lan2::1/64
ipv6 lan1 rtadv send 1 o_flag=on
ipv6 lan1 dhcp service server
ipv6 lan2 dhcp service client ir=on
dns server dhcp lan2
ngn type lan2 ntt
ipv6 route default gateway dhcp lan2
ipv6 prefix 1 dhcp-prefix@lan2::/64
ipv6 lan1 address dhcp-prefix@lan2::1/64
ipv6 lan1 rtadv send 1 o_flag=on
ipv6 lan1 dhcp service server
ipv6 lan2 address dhcp
ipv6 lan2 dhcp service client
dns server dhcp lan2
今回、私が構築した環境では、
|拠点A → ひかり電話を契約していない → (RAプロキシ)
|拠点B → ひかり電話を契約している → (DHCPv6-PD)
といった構成のため、それぞれを流し込みます。
IPv6に対応できたか確認
IPv6 チェックサイトにアクセスして、
IPv6接続ができているか確認します。
(https://ipv6-test.com/)
または、NTTのv6サービス情報サイトにアクセスできていれば問題ないことが確認d系ます。
(https://flets.com/next/square/connect/)
「ZOOT NATIVE」を利用した「DS-Lite」接続の設定
DS-Liteを用いた「tunnel1」の作成
参考1:http://www.rtpro.yamaha.co.jp/RT/docs/ipip/index.html#setting9
参考2:https://faq.interlink.or.jp/faq2/View/wcDisplayContent.aspx?id=468
ここからは、「tunnel 1」を作成し、そこをデフォルトにして「IPv4」と「IPv6」インターネットに接続する道を作成します。
現状、PPPoEなどを利用されている場合には、この作業で切り替わります。
拠点AのRTX1210で「ZOOT NATIVE」を利用するため、
RAプロキシのタイプで、かつ、AFTRアドレスは、NTT東日本で使える「2404:8e00::feed:100」を設定します。(※参考2のURLの最後を参照。)
西日本で利用される方は、「2404:8e01::feed:100」などを利用してください。
拠点Aは光電話を契約していないため、RAプロキシです。
ip route default gateway tunnel 1
# LAN側設定 (自身の環境に合わせて変更します。)
ip lan1 address 192.168.100.1/24
# NGNとの接続設定は既に設定済みのため省略
# AFTRに対するIPIPの設定
tunnel select 1
tunnel encapsulation ipip
tunnel endpoint name 2404:8e00::feed:100
tunnel enable 1
# DHCPの設定は必要な場合のみ
dhcp service server
dhcp server rfc2131 compliant except remain-silent
dhcp scope 1 192.168.100.101-192.168.100.200/24
# DNSの設定
dns server dhcp lan2
DS-Lite接続に切り替わっているか確認
IPv6 チェックサイトにアクセスして、
transix網を利用して、IPv4・IPv6接続ができているか確認します。
(https://ipv6-test.com/)
ここまでで、漸く「DS-Lite方式」でのインターネット接続ができるようになりました。残すはNGN回線を経由した拠点間VPNの設定です!
両拠点をつなげる「OPEN IPv6 DDNS」を設定する
IPv6は固定IPなどではないため、随時変動します。
PPPoEでは固定IPを取得して、拠点間をトンネリングしていましたが、
今回はそうはいきません。
そのため、IPv6用のDDNSを「OPEN IPv6 DDNS(https://i.open.ad.jp/)」利用して、各拠点ごとでIPとドメイン名を紐付けします。
その紐付けしたドメイン名をRTXに書き込んでおくことで、変動するIPv6アドレスを持つ、相手の拠点に常時アクセスすることができます。
IPv6のDDNSに登録してドメインを作成する
下記のサイトにアクセスして、ドメインを作成します。
(https://i.open.ad.jp/)
・「ホスト名」は任意の値を指定します。
・「初期IPv6アドレス」は現在のグローバルIPを入力します。
(※環境下のPCでこのサイトにアクセスすると、自動的にv6アドレスが入力されるので簡単です。)
・「メールアドレス」は任意の値を指定します。
これを拠点A・拠点Bそれぞれ作成します。
今回は、例としてホスト名を以下のように作成しました。
拠点A
・「ホスト名:aaaaaa.i.open.ad.jp」
拠点B
・「ホスト名:bbbbbb.i.open.ad.jp」
この情報は後ほど使用するので、必ずメモなり残しておいてください。
同時に、「更新専用ホスト名(update-xxxxxxxxxxx.i.open.ad.jp)」というのも発行されます。
NGN網を経由をする拠点間VPN「tunnel2」の作成
拠点A
# WAN ポートを IPv6 アドレス自動取得に設定
ipv6 routing on
ipv6 lan2 address auto
ipv6 lan2 dhcp service client ir=on
# WAN ポートから取得したフレッツ・光ネクストの DNS サーバー情報を利用
dns server dhcp lan2
# OPEN IPv6 ダイナミック DNS ホストの自動更新用パケットの送信設定
# 以下の部分は、実際に作成された DDNS ホスト名の「更新専用ホスト」名に置き換えてください
schedule at 1 *:*:00 * lua -e 'rt.command("ping6 update-aaaaaa000000.i.open.ad.jp")'
# LAN ポートに拠点 A の社内 LAN の IPv4 アドレスとデフォルトゲートウェイを設定
ip routing on
ip lan1 address 192.168.0.254/24
# tunnel2 の作成
tunnel select 2
ipsec tunnel 2
ipsec sa policy 2 2 esp aes-cbc sha-hmac
ipsec ike version 2 2
ipsec ike keepalive log 2 on
ipsec ike keepalive use 2 on rfc4306 10 6 0
# 下の行ではここの YAMAHA ルータの DDNS ホスト名 (FQDN) を指定する
ipsec ike local name 2 aaaaaa.i.open.ad.jp fqdn
# 'password12345' の部分は IPsec 事前共有キー。任意のキーに変更すること
ipsec ike pre-shared-key 2 text password12345
# 下の行では対向先の YAMAHA ルータの DDNS ホスト名 (FQDN) を指定する
ipsec ike remote name 2 bbbbbb.i.open.ad.jp fqdn
ip tunnel tcp mss limit auto
tunnel enable 2
tunnel select none
ipsec auto refresh on
# 192.168.10.0/24 宛のパケットは VPN を経由して対向先 YAMAHA ルータへ届くよう設定
ip route 192.168.10.0/24 gateway tunnel 2
save
restart
拠点B
# WAN ポートを IPv6 アドレス自動取得に設定
ipv6 routing on
ipv6 lan2 address auto
ipv6 lan2 dhcp service client ir=on
# WAN ポートから取得したフレッツ・光ネクストの DNS サーバー情報を利用
dns server dhcp lan2
# OPEN IPv6 ダイナミック DNS ホストの自動更新用パケットの送信設定
# 以下の部分は、実際に作成された DDNS ホスト名の「更新専用ホスト」名に置き換えてください
schedule at 1 *:*:00 * lua -e 'rt.command("ping6 update-bbbbbb111111.i.open.ad.jp")'
# LAN ポートに拠点 B の社内 LAN の IPv4 アドレスを設定
ip routing on
ip lan1 address 192.168.10.254/24
# 拠点 B の社内 LAN に DHCP で IPv4 アドレスおよびゲートウェイ情報を配布
dhcp service server
dhcp server rfc2131 compliant except remain-silent
dhcp scope 1 192.168.10.101-192.168.10.200/24
dhcp scope option 1 router=192.168.10.254
dhcp scope option 1 dns=8.8.8.8
# tunnel2 の作成
tunnel select 2
ipsec tunnel 2
ipsec sa policy 2 2 esp aes-cbc sha-hmac
ipsec ike version 2 2
ipsec ike keepalive log 2 on
ipsec ike keepalive use 2 on rfc4306 10 6 0
# 下の行ではここの YAMAHA ルータの DDNS ホスト名 (FQDN) を指定する
ipsec ike local name 2 bbbbbb.i.open.ad.jp fqdn
# 'password12345' の部分は IPsec 事前共有キー。任意のキーに変更すること
ipsec ike pre-shared-key 2 text password12345
# 下の行では対向先の YAMAHA ルータの DDNS ホスト名 (FQDN) を指定する
ipsec ike remote name 2 aaaaaa.i.open.ad.jp fqdn
ip tunnel tcp mss limit auto
tunnel enable 2
tunnel select none
ipsec auto refresh on
# すべてのパケットは VPN を経由して対向先 YAMAHA ルータへ届くよう設定
ip route default gateway tunnel 1
save
restart
順番に設定していきます〜。
最終確認
以上で、作業は完了です。
RTXのブラウザページログインして、セッションが確立していることを確認。以上で完了です!
初めてやったので、めちゃめちゃな部分もあるかと思いますが、、笑
私自身が、実際に使った全ての設定値も残しておきます〜。
ip route default gateway tunnel 1
ip route 192.168.10.0/24 gateway tunnel 2
ipv6 prefix 1 ra-prefix@lan2::/64
ip lan1 address 192.168.0.254/24
ipv6 lan1 address ra-prefix@lan2::1/64
ipv6 lan1 prefix change log on
ipv6 lan1 rtadv send 1 o_flag=on
ipv6 lan1 dhcp service server
switch control use lan1 on terminal=on
description lan2 IPIP
lan linkup send-wait-time lan2 5
ip lan2 secure filter in 200003 200020 200021 200022 200023 200024 200025 200030 200032
ip lan2 secure filter out 200013 200020 200021 200022 200023 200024 200025 200026 200027 200099 dynamic 200080 200081 200082 200083 200084 200085 200098 200099
ipv6 lan2 address auto
ipv6 lan2 secure filter in 101000 101001 101002
ipv6 lan2 secure filter out 101099 dynamic 101080 101081 101082 101083 101084 101085 101098 101099
ipv6 lan2 dhcp service client ir=on
tunnel select 1
description tunnel transix_IPv4
tunnel encapsulation ipip
tunnel endpoint address 2404:8e00::feed:100
ip tunnel tcp mss limit auto
tunnel enable 1
tunnel select 2
ipsec tunnel 2
ipsec sa policy 2 2 esp aes-cbc sha-hmac
ipsec ike version 2 2
ipsec ike keepalive log 2 on
ipsec ike keepalive use 2 on rfc4306 10 6 0
ipsec ike local name 2 aaaaaa.i.open.ad.jp fqdn
ipsec ike pre-shared-key 2 text password12345
ipsec ike remote name 2 bbbbbb.i.open.ad.jp fqdn
ip tunnel tcp mss limit auto
tunnel enable 2
ip filter 200000 reject 10.0.0.0/8 * * * *
ip filter 200001 reject 172.16.0.0/12 * * * *
ip filter 200002 reject 192.168.0.0/16 * * * *
ip filter 200003 reject 192.168.0.0/24 * * * *
ip filter 200010 reject * 10.0.0.0/8 * * *
ip filter 200011 reject * 172.16.0.0/12 * * *
ip filter 200012 reject * 192.168.0.0/16 * * *
ip filter 200013 reject * 192.168.0.0/24 * * *
ip filter 200020 reject * * udp,tcp 135 *
ip filter 200021 reject * * udp,tcp * 135
ip filter 200022 reject * * udp,tcp netbios_ns-netbios_ssn *
ip filter 200023 reject * * udp,tcp * netbios_ns-netbios_ssn
ip filter 200024 reject * * udp,tcp 445 *
ip filter 200025 reject * * udp,tcp * 445
ip filter 200026 restrict * * tcpfin * www,21,nntp
ip filter 200027 restrict * * tcprst * www,21,nntp
ip filter 200030 pass * 192.168.0.0/24 icmp * *
ip filter 200031 pass * 192.168.0.0/24 established * *
ip filter 200032 pass * 192.168.0.0/24 tcp * ident
ip filter 200033 pass * 192.168.0.0/24 tcp ftpdata *
ip filter 200034 pass * 192.168.0.0/24 tcp,udp * domain
ip filter 200035 pass * 192.168.0.0/24 udp domain *
ip filter 200036 pass * 192.168.0.0/24 udp * ntp
ip filter 200037 pass * 192.168.0.0/24 udp ntp *
ip filter 200099 pass * * * * *
ip filter 500000 restrict * * * * *
ip filter dynamic 200080 * * ftp
ip filter dynamic 200081 * * domain
ip filter dynamic 200082 * * www
ip filter dynamic 200083 * * smtp
ip filter dynamic 200084 * * pop3
ip filter dynamic 200085 * * submission
ip filter dynamic 200098 * * tcp
ip filter dynamic 200099 * * udp
ipsec auto refresh on
ipv6 filter 101000 pass * * icmp6 * *
ipv6 filter 101001 pass * * tcp * ident
ipv6 filter 101002 pass * * udp * 546
ipv6 filter 101099 pass * * * * *
ipv6 filter dynamic 101080 * * ftp
ipv6 filter dynamic 101081 * * domain
ipv6 filter dynamic 101082 * * www
ipv6 filter dynamic 101083 * * smtp
ipv6 filter dynamic 101084 * * pop3
ipv6 filter dynamic 101085 * * submission
ipv6 filter dynamic 101098 * * tcp
ipv6 filter dynamic 101099 * * udp
syslog debug on
dhcp service server
dhcp server rfc2131 compliant except remain-silent
dns host lan1
dns service recursive
dns service fallback on
dns server 192.168.0.254
dns server dhcp lan2
dns server select 500000 dhcp lan2 any .
dns private address spoof on
schedule at 1 */* *:*:00 * lua -e "rt.command(\"ping6 update-aaaaaa.i.open.ad.jp\")"
schedule at 2 */* 00:00:00 * ntpdate ntp.nict.jp syslog
statistics traffic on
statistics nat on
ip route default gateway tunnel 2
ip route 192.168.0.0/24 gateway tunnel 2
ipv6 route default gateway dhcp lan2
ipv6 prefix 1 dhcp-prefix@lan2::/64
ip lan1 address 192.168.10.254/24
ipv6 lan1 address dhcp-prefix@lan2::1/64
ipv6 lan1 rtadv send 1 o_flag=on
ipv6 lan1 dhcp service server
switch control use lan1 on terminal=on
description lan2 IPIP
ip lan2 address dhcp
ipv6 lan2 address auto
ipv6 lan2 address dhcp
ipv6 lan2 secure filter in 101000 101001 101002
ipv6 lan2 secure filter out 101099 dynamic 101080 101081 101082 101083 101084 101085 101098 101099
ipv6 lan2 dhcp service client
ngn type lan2 ntt
tunnel select 2
ipsec tunnel 2
ipsec sa policy 2 2 esp aes-cbc
ipsec ike version 2 2
ipsec ike keepalive log 2 on
ipsec ike keepalive use 2 on rfc4306 10 6 0
ipsec ike local name 2 bbbbbb.i.open.ad.jp fqdn
ipsec ike pre-shared-key 2 text password12345
ipsec ike remote name 2 aaaaaa.i.open.ad.jp fqdn
ip tunnel tcp mss limit auto
tunnel enable 2
ip filter 500000 restrict * * * * *
ipsec auto refresh on
ipv6 filter 101000 pass * * icmp6 * *
ipv6 filter 101001 pass * * tcp * ident
ipv6 filter 101002 pass * * udp * 546
ipv6 filter 101099 pass * * * * *
ipv6 filter dynamic 101080 * * ftp
ipv6 filter dynamic 101081 * * domain
ipv6 filter dynamic 101082 * * www
ipv6 filter dynamic 101083 * * smtp
ipv6 filter dynamic 101084 * * pop3
ipv6 filter dynamic 101085 * * submission
ipv6 filter dynamic 101098 * * tcp
ipv6 filter dynamic 101099 * * udp
dhcp service server
dhcp server rfc2131 compliant except remain-silent
dhcp scope 1 192.168.10.101-192.168.10.200/24
dhcp scope option 1 router=192.168.10.254
dhcp scope option 1 dns=192.168.10.254
dhcp client release linkdown on
dns host lan1
dns server dhcp lan2
dns private address spoof on
schedule at 1 */* *:*:00 * lua -e "rt.command(\"ping6 update-bbbbbb.i.open.ad.jp\")"
schedule at 2 */* 00:00:00 * ntpdate ntp.nict.jp syslog
sip use on
statistics traffic on