Difference between revisions of "Cisco GRE"

From HackerNet
Jump to: navigation, search
Line 1: Line 1:
Generic Routing Encapsulation (RFC 2784) är ett tunnlingsprotokoll utvecklat av Cisco, det är IP-protokoll 47. Enkapsulering görs genom att sätta på en 4 byte GRE-header på L3-paketen och sedan sätts en ny IPv4/IPv6-header på det så att det kan routas till andra änden av tunneln och dekapsuleras. Diverse protokoll kan tunnlas, t.ex. [[Cisco_MPLS|MPLS]] och [[Cisco_IPsec|IPsec]]. Eftersom det är enkapsulering påverkas MTU så det bör man hålla koll på. GRE kan även köras multipoint, t.ex. i [[Cisco_DMVPN|DMVPN]].  
+
Generic Routing Encapsulation (RFC 2784) är ett tunnlingsprotokoll utvecklat av Cisco, det är IP-protokoll 47. Enkapsulering görs genom att sätta på en 4 byte GRE-header på L3-paketen och sedan sätts en ny IPv4/IPv6-header på det så att det kan routas till andra änden av tunneln och dekapsuleras. Diverse protokoll kan tunnlas, t.ex. [[Cisco_MPLS|MPLS]] och [[Cisco_IPsec|IPsec]]. Eftersom det är enkapsulering påverkas MTU så det bör man hålla koll på. Däremot om man ändrar tunnel mode till "IPIP" så reducerar man overheaden litegrann för läggs det endast på en header istället för två. GRE kan även köras multipoint, t.ex. i [[Cisco_DMVPN|DMVPN]].  
  
 
=Konfiguration=
 
=Konfiguration=
Line 9: Line 9:
 
   tunnel source local-ip
 
   tunnel source local-ip
 
   tunnel destination R2-ip
 
   tunnel destination R2-ip
 +
Väljer man ett interface som source används primary IP på det interfacet.
  
 
'''R2'''
 
'''R2'''
Line 22: Line 23:
 
  show interface | i Tunnel protocol
 
  show interface | i Tunnel protocol
  
'''Keepalive''' <br/>
+
===Keepalive===
 
Eftersom en GRE-tunnel går över andra enheter och länkar måste en keepalive skickas hela vägen mellan tunnel-interfacen. Detta är ej påslaget default.
 
Eftersom en GRE-tunnel går över andra enheter och länkar måste en keepalive skickas hela vägen mellan tunnel-interfacen. Detta är ej påslaget default.
 
  interface Tunnel0
 
  interface Tunnel0
Line 29: Line 30:
 
  show interface tunnel 0 | i Keepalive
 
  show interface tunnel 0 | i Keepalive
  
'''VRF''' <br/>
+
===VRF===
Man kan ha tunnel-interface i en VRF medans tunneln själv terminerar i en annan VRF.
+
Man kan ha tunnel-interfacet i en VRF medans tunneln själv terminerar i en annan VRF.
 
  interface Tunnel0
 
  interface Tunnel0
 
   vrf forwarding VRF-1
 
   vrf forwarding VRF-1
Line 38: Line 39:
 
   tunnel destination remote-ip
 
   tunnel destination remote-ip
  
'''Recursive Routing''' <br/>
+
===Recursive Routing===
Om det är problem med Recursive Routing, antingen disallow tunnel source att annonseras med hjälp av en prefix-lista eller lägg statiska routes med lägre AD.
+
Tunnel Source och Destination bör alltid läras utanför tunneln. Om det är problem med Recursive Routing kan man antingen disallow tunnel source att annonseras med hjälp av en prefix-lista eller lägga statiska routes med lägre AD.  
 +
''Tunnel0 temporarily disabled due to recursive routing''
  
==IPv6==
+
===Loopbacks===
 +
Man kan koppla ihop loopback-interface med hjälp av GRE genom att sätta tunnelinterfacen som unnumbered.
 +
interface Tunnel0
 +
  ip unnumbered Loopback0
 +
 
 +
===QoS===
 +
När paket enkapsuleras och krypteras kan inte QoS-funktioner se original-headern och klassificera det korrekt. Med QoS för VPN:er kan paket klassificeras innan de tunnlas. Se även [[Cisco_QoS|Cisco QoS]].
 +
 
 +
Enable QoS for VPNs feature:
 +
interface Tunnel0
 +
  qos pre-classify
 +
 
 +
=IPv6=
 
IPv6-paket går att tunnla över ett IPv4-nätverk med hjälp av flera olika tekniker, IPv4 end-to-end reachability är det som krävs.
 
IPv6-paket går att tunnla över ett IPv4-nätverk med hjälp av flera olika tekniker, IPv4 end-to-end reachability är det som krävs.
  

Revision as of 14:59, 9 July 2016

Generic Routing Encapsulation (RFC 2784) är ett tunnlingsprotokoll utvecklat av Cisco, det är IP-protokoll 47. Enkapsulering görs genom att sätta på en 4 byte GRE-header på L3-paketen och sedan sätts en ny IPv4/IPv6-header på det så att det kan routas till andra änden av tunneln och dekapsuleras. Diverse protokoll kan tunnlas, t.ex. MPLS och IPsec. Eftersom det är enkapsulering påverkas MTU så det bör man hålla koll på. Däremot om man ändrar tunnel mode till "IPIP" så reducerar man overheaden litegrann för läggs det endast på en header istället för två. GRE kan även köras multipoint, t.ex. i DMVPN.

Konfiguration

R1

interface Tunnel0
 ip address 10.0.0.1 255.255.255.252
 ip mtu 1400
 ip tcp adjust-mss 1360
 tunnel source local-ip
 tunnel destination R2-ip

Väljer man ett interface som source används primary IP på det interfacet.

R2

interface Tunnel0
 ip address 10.0.0.2 255.255.255.252
 ip mtu 1400
 ip tcp adjust-mss 1360
 tunnel source local-ip
 tunnel destination R1-ip

Verify

show tunnel endpoints
show interface | i Tunnel protocol

Keepalive

Eftersom en GRE-tunnel går över andra enheter och länkar måste en keepalive skickas hela vägen mellan tunnel-interfacen. Detta är ej påslaget default.

interface Tunnel0
 keepalive <interval> <retries>

Standardvärden för keepalive är 10 sekunders interval med 3 retries.

show interface tunnel 0 | i Keepalive

VRF

Man kan ha tunnel-interfacet i en VRF medans tunneln själv terminerar i en annan VRF.

interface Tunnel0
 vrf forwarding VRF-1
 ip address 10.0.0.1 255.255.255.252
 tunnel vrf VRF-2
 tunnel source local-ip
 tunnel destination remote-ip

Recursive Routing

Tunnel Source och Destination bör alltid läras utanför tunneln. Om det är problem med Recursive Routing kan man antingen disallow tunnel source att annonseras med hjälp av en prefix-lista eller lägga statiska routes med lägre AD.

Tunnel0 temporarily disabled due to recursive routing

Loopbacks

Man kan koppla ihop loopback-interface med hjälp av GRE genom att sätta tunnelinterfacen som unnumbered.

interface Tunnel0
 ip unnumbered Loopback0

QoS

När paket enkapsuleras och krypteras kan inte QoS-funktioner se original-headern och klassificera det korrekt. Med QoS för VPN:er kan paket klassificeras innan de tunnlas. Se även Cisco QoS.

Enable QoS for VPNs feature:

interface Tunnel0
 qos pre-classify

IPv6

IPv6-paket går att tunnla över ett IPv4-nätverk med hjälp av flera olika tekniker, IPv4 end-to-end reachability är det som krävs.

Manual tunnel

interface Tunnel0
 ipv6 address 10::1/64
 tunnel source loopback0
 tunnel destination 10.0.0.20
 tunnel mode ipv6ip

Automatic 6to4
Point-to-multipoint natively. Destination anges inte manuellt utan det tas ut genom att kombinera IPv6 prefix och 6to4 border routerns IPv4-adress, 2002:<32-bitar ipv4>::/48.

interface Tunnel0
 tunnel mode ipv6ip 6to4
ipv6 route 2002::/16 tunnel 0

ISATAP

Intra-Site Automatic Tunnel Addressing Protocol (RFC 5214) är framtaget för möjliggöra kommunikation mellan IPv4-only hosts och IPv6-enheter. Klienter som vill använda ISATAP frågar sin DNS-server om a record för "ISATAP", som bör peka på ISATAP-routern. Hosten tunnlar sedan ett router discovery packet (med hjälp av IPv6-in-IPv4 encapsulation) och skickar det till ISATAP-routern. Routern svarar med en RA som innehåller prefixet som ska användas och då kan klienten sätta ihop sin egna gångbara IPv6-adress utifrån ISATAP identifier (0000:5efe) och sin egen IPv4-adress.

ISATAP är också point-to-multipoint natively och man anger ej destination address manuellt. Adress måste tas med hjälp av EUI-64.

interface Tunnel0
 ip address 2001:0:0:500::/64 eui-64
 no ipv6 nd suppress-ra
 tunnel mode ipv6ip isatap

Ett alternativ till ISATAP är "IPv6 Automatic IPv4-compatible" (tunnel mode ipv6ip automatic) men det är inte rekommenderat att köra.