Information About IP Tunnels
IP tunnels can encapsulate a same-layer or higher layer protocol and transport the result over IP through a tunnel created between two devices.
This section includes the following topics:
IP Tunnel Overview
IP tunnels consists of the following three main components:
- Passenger protocol—The protocol that needs to be encapsulated. IPv4 is an example of a passenger protocol.
- Carrier protocol—The protocol that is used to encapsulate the passenger protocol. Cisco NX-OS supports GRE as a carrier protocol.
- Transport protocol—The protocol that is used to carry the encapsulated protocol. IPv4 is an example of a transport protocol.
An IP tunnel takes a passenger protocol, such as IPv4, and encapsulates that protocol within a carrier protocol, such as GRE. The device then transmits this carrier protocol over a transport protocol, such as IPv4.
You configure a tunnel interface with matching characteristics on each end of the tunnel.
For more information, see the “Configuring IP Tunnels” section.
You must enable the tunnel feature before you can see configure it. Beginning in Cisco NX-OS Release 4.2, the system automatically takes a checkpoint prior to disabling the feature, and you can roll back to this checkpoint. See the Cisco Nexus 7000 Series NX-OS System Management Configuration Guide, Release 5.x, for information on roll backs and checkpoints.
Beginning with Cisco NX-OS Release 4.2, a tunnel configured in one VDC is isolated from a tunnel with the same number configured in another VDC. For example, Tunnel 0 in VDC 1 is independent of tunnel 0 in VDC 2.
Beginning with Cisco NX-OS Release 4.2, your tunnel source IP address and destination IP address should be in the same VRF.
GRE Tunnels
Note Beginning with Cisco NX-OS Release 5.1(1), the software supports multicasting over GRE tunnels.
You can use generic routing encapsulation (GRE) as the carrier protocol for a variety of passenger protocols.
Figure 8-1 shows the IP tunnel components for a GRE tunnel. The original passenger protocol packet becomes the GRE payload and the device adds a GRE header to the packet. The device then adds the transport protocol header to the packet and transmits it.
Figure 8-1 GRE PDU
Path MTU Discovery
Path maximum transmission unit (MTU) discovery (PMTUD) prevents fragmentation in the path between two endpoints by dynamically determining the lowest MTU along the path from the packet's source to its destination. PMTUD reduces the send MTU value for the connection if the interface receives information that the packet would require fragmentation.
When you enable PMTUD, the interface sets the Don't Fragment (DF) bit on all packets that traverse the tunnel. If a packet that enters the tunnel encounters a link with a smaller MTU than the MTU value for the packet, the remote link drops the packet and sends an ICMP message back to the sender of the packet. This message indicates that fragmentation was required (but not permitted) and provides the MTU of the link that dropped the packet.
Note PMTUD on a tunnel interface requires that the tunnel endpoint can receive ICMP messages generated by devices in the path of the tunnel. Check that ICMP messages can be received before using PMTUD over firewall connections.
Virtualization Support
You can configure IP tunnels only in the default virtual device context (VDC) and the default Virtual Routing and Forwarding (VRF) instance.
Beginning with Cisco NX-OS Release 4.2, you can configure a tunnel interface as a member of a Virtual Routing and Forwarding (VRF) instance and as a member of any VDC. By default, Cisco NX-OS places you in the default VDC and default VRF unless you specifically configure another VDC and VRF. A tunnel configured in one VDC is isolated from a tunnel with the same number configured in another VDC. For example, Tunnel 0 in VDC 1 is independent of tunnel 0 in VDC 2.
Your tunnel source IP address and destination IP address should be in the same VRF. You can also configure what VRF to use to look up the tunnel destination. This VRF should match the VRF of the tunnel source IP address.
See the Cisco Nexus 7000 Series NX-OS Virtual Device Context Configuration Guide, Release 5.x, for information about VDCs and see the Cisco Nexus 7000 Series NX-OS Unicast Routing Configuration Guide, Release 5.x, for information about VRFs.
High Availability
IP tunnels support stateful restarts. A stateful restart occurs on a supervisor switchover. After the switchover, Cisco NX-OS applies the runtime configuration after the switchover.
Configuring IP Tunnels
This section includes the following topics:
Note If you are familiar with the Cisco IOS CLI, be aware that the Cisco NX-OS commands for this feature might differ from the Cisco IOS commands that you would use.
Enabling Tunneling
You must enable the tunneling feature before you can configure any IP tunnels.
SUMMARY STEPS
1. configure terminal
2. feature tunnel
3. exit
4. show feature
5. copy running-config startup-config
DETAILED STEPS
|
|
|
Step 1 |
configure terminal Example: switch# configure terminal switch(config)# |
Enters global configuration mode. |
Step 2 |
feature tunnel Example: switch(config)# feature tunnel switch(config-if)# |
Allows the creation of a new tunnel interface. To disable the tunnel interface feature, use the no form of this command. |
Step 3 |
exit Example: switch(config-if)# exit switch(config)# |
Exits the interface mode and returns to the configuration mode. |
Step 4 |
show feature Example : switch(config-if)# show feature |
(Optional) Displays information about the features enabled on the device. |
Step 5 |
copy running-config startup-config Example: switch(config-if)# copy running-config startup-config |
(Optional) Saves this configuration change. |
Creating a Tunnel Interface
You can create a tunnel interface and then configure this logical interface for your IP tunnel.
BEFORE YOU BEGIN
Beginning with Cisco NX-OS Release 5.2(5) and for later 5.2(x) releases, you can configure the tunnel source and the tunnel destination in different VRFs. Ensure that you have enabled the tunneling feature.
SUMMARY STEPS
1. configure terminal
2. interface tunnel number
3. tunnel source { ip-address | interface-name }
4. tunnel destination { ip-address | host-name }
5. tunnel use-vrf vrf-name
6. show interfaces tunnel number
7. copy running-config startup-config
DETAILED STEPS
|
|
|
Step 1 |
configure terminal Example: switch# configure terminal switch(config)# |
Enters configuration mode. |
Step 2 |
interface tunnel number Example: switch(config)# interface tunnel 1 switch(config-if)# |
Creates a new tunnel interface. |
Step 3 |
tunnel source { ip-address | interface-name } Example: switch(config-if)# tunnel source ethernet 1/2 |
Configures the source address for this IP tunnel. |
Step 4 |
tunnel destination { ip-address | host-name } Example: switch(config-if)# tunnel destination 192.0.2.1 |
Configures the destination address for this IP tunnel. |
Step 5 |
tunnel use-vrf vrf-name Example: switch(config-if)# tunnel use-vrf blue |
(Optional) Uses the configured VRF to look up the tunnel IP destination address. |
Step 6 |
show interfaces tunnel number Example : switch(config-if)# show interfaces tunnel 1 |
(Optional) Displays the tunnel interface statistics. |
Step 7 |
copy running-config startup-config Example: switch(config-if)# copy running-config startup-config |
(Optional) Saves this configuration change. |
Use the no interface tunnel command to remove the tunnel interface and all associated configuration.
|
|
no interface tunnel number Example: switch(config)# no interface tunnel 1 |
Deletes the tunnel interface and the associated configuration. |
You can configure the following optional parameters to tune the tunnel in interface configuration mode:
|
|
description string Example: switch(config-if)# description GRE tunnel |
Configures a description for the tunnel. |
mtu value Example: switch(config-if)# mtu 1400 |
Sets the MTU of IP packets sent on an interface. |
tunnel ttl value Example: switch(config-if)# tunnel ttl 100 |
Sets the tunnel time-to-live value. The range is from 1 to 255. |
This example shows how to create a tunnel interface:
switch# configure terminal
switch(config)# i nterface tunnel 1
switch(config-if)# tunnel source ethernet 1/2
switch(config-if)# tunnel destination 192.0.2.1
switch(config-if)# copy running-config startup-config
Configuring a GRE Tunnel
You can set a tunnel interface to GRE tunnel mode.
BEFORE YOU BEGIN
Ensure that you have enabled the tunneling feature.
SUMMARY STEPS
1. configure terminal
2. interface tunnel number
3. tunnel mode gre ip
4. show interfaces tunnel number
5. copy running-config startup-config
DETAILED STEPS
|
|
|
Step 1 |
configure terminal Example: switch# configure terminal switch(config)# |
Enters configuration mode. |
Step 2 |
interface tunnel number Example: switch(config)# interface tunnel 1 switch(config-if)# |
Enters a tunnel interface configuration mode. |
Step 3 |
tunnel mode gre ip Example: switch(config-if)# tunnel mode gre ip |
Sets this tunnel mode to GRE |
Step 4 |
show interfaces tunnel number Example : switch(config-if)# show interfaces tunnel 1 |
(Optional) Displays the tunnel interface statistics. |
Step 5 |
copy running-config startup-config Example: switch(config-if)# copy running-config startup-config |
(Optional) Saves this configuration change. |
This example shows how to configure the tunnel interface to GRE and set the GRE tunnel keepalives:
switch# configure terminal
switch(config)# i nterface tunnel 1
switch(config-if)# tunnel mode gre ip
switch(config-if)# copy running-config startup-config
Enabling Path MTU Discovery
Use the tunnel path-mtu discovery command to enable path MTU discovery on a tunnel.
|
|
tunnel path-mtu-discovery [ age-timer min ] [ min-mtu bytes ] Example : switch(config-if)# tunnel path-mtu-discovery 25 1500 |
Enables Path MTU Discovery (PMTUD) on a tunnel interface. The parameters are as follows:
- mins —Number of minutes. The range is from 10 to 30. The default is 10.
- mtu-bytes —Minimum MTU recognized. The range is from 92 to 65535. The default is 92.
|
Assigning VRF Membership to a Tunnel Interface
You can add a tunnel interface to a VRF.
BEFORE YOU BEGIN
Ensure that you have enabled the tunneling feature.
Ensure that you are in the correct VDC (or use the switchto vdc command).
Assign the IP address for a tunnel interface after you have configured the interface for a VRF.
SUMMARY STEPS
1. configure terminal
2. interface tunnel number
3. vrf member vrf-name
4. ip-address ip-prefix/length
5. show vrf [ vrf-name ] interface interface-type number
6. copy running-config startup-config
DETAILED STEPS
|
|
|
Step 1 |
configure terminal Example: switch# configure terminal switch(config)# |
Enters configuration mode. |
Step 2 |
interface tunnel number Example : switch(config)# interface tunnel 0 switch(config-if)# |
Enters interface configuration mode. |
Step 3 |
vrf member vrf-name Example: switch(config-if)# vrf member RemoteOfficeVRF |
Adds this interface to a VRF. |
Step 4 |
ip address ip-prefix/length Example: switch(config-if)# ip address 192.0.2.1/16 |
Configures an IP address for this interface. You must do this step after you assign this interface to a VRF. |
Step 5 |
show vrf [ vrf-name ] interface interface-type number Example : switch(config-vrf)# show vrf Enterprise interface tunnel 0 |
(Optional) Displays VRF information. |
Step 6 |
copy running-config startup-config Example: switch(config)# copy running-config startup-config |
(Optional) Saves this configuration change. |
The following example shows how to add a tunnel interface to the VRF:
switch# configure terminal
switch(config)# interface tunnel 0
switch(config-if)# vrf member RemoteOfficeVRF
switch(config-if)# ip address 209.0.2.1/16
switch(config-if)# copy running-config startup-config