Edited at

NTTフレッツ IPv6上でCisco DMVPN (IPv4 over IPv6)を組んでみた


なぜ興味を持ったのか

各種ブログや口コミを拝見していると、フレッツPPPoEのスループット、latencyなどに満足をいただけていないのをよく拝見します。

これは主にNTT東西が提供しているフレッツサービスのPPPoEの設備増設ポリシーに依存していることが大きく、解決策としてIPv6を利用するのが一般的になってきました。

(上記については、この辺りでISPの中の人が詳しく解説いただいています)

一方、同様の理由でVPN over IPv6も様々なサービスがラインナップされつつありますが(例えばNTTComなど)、企業向けルータのDIYの記事ではYamaha RTXを利用した記事が多く、逆にCiscoを使った事例見つけることができませんでした。

ということで、やってみました。


環境

Cisco ISR C891FJ-K9

ローエンドの拠点向けルータとしてリリースされているものです。


ソフトウェアバージョンなど

sh ver

Cisco IOS Software, C800 Software (C800-UNIVERSALK9-M), Version 15.7(3)M4, RELEASE SOFTWARE (fc2)

Technical Support: http://www.cisco.com/techsupport

Copyright (c) 1986-2019 by Cisco Systems, Inc.

Compiled Sat 09-Feb-19 16:59 by prod_rel_team

一部略

License Information for 'c800'

License Level: advipservices Type: Permanent

Next reboot license Level: advipservices



891FJは、Advanced IP Services がembeddedされており、DMVPNやEIGRPをサポートしており、お買い得感があります。

(C841mだとオークション市場によく出回っているのが上記をサポートしていないAdvanced Securityだったりします)


ISP

IIJmioにはIPoEオプションを追加し、native IPoE + ひかり電話 の環境です。よってIPv6 prefix delegation でひかり電話ルータからprefixを受け取理、IPv6 address auto configuration で半固定IPv6を生成しています。

IIJ FiberAccess/NFではフレッツアンバンドルのIIJのIPoEサービスであり、上記と同様にひかり電話環境です。


やりたいこと

3拠点以上でVPNを貼って遊びたい勉強したい。

- IPSEC (どうせならDMVPNで)

- IPv4 (private address) over IPv6 (フレッツ native IPv6)


Config

以下のconfigで、DMVPNはupして、EIGRPで経路も出てきました。

spoke siteを2つ作ったところ、Dynamic tunnel で通信できているようなので、うまくできたと思われます(ツッコミ歓迎)。

関係があるところだけを抜粋します。ポイントは multi-point GREの末尾にipv6をつける。逆にいうとそれだけである。

Dynamic routingはなんでもいいのだが、ここではEIGRPで。(今は他の機器との相互接続でスッキリさせたいのでOSPFにしている)


hub サイト

sh run

crypto isakmp policy 1

encr aes 256

hash sha256

authentication pre-share

group 24

crypto isakmp key cisco123 address ipv6 ::/0

!

!

crypto ipsec transform-set transform-dmvpn esp-aes 256 esp-sha256-hmac

mode transport

!

!

crypto ipsec profile profile-dmvpn

set transform-set transform-dmvpn

!

interface Tunnel1

description ###DMVPN intranet###

ip address 10.0.10.1 255.255.255.0

no ip redirects

ip mtu 1360

no ip next-hop-self eigrp 1

no ip split-horizon eigrp 1

ip pim sparse-mode

ip nhrp network-id 1

ip nhrp holdtime 360

ip nhrp redirect

ip tcp adjust-mss 1320

load-interval 30

ipv6 nhrp network-id 1

ipv6 nhrp holdtime 360

ipv6 nhrp redirect

keepalive 10 3

tunnel source GigabitEthernet8

tunnel mode gre multipoint ipv6

tunnel key 1

tunnel protection ipsec profile profile-dmvpn shared

!

interface GigabitEthernet8

description ##WAN I/F to Flet's###

no ip address

duplex auto

speed auto

no cdp enable

ipv6 address autoconfig default

ipv6 enable

ipv6 dhcp client pd PREFIX

pppoe enable group global

pppoe-client dial-pool-number 1

!

router eigrp 1

network 10.0.10.0 0.0.0.255


spokeサイト

sh run

crypto isakmp policy 1

encr aes 256

hash sha256

authentication pre-share

group 24

!

crypto isakmp key cisco123 address ipv6 ::/0

!

!

crypto ipsec transform-set transform-dmvpn esp-aes 256 esp-sha256-hmac

mode transport

!

!

crypto ipsec profile profile-dmvpn

set transform-set transform-dmvpn

!

interface Tunnel1

description ###DMVPN Intranet###

ip address 10.0.10.2 255.255.255.0

ip mtu 1360

no ip next-hop-self eigrp 1

no ip split-horizon eigrp 1

ip pim sparse-mode

ip nhrp map 10.0.10.1 [hubサイトのIPv6 address]

ip nhrp map multicast [hubサイトのIPv6 address]

ip nhrp network-id 1

ip nhrp holdtime 360

ip nhrp nhs 10.0.10.1

ip tcp adjust-mss 1320

delay 1000

tunnel source GigabitEthernet8

tunnel mode gre multipoint ipv6

tunnel key 1

tunnel protection ipsec profile profile-dmvpn shared

!

interface GigabitEthernet8

description ##WAN I/F to Flet's###

no ip address

duplex auto

speed auto

no cdp enable

ipv6 address autoconfig default

ipv6 enable

ipv6 dhcp client pd PREFIX

pppoe enable group global

pppoe-client dial-pool-number 1

!

router eigrp 1

network 10.0.10.0 0.0.0.255


残課題など


  • ping値は東京〜山梨間で夜間の混雑時間であっても12-15msec程度で安定しており、さすがIPv6と言ったところでしょうか。

  • 最低限80Mbps程度のスループットは出ている模様。(自宅がVDSLのため、それ以上は継続できず)

  • IPSECヘッダに透過しているQoSのうちIP_TOS 0x48がフレッツの網内でdropすることがある(網仕様?)。macOSからSSHしようとすると漏れなくdropしてくれるので、回避策を要検討。当座 ~/.ssh/configにIPQoS 0x00と記載でカバー。IPv6 over PPPoE であれば問題なし。

  • MTU値について、Ciscoのデザインガイドは1400byteを使用したところフラグメントが発生しているのか、10Mbpsとスループットが落ちた。40byteほど余裕を持たせたところ大丈夫になった。


参考資料

Cisco Scalable DMVPN Design and Implementation Guide

IPv4 DMVPN over IPv6 WAN - Configuration

Cisco IPv6 インターネット接続設定例(IPv6oE方式)

Cisco IPSec Overhead Calculator Tool