なぜ興味を持ったのか
各種ブログや口コミを拝見していると、フレッツPPPoEのスループット、latencyなどに満足をいただけていないのをよく拝見します。
これは主にNTT東西が提供しているフレッツサービスのPPPoEの設備増設ポリシーに依存していることが大きく、解決策としてIPv6を利用するのが一般的になってきました。
(上記については、この辺りでISPの中の人が詳しく解説いただいています)
一方、同様の理由でVPN over IPv6も様々なサービスがラインナップされつつありますが(例えばNTTComなど)、企業向けルータのDIYの記事ではYamaha RTXを利用した記事が多く、逆にCiscoを使った事例見つけることができませんでした。
ということで、やってみました。
環境
Cisco ISR C891FJ-K9
ローエンドの拠点向けルータとしてリリースされているものです。
ソフトウェアバージョンなど
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 サイト
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
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サイト
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 ]
(https://cway.cisco.com/tools/ipsec-overhead-calc/)