はじめに
本記事は検証目的で構築したL2VPNについて、つくれぽとしてしたためたものです。検証で確かめた項目は2つあります。1つめは拠点Aから拠点Bのファイルサーバにアクセスできることです。2つめはIPアドレス制限をしているシステムに拠点AのクライアントPCから接続するため、拠点Bの固定IPv4アドレスを使用してインターネットに接続できることです。また、本記事ではある程度難しいと思われる単語について、参考となるURLを記載しておきます。記事を読んでいただけている方へのお願いになりますが、ネットワークについては初学者のため、気になった部分については、優しいマサカリをお願いします。
構成
構成を図に示します。拠点AのオフィスでルータはRTX830を使用し、クライアントPCや無線APを収容します。拠点Bはデータセンタで、ルータはRTX1300を使用し、DHCP・DNS・ファイルサーバを収容します。
次に、WAN側の説明です。拠点間はNGN1を介して接続します。このとき、RTX830とNGN間はフレッツ 光ネクスト2で接続し、WAN側のIPv6アドレスはRA3を利用して割り当てるものとします。そして、RTX1300とNGN間はフレッツ 光クロス4で接続します。WAN側のIPv6アドレスはDHCPv6-PD3を利用し、IPv4アドレスは固定のものがMAP-E5によって割り当てられるものとします。なお、本記事では例示用のIPアドレスに置き換えて示します。
続いて、LAN側の説明です。RTX830とRTX1300間はL2TPv3/IPsec6を利用してL2VPN接続します。このとき、NGN網内での折り返しを実現するため、トンネルのIPアドレスにIPv6を指定することがポイントです。これにより、パケットがISPやインターネットを経由せず、ファイルサーバのアクセス時に遅延を減らす効果が期待できます。拠点AのクライアントPCは無線APに接続した後、拠点BのDHCPサーバからIPv4アドレスを割り当てられます。そして、DNSサーバは拠点Bのものを使用し、デフォルトゲートウェイはRTX1300のアドレス(192.168.2.1)となるように設定されます。これで、検証項目の1つめが達成されます。また、クライアントPCがインターネットを通信する際には、RTX1300によってNATされます。これによって検証項目の2つめも達成されます。
設定
RTX830とRTX1300のそれぞれの設定を掲載します。なお、単純化するために直接関係ない部分は省略します。
RTX830の設定
bridge member bridge1 lan1 tunnel1
ip bridge1 address 192.168.2.2/24
ipv6 lan2 address auto
ipv6 lan2 dhcp service client ir=on
tunnel select 1
tunnel encapsulation l2tpv3
tunnel endpoint address 3fff::200:5eff:fe00:5300
ipsec tunnel 101
ipsec sa policy 101 1 esp aes256-cbc sha256-hmac
ipsec ike keepalive log 1 on
ipsec ike keepalive use 1 on
ipsec ike local address 1 2001:db8::1:200:5eff:fe00:53ff
ipsec ike pre-shared-key 1 text himitsu_ike
ipsec ike remote address 1 3fff::200:5eff:fe00:5300
l2tp always-on on
l2tp hostname rtx830
l2tp tunnel auth on himitsu_l2tp
l2tp tunnel disconnect time off
l2tp keepalive use on 60 3
l2tp keepalive log on
l2tp syslog on
l2tp local router-id 192.168.2.2
l2tp remote router-id 192.168.2.1
l2tp remote end-id l2vpn
ip tunnel tcp mss limit auto
tunnel enable 1
ipsec auto refresh on
ipsec transport 1 101 udp 1701
l2tp service on l2tpv3
RTX1300の設定
ip route default gateway tunnel 1
ipv6 route default gateway dhcp lan2
ipv6 source address selection rule lifetime
bridge member bridge1 lan3 tunnel1-tunnel2
ip bridge1 address 192.168.2.1/24
ipv6 lan2 address dhcp
ipv6 lan2 dhcp service client
tunnel select 1
tunnel encapsulation map-e
tunnel map-e type ocn
ip tunnel mtu 1460
ip tunnel nat descriptor 1
tunnel enable 1
tunnel select 2
tunnel encapsulation l2tpv3
tunnel endpoint address 3fff::200:5eff:fe00:5300 2001:db8::200:5eff:fe00:53ff
ipsec tunnel 101
ipsec sa policy 101 1 esp aes256-cbc sha256-hmac
ipsec ike keepalive log 1 on
ipsec ike keepalive use 1 on
ipsec ike local address 1 3fff::200:5eff:fe00:5300
ipsec ike pre-shared-key 1 text himitsu_ike
ipsec ike remote address 1 2001:db8::200:5eff:fe00:53ff
l2tp always-on on
l2tp hostname rtx1300
l2tp tunnel auth on himitsu_l2tp
l2tp tunnel disconnect time off
l2tp keepalive use on 60 3
l2tp keepalive log on
l2tp syslog on
l2tp local router-id 192.168.2.1
l2tp remote router-id 192.168.2.2
l2tp remote end-id l2vpn
ip tunnel tcp mss limit auto
tunnel enable 2
nat descriptor type 1 masquerade
nat descriptor address outer 1 map-e
nat descriptor masquerade incoming 1 reject
ipsec auto refresh on
ipsec transport 1 101 udp 1701
l2tp service on l2tpv3
気づいた点
検証中に気づいた点を挙げます。
- 構成図では省略していますが、RTX1300にIPv6アドレスが意図せず2つ割り当てられた状態になっていました
- LAN2に
3fff::200:5eff:fe00:5300
と3fff::6b:e133:8800:0
が割り当てられた状態です -
3fff::200:5eff:fe00:5300
はEUI-64で生成されたアドレスです -
3fff::6b:e133:8800:0
はよくわかりませんでした…-
show ipv6 address lan2
の出力にlifetime: INFINITY
と表示されるのでこれがヒントにはなりそうです
-
- LAN2に
- RTX1300の
tunnel endpoint address
設定において、自分側のトンネルインタフェース端点のIPアドレスを明示的に指定する必要がありました- おそらく上記の項目に起因するものと考えられます
今後の課題
現在は管理コストの問題からL2VPNの接続性を監視するシステムが存在しないですが、切断されたとき、すぐに気づける仕組みがあるとよさそうです。いろいろと方法は考えられますが、RTXのLuaスクリプト機能7でSlackのWebhookを呼び出すのが簡単でしょうか。さらに、拠点BのIPアドレスで制限しているシステムにはアクセスできなくなりますが、L2VPNが復旧するまでの間はRTX830のDHCP/DNSサーバを有効化し、クライアントPCにインターネットへの接続を提供できたらよりよさそうです。
ほかには、IPv6アドレスの変更に追従できるとよさそうです。現在はIPv6アドレスを指定してL2VPNを構築しているため、NTTの工事等でIPv6アドレスが変更された場合に手動で設定をし直す必要があります。これは、IPv6ダイナミックDNS8やネットボランチDNSサービス9を利用することで実現できそうです。ただし、IPv6アドレスの変更はほとんど起きないはずで、問題になることはなさそうです。
おわりに
本記事ではNGN網内折り返しのL2TPv3/IPsecをYamaha RTXで構築した際の設定例を掲載しました。どこかで誰かの参考になれば幸いです。