Difference between revisions of "Cisco DMVPN"
Helikopter (talk | contribs) m |
Helikopter (talk | contribs) |
||
Line 1: | Line 1: | ||
− | Dynamic Multipoint VPN är en skalbar VPN-teknik som kan bygga tunnlar dynamiskt. Tekniker som används är [[Cisco_GRE|mGRE]], NHRP, routingprotokoll, [[Cisco_CEF|CEF]] och [[Cisco_IPsec|IPsec]]. Det har bl.a. stöd för VRF, [[Cisco_Multicast|Multicast]], [[Cisco_QoS|QoS]] och load balancing. Det går köra IPv6 över tunnlar som | + | Dynamic Multipoint VPN är en skalbar VPN-teknik som kan bygga tunnlar dynamiskt. Målet är att tillhandahålla any-to-any kommunikation utan att behöva full-mesh av point-to-point tunnels. Tekniker som används är [[Cisco_GRE|mGRE]], NHRP, routingprotokoll, [[Cisco_CEF|CEF]] och [[Cisco_IPsec|IPsec]]. Det har bl.a. stöd för VRF, [[Cisco_Multicast|Multicast]], [[Cisco_QoS|QoS]] och load balancing. Det går köra IPv6 över tunnlar som byggs med IPv4, dvs private address = IPv6, NBMA address = IPv4. |
− | == | + | ===Topologies=== |
− | |||
− | |||
− | == | ||
'''Hub and spoke''' | '''Hub and spoke''' | ||
* single hub single dmvpn | * single hub single dmvpn | ||
Line 15: | Line 12: | ||
* hierarchical | * hierarchical | ||
− | =Fas 1= | + | ==NHRP== |
− | Hub and Spoke | + | Next Hop Resolution Protocol (RFC 2332). NHRP-processen på hubben agerar server och håller databasen med de externa IP-adresserna som alla spokes har. Varje spoke registrerar sin IP som en klient till hubben. Behöver en spoke skicka paket till något bakom en annan spoke frågar den hubben om den andres externa IP-adress så den kan bygga en tunnel (förslagsvis med IPsec) direkt. För detta krävs alltså inget routingprotokoll utan det sköts av NHRP. Man kan se det som ARP fast det mappar IP till NBMA IP istället för IP till MAC. |
+ | |||
+ | NHRP har stöd för autentisering, detta konfigureras under tunnel-interfacet. | ||
+ | ip nhrp authentication NHRP_AUTH_STRING | ||
+ | |||
+ | <div class="mw-collapsible mw-collapsed" style="width:310px"> | ||
+ | Registration request: | ||
+ | <div class="mw-collapsible-content"> | ||
+ | [[File:Cisco_NHRP_Registration_Request.png]] | ||
+ | </div> | ||
+ | </div> | ||
+ | <div class="mw-collapsible mw-collapsed" style="width:310px"> | ||
+ | Registration reply: | ||
+ | <div class="mw-collapsible-content"> | ||
+ | [[File:Cisco_NHRP_Registration_Reply.png]] | ||
+ | </div> | ||
+ | </div> | ||
+ | <div class="mw-collapsible mw-collapsed" style="width:310px"> | ||
+ | Resolution request: | ||
+ | <div class="mw-collapsible-content"> | ||
+ | [[File:Cisco_NHRP_Resolution_Request.png]] | ||
+ | </div> | ||
+ | </div> | ||
+ | |||
+ | =Konfiguration= | ||
+ | DMVPN kan fungera på olika sätt och detta kallas olika faser. | ||
+ | |||
+ | ==Fas 1== | ||
+ | Hub and Spoke: Med Fas 1 används mGRE på hubb och p2p GRE på spokes. Inga tunnlar sätts upp dynamiskt och all trafik går igenom hubben, enda fördelen är simplare konfiguration. | ||
− | '''Static mapping''' | + | '''Static mapping''' <br/> |
+ | Hub | ||
interface Tunnel0 | interface Tunnel0 | ||
ip nhrp map multicast 172.16.15.X | ip nhrp map multicast 172.16.15.X | ||
Line 27: | Line 53: | ||
tunnel destination 172.16.15.2 | tunnel destination 172.16.15.2 | ||
− | '''Dynamic mapping''' | + | '''Dynamic mapping''' <br/> |
+ | Hub | ||
interface Tunnel0 | interface Tunnel0 | ||
ip nhrp map multicast dynamic | ip nhrp map multicast dynamic | ||
Line 36: | Line 63: | ||
tunnel destination 172.16.15.2 | tunnel destination 172.16.15.2 | ||
− | =Fas 2= | + | Verify |
+ | show dmvpn | ||
+ | |||
+ | ==Fas 2== | ||
Hub and Spoke with Spoke-to-Spoke tunnels: Routingprotokollet på spokes lär sig prefix direkt av varandra på tunneln. Forwarding görs spoke-to-spoke, man använder IGP istället för NHRP. Det finns scenarion då CEF kan behövas stängas av på spokes. Med Fas 2 används mGRE. Fas 2 går också att köra som static och då nhrp-mappas alla grannskap manuellt. | Hub and Spoke with Spoke-to-Spoke tunnels: Routingprotokollet på spokes lär sig prefix direkt av varandra på tunneln. Forwarding görs spoke-to-spoke, man använder IGP istället för NHRP. Det finns scenarion då CEF kan behövas stängas av på spokes. Med Fas 2 används mGRE. Fas 2 går också att köra som static och då nhrp-mappas alla grannskap manuellt. | ||
Line 63: | Line 93: | ||
''Kolla ip nhrp registration timeout ifall recovery tar lång tid efter en clear'' | ''Kolla ip nhrp registration timeout ifall recovery tar lång tid efter en clear'' | ||
− | =Fas 3= | + | ==Fas 3== |
− | Scalable Infrastructure: Routingprotokoll på spokes pratar med hubben för att lära sig prefix samt ha som next-hop men NHRP kickar in och redirectar trafiken direkt mellan spokes. Med Fas 3 används mGRE. | + | Scalable Infrastructure: Routingprotokoll på spokes pratar med hubben för att lära sig prefix samt ha som next-hop men NHRP kickar in och redirectar trafiken direkt mellan spokes. Med Fas 3 används mGRE. Det är mest skalbart och CEF behöver aldrig stängas av tack vare NHRP Shortcut eftersom CEF entry skrivs om efter redirect message. <br/> |
Hub: ''ip nhrp redirect'' <br/> | Hub: ''ip nhrp redirect'' <br/> | ||
Spoke: ''ip nhrp shortcut'' | Spoke: ''ip nhrp shortcut'' | ||
Line 93: | Line 123: | ||
clear ip nhrp | clear ip nhrp | ||
''Kolla ip nhrp registration timeout ifall recovery tar lång tid efter en clear'' | ''Kolla ip nhrp registration timeout ifall recovery tar lång tid efter en clear'' | ||
+ | |||
+ | =IPsec= | ||
+ | Vill man skydda sin trafik kan man kryptera all tunneltrafik. Se även [[Cisco_IPsec|Cisco IPsec]]. | ||
+ | crypto isakmp policy 10 | ||
+ | encryption aes 256 | ||
+ | authentication pre-share | ||
+ | hash sha512 | ||
+ | group 14 | ||
+ | |||
+ | crypto isakmp key SECRET address 0.0.0.0 0.0.0.0 | ||
+ | |||
+ | crypto ipsec transform-set AES256_SHA512 esp-sha512-hmac esp-aes 256 | ||
+ | mode transport | ||
+ | |||
+ | crypto ipsec profile DMVPN | ||
+ | set transform-set AES256_SHA512 | ||
+ | |||
+ | interface Tunnel0 | ||
+ | tunnel protection ipsec profile DMVPN | ||
+ | |||
+ | Verify | ||
+ | show crypto isakmp sa | ||
+ | show crypto ipsec sa | ||
+ | show crypto socket | ||
+ | show crypto map | ||
=Routingprotokoll= | =Routingprotokoll= | ||
===EIGRP=== | ===EIGRP=== | ||
− | Med Fas 1 kan man antingen stänga av split-horizon eller skicka en default route | + | Med Fas 1 kan man antingen stänga av split-horizon eller skicka en default route från hub. |
Med EIGRP i Fas 2 måste man stänga av split-horizon och next-hop-self på tunnel-interfacet för att uppdateringar och routing mellan spokes ska funka. | Med EIGRP i Fas 2 måste man stänga av split-horizon och next-hop-self på tunnel-interfacet för att uppdateringar och routing mellan spokes ska funka. | ||
Line 108: | Line 163: | ||
interface Tunnel0 | interface Tunnel0 | ||
ip ospf network broadcast | ip ospf network broadcast | ||
+ | ip ospf priority 255 | ||
Spoke, ska inte vara med i DR-election. | Spoke, ska inte vara med i DR-election. | ||
interface Tunnel0 | interface Tunnel0 | ||
ip ospf network broadcast | ip ospf network broadcast | ||
ip ospf prio 0 | ip ospf prio 0 | ||
− | Det går även att använda point-to-multipoint på hubbens tunnel-interface och p2p på spoksen. Alternativt ''ip ospf network non-broadcast'' på alla. | + | Det går även att använda point-to-multipoint på hubbens tunnel-interface och p2p på spoksen bara man ser till att timers matchar. Alternativt ''ip ospf network non-broadcast'' på alla. |
===BGP=== | ===BGP=== | ||
Line 121: | Line 177: | ||
===RIP=== | ===RIP=== | ||
− | Med Fas 1 och RIP behöver split horizon stängas av. | + | Med Fas 1 och RIP behöver split horizon stängas av på hubb. |
− | = | + | =Others= |
− | + | ===Monitoring=== | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | =Monitoring= | ||
Man kan övervaka DMVPN med [[Cisco_SNMP|SNMP]]. | Man kan övervaka DMVPN med [[Cisco_SNMP|SNMP]]. | ||
snmp-server enable traps nhrp nhs | snmp-server enable traps nhrp nhs | ||
Line 153: | Line 189: | ||
if-state nhrp | if-state nhrp | ||
− | ''' | + | ===NAT=== |
− | Man kan köra | + | Man kan köra all sorts nat på spokes men på hubb fungerar endast static nat. Om en spoke befinner sig bakom dynamisk nat, dvs att dennes NBMA-adress kan ändras så kan man stänga av unique flag i NHRP-registreringen. Detta görs med '''ip nhrp registration no-unique''' på spoke vilket gör att den registrerade NBMA-adressen får ändras i efterhand vilket inte är fallet default. Befinner sig två spokes bakom PAT så kommer de ej att kunna upprätta någon spoke-to-spoke tunnel mellan varandra. Se även [[Cisco_NAT|Cisco NAT]]. |
+ | |||
+ | ===VRF=== | ||
+ | Man kan bygga det precis som man vill routingmässigt genom att separera underlay och overlay i olika VRF:er (detta kallas också front door VRF). Detta möjliggör t.ex. att ha default route över DMVPN utan att få problem med recursive routing. I övrigt görs konfiguration som vanligt. Se även [[Cisco_MPLS#VRF_Lite|VRF Lite]]. | ||
+ | |||
+ | vrf definition UNDERLAY | ||
+ | rd 100:1 | ||
+ | address-family ipv4 | ||
+ | exit | ||
+ | |||
+ | crypto keyring VRF_AWARE_PSK vrf UNDERLAY | ||
+ | pre-shared-key address 0.0.0.0 0.0.0.0 key DMVPN | ||
+ | |||
+ | interface Tunnel0 | ||
+ | tunnel vrf UNDERLAY | ||
+ | |||
+ | ===MPLS=== | ||
+ | Man kan köra [[Cisco_MPLS|MPLS]] över DMVPN. | ||
mpls ip | mpls ip | ||
mpls ldp router-id loopback0 | mpls ldp router-id loopback0 | ||
+ | |||
interface tunnel0 | interface tunnel0 | ||
mpls ip | mpls ip | ||
− | |||
− | |||
− | |||
[[Category:Cisco]] | [[Category:Cisco]] |
Revision as of 10:52, 17 October 2016
Dynamic Multipoint VPN är en skalbar VPN-teknik som kan bygga tunnlar dynamiskt. Målet är att tillhandahålla any-to-any kommunikation utan att behöva full-mesh av point-to-point tunnels. Tekniker som används är mGRE, NHRP, routingprotokoll, CEF och IPsec. Det har bl.a. stöd för VRF, Multicast, QoS och load balancing. Det går köra IPv6 över tunnlar som byggs med IPv4, dvs private address = IPv6, NBMA address = IPv4.
Contents
Topologies
Hub and spoke
- single hub single dmvpn
- dual hub dual dmvpn
- server load balancing
Dynamic Mesh
- dual hub single dmvpn
- multihub single dmvpn
- hierarchical
NHRP
Next Hop Resolution Protocol (RFC 2332). NHRP-processen på hubben agerar server och håller databasen med de externa IP-adresserna som alla spokes har. Varje spoke registrerar sin IP som en klient till hubben. Behöver en spoke skicka paket till något bakom en annan spoke frågar den hubben om den andres externa IP-adress så den kan bygga en tunnel (förslagsvis med IPsec) direkt. För detta krävs alltså inget routingprotokoll utan det sköts av NHRP. Man kan se det som ARP fast det mappar IP till NBMA IP istället för IP till MAC.
NHRP har stöd för autentisering, detta konfigureras under tunnel-interfacet.
ip nhrp authentication NHRP_AUTH_STRING
Konfiguration
DMVPN kan fungera på olika sätt och detta kallas olika faser.
Fas 1
Hub and Spoke: Med Fas 1 används mGRE på hubb och p2p GRE på spokes. Inga tunnlar sätts upp dynamiskt och all trafik går igenom hubben, enda fördelen är simplare konfiguration.
Static mapping
Hub
interface Tunnel0 ip nhrp map multicast 172.16.15.X ip nhrp map 192.168.0.X 172.16.15.X
Spoke
interface Tunnel0 ip nhrp map 192.168.0.X 172.16.15.2 tunnel destination 172.16.15.2
Dynamic mapping
Hub
interface Tunnel0 ip nhrp map multicast dynamic
Spoke
interface Tunnel0 ip nhrp map 192.168.0.1 172.16.15.2 ip nhrp nhs 192.168.0.1 tunnel destination 172.16.15.2
Verify
show dmvpn
Fas 2
Hub and Spoke with Spoke-to-Spoke tunnels: Routingprotokollet på spokes lär sig prefix direkt av varandra på tunneln. Forwarding görs spoke-to-spoke, man använder IGP istället för NHRP. Det finns scenarion då CEF kan behövas stängas av på spokes. Med Fas 2 används mGRE. Fas 2 går också att köra som static och då nhrp-mappas alla grannskap manuellt.
Hub
interface Tunnel0 ip address 192.168.0.1 255.255.255.0 ip nhrp map multicast dynamic ip nhrp network-id 1 tunnel source 172.16.15.2 tunnel mode gre multipoint
Spoke
interface Tunnel0 ip address 192.168.0.2 255.255.255.0 ip nhrp map 192.168.0.1 172.16.15.2 ip nhrp map multicast 172.16.15.2 ip nhrp network-id 1 ip nhrp nhs 192.168.0.1 tunnel source 10.10.10.10 tunnel mode gre multipoint
Verify
show dmvpn show ip nhrp clear ip nhrp
Kolla ip nhrp registration timeout ifall recovery tar lång tid efter en clear
Fas 3
Scalable Infrastructure: Routingprotokoll på spokes pratar med hubben för att lära sig prefix samt ha som next-hop men NHRP kickar in och redirectar trafiken direkt mellan spokes. Med Fas 3 används mGRE. Det är mest skalbart och CEF behöver aldrig stängas av tack vare NHRP Shortcut eftersom CEF entry skrivs om efter redirect message.
Hub: ip nhrp redirect
Spoke: ip nhrp shortcut
Hub
interface Tunnel0 ip address 192.168.0.1 255.255.255.0 ip nhrp map multicast dynamic ip nhrp network-id 1 ip nhrp redirect tunnel source 172.16.15.2 tunnel mode gre multipoint
Spoke
interface Tunnel0 ip address 192.168.0.2 255.255.255.0 ip nhrp map 192.168.0.1 172.16.15.2 ip nhrp map multicast 172.16.15.2 ip nhrp network-id 1 ip nhrp nhs 192.168.0.1 ip nhrp shortcut tunnel source 10.10.10.10 tunnel mode gre multipoint
Verify
show dmvpn show ip nhrp clear ip nhrp
Kolla ip nhrp registration timeout ifall recovery tar lång tid efter en clear
IPsec
Vill man skydda sin trafik kan man kryptera all tunneltrafik. Se även Cisco IPsec.
crypto isakmp policy 10 encryption aes 256 authentication pre-share hash sha512 group 14 crypto isakmp key SECRET address 0.0.0.0 0.0.0.0 crypto ipsec transform-set AES256_SHA512 esp-sha512-hmac esp-aes 256 mode transport crypto ipsec profile DMVPN set transform-set AES256_SHA512 interface Tunnel0 tunnel protection ipsec profile DMVPN
Verify
show crypto isakmp sa show crypto ipsec sa show crypto socket show crypto map
Routingprotokoll
EIGRP
Med Fas 1 kan man antingen stänga av split-horizon eller skicka en default route från hub.
Med EIGRP i Fas 2 måste man stänga av split-horizon och next-hop-self på tunnel-interfacet för att uppdateringar och routing mellan spokes ska funka.
interface Tunnel0 no ip next-hop-self eigrp 100 no ip split-horizon eigrp 100
Med fas 3 kommer endast det första paketet att gå via hub tack vare nhrp shortcut.
OSPF
Hub
interface Tunnel0 ip ospf network broadcast ip ospf priority 255
Spoke, ska inte vara med i DR-election.
interface Tunnel0 ip ospf network broadcast ip ospf prio 0
Det går även att använda point-to-multipoint på hubbens tunnel-interface och p2p på spoksen bara man ser till att timers matchar. Alternativt ip ospf network non-broadcast på alla.
BGP
Med Fas 1 och BGP måste next-hop-self användas på alla grannskap.
Fas 2 och BGP-konfiguration är som vanligt men för eBGP mellan spokes måste multihop användas.
neighbor 2.2.2.2 ebgp-multihop 2
RIP
Med Fas 1 och RIP behöver split horizon stängas av på hubb.
Others
Monitoring
Man kan övervaka DMVPN med SNMP.
snmp-server enable traps nhrp nhs snmp-server enable traps nhrp nhc snmp-server enable traps nhrp nhp
När man använder if-state nhrp på en spoke kan den kolla om NHRP-registreringen fungerar och på så sätt veta om interfacet ska vara up eller ej. Detta fungerar ej på hub interface för det gör ingen registrering utan är alltid up.
interface tun0 if-state nhrp
NAT
Man kan köra all sorts nat på spokes men på hubb fungerar endast static nat. Om en spoke befinner sig bakom dynamisk nat, dvs att dennes NBMA-adress kan ändras så kan man stänga av unique flag i NHRP-registreringen. Detta görs med ip nhrp registration no-unique på spoke vilket gör att den registrerade NBMA-adressen får ändras i efterhand vilket inte är fallet default. Befinner sig två spokes bakom PAT så kommer de ej att kunna upprätta någon spoke-to-spoke tunnel mellan varandra. Se även Cisco NAT.
VRF
Man kan bygga det precis som man vill routingmässigt genom att separera underlay och overlay i olika VRF:er (detta kallas också front door VRF). Detta möjliggör t.ex. att ha default route över DMVPN utan att få problem med recursive routing. I övrigt görs konfiguration som vanligt. Se även VRF Lite.
vrf definition UNDERLAY rd 100:1 address-family ipv4 exit crypto keyring VRF_AWARE_PSK vrf UNDERLAY pre-shared-key address 0.0.0.0 0.0.0.0 key DMVPN interface Tunnel0 tunnel vrf UNDERLAY
MPLS
Man kan köra MPLS över DMVPN.
mpls ip mpls ldp router-id loopback0 interface tunnel0 mpls ip