冗長DMVPNの構築 (DMVPN Dual Tunnel Dual Hub)

目次

背景

doornocという胡散臭い団体で活動をしているのですが、BGPを動かすルーターなどを管理するためのマネージメントネットワークを作ることになりました。 大事なルーターに一大事が発生した際にSSHなどでアクセスできるようにするためのネットワークです。色々なプランを考えたのですが、最終的にはDMVPNと 呼ばれるものを使用して構築することになりました。DMVPNの記事は調べるといくつか見つかりますが、我々独自の問題にぶち当たったのと、DMVPNの冗長化 をはたしている記事は数が少なかったので書いてみることにしました。

使用機器

最新の安定版ファームウェアなどで最初は動かしましたが、ルーティングがうまく行われないなどのトラブルが発生しました。 コンフィグは同じでも以下のファームウェアでは問題なく動いていることからファームにバグがあったのではと考えています。 したがって、DMVPNはファームのバージョンによって失敗する可能性がありますで、ご自身で徹底的に検証して下さい。 私たちの場合は以下のファームウェアバージョンで成功しておりますので、参考になれば幸いです。

ネットワークトポロジー図

以下のようなネットワークを構築しました。
親となるルーターをHubルーターと呼び、子どもとなるルーターをSpokeルーターと呼びます。

ネットワークトポロジー図

SPOKE は NAT配下で動かしました。したがって、DMVPNのメリットであるダイナミック部分は利用できませんが、HUBルーター さえ生きていれば通信を仲介してくれますので問題なく動きます。DMVPNといいつつ、ただのマルチポイントVPNであるといえるでしょう。

Config

こちらのサイトをほぼ丸パクリで作りました。
冗長化はなされていなかったのでそのあたりを自分たちで追加して検証したという形になります。

HUB1:C891FJ-K9

ip dhcp excluded-address 10.100.1.11 10.100.1.254

ip dhcp pool N01-POOL
 network 10.100.1.0 255.255.255.0
 default-router 10.100.1.254
 dns-server 10.100.1.100 1.1.1.1
 domain-name local.doornoc.net
 lease 0 12

ip domain name local.doornoc.net
ip name-server 1.1.1.1

username cisco password 0 cicso

crypto ikev2 proposal DMVPN-PROPOSAL
 encryption aes-cbc-256
 integrity sha256
 group 14

crypto ikev2 keyring DMVPN-KEYRING
 peer 0.0.0.0
  address 0.0.0.0 0.0.0.0
  pre-shared-key abcdefghijklmn

crypto ikev2 profile DMVPN-IKEV2PROFILE
 match address local A.A.A.A
 match identity remote address 0.0.0.0
 authentication remote pre-share
 authentication local pre-share
 keyring local DMVPN-KEYRING
 lifetime 3600

crypto ipsec transform-set DMVPN-TRANSFORMSET esp-aes 256 esp-sha256-hmac
 mode transport

crypto ipsec profile DMVPN-IPSECPROFILE
 set ikev2-profile DMVPN-IKEV2PROFILE

interface Loopback1
 ip address 10.100.0.1 255.255.255.255

interface Tunnel1
 ip address 10.0.1.1 255.255.255.0
 no ip redirects
 ip mtu 1368
 ip nhrp network-id 1
 ip tcp adjust-mss 1328
 ip ospf network broadcast
 tunnel source GigabitEthernet8
 tunnel mode gre multipoint
 tunnel key 1
 tunnel protection ipsec profile DMVPN-IPSECPROFILE

interface GigabitEthernet8
 ip address A.A.A.A 255.255.255.248
 ip access-group WAN_FILTER in
 ip nat outside
 ip virtual-reassembly in

interface Vlan1
 ip address 10.100.1.254 255.255.255.0
 ip mtu 1368
 ip nat inside
 ip virtual-reassembly in
 ip tcp adjust-mss 1328

router ospf 1
 router-id 10.100.0.1
 network 10.0.1.1 0.0.0.0 area 0
 network 10.100.0.1 0.0.0.0 area 0
 network 10.100.1.0 0.0.0.255 area 0

ip nat inside source list 1 interface GigabitEthernet8 overload
ip route 0.0.0.0 0.0.0.0 A.A.A.Z
ip ssh version 2

ip access-list extended WAN_FILTER
 permit esp any host A.A.A.A
 permit udp any host A.A.A.A eq isakmp non500-isakmp
 deny   ip 0.0.0.0 0.255.255.255 host A.A.A.A
 deny   ip 10.0.0.0 0.255.255.255 host A.A.A.A
 deny   ip 127.0.0.0 0.255.255.255 host A.A.A.A
 deny   ip 169.254.0.0 0.0.255.255 host A.A.A.A
 deny   ip 172.16.0.0 0.15.255.255 host A.A.A.A
 deny   ip 192.0.2.0 0.0.0.255 host A.A.A.A
 deny   ip 198.51.100.0 0.0.0.255 host A.A.A.A
 deny   ip 203.0.113.0 0.0.0.255 host A.A.A.A
 deny   ip 224.0.0.0 15.255.255.255 host A.A.A.A
 deny   ip 240.0.0.0 15.255.255.255 host A.A.A.A
 deny   udp any host A.A.A.A range netbios-dgm netbios-ss
 deny   tcp any eq 445 host A.A.A.A
 deny   tcp any host A.A.A.A eq 445
 deny   udp any eq 445 host A.A.A.A
 deny   udp any host A.A.A.A eq 445
 deny   tcp any host A.A.A.A eq 22
 deny   tcp any host A.A.A.A eq telnet
 permit ip any host A.A.A.A

access-list 1 permit any

line vty 0 4
 transport input ssh

ntp server ntp.nict.jp

HUB2:C892-K9

ip dhcp excluded-address 10.100.4.11 10.100.4.254

ip dhcp pool N04-POOL
 network 10.100.4.0 255.255.255.0
 default-router 10.100.4.254
 dns-server 10.100.1.100 1.1.1.1
 domain-name local.doornoc.net
 lease 0 12

ip domain name local.doornoc.net

crypto ikev2 proposal DMVPN-PROPOSAL
 encryption aes-cbc-256
 integrity sha256
 group 14

crypto ikev2 keyring DMVPN-KEYRING
 peer 0.0.0.0
  address 0.0.0.0 0.0.0.0
  pre-shared-key abcdefghijklmn

crypto ikev2 profile DMVPN-IKEV2PROFILE
 match address local B.B.B.B
 match identity remote address 0.0.0.0
 authentication local pre-share
 authentication remote pre-share
 keyring local DMVPN-KEYRING
 lifetime 3600

crypto ipsec transform-set DMVPN-TRANSFORMSET esp-aes 256 esp-sha256-hmac
 mode transport

crypto ipsec profile DMVPN-IPSECPROFILE
 set ikev2-profile DMVPN-IKEV2PROFILE

interface Loopback1
 ip address 10.100.0.4 255.255.255.255

interface Tunnel4
 ip address 10.0.4.4 255.255.255.0
 no ip redirects
 ip mtu 1368
 ip nhrp network-id 4
 ip ospf network broadcast
 tunnel source GigabitEthernet0
 tunnel mode gre multipoint
 tunnel key 4
 tunnel protection ipsec profile DMVPN-IPSECPROFILE shared

interface GigabitEthernet0
 ip address B.B.B.B 255.255.255.248
 ip access-group WAN_FILTER in
 ip nat outside
 ip virtual-reassembly in
 duplex auto
 speed auto

interface Vlan1
 ip address 10.100.4.254 255.255.255.0
 ip nat inside
 ip virtual-reassembly in

router ospf 1
 router-id 10.100.0.4
 network 10.0.1.4 0.0.0.0 area 0
 network 10.0.4.4 0.0.0.0 area 0
 network 10.100.0.4 0.0.0.0 area 0
 network 10.100.4.0 0.0.0.255 area 0

ip nat inside source list 1 interface GigabitEthernet0 overload
ip route 0.0.0.0 0.0.0.0 B.B.B.Z
ip ssh version 2

ip access-list extended WAN_FILTER
 permit esp any host B.B.B.B
 permit udp any host B.B.B.B eq isakmp non500-isakmp
 deny   ip 0.0.0.0 0.255.255.255 host B.B.B.B
 deny   ip 10.0.0.0 0.255.255.255 host B.B.B.B
 deny   ip 127.0.0.0 0.255.255.255 host B.B.B.B
 deny   ip 169.254.0.0 0.0.255.255 host B.B.B.B
 deny   ip 172.16.0.0 0.15.255.255 host B.B.B.B
 deny   ip 192.0.2.0 0.0.0.255 host B.B.B.B
 deny   ip 198.51.100.0 0.0.0.255 host B.B.B.B
 deny   ip 203.0.113.0 0.0.0.255 host B.B.B.B
 deny   ip 224.0.0.0 15.255.255.255 host B.B.B.B
 deny   ip 240.0.0.0 15.255.255.255 host B.B.B.B
 deny   udp any host B.B.B.B range netbios-dgm netbios-ss
 deny   tcp any eq 445 host B.B.B.B
 deny   tcp any host B.B.B.B eq 445
 deny   udp any eq 445 host B.B.B.B
 deny   udp any host B.B.B.B eq 445
 deny   tcp any host B.B.B.B eq 22
 deny   tcp any host B.B.B.B eq telnet
 permit ip any host B.B.B.B

access-list 1 permit any

line vty 0 4
 transport input ssh

SPOKE1:C891FJ-K9

shared がキーワードです。IKEのプロファイルを2つ作ってそれぞれのトンネルに割り当てる方法ではうまく動きませんでした。 tunnel protection で shared を指定して1つのプロファイルを共有すると両方のトンネルでIPsecを張ることができます。

ip dhcp excluded-address 10.100.103.11 10.100.103.254

ip dhcp pool POP03-POOL
 network 10.100.103.0 255.255.255.0
 default-router 10.100.103.254
 dns-server 1.1.1.1
 domain-name local.doornoc.net
 lease 0 12

ip domain name local.doornoc.net

crypto ikev2 proposal DMVPN-PROPOSAL
 encryption aes-cbc-256
 integrity sha256
 group 14

crypto ikev2 keyring DMVPN-KEYRING
 peer 0.0.0.0
  address 0.0.0.0 0.0.0.0
  pre-shared-key abcdefghijklmn

crypto ikev2 profile DMVPN-IKEV2PROFILE
 match address local interface GigabitEthernet8
 match identity remote address 0.0.0.0
 authentication remote pre-share
 authentication local pre-share
 keyring local DMVPN-KEYRING
 lifetime 3600

crypto ipsec transform-set DMVPN-TRANSFORMSET esp-aes 256 esp-sha256-hmac
 mode transport

crypto ipsec profile DMVPN-IPSECPROFILE
 set ikev2-profile DMVPN-IKEV2PROFILE

interface Loopback1
 ip address 10.100.0.103 255.255.255.255

interface Tunnel1
 ip address 10.0.1.3 255.255.255.0
 no ip redirects
 ip mtu 1368
 ip nhrp map 10.0.1.1 A.A.A.A
 ip nhrp map multicast A.A.A.A
 ip nhrp network-id 1
 ip nhrp holdtime 300
 ip nhrp nhs 10.0.1.1
 ip ospf network broadcast
 ip ospf priority 0
 tunnel source GigabitEthernet8
 tunnel mode gre multipoint
 tunnel key 1
 tunnel protection ipsec profile DMVPN-IPSECPROFILE shared

interface Tunnel4
 ip address 10.0.4.3 255.255.255.0
 no ip redirects
 ip mtu 1368
 ip nhrp map multicast B.B.B.B
 ip nhrp map 10.0.4.4 B.B.B.B
 ip nhrp network-id 4
 ip nhrp holdtime 300
 ip nhrp nhs 10.0.4.4
 ip ospf network broadcast
 ip ospf priority 0
 tunnel source GigabitEthernet8
 tunnel mode gre multipoint
 tunnel key 4
 tunnel protection ipsec profile DMVPN-IPSECPROFILE shared

interface GigabitEthernet8
 ip address dhcp
 ip nat outside
 ip virtual-reassembly in
 duplex auto
 speed auto

interface Vlan1
 ip address 10.100.103.254 255.255.255.0
 ip nat inside
 ip virtual-reassembly in

router ospf 1
 router-id 10.100.0.103
 network 10.0.1.3 0.0.0.0 area 0
 network 10.0.4.3 0.0.0.0 area 0
 network 10.100.0.103 0.0.0.0 area 0
 network 10.100.103.0 0.0.0.255 area 0

ip nat inside source list 1 interface GigabitEthernet8 overload
ip ssh version 2

access-list 1 permit any

line vty 0 4
 transport input ssh

SPOKE2:C841M-4X-JSEC/K9

ip domain name local.doornoc.net
ip name-server 1.1.1.1

crypto ikev2 proposal DMVPN-PROPOSAL
 encryption aes-cbc-256
 integrity sha256
 group 14

crypto ikev2 keyring DMVPN-KEYRING
 peer 0.0.0.0
  address 0.0.0.0 0.0.0.0
  pre-shared-key abcdefghijklmn

crypto ikev2 profile DMVPN-IKEV2PROFILE
 match address local interface GigabitEthernet0/5
 match identity remote address 0.0.0.0
 authentication local pre-share
 authentication remote pre-share
 keyring local DMVPN-KEYRING
 lifetime 3600

crypto ipsec transform-set DMVPN-TRANSFORMSET esp-aes 256 esp-sha256-hmac
 mode transport

crypto ipsec profile DMVPN-IPSECPROFILE
 set ikev2-profile DMVPN-IKEV2PROFILE

interface Loopback1
 ip address 10.100.0.5 255.255.255.255

interface Tunnel1
 ip address 10.0.1.5 255.255.255.0
 no ip redirects
 ip mtu 1368
 ip nhrp map multicast A.A.A.A
 ip nhrp map 10.0.1.1 A.A.A.A
 ip nhrp network-id 1
 ip nhrp holdtime 600
 ip nhrp nhs 10.0.1.1
 ip nhrp registration no-unique
 ip ospf network broadcast
 ip ospf priority 0
 tunnel source GigabitEthernet0/5
 tunnel mode gre multipoint
 tunnel key 1
 tunnel protection ipsec profile DMVPN-IPSECPROFILE shared

interface Tunnel4
 ip address 10.0.4.5 255.255.255.0
 no ip redirects
 ip mtu 1368
 ip nhrp map multicast B.B.B.B
 ip nhrp map 10.0.4.4 B.B.B.B
 ip nhrp network-id 4
 ip nhrp holdtime 600
 ip nhrp nhs 10.0.4.4
 ip nhrp registration no-unique
 ip ospf network broadcast
 ip ospf priority 0
 tunnel source GigabitEthernet0/5
 tunnel mode gre multipoint
 tunnel key 4
 tunnel protection ipsec profile DMVPN-IPSECPROFILE shared

interface GigabitEthernet0/5
 ip address 172.16.200.2 255.255.255.0
 duplex auto
 speed auto

interface Vlan1
 ip address 10.100.5.254 255.255.255.0

router ospf 1
 router-id 10.100.0.5
 network 10.0.1.0 0.0.0.255 area 0
 network 10.0.4.0 0.0.0.255 area 0
 network 10.100.0.5 0.0.0.0 area 0
 network 10.100.5.0 0.0.0.255 area 0

ip route 0.0.0.0 0.0.0.0 GigabitEthernet0/5
ip ssh version 2

line vty 0 4
 transport input ssh

まとめ

さらっと書きましたが2,3カ月かかって構築しています。あまりにもトラブルが多すぎました。私と同じような初心者の方には難しいかと思いますが、 時間さえかければいつか完成するので諦めずにがんばって下さい。YAMAHAと違ってCiscoのDMVPNはSPOKEの数が増えてもHUBのコンフィグを変更しなくていいという メリットがありますので個人的にはおすすめであります。最後までお読み頂きありがとうございました。




Archives

2022 (6)
2021 (3)
2020 (4)

Writer

筆者のイメージ画像
kusshie

情報系学部に所属していた社会人1年生です。大学ではネットワークを学んでいましたがまだまだです。 最近は友達に誘われてISPごっこに足を踏み入れました (AS63791)。