Selective programming of forwarding hardware in multi-fabric overlay network
By using indicators in the overlay routing packet to control the programming of host routing, the problem of low routing programming efficiency in multi-structured overlay networks is solved, and efficient utilization of hardware resources is achieved.
Patent Information
- Application Number
- CN202410569917.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-11-10
- Filing Date
- 2024-05-09
- Publication Date
- 2025-05-13
AI Technical Summary
In multi-structure coverage networks, it is difficult to efficiently program routing in the forwarding hardware of network devices, especially when host routing is received from gateway devices, resulting in inefficient utilization of hardware resources.
By including indicators in the overlay routing packet, the network device allows the network device to determine whether to program the host route in the forwarding hardware. The specific method includes using the Extended Community field in the EVPN routing update, including a bit to indicate the suitability of selective programming.
Selective programming of host routing in multi-structure coverage network is realized, the utilization efficiency of forwarding hardware resources is improved, and unnecessary hardware resource occupation is avoided.
Smart Images

Figure CN119996307A_ABST
Abstract
Description
Technical Field
[0001] A network device may support different protocols and services in a network. For example, a network device may support one or more protocols in a heterogeneous multi-layer network such as an overlay network. BRIEF DESCRIPTION OF THE DRAWINGS
[0002] Figure 1 An example of selective programming of forwarding hardware of a network device in a multi-fabric overlay network according to an aspect of the present application is shown;
[0003] Figure 2 An example of an overlay routing packet for announcing routing in an overlay network according to an aspect of the present application is shown;
[0004] Figure 3 An example of efficiently programming routing information in forwarding hardware of a network device in a multi-fabric overlay network according to an aspect of the present application is shown;
[0005] Figure 4A A flow chart illustrating an example of a process for a network device to selectively program routes in local forwarding hardware according to an aspect of the present application is presented;
[0006] Figure 4B A flow chart illustrating an example of a process for a network device to program a host route for a packet in local forwarding hardware according to an aspect of the present application is presented;
[0007] Figure 5 A flow chart illustrating an example of a process for a network device to program prefix routes reachable via an edge device in local forwarding hardware according to an aspect of the present application is presented; and
[0008] Figure 6 An example of a network device supporting selective programming of forwarding hardware according to an aspect of the present application is shown.
[0009] In the drawings, like reference numerals denote the same drawing elements. DETAILED DESCRIPTION
[0010] The network can facilitate data exchange of various applications running on physical and virtual devices. Such applications have brought about a gradual increase in network traffic. Therefore, network devices (such as switches) generally have multiple functions. Network devices can support different protocols and services. In addition, network devices can participate in different types of networks and operate in different roles at the same time. For example, a network device can operate as a participating switch in a distributed virtual switch (DVS), in which multiple participating switches can operate in conjunction with each other to operate as a single virtual switch. When operating as a participating switch in a DVS, the network device can also operate as an access switch that connects a terminal device (or user device) to the network.
[0011] The network device can be deployed in a heterogeneous multi-layer network, such as an overlay network. The overlay network can be formed based on a tunnel and a virtual private network (VPN). The network device can then encapsulate the corresponding packet received from the client device with a tunnel header and forward it to another network device via the tunnel based on the corresponding Internet Protocol (IP) address. The tunnel can be formed based on the overlay routing of the VPN on the tunnel, such as Ethernet VPN (EVPN), which can be deployed as an overlay on a set of virtual extensible local area networks (VXLANs). The network devices in the overlay network can use overlay routing packets (e.g., EVPN "type 2" and "type 5" routing updates) to notify each other about routing updates. In order to deploy a VPN on a tunnel, the corresponding tunnel endpoint can map the corresponding client virtual local area network (VLAN) to the corresponding tunnel network identifier (TNI), which can identify the virtual network of the tunnel. For example, if the tunnel is formed based on VXLAN, the TNI can be a virtual network identifier (VNI) of the VXLAN header, and the tunnel endpoint can be a VXLAN tunnel endpoint (VTEP).
[0012] Various aspects described herein address the problem of efficiently programming routes in forwarding hardware of a network device in a multi-fabric overlay network by: (i) including an indicator indicating the presence of a host route in an overlay routing packet, the indicator being used to notify other switches; (ii) if the overlay routing packet includes a host route, programming the corresponding prefix route in the forwarding hardware while maintaining the host route in a forwarding data structure; and (iii) if the corresponding inter-host communication is initiated, programming the host route in the forwarding hardware from the forwarding data structure. When the network device learns the host route from another fabric of the overlay network, the network device can maintain the host route in a control plane (e.g., in software). If communication using the host route is initiated, the network device can efficiently utilize hardware resources by programming the host route in the forwarding hardware.
[0013] A distributed tunnel structure in an overlay network can be coupled to other networks via a gateway device of the structure, which may include a DVS. Typically, at least two network devices can operate in conjunction with each other as separate devices to facilitate DVS. Network devices participating in DVS may be referred to as participating devices. Respective participating devices may view other participating devices as peer participating devices (or peer switches). Paired corresponding participating devices may be coupled to each other via inter-switch links (ISLs). A DVS may be associated with one or more virtual addresses (e.g., a virtual IP address and / or a virtual media access control (MAC) address). The corresponding tunnels formed at the DVS may use virtual addresses to form tunnel endpoints. Therefore, other tunnel endpoints of the structure (i.e., other network devices) may view the DVS as another tunnel endpoint of the tunnel, rather than any participating device in the participating devices. Even though the network devices in the distributed tunnel structure may not be.
[0014] To forward traffic to the DVS, the corresponding network devices in the structure can perform a load balancing operation (e.g., based on a hash of the corresponding packets) and select one of the participating devices as the destination (i.e., as another tunnel endpoint). The network device can then forward the packet via the tunnel between the tunnel endpoints. Thus, the endpoint can forward the multicast control packet to one of the participating devices, which in turn can share the control packet with a peer participating device via the ISL. If the structure is located in a multi-structure overlay network, the structure can be one of multiple structures that form the overlay network. The corresponding structure can then include a gateway device, which can include a DVS, which can be coupled to a remote gateway device of another structure, an external network, or both.
[0015] For example, a gateway device may be coupled to a remote gateway device via an inter-fabric tunnel (i.e., a tunnel coupling two fabrics). Packets received at a gateway device via an intra-fabric tunnel (i.e., a tunnel within a fabric) may be encapsulated with a tunnel header associated with the intra-fabric tunnel. The gateway device may decapsulate the tunnel header and recapsulate the packet using another tunnel header associated with the inter-fabric tunnel. A corresponding network device operating as a tunnel endpoint in a fabric may use a routing protocol, such as a Border Gateway Protocol (BGP). In a multi-fabric overlay network, routing for an intra-fabric tunnel may be determined using internal BGP (iBGP), while routing for an inter-fabric tunnel may be determined using external BGP (eBGP).
[0016] A multi-structure overlay network can be distributed across multiple sites. For example, if the network is for an enterprise, these sites may correspond to different office sites distributed around the world. However, if the site is large, or the sites are adjacent to each other, multiple structures may be deployed in close proximity to each other. These structures are typically coupled to each other and to an external network (e.g., a wide area network or WAN) via a shared network device, which may be a boundary device in the WAN. Since boundary devices can be shared between multiple structures, these structures may also be referred to as shared structures. The same boundary device may support external communications for a shared structure.
[0017] Typically, a host (which may be a user or client device) needs to be authenticated to connect to a VPN (e.g., based on an authentication process). Examples of hosts may include, but are not limited to, laptops, desktops, printers, mobile phones, tablets, Internet of Things (IoT) devices, and appliances. Using existing technology, a host may be coupled to a network device in a structure for accessing the structure. The network device may then authenticate the host from an authentication server based on an authentication process (such as port-based or username / password-based authentication). Port-based authentication may be based on the Institute of Electrical and Electronics Engineers (IEEE) 802.1X standard. Based on successful authentication, the access switch may determine the host type and assign a VLAN to the host based on the host type.
[0018] Subsequently, the host can obtain an IP address belonging to the subnet associated with the VLAN. However, the VLAN can be configured across multiple network devices. Therefore, the corresponding subnets can be distributed between network devices, each of which can be reached via one or more tunnels in the structure. The process of distributing subnets across the tunnels of the overlay network can be referred to as subnet stretching. In order to facilitate subnet stretching, the corresponding network device can learn the route to the corresponding host, which can be referred to as host routing. The network device can also program the host route into local forwarding hardware (e.g., an application-specific integrated circuit (ASIC) of the network device). For example, the forwarding hardware may include one or more ternary content addressable memory (TCAM) units. The corresponding host route and the corresponding next-hop device (e.g., a next-hop switch) can be stored in an entry of the TCAM.
[0019] Multiple hosts may be located in a subnet that is stretched across a set of network devices. The corresponding network devices may then learn the subnet prefix (e.g., prefix routing) with the set of network devices as the next hop device. The network devices may run a routing protocol instance (e.g., a routing daemon) to learn the corresponding routes. For example, if the fabric uses BGP to establish routing, the BGP instance on the access switch may determine the corresponding route to the host. If equal cost multipath routing (ECMP) is enabled for the routing protocol, each network device in the set of network devices may be programmed as the next hop device for the prefix route in the forwarding hardware. Otherwise, one of the network devices may be selected by the routing protocol as the next hop device and programmed accordingly. However, the selected next hop device may not provide the shortest path to all hosts of the subnet.
[0020] In order to avoid inefficient selection of next-hop devices, network devices typically learn host routes in addition to prefix routes. Host routes can be based on the IP address of the host and include identifiers of access switches to which the IP address can be reached. For example, if the IP address of the host is ABCD, the prefix and host routes can be ABC0 / 24 and ABCD / 32, respectively. Host routes can also indicate network devices that couple hosts as next-hop devices. Since network devices couple hosts belonging to different subnets, the number of host routes learned and programmed by network devices can be as high as the total number of hosts in the coverage network (e.g., across multiple structures). As a result, a large number of host routes can be programmed into the forwarding hardware of network devices. However, in typical distributed networks, traffic flows between hosts are rare and short-lived. Despite this, host routes occupy limited resources that are available but not utilized at forwarding hardware.
[0021] In an overlay network, when a new route is discovered, the route is shared among the network devices of the overlay network. In order to save hardware resources, host routes associated with hosts may not be programmed in the hardware of the network devices unless there is traffic between the hosts (i.e., between the IP addresses of the hosts). When used in forwarding hardware, this process of programming host routes can be referred to as selective programming of host routes. However, if the host route is announced from outside the structure, the corresponding host can be coupled to another structure of the overlay network. Such host routes are announced via the boundary devices of the structure (e.g., gateway devices). The gateway device can also announce routes that are reachable via the gateway device, such as routes to subnets of remote sites.
[0022] To ensure communication from outside the fabric, selective programming of host routes may be disabled for routes advertised by gateway devices. Thus, routes advertised by gateway devices may be programmed in forwarding hardware. Thus, in a multi-fabric network, when host routes from a remote fabric are received via a gateway device, the host routes are programmed in the forwarding hardware of the network device even when there is no data flow between the hosts. Thus, limited hardware resources of the network device are inefficiently utilized.
[0023] To address this issue, overlay routing packets distributed in the overlay network may include an indicator that allows network devices to determine whether host routes should be programmed in forwarding hardware even if these routes are received from gateway devices. For example, the overlay routing packet may be an EVPN routing update (e.g., network layer reachability information (NLRI)), and the dedicated field may be an extended community defined for the EVPN routing update. The community may carry many routes (e.g., prefix routes and host routes). The community may also include an indicator, such as a bit, which may indicate whether selective programming applies to the advertised routes. Thus, if the bit is set, the receiving network device may apply selective programming to the advertised routes.
[0024] Because the IP address of the host is assigned from a subnet across the overlay network, the corresponding subnet or prefix route is usually accompanied by the host route announced in the overlay network. Therefore, when the edge device sends an overlay route packet announcing the host route, the edge device can also include the corresponding prefix route in the packet. In a shared structure in the overlay network, the edge device can relay the packet to the network device in the structure when receiving the packet from another structure. The edge device can determine that the host route will be relayed to the network device in the shared structure. The edge device can then set an indicator indicating that the host route included in the packet is accompanied by the prefix route.
[0025] Therefore, when the network device receives a packet from the edge device, the network device can determine, based on the indicator, that selective programming can be applied to the host route in the packet. Therefore, the network device can store the host route in a forwarding data structure (FDS) maintained in the control plane. For example, the FDS can be a forwarding information base (FIB) maintained by a routing daemon of the network device, which can run a routing protocol instance. In addition, the network device can store prefix routes in the FDS and program the prefix routes into the forwarding hardware of the network device. The prefix routes associated with the host can be programmed with the rules of the data plane. The rule can indicate that if the destination IP address of the packet matches the prefix, the IP address should be looked up in the FDS in the control plane.
[0026] When a host route associated with an IP address is identified in the FDS, the network device can program the host route in an entry in the forwarding hardware (e.g., a ternary content addressable memory or TCAM entry). The network device can also initiate a timer for the entry and forward subsequent packets of the flow based on the entry in the forwarding hardware. Even if the destination IP addresses of these packets can also match the prefix route, the host route can provide the longest prefix match in the data plane. Once the corresponding match for the host route is determined in the data plane, the timer can be reset. If the forwarding hardware does not observe traffic for the IP address within a predetermined time period, the timer can expire. The forwarding hardware can then remove the entry from the forwarding hardware.
[0027] On the other hand, when the edge device receives an overlay routing packet from another structure (e.g., from another site), the edge device may distribute only the prefix route. In this case, the edge device may not set the indicator in the overlay routing packet. When the network device receives a packet from the gateway device, the network device may determine based on the indicator that selective programming is not applicable to the advertised prefix route. Therefore, the network device may store the prefix route in the FDS and program the prefix route into the forwarding hardware of the network device. However, the prefix route is programmed in the forwarding hardware without rules. In this way, the forwarding hardware at the network device can selectively program the host route when needed and efficiently utilize the limited resources (e.g., available space) in the forwarding hardware.
[0028] In this disclosure, the term "switch" is used in a general sense, and it can refer to any independent network device or fabric device operating in any network layer. "Switch" should not be interpreted as limiting the examples of the present invention to layer 2 networks. Any device that can forward traffic to external devices or other switches can be called a "switch". If a switch is a virtual device, the switch can be called a virtual switch.
[0029] Additionally, if a network device facilitates communication between networks, the network device may be referred to as a gateway device. Any physical or virtual device (e.g., a virtual machine or switch operating on a computing device) that can forward traffic to an end device may be referred to as a "network device." Examples of "network devices" include, but are not limited to, a layer 2 switch, a layer 3 router, a routing switch, a component of a Generation Z network, or a fabric switch that includes multiple similar or heterogeneous smaller physical and / or virtual switches.
[0030] The term "packet" refers to a group of bits that can be transmitted together on a network. "Packet" should not be interpreted as limiting the examples of the present invention to a specific layer of the network protocol stack. "Packet" can be replaced with other terms referring to a group of bits, such as "message", "frame", "cell", "datagram" or "transaction". In addition, the term "port" can refer to a port that can receive or transmit data. "Port" can also refer to the hardware, software and / or firmware logic that can facilitate the operation of the port.
[0031] Figure 1 An example of selective programming of forwarding hardware of network devices in a multi-structure overlay network according to one aspect of the present application is shown. Overlay network 100 may include multiple networks and terminal devices, and may include heterogeneous network components such as second layer hops and third layer hops, and tunnels. In some examples, network 100 may be an Ethernet, InfiniBand, or other network, and may use corresponding communication protocols such as Internet Protocol (IP), Fibre Channel over Ethernet (FCoE), or other protocols. Network 100 may be distributed between multiple sites 102 and 104, which may be different sites of an enterprise network. Network 100 may include multiple distributed tunnel structures 110 and 120 located at site 102. Therefore, network 100 may be a multi-structure network. Structure 110 may include network devices 112, 114, and 116; and structure 120 may include network devices 122, 124, and 126. Respective network devices in corresponding structures may be associated with MAC addresses and IP addresses. In corresponding structures of network 100, network devices may be coupled to each other via tunnels.
[0032] exist Figure 1 , the links represented by solid lines between paired network devices may indicate tunnels. The network devices of the corresponding structure in network 100 may include one or more tunnel meshes. Examples of tunnels may include, but are not limited to, VXLAN, Generic Routing Encapsulation (GRE), Network Virtualization Using GRE (NVGRE), Generic Network Virtualization Encapsulation (Geneve), Internet Protocol Security (IPsec), Multi-Protocol Label Switching (MPLS), and Generic User Datagram Protocol (UDP) Encapsulation (GUE). Tunnels in the structure may be formed on an underlying network (or underlay network). The underlying network may be a physical network, and the corresponding links of the underlying network may be physical links. The corresponding paired network devices in the underlying network may be Border Gateway Protocol (BGP) peers. VPN 106 such as EVPN may be deployed on structure 110. Similarly, VPN 108 may be deployed on structure 120.
[0033] The network devices 112 and 122 may be gateway devices of the structures 110 and 120, respectively. One or more of the network devices 112 and 122 may be a DVS. Multiple switches may be operated in conjunction with each other as a single switch to facilitate DVS. The participating switches may be operated in conjunction with each other as separate switches to facilitate DVS. The DVS may be associated with one or more virtual addresses (e.g., a virtual IP address and / or a virtual MAC address). The corresponding tunnels formed at the DVS may use virtual addresses to form tunnel endpoints. In order to efficiently manage data forwarding, the participating network devices may maintain ISLs between them for sharing control and / or data packets. The ISL may be a layer 2 or layer 3 connection that allows data forwarding. The ISL may also be based on a tunnel (e.g., a VXLAN tunnel).
[0034] Boundary device 142 can be shared between fabrics 110 and 120. Thus, boundary device 142 can facilitate external communications from site 102 via wide area network (WAN) 150. Network 100 can also include boundary device 144, which can facilitate communications with boundary device 142 via network 150. For example, boundary devices 142 and 144 can facilitate communications between sites 102 and 104 via network 150. In network 100, boundary device 142 can be coupled to boundary device 144 via respective inter-fabric tunnels through network 150. However, because boundary device 142 can be a shared device, boundary device 142 can be coupled to fabrics 110 and 120 via respective inter-fabric tunnels (e.g., via network devices 112 and 122, respectively).
[0035] Packets between fabrics 110 and 120 may be received at network device 112 via an intra-fabric tunnel within fabric 110 and may be encapsulated with a tunnel header associated with the intra-fabric tunnel. Network device 112 may decapsulate the tunnel header and recapsulate the packet using another tunnel header associated with the inter-fabric tunnel. Upon receiving the packet, edge device 142 may decapsulate the tunnel header and recapsulate the packet using another tunnel header associated with the intra-fabric tunnel to send the packet to network device 122. Network device 122 may then decapsulate the tunnel header and recapsulate the packet using another tunnel header associated with the intra-fabric tunnel to fabric 120. To facilitate forwarding of packets, iBGP may be used to determine routing for the intra-fabric tunnel and eBGP may be used to determine routing for the inter-fabric tunnel.
[0036] Network devices 114 and 116 can facilitate access to structure 110 by multiple hosts, such as hosts 166 and 162, respectively. Similarly, network device 124 can facilitate access to structure 120 by host 164. Examples of hosts can include, but are not limited to, laptops, desktops, printers, mobile phones, tablets, IoT devices, and appliances. Hosts 162, 164, and 166 can be assigned IP addresses 132, 134, and 136, respectively. Host 168 associated with IP address 138 can be deployed in site 104. Host 168 can be accessed via edge device 144. In this example, IP addresses 134 and 136 can belong to prefix 130, and IP address 138 can belong to prefix 140. If IP address 134 of host 164 is ABCD, prefix 130 can be ABC0 / 24. Since prefix 130 can represent its corresponding subnet, prefix 130 and subnet 130 can be used interchangeably.
[0037] In the network 100, a routing protocol instance of a corresponding network device (such as a routing protocol instance 174 of the network device 116) can learn a host route to a corresponding host. During operation, a routing protocol daemon (or routing daemon) 172 of the network device 116 can run in a control plane 170, because routing is a control plane operation of the network device. The control plane 170 can run on an operating application (e.g., a network operating system) of the network device 116. The routing daemon 172 can run a routing protocol instance 174 (e.g., a BGP instance) to learn the corresponding routes. The routing daemon 172 can then store the learned routes in a routing data structure (RDS) 176. The corresponding entries of the RDS 176 can include a route (e.g., a prefix) and a next-hop device associated with the route.
[0038] Typical routes learned using routing protocol instance 174 may primarily include prefix routes. For example, since edge device 142 advertises prefix routes for external devices (i.e., devices reachable via WAN 150), routing protocol instance 174 may not learn host routes associated with IP address 138. In addition, routing protocol instance 174 may also learn prefix routes associated with hosts 162, 164, and 166. For corresponding routes, routing daemon 172 may also determine one or more entries of FDS 178. The corresponding entries in FDS 178 may include routes and next-hop devices associated with the routes.
[0039] In network 100, when a new route is discovered, the route is shared among network devices of network 100. To save hardware resources, network device 116 may not program in forwarding hardware 180 a host route associated with a host coupled to fabric 110. For example, network device 116 may not program in forwarding hardware 180 a host route associated with host 166 unless there is traffic from network device 116 to host 166. To ensure communications from outside fabric 110, selective programming of host routes may be disabled for routes advertised by edge device 142. Thus, routes advertised by edge device 142 may be programmed in forwarding hardware 180. Thus, when a host route associated with host 164 is received from fabric 120 via edge device 142, network device 142 may program the host route in forwarding hardware 180 (e.g., in a TCAM entry) even when there is no traffic to host 164. The host route may be referred to as host route 134 because it is represented by IP address 134. Because host routes 134 may be programmed in forwarding hardware 180, limited resources may be utilized inefficiently.
[0040] To address this issue, an overlay routing packet distributed in the network 100 may include an indicator that allows the network device 116 to determine whether to program the host route 134 in the forwarding hardware 180 even if it is received from the edge device 142. The overlay routing packet may be an EVPN routing update. The EVPN routing update may include route types two and five for host and prefix routes, respectively. The overlay routing packet may then include an extended community defined for the EVPN routing update. The community may carry multiple routes (e.g., prefix routes associated with prefix 130 and host routes 134). The prefix route may be referred to as prefix route 130 because it is represented by prefix 130. The community may also include an indicator, such as a bit, which may indicate whether selective programming is applicable to the advertised route. Thus, if the bit is set, the receiving network device of the network 100 may apply the selective programming to the advertised route.
[0041] Because the subnet indicated by prefix 130 can span fabrics 110 and 120, host route 134 can accompany prefix route 130 in overlay routing packet 160 from network device 124. When edge device 142 receives packet 160 from fabric 120, edge device 142 can determine that the route advertisement in packet 160 is to be relayed to fabric 110. Therefore, edge device 142 can generate overlay routing packet 156. Edge device 142 can include prefix route 130 and host route 134 in packet 156. Edge device 142 can also include indicator 158 in packet 156. Edge device 142 can set a value of indicator 158 (e.g., a value of “1”), which can indicate that selective programming is applicable to host route 194.
[0042] Thus, when network device 116 receives packet 156 from edge device 142, network device 116 can determine that selective programming is applicable to host route 134 based on indicator 158. Therefore, network device 116 can store host route 134 in FDS 178. In addition, network device 116 can store prefix route 130 in FDS 178 and program prefix route 130 into forwarding hardware 180 (e.g., in a TCAM entry). Prefix route 130 can be programmed in forwarding hardware 180 using rule 182. Rule 182 can indicate that if the destination IP address of the packet matches IP address 134, then the IP address should be looked up in FDS 178 in control plane 170.
[0043] On the other hand, when the edge device 142 receives the overlay routing packet with the route advertisement associated with the host 168 via the WAN 150, the edge device 142 may distribute only the prefix route 140 representing the prefix 140 in the site 102. The edge device 142 may generate the overlay routing packet 152 including the prefix route 140 and the indicator 154. In this case, the edge device 142 may not set the bit representing the indicator 154. Therefore, the indicator 154 may have a value of “0” in the packet 152. When the network device 116 receives the packet 152 from the edge device 142, the network device 116 may determine based on the indicator 152 that the selective programming is not applicable to the prefix route 140. Therefore, the network device 116 may store the prefix route 140 in the FDS 178 and program the prefix route 140 into the forwarding hardware 180. However, the prefix route 140 is programmed irregularly in the forwarding hardware 180.
[0044] In addition, based on indicators 154 and 158, routing daemon 172 can distinguish between prefixes learned from fabrics 110 and 120, and external routes via edge device 142. Therefore, when network device 116 receives a route advertisement relay advertisement from fabric 120 via edge device 142, routing daemon 172 can determine the route as a route from the shared fabric based on setting indicator 158. Alternatively, a route received from an external network such as WAN 150 can be indicated by not setting indicator 154. If the host associated with the host route is reachable via edge device 142, the next hop device can indicate edge device 142. For example, because host 162 is coupled to network device 116, the entry for host route 132 can include "LOCAL" as the next hop device in both FDS 178 and forwarding hardware 180. In this way, forwarding hardware 180 can selectively program host routes when needed and efficiently utilize limited resources (e.g., available space) in forwarding hardware 180.
[0045] Figure 2 An example of an overlay routing packet for announcing routes in an overlay network according to an aspect of the present application is shown. An overlay routing packet 200 (such as an EVPN "type 2" or "type 5" routing update) can be used to advertise an EVPN NLRI 202. The NLRI 202 can correspond to an inclusive multicast Ethernet tag (IMET) route. The packet 200 can also include a route target 204 extended community to indicate the VPN membership of the advertised prefix (i.e., prefix route). The route target 204 can be based on an IP address or an autonomous system (AS) number. The packet 200 can also include a set of route advertisement fields 210. Field 210 can represent a BGP extended community attribute as defined in the Internet Engineering Task Force (IETF) Request for Comments (RFC) 4360.
[0046] Field 210 may include a set of subfields representing indicators and one or more routes advertised by a network device. The set of subfields may include a type 212, a subtype 214, a route count 216, an indicator 218, a route length 220, and a route 222 advertised by packet 200. Type 212 may indicate a generic type of a field that may be defined according to a standard associated with field 210 (e.g., a BGP extended community attribute). To indicate the transferability of field 210, a predetermined bit (e.g., a bit next to the most significant bit (MSB)) of a dedicated value 0x0X of type 212 may be "0". Subtype 214 may be a dedicated value 0x0Y indicating that field 210 may be associated with one or more routes. The dedicated value 0x0Y of subtype 214 may be selected from the undefined values indicated in RFC 4360.
[0047] Route count 216 may indicate the number N of routes included in packet 200. In this manner, route count 216 may allow a receiving network device to expect N routes in packet 200 and parse packet 200 accordingly. Indicator 218 may be included in a subfield at a predefined position in the EVPN extended community. Indicator 218 may indicate whether a host route is included in packet 200, which may be represented by a bit P. If route 222 includes a host route 232 and a corresponding prefix route 234, P may be set (i.e., P=1). The set value of P may indicate that packet 200 is advertising a route associated with a host coupled to a shared fabric, and therefore, selective programming applies to route 222. On the other hand, if P is not set (i.e., P=0), route 222 may include prefix route 234 but not host route 232. Therefore, packet 200 may then advertise a route from an external location (e.g., a remote site reachable via a WAN), and therefore, selective programming does not apply to route 222.
[0048] Route length 220 may indicate the length of a corresponding route in routes 222. Length 220 may provide flexibility to use field 210 to advertise different types of routes, such as IP version 4 and version 6 routes. However, within the same packet 200, each of routes 222 may have the same length. Based on route count 216 and length 220, a receiving network device may parse routes 222 and obtain each route. For example, if route count 216 is 2 and length 220 is X bytes, the network device may obtain the first X bytes as one route and the next X bytes as the second route. In this manner, packet 200 may facilitate efficient and selective programming of routes distributed in a multi-structure overlay network.
[0049] Figure 3An example of efficiently programming routing information in the forwarding hardware of a network device in a multi-structure overlay network according to one aspect of the present application is shown. Overlay network 300 may include multiple networks and terminal devices, and may include heterogeneous network components such as second layer hops and third layer hops, and tunnels. In some examples, network 300 may be Ethernet, InfiniBand, or other networks, and may use corresponding communication protocols such as IP, FCoE, or other protocols. Network 300 may be distributed between multiple sites 302 and 304, which may be different sites of an enterprise network. Network 300 may include multiple distributed tunnel structures 310 and 320 located at site 302. Therefore, network 300 may be a multi-structure network. Structure 310 may include network devices 312, 314, and 316; and structure 320 may include network devices 322, 324, and 326. Respective network devices in the corresponding structures may be associated with MAC addresses and IP addresses. In the corresponding structures of network 300, network devices may be coupled to each other via tunnels.
[0050] The network devices of the corresponding structure in network 300 may include one or more tunnel grids. Examples of tunnels may include, but are not limited to, VXLAN, GRE, NVGRE, Geneve, IPsec, MPLS, and GUE. Tunnels in the structure may be formed on an underlying network (or underlay network). The corresponding paired network devices in the underlying network may be BGP peers. VPNs 306 such as EVPN may be deployed on structure 310. Similarly, VPN 308 may be deployed on structure 320. Network devices 312 and 322 may be gateway devices of structures 310 and 320, respectively. One or more of network devices 312 and 322 may be DVSs. DVSs may be associated with one or more virtual addresses (e.g., virtual IP addresses and / or virtual MAC addresses).
[0051] 310 and 320. Thus, the edge device 342 can facilitate external communications from the site 302 via the WAN 350. The network 300 can also include a network device 344 that can facilitate communications with the edge device 342 via the network 350. For example, the edge devices 342 and 344 can facilitate communications between the sites 302 and 304 via the network 350. In the network 300, the edge device 342 can be coupled to the edge device 344 via respective inter-fabric tunnels through the network 350. Thus, the edge device 342 can be coupled to the fabrics 310 and 320 via respective inter-fabric tunnels (e.g., via the network devices 312 and 322, respectively). To facilitate forwarding of packets, iBGP can be used to determine routing for the intra-fabric tunnels, and eBGP can be used to determine routing for the inter-fabric tunnels.
[0052] 310. Network devices 314 and 316 can each facilitate access to fabric 310 by a plurality of hosts. Similarly, network devices 324 and 326 can facilitate access to fabric 320 by a plurality of hosts. For example, network devices 316 and 324 can be coupled to hosts 362 and 364, respectively. Hosts 362 and 364 can be assigned IP addresses 332 and 334, respectively. In network 300, routing protocol instances of the respective network devices can be incorporated into a control plane, such as control plane 370 of network device 316. Host 368 associated with IP address 338 can be deployed in site 304. Host 368 can be accessible via edge device 344. In this example, IP address 334 can belong to prefix 330, and IP address 338 can belong to prefix 340. If IP address 334 of host 364 is QLMN, prefix 330 can be QLM0 / 24. Since prefix 330 can represent its corresponding subnet, prefix 330 and subnet 330 can be used interchangeably.
[0053] During operation, network device 316 may host route 334 in FDS 372 with edge device 342 as the next hop device. In addition, network device 316 may store prefix routes 330 and 340 in FDS 178 and program them into forwarding hardware 380 (e.g., in corresponding TCAM entries) with edge device 342 as the next hop device. Prefix route 330 may be programmed in forwarding hardware 380 with rule 382. Rule 382 may indicate that if the destination IP address of a packet matches IP address 334, the IP address should be looked up in FDS 378 in control plane 370. Because prefix route 340 is an external route, prefix route 340 may be programmed in forwarding hardware 380 without rules. Because host 362 is coupled to network device 316, the entry for host route 332 may include "local" as the next hop device in FDS 372 and forwarding hardware 380.
[0054] When network device 316 receives packet 352 from host 362, forwarding hardware 380 may inspect header 354 of packet 352. Header 354 may be an IP header with IP addresses 332 and 338 as source and destination addresses, respectively. Packet 352 may also include a payload. Destination IP address 338 may match an entry in forwarding hardware 380 that includes prefix route 340. Therefore, network device 316 may send packet 352 to edge device 342, which may then forward packet 356 to edge device 344 via WAN 350. Control plane 370 does not look up IP address 338 in FDS 372 because no rule is programmed in the entry.
[0055] On the other hand, when the network device 316 receives the packet 356 from the host 362, the forwarding hardware 380 can check the header 358 of the packet 356. The header 358 can be an IP header with the IP addresses 332 and 334 as the source address and the destination address, respectively. The destination IP address 334 can match the entry including the prefix route 330 in the forwarding hardware 380. Therefore, the network device 316 can send the packet 356 to the edge device 342, and then the edge device can forward the packet 356 to the fabric 120. Due to the match, the rule 382 can also be triggered. Therefore, the packet 356 (or the header 358) can be promoted to the control plane 370. Then, the IP address 334 can be matched with the entry including the host route 334 based on the longest prefix match. Then, the entry can be programmed in the corresponding entry 384 in the forwarding hardware 380. The entry 384 can also be a TCAM entry.
[0056] The network device 316 may also initiate a timer for the entry 384 and forward subsequent packets destined for the IP address 334 based on the entry 384 in the forwarding hardware 380. Even though the destination IP address 334 in these packets may also match the prefix route 330, the host route 334 in the entry 384 may provide the longest prefix match in the forwarding hardware 380. Once a corresponding match for the host route 334 is determined in the entry 384, the timer may be reset. If the forwarding hardware 380 does not observe traffic for the host route 334 within a predetermined period of time, the timer may expire. The forwarding hardware 380 may then remove the entry 384. In this way, the network device 316 may distinguish between routes advertised from the edge device 342 and perform selective programming on the routes accordingly.
[0057] Figure 4A A flowchart is presented showing an example of a process for a network device to selectively program routes in local forwarding hardware according to an aspect of the present application. During operation, a network device may receive a route advertisement from an edge device via which a local network device communicates outside a local structure (operation 402). The route advertisement may be an overlay route packet, such as an EVPN route update. The route advertisement may include an indicator that may indicate whether selective programming applies to the advertised route. Thus, the network device may determine whether a host route associated with a host coupled to another structure of the overlay network is included in the route advertisement based on the indicator in the route advertisement (operation 404). When the edge device advertises a route received via an external network (e.g., from a remote site via a WAN), the edge device may only advertise prefix routes to a local shared structure. As a result, the inclusion may indicate that the advertised host route corresponds to a host coupled to another shared structure reachable via the edge device.
[0058] The network device may then determine whether the host route is included in the route advertisement based on the indicator (operation 406). A set value (e.g., a value of one) of the indicator may indicate that the host route is included in the route advertisement. If the host route is not included in the route advertisement, the network device may obtain a prefix route from the route advertisement (operation 408) and store the prefix route in a data structure of the local network device (operation 410). The data structure may be an FDS maintained in a control plane (e.g., in software) of the network device. The network device may also program the prefix route without rules in the forwarding hardware of the local network device (operation 412). Because the advertised route may be a prefix route corresponding to an external network, the network device may not program rules to promote to the control plane.
[0059] On the other hand, if the host route is included in the route advertisement, the network device can obtain the prefix route and the host route from the route advertisement (operation 414). The network device can store the corresponding route in the control plane so that the route updates obtained by the routing daemon of the network daemon can be merged into the stored route. Therefore, the network device can store the prefix route and the host route in the data structure of the local network device (operation 416). The presence of the host route can indicate that selective programming is applicable to the advertised route.
[0060] Thus, the network device may program the prefix route in the forwarding hardware of the local network device (operation 414), and program the rules for sending packets matching the prefix route to the routing daemon of the local network device in the forwarding hardware (operation 420). The rules may allow the IP address of the packet matching the prefix route to be promoted to the routing daemon in the control plane, and allow the corresponding host route to be programmed in the forwarding hardware. Thus, the network device may determine whether a packet destined for the host is received (operation 422). Because the destination IP address of the packet may match the prefix route, the packet (or its header) may be promoted to the routing daemon according to the rules. Thus, the network device may obtain the host route from the data structure and program the host route in the forwarding hardware of the local network device (operation 424).
[0061] Figure 4BA flow chart showing an example of a process for programming a host route for a packet in local forwarding hardware by a network device according to one aspect of the present application is presented. During operation, the network device may receive a packet (operation 452). Since the network device may be in an overlay network, the network device may be coupled to other network devices via corresponding tunnels. In addition, if the network device is an access device, the network device may also be coupled to one or more hosts via corresponding edge ports. Therefore, the packet may be received from the host via an edge port, or received from another network device via a tunnel. Therefore, the network device may determine whether the packet is received via a tunnel (operation 454).
[0062] If the packet is received via a tunnel, the packet may be encapsulated using a tunnel encapsulation header (e.g., a VXLAN header). The network device may then decapsulate the tunnel encapsulation header (operation 456). Based on the decapsulation, the network device may obtain the inner packet. If the packet is not received via a tunnel (i.e., received via an edge port) (operation 454) or is received when the header is decapsulated (operation 456), the network device may match the destination address of the packet (which may be an IP address) with a prefix route in the forwarding hardware of the local network device (operation 458).
[0063] Since the destination address matches the prefix route, the corresponding rule can be triggered. Therefore, the network device can provide the packet to the routing daemon of the local network device (operation 460). The routing daemon can maintain a data structure, such as an FDS, which can store the corresponding active routes received by the routing daemon. The network device can then look up the destination address of the packet in the data structure at the routing daemon (operation 462). The lookup operation can include looking up the longest prefix match for the destination address. Therefore, the network device can match the destination address of the packet with the host route in the data structure (operation 464). Here, the address indicated by the host route can be in the subnet represented by the prefix route.
[0064] Figure 5 A flow chart illustrating an example of a process for programming a prefix route reachable via an edge device in local forwarding hardware of a network device according to an aspect of the present application is presented. During operation, the network device may receive a route advertisement from an edge device via which the local network device communicates outside the local fabric (operation 502). The edge device may be shared by one or more other shared fabrics at the local site. The network device may then identify in the route advertisement an indicator indicating a prefix route associated with a remote host reachable via the edge device (operation 504). In this case, the indicator may have an unset value (e.g., a value of zero), indicating that the host route is not included in the route advertisement.
[0065] The network device may then obtain the prefix route from the route advertisement. Subsequently, the network device may store the prefix route in a data structure of the local network device (operation 506). The data structure may be an FDS maintained in the control plane of the local network device. The corresponding route may be inserted into the data structure by the routing daemon of the local network device. The network device may also program the prefix route in the forwarding hardware of the local network device (operation 508). Because the route may be an external route, the network device may avoid programming rules for promotion to the control plane in the forwarding hardware (operation 510).
[0066] Figure 6 An example of a network device that supports selective programming of forwarding hardware according to an aspect of the present application is shown. In this example, a network device 600 (which may also be referred to as a network device 600) may include a plurality of communication ports 602, a packet processor 610, and a persistent storage device 650. The packet processor 610 may extract and process header information from a received packet. The packet processor 610 may identify a network device identifier (e.g., a MAC address and / or an IP address) associated with the network device 600 in a header of a packet. The network device 600 may include a storage medium 620. In some examples, the storage medium 620 may include a set of volatile memory devices (e.g., a dual in-line memory module (DIMM)).
[0067] The network device 600 may also include forwarding hardware 660 (e.g., processing hardware of the network device 600, such as an application specific integrated circuit (ASIC) chip thereof), which includes information based on which the network device 600 processes the packet (e.g., determines an output port for the packet). The forwarding hardware 660 may include one or more cells of a TCAM. The TCAM in the forwarding hardware 660 may store forwarding and routing entries determined by the control plane of the network device 600. These entries may allow the network device 600 to forward data packets. Thus, the forwarding hardware 660 may be programmed by the control plane and facilitate at least a subset of the operations of the data plane of the network device 600.
[0068] The communication port 602 may include an inter-device communication channel for communicating with other network devices and / or user equipment. The communication channel may be implemented via a conventional communication port and based on any open or private format. The communication port 602 may include one or more Ethernet ports that can receive frames encapsulated in an Ethernet header. The communication port 602 may also include one or more IP ports that can receive IP packets. The IP port can receive IP packets and may be configured with an IP address. The packet processor 610 may process Ethernet frames and / or IP packets. The corresponding ports in the communication port 602 may be used as inlet and / or outlet operations.
[0069] The network device 600 may maintain a database 652 (e.g., in a storage device 650). The database 652 may be a relational database and may run on one or more database management system (DBMS) instances. The database 652 may store information associated with the routing, configuration, and interfaces of the network device 600. The database 652 may store the FDS and RDS of the network device 600. The storage medium 620 may include instructions associated with a tunnel system 640. The tunnel system 640 may include instructions that may allow the network device 600 to operate as a tunnel endpoint in a tunnel structure. In order to operate as a tunnel endpoint, the tunnel system 640 may establish a tunnel with one or more remote network devices. The storage medium 620 may include instructions associated with a selective programming system 630 that may allow the network device 600 to selectively program host routes in the forwarding hardware 660.
[0070] The selective programming system 630 may include an indicator subsystem 632, a prefix routing subsystem 634, a lookup subsystem 636, and a promotion subsystem 638. The indicator subsystem 632 may include instructions for identifying an indicator in a route advertisement (e.g., in an overlay routing packet) and determining whether the route advertisement includes a host route. The routing subsystem 634 may include instructions for obtaining host and prefix routes from the route advertisement and programming them in a data structure (e.g., in an FDS) in the control plane of the network device 600. The routing subsystem 634 may include instructions for programming the prefix routes in the forwarding hardware 660 with a rule that if the indicator indicates the presence of a corresponding host route, the matching packet is promoted to the control plane.
[0071] On the other hand, the routing subsystem 634 may include instructions for programming the prefix route irregularly in the forwarding hardware 660 if the indicator indicates that the host route is not included in the route advertisement. The lookup subsystem 636 may include instructions for determining a match between the destination IP address of the packet and the prefix route programmed in the forwarding hardware 660. The promotion subsystem 638 may include instructions for promoting the packet (or its header) to the control plane when a match is found. The lookup subsystem 636 may then include instructions for determining a match between the destination IP address of the packet and the host route stored in the data structure. The routing subsystem 634 may then include instructions for programming the host route in the forwarding hardware 660.
[0072] The description herein is intended to enable any person skilled in the art to make and use the invention, and is provided in the context of a specific application and its requirements. Various modifications to the disclosed examples will be clear to those skilled in the art, and the general principles defined herein may be applied to other examples and applications without departing from the spirit and scope of the invention. Therefore, the present invention is not limited to the embodiments shown, but should be given the widest scope consistent with the claims.
[0073] One aspect of the present technology may provide a network device in a first structure of an overlay network. During operation, the network device may receive a route advertisement from an edge device via which the network device communicates externally of the first structure. The network device may determine whether a host route associated with a host coupled to a second structure of the overlay network is included in the route advertisement based on an indicator in the route advertisement. If the indicator indicates that the host route is included in the route advertisement, the network device may store the host route in a data structure on the network device. The network device may also program a prefix route associated with the host route in local forwarding hardware. If the network device detects a packet destined for a host device, the network device may program the host route in the forwarding hardware.
[0074] In a variation of this aspect, the network device may detect a packet destined for a host device by matching the packet's destination address to a prefix route in forwarding hardware and a host route in a data structure.
[0075] In another variation, the network device may provide the packet to a routing daemon of the network device, which may then look up the destination address in a data structure.
[0076] In a variation of this aspect, the route advertisement may be included in an Ethernet Virtual Private Network (EVPN) extended community that encodes the host route for advertisement in the overlay network.
[0077] In another variation, the indicator may be included in a field at a predefined location in the EVPN extended community.
[0078] In a variation of this aspect, the network device may obtain the prefix route from the route advertisement.
[0079] In a variation of this aspect, the network device may identify a second indicator in the second route advertisement, the second indicator indicating a second prefix route associated with a second host reachable via the edge device.The network device may then program the second prefix route in forwarding hardware.
[0080] In a variation of this aspect, the network device may program the prefix route in forwarding hardware by programming rules in the forwarding hardware for providing packets matching the prefix route to a routing daemon of the network device.
[0081] In a variation of this aspect, the network device may receive the packet via a first tunnel between the network device and the edge device, the first tunnel maintaining a second tunnel with the second fabric.
[0082] The data structures and codes described in this detailed description are generally stored on a computer-readable storage medium, which can be any device or medium capable of storing code and / or data for use by a computer system. Computer-readable storage media may include, but are not limited to, volatile memory, non-volatile memory, magnetic and optical storage devices (such as disks, tapes, CDs (optical disks), DVDs (digital versatile disks or digital video disks)), or other media capable of storing computer-readable media now known or later developed.
[0083] The methods and processes described in the detailed description section may be embodied as code and / or data, which may be stored in a computer-readable storage medium as described above. When a computer system reads and executes the code and / or data stored on a computer-readable storage medium, the computer system executes the methods and processes embodied as data structures and code and stored in the computer-readable storage medium.
[0084] The methods and processes described herein may be performed by and / or included in hardware logic blocks or devices. These logic blocks or devices may include, but are not limited to, application specific integrated circuit (ASIC) chips, field programmable gate arrays (FPGAs), dedicated or shared processors that execute specific software logic blocks, a piece of code at a specific time, and / or other programmable logic devices now known or later developed. When the hardware logic blocks or devices are activated, they execute the methods and processes included therein.
[0085] The above descriptions of the embodiments of the present invention are for illustration and description purposes only. They are not intended to be exhaustive or limit the present disclosure. Therefore, many modifications and variations will be clear to those skilled in the art. The scope of the present invention is defined by the appended claims.
Claims
1. A method comprising: receiving, by a network device in a first fabric of an overlay network, a route advertisement from an edge device, the network device communicating externally of the first fabric via the edge device; determining, based on an indicator in the route advertisement, whether a host route associated with a host coupled to a second fabric of the overlay network is included in the route advertisement; In response to the indicator indicating that the host route is included in the route advertisement: storing the host route in a data structure on the network device; as well as programming a prefix route associated with the host route in forwarding hardware of the network device; as well as The host route is programmed in the forwarding hardware in response to detecting a packet addressed to the host device.
2. The method of claim 1 , wherein detecting the packet destined for the host device comprises: matching a destination address of the packet to the prefix route in the forwarding hardware; as well as The destination address is matched to the host route in the data structure.
3. The method according to claim 2, further comprising: providing the packet to a routing daemon of the network device; as well as The destination address is looked up in the data structure by the routing daemon. 4 . The method of claim 1 , wherein the route advertisement is included in an Ethernet Virtual Private Network (EVPN) extended community that encodes the host route for advertisement in the overlay network. 5 . The method of claim 4 , wherein the indicator is included in a field at a predefined location in the EVPN extended community. The method of claim 1 , further comprising obtaining the prefix route from the routing advertisement.
7. The method according to claim 1, further comprising: identifying, in a second routing advertisement, a second indicator indicating a second prefix route associated with a second host reachable via the edge device; as well as The second prefix route is programmed in the forwarding hardware.
8. The method of claim 1, wherein programming the prefix routing in the forwarding hardware further comprises: In the forwarding hardware, rules are programmed for providing packets matching the prefix route to a routing daemon of the network device.
9. The method according to claim 1, further comprising: The packet is received via a first tunnel between the network device and the edge device, the first tunnel maintaining a second tunnel with the second fabric.
10. A non-transitory computer-readable storage medium storing instructions that, when executed by a processor of a network device in a first fabric of an overlay network, cause the processor to perform a method comprising: receiving a routing advertisement from an edge device via which the network device communicates externally of the first fabric; determining, based on an indicator in the route advertisement, whether a host route associated with a host coupled to a second fabric of the overlay network is included in the route advertisement; In response to the indicator indicating that the host route is included in the route advertisement: storing the host route in a data structure on the network device; as well as programming a prefix route associated with the host route in forwarding hardware of the network device; as well as The host route is programmed in the forwarding hardware in response to detecting a packet addressed to the host device.
11. The non-transitory computer-readable storage medium of claim 10, wherein detecting the packet destined for the host device comprises: matching a destination address of the packet to the prefix route in the forwarding hardware; as well as The destination address is matched to the host route in the data structure.
12. The non-transitory computer-readable storage medium of claim 11, wherein the method further comprises: providing the packet to a routing daemon of the network device; as well as The destination address is looked up in the data structure by the routing daemon.
13. The non-transitory computer-readable storage medium of claim 10, wherein the route advertisement is included in an Ethernet Virtual Private Network (EVPN) extended community that encodes the host route for advertisement in the overlay network.
14. The non-transitory computer-readable storage medium of claim 13, wherein the indicator is included in a field at a predefined location in the EVPN extended community.
15. The non-transitory computer-readable storage medium of claim 10, wherein the method further comprises obtaining the prefix route from the routing advertisement.
16. The non-transitory computer-readable storage medium of claim 10, wherein the method further comprises: identifying, in a second routing advertisement, a second indicator indicating a second prefix route associated with a second host reachable via the edge device; as well as The second prefix route is programmed in the forwarding hardware.
17. The non-transitory computer-readable storage medium of claim 10, wherein programming the prefix routing in the forwarding hardware further comprises: In the forwarding hardware, rules are programmed for providing packets matching the prefix route to a routing daemon of the network device.
18. The non-transitory computer readable storage medium of claim 10, wherein the method further comprises: The packet is received via a first tunnel between the network device and the edge device, the first tunnel maintaining a second tunnel with the second fabric.
19. A computer system comprising: processor; Forwarding hardware; as well as a non-transitory computer-readable storage medium storing instructions that, when executed by the processor, cause the computer system to: operating a computer system in a first configuration of an overlay network; receiving a routing advertisement from an edge device via which the computer system communicates external to the first fabric; determining, based on an indicator in the route advertisement, whether a host route associated with a host coupled to a second fabric of the overlay network is included in the route advertisement; In response to the indicator indicating that the host route is included in the route advertisement: storing the host route in a data structure on the computer system; as well as programming, in the forwarding hardware, a prefix route associated with the host route; as well as The host route is programmed in the forwarding hardware in response to detecting a packet addressed to the host device.
20. The computer system of claim 19, wherein the instructions, when executed by the processor, cause the computer system to detect the packet destined for the host device by: matching the destination address of the packet to the prefix route in the forwarding hardware; and The destination address is matched to the host route in the data structure.
Citation Information
Patent Citations
Method and apparatus for realizing host route reachability
CN104052666A
Advertising selected fabric paths for service routes in virtual nodes
CN108989203A
Method, device and system for establishing BIER forwarding table entry
CN110784411A
IPv6 stateless address automatic configuration method, network equipment and host
CN111435912A
Network device route programming
US20220321463A1