目次
背景
doornocという胡散臭い団体で活動をしているのですが、BGPを動かすルーターなどを管理するためのマネージメントネットワークを作ることになりました。 大事なルーターに一大事が発生した際にSSHなどでアクセスできるようにするためのネットワークです。色々なプランを考えたのですが、最終的にはDMVPNと 呼ばれるものを使用して構築することになりました。DMVPNの記事は調べるといくつか見つかりますが、我々独自の問題にぶち当たったのと、DMVPNの冗長化 をはたしている記事は数が少なかったので書いてみることにしました。
使用機器
最新の安定版ファームウェアなどで最初は動かしましたが、ルーティングがうまく行われないなどのトラブルが発生しました。 コンフィグは同じでも以下のファームウェアでは問題なく動いていることからファームにバグがあったのではと考えています。 したがって、DMVPNはファームのバージョンによって失敗する可能性がありますで、ご自身で徹底的に検証して下さい。 私たちの場合は以下のファームウェアバージョンで成功しておりますので、参考になれば幸いです。
- Cisco C891FJ-K9 ( Version 15.7(3)M3 ) HUB1・SPOKEとして使用
- Cisco C892-K9 ( Version 15.6(3)M ) HUB2として使用
- Cisco C841M-4X-JSEC/K9 ( Version 15.5(3)M4a ) SPOKEとして使用
ネットワークトポロジー図
以下のようなネットワークを構築しました。
親となるルーターを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のコンフィグを変更しなくていいという メリットがありますので個人的にはおすすめであります。最後までお読み頂きありがとうございました。