DMVPN со спицами за NAT
Я развертываю DMVPN. Основная сложность заключается в том, что некоторые лучи находятся за NAT и не могут передавать трафик напрямую друг другу, поэтому требуется передавать его через концентратор. Тем не менее, это не работает, как ожидалось. Трафик по-прежнему отправляется непосредственно на другие спицы.
Топология - одно облако, двойной концентратор. В тестовой лаборатории (GNS3) у меня есть четыре спицы: два из них имеют "прямой" доступ к лучу (без преобразования адреса), а два других находятся за другим маршрутизатором с NAT, у каждого луча есть свой (так что нет двух спиц, которые работают одиночный нат).
Динамическая маршрутизация выполняется с EIGRP, потому что Cisco явно рекомендует это в более поздних документах, связанных с DMVPN, и говорит, что OSPF не проходит чрезмерное тестирование. Однако я не уверен и мог бы использовать OSPF, если он может работать лучше.
(некоторые хосты показаны ниже на рисунке, эта картинка сделана после того, как я выполнил все описанные тесты и анализ)
Соответствующие конфиги: hub1:
!
interface Tunnel0
bandwidth 1000000
ip address 10.100.255.253 255.255.255.0
no ip redirects
ip mtu 1400
no ip next-hop-self eigrp 65000
no ip split-horizon eigrp 65000
ip nhrp map multicast dynamic
ip nhrp network-id 65000
ip nhrp holdtime 300
ip nhrp redirect
tunnel source Ethernet0/0
tunnel mode gre multipoint
!
interface Ethernet0/0
description internet.e0/0
ip address 172.31.0.2 255.255.255.0
!
interface Ethernet0/3
description service.e0/0
ip address 10.100.200.253 255.255.255.240
standby 1 ip 10.100.200.252
standby 1 priority 110
standby 1 preempt delay reload 60
standby 1 name HSRP
!
router eigrp 65000
network 10.100.200.176 0.0.0.15
network 10.100.255.0 0.0.0.255
!
ip route 0.0.0.0 0.0.0.0 172.31.0.1
!
Hub2:
!
interface Tunnel0
bandwidth 800000
ip address 10.100.255.254 255.255.255.0
no ip redirects
ip mtu 1400
no ip next-hop-self eigrp 65000
no ip split-horizon eigrp 65000
ip nhrp map multicast dynamic
ip nhrp map multicast 172.31.0.2
ip nhrp map 10.100.255.253 172.31.0.2
ip nhrp network-id 65000
ip nhrp holdtime 300
ip nhrp nhs 10.100.255.253
ip nhrp shortcut
ip nhrp redirect
tunnel source Ethernet0/0
tunnel mode gre multipoint
!
interface Ethernet0/0
description internet.e0/1
ip address 172.31.0.3 255.255.255.0
!
interface Ethernet0/3
description service.e0/1
ip address 10.100.200.254 255.255.255.240
standby 1 ip 10.100.200.252
standby 1 preempt delay reload 60
standby 1 name HSRP
!
router eigrp 65000
network 10.100.200.240 0.0.0.15
network 10.100.255.0 0.0.0.255
!
ip route 0.0.0.0 0.0.0.0 172.31.0.1
!
spok1 (прямой интернет):
!
interface Loopback0
ip address 10.100.200.5 255.255.255.252
!
interface Tunnel0
bandwidth 100000
ip address 10.100.255.1 255.255.255.0
no ip redirects
ip mtu 1400
ip nhrp map 10.100.255.253 172.31.0.2
ip nhrp map 10.100.255.254 172.31.0.3
ip nhrp map multicast 172.31.0.2
ip nhrp map multicast 172.31.0.3
ip nhrp network-id 65000
ip nhrp holdtime 300
ip nhrp nhs 10.100.255.253
ip nhrp nhs 10.100.255.254
ip nhrp shortcut
tunnel source Ethernet0/0
tunnel mode gre multipoint
!
interface Ethernet0/0
description internet.e1/0
ip address 172.31.1.2 255.255.255.0
!
router eigrp 65000
network 10.100.200.4 0.0.0.3
network 10.100.255.0 0.0.0.255
!
ip route 0.0.0.0 0.0.0.0 172.31.1.1
!
Spy2 похож на 1, отличаются только адреса. lo0 имеет 10.100.200.9/30
spok3 (за NAT):
!
interface Loopback0
ip address 10.100.200.13 255.255.255.252
!
interface Tunnel0
bandwidth 100000
ip address 10.100.255.3 255.255.255.0
no ip redirects
ip mtu 1400
ip nhrp map 10.100.255.253 172.31.0.2
ip nhrp map 10.100.255.254 172.31.0.3
ip nhrp map multicast 172.31.0.3
ip nhrp map multicast 172.31.0.2
ip nhrp network-id 65000
ip nhrp holdtime 300
ip nhrp nhs 10.100.255.253
ip nhrp nhs 10.100.255.254
ip nhrp shortcut
tunnel source Ethernet0/0
tunnel mode gre multipoint
!
interface Ethernet0/0
description spoke3-gw.e0/3
ip address 192.168.1.2 255.255.255.0
!
router eigrp 65000
network 10.100.200.12 0.0.0.3
network 10.100.255.0 0.0.0.255
!
ip route 0.0.0.0 0.0.0.0 192.168.1.1
!
spok3-gw (тот, который делает NAT для spok3):
!
interface Ethernet0/0
description internet.e1/2
ip address 172.31.3.2 255.255.255.0
ip nat outside
ip virtual-reassembly in
!
interface Ethernet0/3
description spoke3.e0/0
ip address 192.168.1.1 255.255.255.0
ip nat inside
ip virtual-reassembly in
!
ip nat inside source list 1 interface Ethernet0/0 overload
ip route 0.0.0.0 0.0.0.0 172.31.3.1
!
access-list 1 permit 192.168.1.0 0.0.0.255
!
Пара spok4 и spok4-gw аналогична, lo0 имеет 10.100.200.17/30. "серые" адреса такие же 192.168.1.0/24. Cisco явно заявляет, что это допустимый случай и должен работать.
Интернет имеет все эти адреса 172.31.{0,1,2,3,4}.1 и просто пересылает пакеты между.2-с и.0.3; Служба - это просто система, которая имеет адрес 10.100.200.241 и по умолчанию 10.100.200.252 (управляемый HSRP).
IPSEC не настроен. Я пытаюсь делать что-то постепенно, это невероятно, пытаться делать все правильно с первого выстрела.
Я провел тесты с такими командами, как "ping 10.100.200.13 источник 10.100.200.17" (от лучей от 3 до 4) и так далее.
Это, кажется, работает. Т.е. указанный пинг работает. Но захват пакетов по ссылке "internet.e1/3 - spok4-gw.e0/0" показал, что у нас по-прежнему есть прямые пакеты от лучей spok3-gw до лучей 4 и наоборот. "show ip nhrp" на spok3 и spok4 показывает именно это (преобразуется в "белый" адрес другого -gw). Проверка NAT "переводы ip nat" на -gw показала, что да, есть перевод GRE с spok3 на spok4-gw на spok3-gw (и аналогичный на spok4-gw). Именно так работает пинг. Мне просто повезло в этой лаборатории, что Cisco делает NAT, который делает это правильно.
В диком мире NAT коробки будут чем угодно. Я не могу требовать использования какого-то конкретного оборудования (это незаконно). Я только могу требовать, чтобы он делал NAT GRE для концентраторов и обратно правильно (что является минимальным для запуска DMVPN).
Если я заблокирую прямой трафик между spok3-gw и spok4-gw (в интернет-системе, установив запрещающие правила доступа с 172.31.4.2 по 172.31.3.2 и наоборот), я ожидаю, что система увидит это и перенаправит все значения между лучами 3 и говорил 4 через концентратор. Тем не менее, это не работает.
sh ip nhrp на spok3 на этот раз показывает, что он не может решить 10.100.200.17:
10.100.200.12/30 via 10.100.255.3
Tunnel0 created 00:00:39, expire 00:04:33
Type: dynamic, Flags: router unique local
NBMA address: 192.168.1.2
(no-socket)
10.100.200.17/32
Tunnel0 created 00:00:39, expire 00:02:25
Type: incomplete, Flags: negative
Cache hits: 2
10.100.255.3/32 via 10.100.255.3
Tunnel0 created 00:01:34, expire 00:04:20
Type: dynamic, Flags: router unique local
NBMA address: 192.168.1.2
(no-socket)
10.100.255.4/32 via 10.100.255.4
Tunnel0 created 00:00:39, expire 00:04:33
Type: dynamic, Flags: router implicit used nhop
NBMA address: 172.31.4.2
(Claimed NBMA address: 192.168.1.2)
10.100.255.253/32 via 10.100.255.253
Tunnel0 created 03:24:10, never expire
Type: static, Flags: used
NBMA address: 172.31.0.2
10.100.255.254/32 via 10.100.255.254
Tunnel0 created 03:24:10, never expire
Type: static, Flags: used
NBMA address: 172.31.0.3
Почему в этом случае он не направляет пакеты через концентратор? Этот путь все еще открыт.
1 ответ
Разговорный DMVPN считается DMVPN Фаза II. Разговорный проект считается DMVPN Фаза I.
Я предлагаю внести следующие изменения, чтобы изменить ваше поведение на DMVPN Phase I.
HUB1
interface Tunnel0
ip next-hop-self eigrp 65000
no ip nhrp redirect
Hub2
interface Tunnel0
ip next-hop-self eigrp 65000
no ip nhrp shortcut
no ip nhrp redirect
Spoke1
interface Tunnel0
no ip nhrp shortcut
Spoke2
interface Tunnel0
no ip nhrp shortcut
Spoke3
interface Tunnel0
no ip nhrp shortcut
Более подробную информацию о конфигурации, а также о проверке поведения можно найти здесь.