Nexthop Groups
Nexthop Group Description
Each routing table entry provides the next hop address to its specified destination. A nexthop address is the address of the next device on the path to the entry’s specified destination.
A nexthop group is a data structure that defines a list of nexthop addresses and a tunnel type for packets routed to the specified address. When an IP route statement specifies a nexthop group as the nexthop address, the switch configures a static route with a nexthop group member as the nexthop address and encapsulates packets forwarded to that address as required by the group’s tunnel type.
The nexthop group size is a configurable parameter that specifies the number of entries that the group contains. Group entries that are not explicitly configured are filled with drop routes. The switch uses ECMP hashing to select the address within the nexthop group when forwarding packets. When a packet’s hash selects a drop route, the packet is dropped.
- Each switch can support 512 IPv4 or IPv6 Tunnels
- Nexthop groups can contain 256 nexthops.
- The switch supports 1024 nexthop groups.
- Multiple routes can share a tunnel.
- Tunnels do not support IP multicast packets.
Nexthop groups support IP-in-IP tunnels. The entry IP address family within a particular nexthop group cannot be mixed, i.e. either they are all IPv4 or they are all IPv6 entries.
Nexthop Group Configuration
Nexthop groups are configured and modified in nexthop-group configuration mode. After a group is created, it is associated to a static route through an ip route nexthop-group statement.
Creating and Editing Nexthop Groups
Nexthop groups are created by a nexthop-group command that specifies a group that isn't already configured. The switch enters nexthop-group configuration mode for the new group. Nexthop-group mode is also accessible for modifying existing groups. When in nexthop-group configuration mode, the show active command displays the group’s configuration.
-
This command creates a nexthop group named NH-1.
switch(config)# nexthop-group NH-1 switch(config-nexthop-group-NH-1)#
- These commands enter nexthop-group configuration mode for the
group named NH3, then displays the previously
configured group
parameters.
switch(config)# nexthop-group NH3 switch(config-nexthop-group-NH3)#show active nexthop-group NH3 size 4 ttl 10 entry 0 tunnel-destination 10.14.21.3 entry 1 tunnel-destination 10.14.21.5 entry 2 tunnel-destination 10.14.22.5 entry 3 tunnel-destination 10.14.22.6 switch(config-nexthop-group-NH3)#
Configuring a Group’s Encapsulation Parameters
Packets in static routes that are associated with the nexthop group are encapsulated to support the group’s tunnel type. Nexthop groups support IP-in-IP tunnels. The group also defines the source IP address and TTL field contents that are included in the packet encapsulation.
- This command configures the TTL setting to 32 for
nexthop group NH-1 encapsulation
packets.
switch(config)# nexthop-group NH-1 switch(config-nexthop-group-NH-1)# ttl 32 switch(config-nexthop-group-NH-1)# show active nexthop-group NH-1 size 128 ttl 32 switch(config-nexthop-group-NH-1)#
The address is inserted in the encapsulation source IP fields is specified by tunnel-source (Nexthop Group).
- These commands create interface loopback 100, assign
an IP address to the interface, then specifies that address as the tunnel source
for packets designated by nexthop-group
NH-1.
switch(config)# interface loopback 100 switch(config-if-Lo100)# ip address 10.1.1.1/32 switch(config-if-Lo100)# exit switch(config)# nexthop-group NH-1 switch(config-nexthop-group-NH-1)# tunnel-source intf loopback 100 switch(config-nexthop-group-NH-1)# show active nexthop-group NH-1 size 256 ttl 32 tunnel-source intf Loopback100 switch(config-nexthop-group-NH-1)#
Configuring IP-in-IP Encapsulation
Through IP-in-IP encapsulation, IP packets matching a static Nexthop-Group route are encapsulated within an IP-in-IP tunnel and forwarded.
switch(config)# ip route 124.0.0.1/32 nexthop-group abc
switch(config)# nexthop-group abc type ip-in-ip
switch(config-nexthop-group-abc)# size 512
switch(config-nexthop-group-abc)# tunnel-source 1.1.1.1
switch(config-nexthop-group-abc)# entry 0 tunnel-destination 1.1.1.2
switch(config-nexthop-group-abc)# entry 1 tunnel-destination 10.1.1.1
switch(config-nexthop-group-abc)# ttl 64
switch(config-nexthop-group-abc)#
Configuring the Group’s Size
The group’s size specifies the number of entries in the group. A group can contain up to 256 entries, which is the default size. The group’s size is specified by size (Nexthop Group).
switch(config)# nexthop-group NH-1
switch(config-nexthop-group-NH-1)# size 128
switch(config-nexthop-group-NH-1)# show active
nexthop-group NH-1
size 128
ttl 64
switch(config-nexthop-group-NH-1)#
Creating Nexthop Group Entries
Each entry specifies a nexthop address that is used to forward packets. A nexthop group contains one entry statement for each nexthop address. The group’s size specifies the number of entry statements the group may contain. Each entry statement is assigned an index number to distinguish it from other entries within the group; entry index numbers range from zero to the group size minus one.
Nexthop group entries are configured by entry (Nexthop Group).
- These commands set the nexthop group size at four entries, then create three
entries. Packets that are hashed to the fourth entry are
dropped.
switch(config)# nexthop-group NH-1 switch(config-nexthop-group-NH-1)# size 4 switch(config-nexthop-group-NH-1)# entry 0 tunnel-destination 10.13.4.4 switch(config-nexthop-group-NH-1)# entry 1 tunnel-destination 10.15.4.22 switch(config-nexthop-group-NH-1)# entry 2 tunnel-destination 10.15.5.37 switch(config-nexthop-group-NH-1)# show active nexthop-group NH-1 size 4 ttl 64 entry 0 tunnel-destination 10.13.4.4 entry 1 tunnel-destination 10.15.4.22 entry 2 tunnel-destination 10.15.5.37 switch(config-nexthop-group-NH-1)#
- These commands configure a nexthop group with three IPv6 nexthop
entries.
switch(config)# nexthop-group nhg-v6-mpls type ip switch(config-nhg-v6-mpls)# size 3 switch(config-nhg-v6-mpls)# entry 0 nexthop 2002::6401:1 switch(config-nhg-v6-mpls)# entry 1 nexthop 2002::6404:1 switch(config-nhg-v6-mpls)# entry 2 nexthop 2002::6404:2 switch(config-nhg-v6-mpls)#
- These commands configure an IPv4 route to point to the nexthop group
nhg-v6-mpls. (Both IPv4 routes and IPv6 routes
can point to this nexthop
group.)
switch# ip route 100.5.0.0/16 Nexthop-Group nhg-v6-mplsp switch#
Displaying Nexthop Groups
The show nexthop-group command displays a group’s configured parameters.
switch> show nexthop-group NH-1
Name Id type size ttl sourceIp
NH-1 4 ipInIp 256 64 0.0.0.0
switch>
Applying a Nexthop Group to a Static Route
The ip route nexthop-group associates a nexthop group with a specified destination address and configures the encapsulation method for packets tunneled to that address.
switch(config)# ip route 10.17.252.0/24 nexthop-group NH-1
switch(config)#
The show ip route command displays the routing table for a specified VRF. Routes that utilize a nexthop group entry are noted with a route type code of NG.
This command displays a routing table that contains a static route with its nexthop specified by a nexthop group.
switch> show ip route
Codes: C - connected, S - static, K - kernel,
O - OSPF, IA - OSPF inter area, E1 - OSPF external type 1,
E2 - OSPF external type 2, N1 - OSPF NSSA external type 1,
N2 - OSPF NSSA external type2, B I - iBGP, B E - eBGP,
R - RIP, I - ISIS, A B - BGP Aggregate, A O - OSPF Summary,
NG - Nexthop Group Static Route
Gateway of last resort is not set
C 10.3.3.1/32 is directly connected, Loopback0
C 10.9.1.0/24 is directly connected, Ethernet51/3
C 10.10.10.0/24 is directly connected, Ethernet51/1
S 10.20.0.0/16 [20/0] via 10.10.10.13, Ethernet51/1
C 10.10.11.0/24 is directly connected, Ethernet3
NG 10.10.3.0/24 [1/0] via ng-test1, 5
C 10.17.0.0/20 is directly connected, Management1
S 10.17.0.0/16 [1/0] via 10.17.0.1, Management1
S 10.18.0.0/16 [1/0] via 10.17.0.1, Management1
S 10.19.0.0/16 [1/0] via 10.17.0.1, Management1
S 10.20.0.0/16 [1/0] via 10.17.0.1, Management1
S 10.22.0.0/16 [1/0] via 10.17.0.1, Management1
switch>
Support for IPv6 Link-Local Addresses in Nexthop Groups Entries
IPv6 Link-local addresses in Nexthop Groups entries support IPv6 link-local nexthops belonging to a Nexthop Group. Only the MPLS Nexthop Group supports IPv6 and because of this, IPv6 is limited to getting support only by the Nexthop Group of MPLS. An advantage is that you can use these devices even when they are not configured with globally routable IPv4 or IPv6 addresses.
Configuration
switch(config)# nexthop-group nhg1 type mpls
switch(config-nexthop-group-nhg1)# entry 0 push label-stack 606789 nexthop fe80::fe80:2%Ethernet2
switch(config-nexthop-group-nhg1)# entry 1 push label-stack 204164 nexthop fe80::fe80:2%Ethernet3
Show Commands
switch# show nexthop-group
nhg1
Id 1
Type mpls
Size 12
Entries (left most label is the top of the stack)
0 push label-stack 606789 nexthop fe80::fe80:2
Tunnel destination directly connected, Ethernet2
00:d4:27:77:e9:77, Ethernet2
1 push label-stack 204164 nexthop fe80::fe80:2
Tunnel destination directly connected, Ethernet3
00:79:21:32:0f:32, Ethernet3
Limitations
- Only the nexthop-group of MPLS supports an IPv6 address. Therefore, link-local IPv6 addresses are only supported for this type of nexthop-group.
- Nexthop-groups are configured and exist in the default VRF. The link-local IPv6 addresses for nexthop-group entries can only be resolved for interfaces in the default VRF.
Nexthop Group Commands
entry (Nexthop Group)
The entry command defines a nexthop entry in the nexthop group configuration mode . Each nexthop entry specifies a nexthop IP address for static routes to which the nexthop group is assigned. The group size (size (Nexthop Group)) specifies the quantity of entries a group contains. Each entry is created by an individual command. Entries within a group are distinguished by an index number.
The no entry and default entry commands delete the specified nexthop group entry, as referenced by index number, by removing the corresponding entry statement from running-config.
Command Mode
Nexthop-group Configuration
Command Syntax
entry index tunnel-destination ipv4_address
no entry index
default entry index
- index Entry index. Values range from 0 to group-size – 1.
- ipv4_address Nexthop IPv4 address.
group-size is the group’s entry capacity, as specified by the size (Nexthop Group) command.
Example
switch(config)# nexthop-group NH-1
switch(config-nexthop-group-NH-1)# size 4
switch(config-nexthop-group-NH-1)# entry 0 tunnel-destination 10.13.4.4
switch(config-nexthop-group-NH-1)# entry 1 tunnel-destination 10.15.4.22
switch(config-nexthop-group-NH-1)# entry 2 tunnel-destination 10.15.5.37
switch(config-nexthop-group-NH-1)# show active
nexthop-group NH-1
size 4
ttl 64
entry 0 tunnel-destination 10.13.4.4
entry 1 tunnel-destination 10.15.4.22
entry 2 tunnel-destination 10.15.5.37
switch(config-nexthop-group-NH-1)#
ip route nexthop-group
The ip route nexthop-group command creates a static route. The destination is a network segment. The nexthop address is one of the IP addresses that comprise the specified nexthop group. Packets forwarded as a result of this command are encapsulated as specified by the tunnel-type parameter of the specified nexthop group.
When multiple routes exist to a destination prefix, the route with the lowest administrative distance takes precedence. When a route created through this command has the same administrative distance as another static route (ECMP), the route that was created earliest has preference; running-config stores static routes in the order that they are created.
By default, the administrative distance assigned to static routes is 1. Assigning a higher administrative distance to a static route configures it to be overridden by dynamic routing data. For example, a static route with a distance value of 200 is overridden by OSPF intra-area routes, which have a default distance of 110.
The no ip route nexthop-group and default ip route nexthop-group commands delete the specified route by removing the corresponding ip route nexthop-group command from running-config. Ip route nexthop-group statements for an IP address in multiple VRFs must be removed separately.
A no ip route or default ip route command without a nexthop parameter deletes all corresponding ip route nexthop-group statements. Deleting a user-defined VRF also deletes its static routes.
Command Mode
Global Configuration
Command Syntax
ip route [VRF_INST dest_net nexthop-group nhgp_name [dist][TAG_OPTION][RT_NAME]
no ip route [VRF_INST] dest_net [nexthop-group nhgroup_name][distance]
default ip route [VRF_INST] dest_net [nexthop-group nhgroup_name][distance]
- VRF_INST Specifies the VRF instance being
modified.
- no parameter Changes are made to the default VRF.
- vrf vrf_name Changes are made to the specified VRF.
- dest_net Destination IPv4 subnet (CIDR or address-mask notation).
- nhgp_name Name of nexthop group.
- dist Administrative distance assigned to route.
Options include:
- no parameter Route assigned default administrative distance of one.
- 1-255 The administrative distance assigned to route.
- TAG_OPTION Static route tag. Options
include:
- no parameter Assigns default static route tag of 0.
- tag t_value Static route tag value. t_value ranges from 0 to 4294967295.
- RT_NAME Associates descriptive text to the
route. Options include:
- no parameter No text is associated with the route.
- name descriptive_text The specified text is assigned to the route.
Related Commands
The ip route command creates a static route that specifies the nexthop address without using nexthop groups.
Example
switch(config)# ip route 10.17.252.0/24 nexthop-group NH-1
switch(config)#
nexthop-group
The nexthop-group command places the switch in nexthop-group configuration mode, through which nexthop groups are created or modified. The command also specifies the tunnel protocol for extracting payload from encapsulated packets that arrive through an IP address upon which the group is applied.
A nexthop group is a data structure that defines a list of nexthop addresses and the encapsulation process for packets routed to the specified address. The command either accesses an existing nexthop group configuration or creates a new group if it specifies a non-existent group. Supported tunnel protocols include IP ECMP and IP-in-IP.
The nexthop-group configuration mode is not a group change mode; running-config is changed immediately upon entering commands. Exiting the nexthop-group configuration mode does not affect running-config. The exit command returns the switch to global configuration mode.
The no nexthop-group and default nexthop-groupcommands delete previously configured commands in the specified nexthop-group mode. When the command does not specify a group, it removes all nexthop-groups. When the command specifies a tunnel type without naming a group, it removes all nexthop-groups of the specified type.
Command Mode
Global Configuration
Command Syntax
nexthop-group group_name type TUNNEL_TYPE
no nexthop-group [group_name][type TUNNEL_TYPE]
default nexthop-group [group_name][typeTUNNEL_TYPE]
- group_name Nexthop group name.
- TUNNEL_TYPE Tunnel protocol of the nexthop-group.
Options include:
- ip ECMP nexthop.
- ip-in-ip IP in IP tunnel.
- gre Encapsules the Layer 3 protocols overs IP networks.
- mpls-over-gre Tunnels MPLS over a non-MPLS
network.
- entry Nexthop Group Entry Configuration.
- size Nexthop Group Entry Size.
- tos Tunnel encapsulation IP type of service.
- ttl Tunnel encapsulation TTL value.
- tunnel-source Source Interface or Address.
Restrictions
Tunnel type availability varies by switch platform.
Examples
-
This command creates a nexthop group named NH-1 that specifies ECMP nexthops.
switch(config)# nexthop-group NH-1 type ip switch(config-nexthop-group-NH-1)#
-
This command exits nexthop-group mode for the NH-1 nexthop group.
switch(config-nexthop-group-NH-1)# exit switch(config)#
- These commands creates a nexthop group NH-2 of type
MPLS over
GRE.
switch(config)# nexthop-group NH-2 type mpls-over-gre switch(config-nexthop-group-NH-2)# tunnel-source 11.1.1.1 switch(config-nexthop-group-NH-2)# ttl 32 switch(config-nexthop-group-NH-2)# tos 20 switch(config-nexthop-group-NH-2)# entry 0 push label-stack 16000 tunnel-destination 11.1.1.2 switch(config)# ip route 100.1.1.1/32 Nexthop-Group NH-2 Counters for nexthop group may be enabled using the following command switch(config)# hardware counter feature nexthop
show nexthop-group
The show nexthop-group command displays properties of the specified nexthop group.
Command Mode
EXEC
Command Syntax
show nexthop-group nhgroup_name [VRF_INST]
- nhgroup_name Name of the group displayed by command.
- VRF_INST Specifies the VRF instance for which data
is displayed.
- no parameter Context-active VRF.
- vrf vrf_name Specifies the name of VRF instance. System default VRF is specified by default.
Related Commands
The show nexthop-group command places the switch in the nexthop-group configuration mode to create a new group or modify an existing group.
Example
switch(config)# show nexthop-group
Id 107
Type mplsOverGre
Size 1 (auto size enabled, programmed size 1)
TTL 32
Source IP 11.1.1.1
Entries (left most label is the top of the stack)
0 push label-stack 16000 tunnel-destination 11.1.1.2
Tunnel destination directly connected, Ethernet1
00:00:aa:aa:aa:aa, Ethernet1
With nexthop group counter enabled
switch(config)# show nexthop-group
Id 1
Type mplsOverGre
Size 1 (auto size enabled, programmed size 1)
TTL 64
Source IP 0.0.0.0
Entries (left most label is the top of the stack)
0 push label-stack 16000 tunnel-destination 1.1.1.2
Tunnel destination directly connected, Ethernet1
00:00:aa:aa:aa:aa, Ethernet1
0 packets, 0 bytes
switch(config)#show nexthop-group summary
Number of Nexthop Groups configured: 1
Number of unprogrammed Nexthop Groups: 0
Nexthop Group Type Configured
-------------------- ------------
MPLS over GRE 1
Nexthop Group Size Configured
-------------------- ------------
1 1
size (Nexthop Group)
The size command configures the quantity of nexthop entries in the nexthop groupconfiguration mode . Each entry specifies a nexthop IP address for static routes to which the group is assigned. Entries are configured with the entry (Nexthop Group) command. The default size is 256 entries.
The no size and default size commands restore the size of the configuration mode nexthop group to its default of 256 by removing the corresponding size command from running-config.
Command Mode
Nexthop-group Configuration
Command Syntax
size entry_size
no size entry_size
default size entry_size
Parameter
entry_size Group size (entries). Value ranges from 1 to 255. Default value is 256.
Example
switch(config)# nexthop-group NH-1
switch(config-nexthop-group-NH-1)# size 128
switch(config-nexthop-group-NH-1)# show active
nexthop-group NH-1
size 128
ttl 64
switch(config-nexthop-group-NH-1)#
ttl (Nexthop Group)
The ttl command specifies the number entered into the TTL (time to live) encapsulation field of packets that are transmitted to the address designated by the configuration mode nexthop group. The default TTL value is 64.
The no ttl and default ttl commands restore the default TTL value written into TTL fields for the nexthop group configuration mode by deleting the corresponding ttl command from running-config.
Command Mode
Nexthop-group Configuration
Command Syntax
ttl hop_expiry
no ttl hop_expiry
default ttl hop_expiry
Parameters
hop_expiry Period that the packet remains valid (seconds or hops) Value ranges from 1 to 64.
Restrictions
This command is available only to Nexthop groups for tunnels of type IP-in-IP, GRE, MPLS, and MPLS over GRE.
Related Commands
The nexthop-group command places the switch in the nexthop-group configuration mode.
Examples
- This command configures the ttl setting to
32 for nexthop group
NH-1
packets.
switch(config)# nexthop-group NH-1 switch(config-nexthop-group-NH-1)# ttl 32 switch(config-nexthop-group-NH-1)# show active nexthop-group NH-1 size 128 ttl 32 switch(config-nexthop-group-NH-1)#
- This command restores the no ttl setting for nexthop
group NH-1
packets.
switch(config-nexthop-group-NH-1)# no ttl switch(config-nexthop-group-NH-1)# show active nexthop-group NH-1 size 128 ttl 64 switch(config-nexthop-group-NH-1)#
tunnel-source (Nexthop Group)
The tunnel-source command specifies the address that is entered into the source IP address encapsulation field of packets that are transmitted as designated by the nexthop group configuration mode . The command may directly specify an IP address or specify an interface from which an IP address is derived. The default source address IP address is 0.0.0.0.
The no tunnel-source and default tunnel-source commands remove the source IP address setting from the configuration mode nexthop group by deleting the tunnel-source command from running-config.
Command Mode
Nexthop-group Configuration
Command Syntax
tunnel-source SOURCE
no tunnel-source SOURCE
default tunnel-source SOURCE
Parameters
- ipv4_addr An IPv4 address.
- intf ethernet e_num Ethernet interface specified by e_num.
- intf loopback l_num Loopback interface specified by l_num.
- intf management m_num Management interface specified by m_num.
- intf port-channel p_num Port-channel interface specified by p_num.
- intf vlan v_num VLAN interface specified by v_num.
Restrictions
This command is available only to Nexthop groups for tunnels of type ip-in-ip.
Related CommandsThe nexthop-group command places the switch in the nexthop-group configuration mode.
Example
switch(config)# interface loopback 100
switch(config-if-Lo100)# ip address 10.1.1.1/32
switch(config-if-Lo100)# exit
switch(config)# nexthop-group NH-1
switch(config-nexthop-group-NH-1)# tunnel-source intf loopback 100
switch(config-nexthop-group-NH-1)# show active nexthop-group NH-1
size 256
ttl 64
tunnel-source intf Loopback100
switch(config-nexthop-group-NH-1)# show nexthop-group NH-1
Name Id type size ttl sourceIp
NH-1 2 ipInIp 256 64 10.1.1.1
switch(config-nexthop-group-NH-1)#