WO2017124886A1 - 按需获取路由的方法及网关 - Google Patents

按需获取路由的方法及网关 Download PDF

Info

Publication number
WO2017124886A1
WO2017124886A1 PCT/CN2016/111938 CN2016111938W WO2017124886A1 WO 2017124886 A1 WO2017124886 A1 WO 2017124886A1 CN 2016111938 W CN2016111938 W CN 2016111938W WO 2017124886 A1 WO2017124886 A1 WO 2017124886A1
Authority
WO
WIPO (PCT)
Prior art keywords
packet
address
gateway
host
network
Prior art date
Application number
PCT/CN2016/111938
Other languages
English (en)
French (fr)
Inventor
高远
李新鹏
袁永黎
Original Assignee
华为技术有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Priority to EP16886145.8A priority Critical patent/EP3306876B1/en
Priority to EP20192140.0A priority patent/EP3823226B1/en
Priority to JP2018526292A priority patent/JP6542993B2/ja
Priority to ES16886145T priority patent/ES2826388T3/es
Publication of WO2017124886A1 publication Critical patent/WO2017124886A1/zh
Priority to US15/910,546 priority patent/US10447593B2/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/10Mapping addresses of different types
    • H04L61/103Mapping addresses of different types across network layers, e.g. resolution of network layer into physical layer addresses or address resolution protocol [ARP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/66Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5007Internet protocol [IP] addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/618Details of network addresses
    • H04L2101/622Layer-2 addresses, e.g. medium access control [MAC] addresses

Definitions

  • the present invention relates to the field of communications, and in particular, to a method and a gateway for obtaining a route on demand.
  • the packet forwarding mode of the distributed gateway architecture is that, regardless of whether the host that sends and receives packets is in the same broadcast domain (English: broadcast domain, BD for short), the sender host sends the packet to the gateway of the sender host.
  • the gateway sends the packet to the receiver host according to the destination IP address of the packet.
  • the receiver host may access the network through another gateway in the local area network.
  • the forwarding table of the gateway of the sender host it is necessary to store the host route of all hosts in the local area network that access the network through other gateways.
  • the forwarding table occupied by a large number of host routes has more storage resources.
  • the present invention provides a method and a device for obtaining an on-demand route, which is used to obtain a route according to an actual packet forwarding requirement and save the storage resource of the forwarding table under the network architecture of the distributed gateway.
  • a method for obtaining a route on demand comprising:
  • the first gateway fails to find the next hop of the first IP address in the forwarding table
  • the first gateway sends a second packet to the at least one gateway, where the second packet carries the first IP address, and the second packet is used to indicate that the gateway that receives the second packet determines the Whether the host identified by the first IP address accesses the network through the gateway that receives the second packet;
  • the first gateway receives a third packet from the second gateway, where the second gateway is the at least a gateway in a gateway, where the third packet is used to indicate that the host identified by the first IP address accesses the network through the second gateway;
  • the first gateway writes the address of the second gateway as the address of the next hop of the first IP address into the forwarding table.
  • the first gateway does not need to store the next hop of the IP address of the first packet in advance, but can acquire the route as needed according to the accessed host. Therefore, in the case where there are a large number of hosts in the network, the first gateway does not need to store the next hop of the IP address of the host that does not have communication requirements with the first gateway. Conducive to saving the storage resources of the forwarding table.
  • the second packet further carries a first virtual scalable local area network (VXLAN) network identifier VNI of the first packet, where the method is before the first gateway sends the second packet to the at least one gateway.
  • the method includes: the first gateway determining the first VNI of the first packet.
  • VXLAN virtual scalable local area network
  • the determining, by the first gateway, the first VNI specifically includes: the first gateway determining a port that receives the first packet; and the first gateway according to the port to the first VNI Mapping, determining the first VNI.
  • the method further includes: determining, by the first gateway, the mapping of the first VNI to the forwarding table, The forwarding table.
  • the method further includes: the first gateway receives a fourth packet from the third gateway, where the fourth packet carries a second IP address; and the first gateway determines that the first packet is a MAC address of the host identified by the second IP address; the first gateway sends a fifth packet to the third gateway, where the fifth packet is used to indicate that the host identified by the second IP address passes the first The gateway accesses the network.
  • the fourth packet further carries a second VNI, where the first gateway determines a MAC address of the host that can obtain the identifier of the second IP address, including: the first gateway is in the first The VXLAN segment of the second VNI identifier attempts to acquire the MAC address of the host identified by the second IP address.
  • the method before the sending, by the first gateway, the second packet to the at least one gateway, the method further includes: determining, by the first gateway, the location corresponding to the VNI according to a mapping table of multiple VNIs to multiple gateways Said at least one gateway.
  • the first packet is a data packet
  • the first IP address is a destination IP address of the first packet
  • the method further includes: the first gateway is the first packet
  • the VXLAN encapsulation is performed to obtain a sixth packet; the first gateway sends the sixth packet; wherein, a value of a VNI field in a VXLAN header of the sixth packet is the VNI; Outer IP header of the message
  • the destination IP address is the IP address of the second gateway.
  • a network device comprising:
  • a processor configured to store a forwarding table
  • the processor is configured to: receive, by using the network interface, a first packet, where the first packet includes a first Internet Protocol IP address;
  • the second packet Transmitting, by the network interface, the second packet to the at least one gateway, where the second packet carries the first IP address, and the second packet is used to indicate that the gateway that receives the second packet determines the Whether the host identified by the first IP address accesses the network through the gateway that receives the second packet;
  • the second packet further carries a first virtual scalable local area network VXLAN network identifier VNI of the first packet, where the processor is further configured to: before sending the second packet to the at least one gateway, Determining the first VNI of the first message.
  • the processor is further configured to: receive, by using the network interface, a fourth packet from the second gateway, where the fourth packet carries a second IP address, and determines that the second IP address can be obtained. a MAC address of the identified host; the fifth packet is sent to the second gateway by the network interface, where the fifth packet is used to indicate that the host identified by the second IP address accesses the network through the first network .
  • the fourth packet further includes a second VNI, where the determining is configured to obtain the MAC address of the host that is identified by the second IP address, and specifically includes:
  • the third aspect provides a first gateway for obtaining a route on demand, including a first receiving unit, a storage unit, a searching unit, a sending unit, a second receiving unit, and a processing unit, where
  • the first receiving unit is configured to receive a first packet, where the first packet includes a first internet protocol IP address;
  • the storage unit is configured to store a forwarding table
  • the searching unit is configured to search for a next hop of the first IP address in the forwarding table stored by the storage unit;
  • the sending unit is configured to: when the next hop of the first IP address fails to be searched in the forwarding table stored by the storage unit, failing to find the next hop of the first IP address in the searching unit fails
  • the second packet is sent to the at least one gateway, the second packet carries the first IP address, and the second packet is used to indicate that the gateway that receives the second packet determines the first packet. Whether the host identified by the IP address accesses the network through the gateway that receives the second packet;
  • the second receiving unit is configured to receive a third packet from the second gateway, where the second gateway is one of the at least one gateway, and the third packet is used to indicate the first IP address
  • the host identified by the address accesses the network through the second gateway;
  • the processing unit is configured to obtain the third packet received by the second receiving unit, and use the address of the second gateway as the next hop of the first IP address according to the third packet The address is written to the forwarding table stored by the storage unit.
  • the second packet further carries a first virtual scalable local area network VXLAN network identifier VNI of the first packet, where the searching unit is further configured to send, by the sending unit, the second to the at least one gateway Before the message: determining the first VNI of the first message.
  • VNI virtual scalable local area network
  • the second receiving unit is further configured to receive a fourth packet from the third gateway, where the fourth packet carries a second IP address
  • the searching unit is further configured to acquire the second packet.
  • the fourth packet further carries a second VNI, where the searching unit is configured to determine a MAC address of the host that can obtain the identifier of the second IP address, and specifically includes: the second VNI identifier.
  • the searching unit is configured to determine a MAC address of the host that can obtain the identifier of the second IP address, and specifically includes: the second VNI identifier.
  • an attempt is made to obtain the MAC address of the host identified by the second IP address.
  • a computer storage medium for storing computer software instructions for use in the first gateway, comprising a program designed to perform the above aspects.
  • the first packet is an address resolution protocol ARP packet
  • the first IP address is the The destination IP address of the first packet
  • the first packet is a neighbor discovery protocol NDP packet.
  • the IP address is the target address of the first packet.
  • the first gateway When the first gateway receives the ARP packet or the NDP packet, it means that the host that sends the first packet may soon communicate with the host identified by the first IP address.
  • the first gateway sends a next hop for acquiring the first IP address to other gateways, which is beneficial to not storing the IP address of the host without communication requirements. Get the next hop of the IP address of the host that has communication needs early. It is beneficial to improve the efficiency of subsequent message forwarding.
  • FIG. 1 is a schematic diagram of an application scenario provided by an embodiment of the present application.
  • FIG. 2 is a flowchart of a method for obtaining an on-demand route according to an embodiment of the present application.
  • FIG. 3 is a flowchart of a method for obtaining an on-demand route according to an embodiment of the present application.
  • FIG. 4 is a schematic structural diagram of a first gateway according to an embodiment of the present application.
  • FIG. 5 is a schematic structural diagram of another first gateway according to an embodiment of the present disclosure.
  • FIG. 1 is a schematic diagram of an application scenario provided by an embodiment of the present application.
  • the data center network (English: data center network, referred to as DCN) includes a first gateway 101, a second gateway 102, and a third gateway 103.
  • the host 106 can access the DCN through any of the first gateway 101, the second gateway 102, or the third gateway 103.
  • the host 107 can access the DCN through any of the first gateway 101, the second gateway 102, or the third gateway 103.
  • the host may be a personal computer (English: personal computer), a mobile phone (English: cellphone), Smartphone (English: smartphone), tablet (English: tablet computer), wearable device (English: wearable device), personal digital assistant (English: personal digital assistant, PDA for short), mobile internet device (English: mobile Internet Device, abbreviation: MID) and e-book reader (English: e-book reader), etc., can also be a virtual machine (English: virtual machine, referred to as: VM). When the host is a virtual machine, the virtual machine can run on the server.
  • VM virtual machine
  • the MAC address and IP address of the host 106 do not change.
  • the host 106 is a virtual machine that does not change the MAC address and IP address of the virtual machine when it migrates from the server connected to the first gateway 101 to the server connected to the second gateway 102. Therefore, hosts in the same broadcast domain (English: broadcast domain, BD for short) may access the network through different gateways.
  • the packet forwarding manner in the network architecture of the distributed gateway is as follows: in the process of the host 106 sending a packet to the host 107, regardless of whether the host 106 and the host 107 are in the same broadcast domain, the host Each of the 106s has the MAC address of its gateway as the MAC address of the message transmitted to the host 107. For example, when the host 106 accesses the DCN through the first gateway 101, the packet is sent to the first gateway 101. After receiving the packet, the first gateway 101 strips the Ethernet frame header of the packet, obtains the destination IP address in the packet, and forwards the packet according to the destination IP address in the packet. Message.
  • the host 106 When the packet forwarding mode is adopted, the host 106 is required to send a packet to the host 107, and the first gateway 101 connected to the host 106 needs to pre-store the host route of the host 107 in the forwarding table (English: host route)
  • the host route includes the IP address of the host 107 and the next hop of the IP address of the host 107 (English: next hop). That is, the first gateway 101 needs to store in advance a gateway that the host 107 currently accesses the network. For example, in FIG. 1, the first gateway 101 needs to know whether the host 107 is currently accessing the network through the second gateway 102 or accessing the network through the third gateway 103.
  • the second gateway 102 needs to advertise the host route of the host 107 to other gateways in the DCN, for example, to the first gateway.
  • the first gateway 101 and the third gateway 103 store the next hop of the IP address of the host 107 as the second gateway 102.
  • VXLAN virtual eXtensible Local Area Network
  • BGP Border Gateway Protocol
  • the first gateway 101, the second gateway 102, and the third gateway 103 are pre-established through a border gateway protocol (English: Border Gateway Protocol, BGP for short), that is, the first gateway 101, the second gateway 102, and The third gateway 103 is a BGP neighbor (English: BGP peer).
  • BGP Border Gateway Protocol
  • the second gateway 102 advertises the host route of the host 107 to other gateways in the DCN, such as the first gateway 101 and the third gateway 103, through BGP messages.
  • the first gateway 101 saves the host route of the host 107 in the routing table, and uses the second gateway 102 as the next hop of the host 107.
  • the first gateway 101, the second gateway 102, and the third gateway 103 are all VXLAN Tunnel End Point (English: VXLAN Tunnel End Point, VTEP for short).
  • the host 106 uses the IP address of the host 107 as the destination IP address of the data packet, and uses the MAC address of the first gateway as the MAC address of the first gateway.
  • the destination MAC address of the data packet is sent to the first gateway 101.
  • the host 106 wants to use the MAC address of the host 107 as the destination MAC address of the data message. Therefore, the host 106 broadcasts a second message for requesting the MAC address of the host 107 in the broadcast domain before transmitting the data message.
  • the second packet may be an address resolution protocol (ARP) request packet in the Internet Protocol version 4 (abbreviation: IPv4).
  • the second packet may be a neighbor discovery protocol in the Internet Control Message Protocol (ICMP) in the sixth edition of the Internet Protocol (English: Internet Protocol version 6, IPv6). (English: Neighbor Discovery Protocol, NDP for short).
  • ARP address resolution protocol
  • IPv4 Internet Protocol version 4
  • ICMP Internet Control Message Protocol
  • NDP Neighbor Discovery Protocol
  • the first gateway 101 After the first gateway 101 receives the second packet, the first gateway 101 sends a response packet of the second packet to the host 106 by using a proxy mechanism to indicate the host 106 and the host 107.
  • the MAC address corresponding to the IP address is the MAC address of the first gateway 101.
  • the host 106 sends the first packet to the first gateway 101 by using the MAC address of the first gateway 101 as the MAC address of the first packet.
  • the host 106 is directed to the host.
  • the MAC address of the first gateway 101 is used as the MAC address of the data message.
  • the first gateway 101 determines the VXLAN network identifier (VNI) of the data packet according to the port that receives the data packet (English: VXLAN Network Identifier, VNI for short). Among them, VNI can also be called VXLAN segment ID (English: VXLAN Segment ID).
  • VNI VXLAN network identifier
  • the first gateway 101 stores a correspondence between each VNI of the plurality of VNIs to the forwarding table.
  • the first gateway 101 determines a forwarding table according to the VNI of the first packet.
  • the host table of the host 107 that is advertised by the second gateway 102 through the BGP protocol is pre-stored in the forwarding table.
  • the host route includes the address of the host 107, and the next hop corresponding to the address of the host 107 is the second gateway 102. .
  • the first gateway 101 sends the data packet to the second gateway 102 through a VXLAN tunnel. That is, the first gateway 101 performs VXLAN encapsulation on the data packet. Specifically, the first gateway 101 sequentially encapsulates a VXLAN header (English: VXLAN header), an outer user datagram (English: User UDP header), and an outer UDP header in the outer layer of the data packet.
  • Outer IP header (English: outer IP header).
  • the VNI in the VXLAN header is the VNI of the data packet, and the destination IP address in the outer IP header is the IP address of the second gateway 102.
  • the encapsulation of other fields can be found in the Request for Comments (RFC) 7348 protocol.
  • the second gateway 102 After receiving the data packet encapsulated by the VXLAN, the second gateway 102 determines a forwarding table according to the VNI in the VXLAN header of the packet, where the forwarding table stores the IP address and MAC of the host of the VXLAN segment. The correspondence of addresses. The second gateway 102 searches for the MAC address of the host 107 in the forwarding table, and sends the data packet to the host 107.
  • the first gateway 101 needs to pre-store all host routes that access the network through other gateways in the forwarding table.
  • the number of host routes is also very large. There may be no communication requirements between some of the hosts, so some host routes may not be needed by the first gateway 101.
  • the host route that is not required by the first gateway 101 is stored, and the storage resource of the forwarding table is occupied.
  • the embodiment of the present application provides a method for obtaining a route on demand. It is used to obtain routes according to the actual packet forwarding requirements and save the storage resources of the forwarding table in the network architecture of the distributed gateway.
  • FIG. 2 shows a method for obtaining an on-demand route provided by an embodiment of the present application.
  • the method can be applied to the distributed gateway shown in FIG.
  • the first gateway in the method shown in FIG. 2 can adopt the first gateway 101 shown in FIG. 1.
  • the second gateway in the method shown in Figure 2 The second gateway 102 shown in FIG. 1 can be employed.
  • the method includes the following steps.
  • the first gateway receives the first packet, where the first packet includes a first IP address.
  • the host identified by the first IP address is not the sender of the first packet.
  • the first packet is from the first host, and the host identified by the first IP address is the second host.
  • the first message is a message sent by the host 106 shown in FIG. 1 to the first gateway 101.
  • the first message is a data message.
  • the first IP address is a destination IP address in the first packet (English: destination IP address).
  • the first message is a data message that the host 106 is to send to the host 107.
  • the destination IP address is the IP address of the host 107.
  • the first packet is an ARP packet
  • the first IP address is a target protocol address (TPA) of the first packet.
  • host 106 is to send a data message to host 107 in accordance with IPv4.
  • Host 106 and host 107 belong to the same broadcast domain.
  • the host 106 broadcasts the ARP packet to obtain the MAC address of the host 107.
  • the first packet is an NDP packet
  • the first IP address is a target address of the first packet.
  • the host 106 is to send a data message to the host 107 according to IPv6. Host 106 and host 107 belong to the same broadcast domain. Before transmitting the data packet to the host 107, the host 106 sends an NDP packet (for example, Neighbor Solicitation) to obtain the MAC address of the host 107.
  • NDP packet for example, Neighbor Solicitation
  • the first gateway searches for a next hop failure of the first IP address in the forwarding table.
  • the forwarding table stores a plurality of IP addresses, and a next hop of each of the plurality of IP addresses.
  • the next hop of the IP address stored in the forwarding table may include the IP address of the gateway (eg, the second gateway), that is, the forwarding table.
  • the mapping of the IP address of the host to the IP address of the gateway (eg, the second gateway) is stored.
  • the next hop of the IP address stored in the forwarding table may include the MAC address of the host, that is, the storage table in the forwarding table. Mapping of the host's IP address to the host's MAC address.
  • the forwarding table may also store an outbound interface identifier of the next hop of the IP address.
  • the forwarding table may be a routing information base (English: routing information base, referred to as: RIB) or a forwarding information base (English: forwarding information base, referred to as: FIB).
  • RIB routing information base
  • FIB forwarding information base
  • the first gateway further performs the step of: determining, by the first gateway, the first VNI of the first packet.
  • the first gateway determines a port that receives the first packet; the first gateway determines the VNI of the first packet according to a mapping between the port and a virtual scalable local area network VXLAN network identifier VNI. And determining, by the first gateway, the forwarding table of the VNI according to the VNI.
  • each forwarding table is an instance of virtual routing and forwarding (VRF) (English: instance).
  • VRF virtual routing and forwarding
  • the failure of the first gateway to find the next hop of the first IP address in the forwarding table means that the first gateway does not find the next hop of the IP address in the first packet in the forwarding table.
  • the first gateway sends a second packet to the at least one gateway, where the second packet carries the first IP address, and the second packet is used to indicate that the gateway that receives the second packet is determined. Whether the host identified by the first IP address accesses the network through the gateway that receives the second packet.
  • the first gateway may look up a gateway of the VNI having the first message in a mapping table of a plurality of VNIs to a plurality of gateways.
  • the mapping table stores a mapping of the VNI of the first packet to the at least one gateway.
  • the at least one gateway is a gateway in the local area network that allows the host of the VNI to connect. Determining, by the first gateway, the at least one gateway of the VNI having the first packet according to the result of the searching.
  • the first gateway sends the second packet to all gateways in the local area network.
  • the first gateway and the at least one gateway may be the BGP neighbors described in FIG. 1.
  • the second packet may be a BGP packet.
  • the second packet may be an update (English: update) packet defined in BGP.
  • the first IP address may be carried in a path attribute (English: Path Attribute) field in the update packet.
  • a Type is defined in the Type-Length-Value (TLV) constituting the Path Attribute field, and is used to identify the second packet.
  • the first IP address is carried in the Value field.
  • the second packet further carries the VNI of the first packet.
  • the first The VNI of the packet and the first IP address are carried in the Path Attribute field in the update packet.
  • the second packet further carries an identifier of the broadcast domain of the first IP address.
  • the first gateway stores a correspondence between multiple IP subnet segments and a broadcast domain.
  • the first gateway acquires the identifier of the broadcast domain according to the broadcast domain corresponding to the first IP address.
  • the identifier of the broadcast domain, the VNI of the first packet, and the first IP address are both carried in a Path Attribute field in the update packet.
  • the second gateway receives the second packet from the first gateway.
  • the second gateway determines that the MAC address of the host identified by the first IP address carried in the second packet can be obtained.
  • the second gateway determines a MAC address of the host that can obtain the identifier of the first IP address, specifically including the second The gateway determines, in the VXLAN segment corresponding to the VNI, a MAC address of a host that can obtain the identifier of the first IP address.
  • the second gateway obtains the MAC address of the host identified by the first IP address carried in the second packet, and may include a mapping table of the multiple gateways from the stored multiple IP addresses and MAC addresses. Find the MAC address corresponding to the first IP address.
  • the host identified by the first IP address is the host 107
  • the MAC address corresponding to the first IP address stored in the mapping table is the MAC address of the host 107.
  • the second gateway further stores a correspondence between the VNI and the mapping table of the multiple IP addresses and MAC addresses.
  • the mapping table of the plurality of IP addresses and MAC addresses stores a mapping of an IP address and a MAC address in a VXLAN segment corresponding to the VNI.
  • the second gateway determines that the MAC address of the host identified by the first IP address carried in the second packet is obtained, and may further include the second gateway broadcasting a request report to the host accessing the network through the second gateway.
  • the request message is used to request the MAC address of the host 107.
  • the request message as described in FIG. 1 , may be an ARP packet in the IPv4 protocol, or may be an NDP packet in the IPv6.
  • the second gateway obtains the MAC address corresponding to the first IP address according to the response of the host 107 to the request packet.
  • the second gateway determines, according to the VNI, a port that broadcasts the request packet, to the The host of the VXLAN segment corresponding to the VNI broadcasts the request message. If the first The second packet further carries the broadcast domain identifier in S202, and when the second gateway broadcasts the request packet, the second gateway jointly determines the port for broadcasting the request packet according to the VNI and the broadcast domain identifier.
  • the request message is broadcast to a host belonging to the broadcast domain in a VXLAN segment corresponding to the VNI.
  • the second gateway sends a third packet to the first gateway, where the third packet is used to indicate that the host identified by the second IP address accesses the network by using the first gateway.
  • the third packet may be a BGP packet.
  • the third packet may be in the same packet format as the second packet, for example, an update packet in BGP is used.
  • the value field in the Path Attribute field carried in the third packet is the same as the value field in the second packet, and the Type field defines an identifier, which is used to identify the type of the third packet.
  • the first gateway receives the third packet from the second gateway, where the third packet is used to indicate that the host identified by the first IP address accesses the network by using the second gateway.
  • the first gateway writes the address of the second gateway as the next hop address of the first IP address into the forwarding table.
  • the third packet carries the source address of the gateway that sends the third packet, and the first gateway determines the second gateway according to the source address in the third packet.
  • the first packet is a data packet
  • the method further includes: S205, the first gateway performs VXLAN encapsulation on the first packet to obtain a encapsulated first packet; A gateway sends the encapsulated first packet.
  • the value of the VNI field in the VXLAN header of the encapsulated first packet is the VNI of the first packet, and the destination IP address of the outer IP header of the encapsulated first packet. Is the IP address of the second gateway.
  • the first packet is a packet that the host 106 requests from the first gateway to the MAC address of the host identified by the first IP address, such as an ARP packet or an NDP packet.
  • the method also includes the first gateway transmitting a MAC address of the first gateway to the host 106.
  • the first gateway may also determine, according to the requirements of the other gateway, whether the host identified by the IP address (for example, the second IP address) accesses the network through the first gateway, and determines whether the host identified by the IP address passes the The first gateway accesses the network. Determining, by the first gateway, whether the host identified by the IP address accesses the network by using the first gateway, and determining, by the second gateway in the foregoing S301-S302, whether the host identified by the first IP address accesses the network by using the first gateway The steps are similar. For example, if the first gateway receives a fourth message from the third gateway indicating whether the host identified by the second IP address identifies the second packet through the first gateway, as shown in FIG. 3, the method further S401, S402 and S403 are included.
  • the first gateway receives a fourth packet from the third gateway, where the fourth packet carries a second IP address.
  • the first gateway acquires a MAC address corresponding to the second IP address.
  • the first gateway sends a fifth packet to the third gateway, where the fifth packet is used to indicate that the third gateway uses the address of the first gateway as the second IP address. One hop address.
  • the first gateway obtains the MAC address corresponding to the second IP address according to the second IP address carried in the fourth packet, and the second gateway in S301 shown in FIG. 2 may be used. Obtaining a specific implementation manner of the MAC address corresponding to the first IP address according to the first IP address carried in the second packet.
  • the specific implementation manner of the fifth packet sent by the first gateway to the third gateway may be implemented by using the second gateway in the S302 shown in FIG. 2 to send the third packet to the first gateway. the way.
  • FIG. 4 is a schematic structural diagram of a first gateway according to an embodiment of the present application.
  • the first gateway 500 includes a processor 501, a memory 502, and a network interface 503.
  • the memory 502 is used to store a forwarding table.
  • the memory 502 includes, but is not limited to, a content-addressable memory (English: content-addressable memory, CAM for short), such as a tri-state content addressed memory (English: ternary CAM, TCAM for short), and a random access memory ( English: random-access memory, referred to as: RAM).
  • a content-addressable memory English: content-addressable memory, CAM for short
  • CAM content-addressable memory
  • TCAM tri-state content addressed memory
  • RAM random access memory
  • the network interface 503 can be a wired interface, such as a Fiber Distributed Data Interface (FDDI) or an Ethernet (English) interface.
  • Network interface 503 can also be a wireless interface, such as a wireless local area network interface.
  • the processor 501 includes, but is not limited to, a central processing unit (English: central processing unit, CPU for short), a network processor (English: network processor, referred to as NP), and an application-specific integrated circuit (English: application-specific integrated circuit, referred to as: ASIC) or one or more of programmable logic devices (English: programmable logic device, abbreviation: PLD).
  • the above PLD can be a complex programmable logic device (English: complex programmable logic device, abbreviation: CPLD), field-programmable gate array (English: field-programmable gate array, abbreviation: FPGA), general array logic (English: generic array Logic, abbreviation: GAL) or any combination thereof.
  • the memory 502 can also be integrated in the processor 501. If memory 502 and processor 501 are mutually independent devices, memory 502 is coupled to processor 501, for example, memory 502 and processor 501 can communicate over a bus.
  • the network interface 503 and the processor 501 can communicate via a bus, and the network interface 503 can also be directly connected to the processor 501.
  • the processor 501 is configured to perform the following operations:
  • the second packet Transmitting, by the network interface 503, the second packet to the at least one gateway, where the second packet carries the first IP address, and the second packet is used to indicate that the gateway that receives the second packet determines the location Whether the host identified by the first IP address accesses the network by using the gateway that receives the second packet;
  • a third packet from the second gateway where the second gateway is one of the at least one gateway, and the third packet is used to indicate the identifier of the first IP address.
  • the host accesses the network through the second gateway;
  • the processor 501 can include an NP and a CPU, the NP and the CPU communicating via a bus.
  • the NP is used to perform the operation of the forwarding plane, and the CPU is used to perform the operation of the control plane.
  • the NP performs the first packet received by the network interface 503; and searches the forwarding table stored in the memory 502 for the next hop of the IP address in the first packet. After the NP finds that the next hop of the IP address in the first packet fails, the NP sends the IP address to the CPU through the bus. Specifically, the NP finds the next hop.
  • the NP can read the information of the forwarding table in the memory to find the next hop of the first IP address; another possibility The method is: if the memory is a CAM, the NP sends the first IP address to the memory, indicating that the memory searches the forwarding table for an entry matching the first IP address, where the first IP is stored in the entry The next hop of the address, the memory sends the search result to the NP. If the next hop fails, the NP does not find the entry matching the first IP address in the forwarding table. If the first hop fails, the memory may send the result of the search failure to the NP.
  • the memory will be The general table entry is sent to the NP as a result of the search.
  • the CPU generates the second packet and sends the second packet to the at least one gateway through the network interface 503. Further, the CPU Receiving, by the network interface 503, a third packet from the second gateway, and using an address of the second gateway as an address of a next hop of the first IP address.
  • the CPU transmits the first IP address and the next hop address of the first IP address to the NP through the bus.
  • the NP writes the first IP address and the next hop address of the first IP address to the forwarding table stored in the memory 501.
  • the processor 501 before searching for the next hop of the IP address in the first packet in the forwarding table stored in the memory 502, further performing the following steps: determining to receive the first report a port of the text; determining the VNI according to the mapping of the port to the virtual scalable local area network VXLAN network identifier VNI; and determining the forwarding table according to the mapping of the VNI to the forwarding table.
  • this step can be performed by the NP.
  • the NP transmits the IP address to the CPU via the bus 504, the NP is also transmitted to the CPU.
  • the second packet further carries the VNI.
  • the processor 501 before the processor 501 sends the second packet to the at least one gateway by using the network interface 503, the processor 501 further performs: searching, in the mapping table of the plurality of VNIs to the multiple gateways, Declaring the gateway of the VNI; determining the at least one gateway according to the result of the searching. For example, this step can be performed by the CPU.
  • a mapping table of the plurality of VNIs to the plurality of gateways may be stored in a memory of the CPU.
  • the first packet is a data packet
  • the first IP address is a destination IP address of the first packet
  • the processor further performs: performing VXLAN encapsulation on the first packet to obtain a third packet. Transmitting, by the network interface, the third packet, where a value of a VNI field in a VXLAN header of the third packet is the VNI; and an outer IP header of the third packet
  • the destination IP address is the IP address of the second gateway. For example, this step can be performed by the NP.
  • the first packet is an address resolution protocol (ARP) packet
  • the first IP address is a destination IP address TPA of the first packet
  • the first packet is a neighbor discovery protocol (NDP).
  • the packet, the IP address is a target address of the first packet, Target Address.
  • the processor 501 is further configured to: receive, by using the network interface 503, a fourth packet from the third gateway, where the fourth packet carries a second IP address; and the second IP address is obtained. Transmitting a fifth packet to the third gateway by using the network interface, where the fifth packet is used to indicate that the third gateway uses the address of the first gateway as the second IP address. The address of the next hop. For example, this step can be performed by the CPU.
  • the fourth packet further carries a virtual scalable local area network (VXLAN) network identifier VNI
  • VXLAN virtual scalable local area network
  • the processor 501 obtains a MAC address corresponding to the second IP address
  • the processor 501 includes: Obtaining the MAC address corresponding to the second IP address in the VXLAN segment corresponding to the VNI address. For example, this step can be performed by the CPU.
  • VXLAN virtual scalable local area network
  • the first gateway 500 provided in this embodiment can be applied to the methods in the embodiments of FIG. 2 and FIG. 3 to implement the functions of the first gateway.
  • FIG. 5 is a schematic structural diagram of another first gateway provided by an embodiment of the present application.
  • the first gateway 600 includes a first receiving unit 601, a storage unit 602, a searching unit 603, a transmitting unit 604, a second receiving unit 605, and a processing unit 606.
  • the first receiving unit 601 is configured to receive a first packet, where the first packet includes a first Internet Protocol IP address;
  • the storage unit 602 is configured to store a forwarding table.
  • the searching unit 603 is configured to acquire the first packet received by the first receiving unit 601, and search for the next hop of the first IP address in the forwarding table stored by the storage unit 602. failure;
  • the sending unit 604 is configured to: after the searching unit 603 finds that the next hop of the first IP address fails, send a second packet to the at least one gateway, where the second packet carries the first IP An address, where the second packet is used to indicate that the gateway that receives the second packet determines whether the host identified by the first IP address accesses the network by using the gateway that receives the second packet;
  • the second receiving unit 605 is configured to receive a third packet from the second gateway, where the second gateway is one of the at least one gateway, and the third packet is used to indicate the first The host identified by the IP address accesses the network through the second gateway;
  • the processing unit is configured to obtain the third packet received by the second receiving unit, and use the address of the second gateway as the next hop of the first IP address according to the third packet The address is written to the forwarding table stored by the storage unit.
  • the second packet further carries a first virtual scalable local area network VXLAN network identifier VNI of the first packet, where the searching unit 603 is further configured to send, at the sending unit, the at least one gateway.
  • the searching unit 603 is further configured to send, at the sending unit, the at least one gateway.
  • the first packet is an address resolution protocol (ARP) packet
  • the first IP address is a destination IP address TPA of the first packet
  • the first packet is a neighbor discovery protocol (NDP).
  • the packet, the IP address is a target address of the first packet, Target Address.
  • the second receiving unit 605 is further configured to receive a fourth packet from the third gateway, where The fourth packet carries the second IP address.
  • the searching unit 603 is further configured to acquire the fourth packet received by the second receiving unit 605, and determine that the fourth packet can be acquired.
  • the MAC address of the host identified by the second IP address; the sending unit 604 is further configured to send a fifth packet to the third gateway, where the fifth packet is used to indicate the second IP address
  • the identified host accesses the network through the first network.
  • the fourth packet further carries a second VNI, where the searching unit 603 is configured to determine a MAC address of the host that can obtain the identifier of the second IP address, specifically: in the second The VXLAN segment identified by the VNI attempts to obtain the MAC address of the host identified by the second IP address.
  • the first gateway 600 shown in FIG. 5 and the first gateway 500 shown in FIG. 4 may be the same device, such as the first gateway described in the methods of FIGS. 2 and 3. It can be considered that FIG. 4 shows the content included in the first gateway from a physical point of view, and FIG. 5 shows the content included in the first gateway from a logical point of view.
  • the first receiving unit 601, the second receiving unit 602, and the sending unit 604 shown in FIG. 5 may be implemented by the network interface 503 shown in FIG. 4, and the searching unit 603 and the processing unit 606 shown in FIG. It can be implemented by the processor 501 shown in FIG. 4, and the storage unit 602 shown in FIG. 5 can be implemented by the memory 602 shown in FIG.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请涉及通信领域,尤其涉及一种按需获取路由的方法以及网关。在一种按需获取路由的方法中,第一网关接收第一报文。所述第一网关在转发表中查找所述第一报文中的第一IP地址的下一跳失败。所述第一网关向至少一个网关发送携带所述第一IP地址的第二报文,所述第二报文用于指示接收所述第二报文的网关确定所述第一IP地址标识的主机是否通过所述接收所述第二报文的网关访问网络。所述第一网关接收来自第二网关的第三报文,所述第三报文用于指示所述第一IP地址标识的主机通过所述第二网关访问网络;所述第一网关将所述第二网关的地址作为所述第一IP地址的下一跳的地址写入所述转发表。

Description

按需获取路由的方法及网关
本申请要求于2016年01月18日提交中国专利局、申请号为201610031655.4、发明名称为“按需获取路由的方法及网关”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本发明涉及通信领域,尤其涉及一种按需获取路由的方法及网关。
背景技术
在分布式网关的网络架构下,局域网(英文:local area network,简称:LAN)中存在多个网关。主机改变其网关时,主机的媒体接入控制(英文:media access control,简称:MAC)地址和网际协议(英文:Internet Protocol,简称:IP)地址不改变。分布式网关架构的报文转发方式是,无论收发报文的主机是否处于同一个广播域(英文:broadcast domain,简称:BD),发送方主机均将报文发给发送方主机的网关,由网关根据报文的目的IP地址,将该报文发送给接收方主机。接收方主机可能通过局域网中的另一网关访问网络,因此发送方主机的网关的转发表中,需要存储局域网中所有通过其他网关访问网络的主机的主机路由。当局域网中存在大量的主机时,大量主机路由占用的转发表的存储资源多。
发明内容
本申请提供了一种按需获取路由的方法及装置,用于在分布式网关的网络架构下,按照实际的报文转发需求获取路由,节约转发表的存储资源。
第一方面,提供了一种按需获取路由的方法,所述方法包括:
第一网关接收第一报文,所述第一报文包括第一网际协议IP地址;
所述第一网关在转发表中查找所述第一IP地址的下一跳失败;
所述第一网关向至少一个网关发送第二报文,所述第二报文携带所述第一IP地址,所述第二报文用于指示接收所述第二报文的网关确定所述第一IP地址标识的主机是否通过所述接收所述第二报文的网关访问网络;
所述第一网关接收来自第二网关的第三报文,所述第二网关是所述至少 一个网关中的一个网关,所述第三报文用于指示所述第一IP地址标识的主机通过所述第二网关访问网络;
所述第一网关将所述第二网关的地址作为所述第一IP地址的下一跳的地址写入所述转发表。
所述第一网关不需要预先存储第一报文的IP地址的下一跳,而是可以根据被访问主机按需获取路由。因此,在网络中存在大量主机的情况下,所述第一网关不需要存储与所述第一网关没有通信需求的主机的IP地址的下一跳。有利于节约转发表的存储资源。
可选的,所述第二报文还携带第一报文的第一虚拟可扩展局域网VXLAN网络标识VNI,所述第一网关向至少一个网关发送所述第二报文之前,所述方法还包括:所述第一网关确定所述第一报文的所述第一VNI。
举例来说,所述第一网关确定所述第一VNI具体包括:所述第一网关确定接收所述第一报文的端口;所述第一网关根据所述端口到所述第一VNI的映射,确定所述第一VNI。所述第一网关在转发表中查找所述第一报文中的IP地址的下一跳之前,还包括:所述第一网关根据所述第一VNI到所述转发表的映射,确定所述转发表。
可选的,所述方法还包括,所述第一网关接收来自第三网关的第四报文,所述第四报文携带第二IP地址;所述第一网关确定能够获取到所述第二IP地址标识的主机的MAC地址;所述第一网关向所述第三网关发送第五报文,所述第五报文用于指示所述第二IP地址标识的主机通过所述第一网关访问网络。可选的,所述第四报文中还携带第二VNI,所述第一网关确定能够获取到所述第二IP地址标识的主机的MAC地址,包括:所述第一网关在所述第二VNI标识的VXLAN段中尝试获取所述第二IP地址标识的主机的MAC地址。
可选的,所述第一网关向至少一个网关发送第二报文之前,所述方法还包括:所述第一网关根据多个VNI到多个网关的映射表确定对应于所述VNI的所述至少一个网关。
可选的,所述第一报文为数据报文,所述第一IP地址为所述第一报文的目的IP地址,所述方法还包括:所述第一网关为所述第一报文做VXLAN封装以得到第六报文;所述第一网关发送所述第六报文;其中,所述第六报文的VXLAN首部中的VNI字段的值为所述VNI;所述第六报文的外层IP首部 的目的IP地址为所述第二网关的IP地址。
第二方面,一种网络设备,其特征在于,包括:
处理器,存储器和网络接口,所述存储器用于存储转发表,所述处理器用于:通过所述网络接口接收第一报文,所述第一报文包括第一网际协议IP地址;
在所述存储器存储的所述转发表中查找所述第一IP地址的下一跳失败;
通过所述网络接口向至少一个网关发送第二报文,所述第二报文携带所述第一IP地址,所述第二报文用于指示接收所述第二报文的网关确定所述第一IP地址标识的主机是否通过所述接收所述第二报文的网关访问网络;
通过所述网络接口接收来自第一网关的第三报文,所述第一网关是所述至少一个网关中的一个网关,所述第三报文用于指示所述第一IP地址标识的主机通过所述第一网关访问网络;
将所述第一网关的地址作为所述第一IP地址的下一跳的地址,写入所述存储器存储的所述转发表。
该方面的技术效果与第一方面相同。
可选的,所述第二报文还携带第一报文的第一虚拟可扩展局域网VXLAN网络标识VNI,所述处理器还用于,在向至少一个网关发送所述第二报文之前,确定所述第一报文的所述第一VNI。
可选的,所述处理器还用于:通过所述网络接口接收来自第二网关的第四报文,所述第四报文携带第二IP地址;确定能够获取到所述第二IP地址标识的主机的MAC地址;通过所述网络接口向所述第二网关发送第五报文,所述第五报文用于指示所述第二IP地址标识的主机通过所述第一网络访问网络。
可选的,所述第四报文中还携带第二VNI,所述确定能够获取到所述第二IP地址标识的主机的MAC地址,具体包括:
在所述第二VNI标识的VXLAN段中尝试获取所述第二IP地址标识的主机的MAC地址。
第三方面,提供了一种按需获取路由的第一网关,包括第一接收单元,存储单元,查找单元,发送单元,第二接收单元以及处理单元,其中,
所述第一接收单元,用于接收第一报文,所述第一报文包括第一网际协议IP地址;
所述存储单元,用于存储转发表;
所述查找单元,用于在所述存储单元存储的所述转发表中查找所述第一IP地址的下一跳;
所述发送单元,用于在所述存储单元存储的所述转发表中查找所述第一IP地址的下一跳失败时,在所述查找单元查找所述第一IP地址的下一跳失败后,用于向至少一个网关发送第二报文,所述第二报文携带所述第一IP地址,所述第二报文用于指示接收所述第二报文的网关确定所述第一IP地址标识的主机是否通过所述接收所述第二报文的网关访问网络;
所述第二接收单元,用于接收来自第二网关的第三报文,所述第二网关是所述至少一个网关中的一个网关,所述第三报文用于指示所述第一IP地址标识的主机通过所述第二网关访问网络;
所述处理单元,用于获取所述第二接收单元接收的所述第三报文,并根据所述第三报文将所述第二网关的地址作为所述第一IP地址的下一跳的地址写入所述存储单元存储的所述转发表。
该方面的技术效果与第一方面的技术效果相同。
可选的,所述第二报文还携带第一报文的第一虚拟可扩展局域网VXLAN网络标识VNI,所述查找单元还用于,在所述发送单元向至少一个网关发送所述第二报文之前:确定所述第一报文的所述第一VNI。
可选的,所述第二接收单元还用于,接收来自第三网关的第四报文,所述第四报文携带第二IP地址;所述查找单元还用于,获取所述第二接收单元接收的所述第四报文,并确定能够获取到所述第四报文携带的所述第二IP地址标识的主机的MAC地址;所述发送单元还用于,向所述第三网关发送第五报文,所述第五报文用于指示所述第二IP地址标识的主机通过所述第一网络访问网络。
可选的,所述第四报文中还携带第二VNI,所述查找单元用于确定能够获取到所述第二IP地址标识的主机的MAC地址,具体包括:在所述第二VNI标识的VXLAN段中尝试获取所述第二IP地址标识的主机的MAC地址。
第四方面,提供了一种计算机存储介质,用于储存为上述第一网关所用的计算机软件指令,其包含用于执行上述方面所设计的程序。
可选的,基于所述第一方面,第二方面,第三方面以及第四方面的任一方面,所述第一报文为地址解析协议ARP报文,所述第一IP地址为所述第一报文的目标IP地址,或者,所述第一报文为邻居发现协议NDP报文,所 述IP地址为所述第一报文的目标地址。
第一网关接收到ARP报文或NDP报文时,意味着发送所述第一报文的主机可能即将与所述第一IP地址标识的主机通信。第一网关在接收到所述第一报文时就向其他网关发送用于获取所述第一IP地址的下一跳,有利于在不存储没有通信需求的主机的IP地址的前提下,较早的获取存在通信需求的主机的IP地址的下一跳。有利于提高后续报文转发的效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种应用场景示意图。
图2为本申请实施例提供的一种按需获取路由的方法流程图。
图3为本申请实施例提供的一种按需获取路由的方法流程图。
图4为本申请实施例提供的一种第一网关的结构示意图。
图5为本申请实施例提供的另一种第一网关的结构示意图。
具体实施方式
本申请实施例描述的应用场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着网络架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
图1为本申请实施例提供的一种应用场景示意图。数据中心网络(英文:data center network,简称:DCN)中包括第一网关101,第二网关102以及第三网关103。
主机106可以通过第一网关101,第二网关102或者第三网关103中的任一网关访问所述DCN。同理,主机107可以通过第一网关101,第二网关102或者第三网关103中的任一网关访问所述DCN。举例来说,所述主机可以是个人计算机(英文:personal computer),移动电话(英文:cellphone), 智能手机(英文:smartphone),平板电脑(英文:tablet computer),可穿戴设备(英文:wearable device),个人数码助理(英文:personal digital assistant,简称:PDA),移动互联网设备(英文:mobile Internet device,简称:MID)和电子书阅读器(英文:e-book reader)等,也可以是虚拟机(英文:virtual machine,简称:VM)。当所述主机是虚拟机时,所述虚拟机可以在服务器上运行。
在某个主机,例如主机106,通过不同的网关访问所述DCN时,所述主机106的MAC地址和IP地址均不改变。例如,主机106是虚拟机,所述虚拟机从与第一网关101连接的服务器迁移到与第二网关102连接的服务器时,所述虚拟机的MAC地址和IP地址均不改变。因此,处于同一个广播域(英文:broadcast domain,简称:BD)的主机可能通过不同的网关访问网络。
为了减少广播报文的数量,在上述分布式网关的网络架构下报文的转发方式为:主机106向主机107发送报文的过程中,无论主机106和主机107是否在同一个广播域,主机106均将其网关的MAC地址作为向主机107发送的报文的MAC地址。例如,主机106通过第一网关101访问所述DCN时,将报文发送给第一网关101。第一网关101接收到报文后,剥掉该报文的以太帧首部(英文:Ethernet frame header),获取该报文中的目的IP地址,并根据该报文中的目的IP地址,转发该报文。
在采用上述报文转发方式时,要使主机106能够向主机107发送报文,则与主机106连接的第一网关101,需要在转发表中预先存储主机107的主机路由(英文:host route),该主机路由中包括主机107的IP地址,以及主机107的IP地址的下一跳(英文:next hop)。即,第一网关101需要预先存储所述主机107当前访问网络使用的网关。例如,在图1中,第一网关101需要知道所述主机107当前通过第二网关102访问网络,还是通过第三网关103访问网络。
因此,在主机107通过第二网关102访问网络时,所述第二网关102就需要将所述主机107的主机路由公告(英文:advertise)给所述DCN中其他网关,例如公告给第一网关101和第三网关103,所述第一网关101以及所述第三网关103存储主机107的IP地址的下一跳为所述第二网关102。
下面以所述第一网关101,第二网关102以及第三网关103之间通过虚拟可扩展局域网(英文:Virtual eXtensible Local Area Network,简称:VXLAN) 隧道转发数据报文,通过边际网关协议(英文:Border Gateway Protocol,简称:BGP)公告主机路由为例,对于上述报文转发和主机路由公告过程进行说明。
第一网关101,第二网关102以及第三网关103之间通过边际网关协议(英文:Border Gateway Protocol,简称:BGP)预先建立连接,即所述第一网关101,所述第二网关102以及第三网关103之间,两两互为BGP邻居(英文:BGP peer)。
主机107与第二网关102建立连接时,所述第二网关102将所述主机107的主机路由通过BGP报文公告给所述DCN中的其他网关,例如第一网关101以及第三网关103。所述第一网关101在路由表中保存主机107的主机路由,并将所述第二网关102作为主机107的下一跳。
第一网关101,第二网关102以及第三网关103,均为VXLAN隧道终点(英文:VXLAN Tunnel End Point,简称:VTEP)。
如果主机106和主机107属于不同的广播域,主机106要向主机107发送数据报文,则主机106将主机107的IP地址作为该数据报文的目的IP地址,将第一网关的MAC地址作为该数据报文的目的MAC地址,将该数据报文发送给第一网关101。
如果主机106和主机107属于相同的广播域,主机106想将主机107的MAC地址作为该数据报文的目的MAC地址。因此,主机106在发送数据报文之前,先在所述广播域中广播用于请求主机107的MAC地址的第二报文。例如,所述第二报文在网际协议第四版(英文:Internet Protocol version 4,简称:IPv4)中可以是地址解析协议(英文:address resolution protocol,简称:ARP)请求报文。例如,所述第二报文在网际协议第六版(英文:Internet Protocol version 6,简称:IPv6)中可以是互联网控制消息协议(英文:Internet Control Message Protocol,简称:ICMP)中的邻居发现协议(英文:Neighbor Discovery Protocol,简称:NDP)报文。所述第一网关101接收第二报文之后,所述第一网关101通过代理(英文:proxy)机制,向所述主机106发送第二报文的应答报文,指示主机106,主机107的IP地址对应的MAC地址为第一网关101的MAC地址。主机106将第一网关101的MAC地址作为所述第一报文的MAC地址,将所述第一报文发送给所述第一网关101。
因此,无论主机106和主机107是否属于相同的广播域,主机106向主 机107发送数据报文时,都将第一网关101的MAC地址作为该数据报文的MAC地址。所述第一网关101收到该数据报文之后,根据接收该数据报文的端口,确定该数据报文的VXLAN网络标识(英文:VXLAN Network Identifier,简称:VNI)。其中,VNI也可以称作VXLAN段标识(英文:VXLAN Segment ID)。第一网关101中存储了多个VNI中每个VNI到转发表的对应关系。第一网关101根据所述第一报文的VNI确定转发表。所述转发表中预先存储了第二网关102通过BGP协议公告的主机107的主机路由,该主机路由中包括主机107的地址,以及主机107的地址对应的下一跳为所述第二网关102。第一网关101通过VXLAN隧道将所述数据报文发送给第二网关102。即,第一网关101对该数据报文做VXLAN封装。具体包括,第一网关101在该数据报文外层依次封装VXLAN首部(英文:VXLAN header),外层用户数据报(英文:User Datagram Protocol,简称:UDP)首部(英文:outer UDP header)以及外层IP首部(英文:outer IP header)。其中,VXLAN首部中的VNI为该数据报文的VNI,所述外层IP首部中的目的IP地址为第二网关102的IP地址。其他字段的封装可参见请求注解(英文:Request for Comments,简称:RFC)7348协议。
所述第二网关102收到经过VXLAN封装后的该数据报文之后,根据该报文的VXLAN首部中的VNI确定转发表,所述转发表存储了所述VXLAN段的主机的IP地址与MAC地址的对应关系。所述第二网关102在所述转发表中查找到主机107的MAC地址,将该数据报文发送给所述主机107。
上述方案中,第一网关101需要在转发表中预先存储所有通过其他网关访问网络的主机路由。在所述DCN中存在大量主机时,主机路由的数量也十分庞大。其中一些主机之间可能没有通信需求,因此一些主机路由可能是所述第一网关101不需要的。存储所述第一网关101不需要的主机路由,占用转发表的存储资源。
本申请实施例提供一种按需获取路由的方法。用于在分布式网关的网络架构下,按照实际的报文转发需求获取路由,节约转发表的存储资源。
图2示出了本申请实施例提供的一种按需获取路由的方法。举例来说,所述方法可以应用于图1所示的分布式网关中。图2所示的方法中的第一网关,可以采用图1中所示的第一网关101。图2所示的方法中的第二网关, 可以采用图1中所示的第二网关102。所述方法包括以下步骤。
S201,第一网关接收第一报文,所述第一报文包括第一IP地址。
第一IP地址标识的主机不是第一报文的发送方,例如第一报文来自第一主机,第一IP地址标识的主机为第二主机。
举例来说,所述第一报文是由图1所示的主机106向第一网关101发送的报文。
在一种可能的示例中,所述第一报文是数据报文。所述第一IP地址是第一报文中的目的IP地址(英文:destination IP address)。例如,第一报文是主机106要向主机107发送的数据报文。所述目的IP地址是主机107的IP地址。
在另一种可能的示例中,所述第一报文为ARP报文,所述第一IP地址为所述第一报文的目标协议地址(英文:target protocol address,简称:TPA)。例如,主机106要根据IPv4向主机107发送数据报文。主机106和主机107属于相同的广播域。主机106在向主机107发送数据报文之前,先在广播ARP报文,以获取主机107的MAC地址。
在又一种可能的示例中,所述第一报文为NDP报文,所述第一IP地址为所述第一报文的目标地址(英文:target address)。例如,主机106要根据IPv6向主机107发送数据报文。主机106和主机107属于相同的广播域。主机106在向主机107发送数据报文之前,先在发送NDP报文(例如邻居恳求(英文:Neighbor Solicitation)),以获取主机107的MAC地址。
S202,所述第一网关在转发表中查找所述第一IP地址的下一跳失败。
本申请中,转发表中存储多个IP地址,以及所述多个IP地址中各个IP地址的下一跳。举例来说,当某个主机通过其他网关(例如第二网关)访问网络时,转发表中存储的IP地址的下一跳,可以包括该网关(例如第二网关)的IP地址,即转发表中存储所述主机的IP地址到该网关(例如第二网关)的IP地址的映射。举例来说,当某个主机通过存储该转发表的网关(例如第一网关)访问网络,转发表中存储的IP地址的下一跳,可以包括该主机的MAC地址,即转发表中存储所述主机的IP地址到所述主机的MAC地址的映射。进一步地,转发表中还可以存储IP地址的下一跳的出接口标识。
举例来说,转发表可以是路由信息库(英文:routing information base,简称:RIB)或者转发信息库(英文:forwarding information base,简称: FIB)。
可选的,在S201和S202之间,所述第一网关还执行以下步骤:所述第一网关确定所述第一报文的第一VNI。
例如,所述第一网关确定接收所述第一报文的端口;所述第一网关根据所述端口与虚拟可扩展局域网VXLAN网络标识VNI的映射,确定所述第一报文的所述VNI;以及所述第一网关根据所述VNI,确定所述VNI的所述转发表。
具体来说,不同VNI所标识的VXLAN段的主机之间不能互相通信。在第一网关中,存储多个转发表,以及每个VNI到转发表的映射。例如,每个转发表是一个虚拟路由转发(英文:virtual routing and forwarding,简称:VRF)实例(英文:instance)。
所述第一网关在转发表中查找所述第一IP地址的下一跳失败是指,第一网关没有在转发表中查找到所述第一报文中的IP地址的下一跳。
S203,所述第一网关向至少一个网关发送第二报文,所述第二报文携带所述第一IP地址,所述第二报文用于指示接收所述第二报文的网关确定所述第一IP地址标识的主机是否通过所述接收所述第二报文的网关访问网络。
在一种可能的示例中,所述第一网关可以在多个VNI中到多个网关的映射表中查找具有所述第一报文的所述VNI的网关。该映射表中存储了所述第一报文的VNI到至少一个网关的映射。所述至少一个网关,是局域网中允许所述VNI的主机连接的网关。所述第一网关根据所述查找的结果,确定具有所述第一报文的所述VNI的所述至少一个网关。
在另一种可能的示例中,所述第一网关向局域网中所有网关发送所述第二报文。
举例来说,所述第一网关和所述至少一个网关之间,可以是图1所述的BGP邻居。所述第二报文可以是BGP报文。进一步地,所述第二报文可以是BGP中定义的更新(英文:update)报文。所述第一IP地址可以携带在update报文中的路径属性(英文:Path Attribute)字段中。具体为,在构成Path Attribute字段的类型-长度-取值(英文:Type-Length-Value,简称:TLV)中定义一个Type,用于标识所述第二报文。所述第一IP地址携带在Value字段中。
可选的,所述第二报文中还携带所述第一报文的VNI。例如,所述第一 报文的VNI和所述第一IP地址均携带在上述update报文中的Path Attribute字段中。
可选的,所述第二报文中还携带所述第一IP地址的广播域的标识。例如,第一网关中存储了多个IP子网网段与广播域的对应关系。所述第一网关根据所述第一IP地址对应的广播域,获取所述广播域的标识。例如,所述广播域的标识,所述第一报文的VNI和所述第一IP地址均携带在上述update报文中的Path Attribute字段中。
S301,第二网关接收来自第一网关的所述第二报文。第二网关确定能够获取到所述第二报文中携带的所述第一IP地址标识的主机的MAC地址。
可选的,如果所述第二报文还携带所述第一报文的VNI,所述第二网关确定能够获取到所述第一IP地址标识的主机的MAC地址,具体包括所述第二网关在所述VNI对应的VXLAN段中确定能够获取到所述第一IP地址标识的主机的MAC地址。
举例来说,第二网关获取所述第二报文中携带的所述第一IP地址标识的主机的MAC地址,可以包括第二网关从存储的多个IP地址与MAC地址的映射表中,查找所述第一IP地址对应的MAC地址。例如,第一IP地址标识的主机是主机107,所述映射表中存储第一IP地址对应的MAC地址是主机107的MAC地址。主机107在与第二网关建立连接时,将主机107的MAC地址发送给第二网关,第二网关将主机107的MAC地址与IP地址的对应关系保存到所述多个IP地址与MAC地址的映射表中。如果所述第二报文还携带所述第一报文的VNI,所述第二网关中还存储所述VNI与所述多个IP地址与MAC地址的映射表中的对应关系。所述多个IP地址与MAC地址的映射表,存储的是所述VNI对应的VXLAN段中的IP地址与MAC地址的映射。
举例来说,第二网关确定能够获取所述第二报文中携带的所述第一IP地址标识的主机的MAC地址,还可以包括第二网关向通过第二网关访问网络的主机广播请求报文,所述请求报文用于请求主机107的MAC地址。例如,所述请求报文,如图1中所述,在IPv4协议中可以是ARP报文,或者在IPv6中可以是NDP报文。第二网关根据主机107对请求报文的回应,获取第一IP地址对应的MAC地址。如果所述第二报文还携带所述第一报文的VNI,则所述第二网关在广播所述请求报文时,根据所述VNI确定广播所述请求报文的端口,向所述VNI对应的VXLAN段的主机广播所述请求报文。如果所述第 二报文还携带S202中所述广播域标识,则所述第二网关在广播所述请求报文时,根据所述VNI以及所述广播域标识,共同确定广播所述请求报文的端口,向所述VNI对应的VXLAN段中属于所述广播域的主机广播所述请求报文。
S302,所述第二网关向所述第一网关发送第三报文,所述第三报文用于指示所述第二IP地址标识的主机通过所述第一网关访问网络。
举例来说,所述第三报文可以是BGP报文。具体来说,所述第三报文可以采用与所述第二报文相同的报文格式,例如均采用BGP中的update报文。所述第三报文中携带的Path Attribute字段中的Value字段与所述第二报文中的Value字段相同,Type字段定义一个标识,用于标识所述第三报文的类型。
S204,所述第一网关接收来自所述第二网关的所述第三报文,所述第三报文用于指示所述第一IP地址标识的主机通过所述第二网关访问网络。所述第一网关将所述第二网关的地址作为所述第一IP地址的下一跳地址写入所述转发表。
具体来说,第三报文中携带了发送第三报文的网关的源地址,所述第一网关根据所述第三报文中的源地址,确定所述第二网关。
举例来说,所述第一报文为数据报文,所述方法还包括S205,所述第一网关为所述第一报文做VXLAN封装以得到封装后的第一报文;所述第一网关发送所述封装后的第一报文。其中,所述封装后的第一报文的VXLAN首部中的VNI字段的值为所述第一报文的所述VNI;所述封装后的第一报文的外层IP首部的目的IP地址为所述第二网关的IP地址。
举例来说,所述第一报文为主机106向第一网关请求所述第一IP地址标识的主机的MAC地址的报文,例如ARP报文或NDP报文。所述方法还包括,所述第一网关将所述第一网关的MAC地址发送给所述主机106。
可选地,第一网关也可以应其他网关的要求确定某个IP地址(例如第二IP地址)标识的主机是否通过所述第一网关访问网络时,确定该IP地址标识的主机是否通过所述第一网关访问网络。所述第一网关确定该IP地址标识的主机是否通过所述第一网关访问网络的步骤和上述S301-S302中第二网关确定第一IP地址标识的主机是否通过所述第一网关访问网络的步骤类似。例如,如果第一网关接收来自第三网关的指示第一网关确定第二IP地址标识的主机是否通过所述第一网关访问网络的第四报文时,如图3所示,所述方法进一步包括S401,S402以及S403。
S401,所述第一网关接收来自第三网关的第四报文,所述第四报文携带第二IP地址。
S402,所述第一网关获取所述第二IP地址对应的MAC地址。
S403,所述第一网关向所述第三网关发送第五报文,所述第五报文用于指示所述第三网关将所述第一网关的地址作为所述第二IP地址的下一跳的地址。
其中,S401和S402中,第一网关根据第四报文携带的第二IP地址,获取所述第二IP地址对应的MAC地址的具体实现方式,可以采用图2所示的S301中第二网关根据所述第二报文携带的第一IP地址,获取所述第一IP地址对应的MAC地址的具体实现方式。
S403中,所述第一网关向所述第三网关发送第五报文的具体实现方式,可以采用图2所示的S302中第二网关向所述第一网关发送第三报文的具体实现方式。
图4是本申请实施例提供的一种第一网关的结构示意图。如图4所示,第一网关500包括处理器501,存储器502以及网络接口503。
存储器502用于存储转发表。举例来说,存储器502包括但不限于内容寻址存储器(英文:content-addressable memory,简称:CAM),例如三态内容寻址存储器(英文:ternary CAM,简称:TCAM),随机存取存储器(英文:random-access memory,简称:RAM)。
网络接口503可以是有线接口,例如光纤分布式数据接口(英文:Fiber Distributed Data Interface,简称:FDDI)、以太网(英文:Ethernet)接口。网络接口503也可以是无线接口,例如无线局域网接口。
处理器501包括但不限于中央处理器(英文:central processing unit,简称:CPU),网络处理器(英文:network processor,简称:NP),专用集成电路(英文:application-specific integrated circuit,简称:ASIC)或者可编程逻辑器件(英文:programmable logic device,缩写:PLD)中的一个或多个。上述PLD可以是复杂可编程逻辑器件(英文:complex programmable logic device,缩写:CPLD),现场可编程逻辑门阵列(英文:field-programmable gate array,缩写:FPGA),通用阵列逻辑(英文:generic array logic,缩写:GAL)或其任意组合。
存储器502也可以集成在处理器501中。如果存储器502和处理器501是相互独立的器件,存储器502和处理器501相联,例如存储器502和处理器501可以通过总线通信,。网络接口503和处理器501可以通过总线通信,网络接口503也可以与处理器501直连。处理器501用于执行以下操作:
通过所述网络接口503接收第一报文,所述第一报文包括第一网际协议IP地址;
在所述存储器502存储的所述转发表中查找所述第一IP地址的下一跳失败;
通过所述网络接口503向至少一个网关发送第二报文,所述第二报文携带所述第一IP地址,所述第二报文用于指示接收所述第二报文的网关确定所述第一IP地址标识的主机是否通过所述接收所述第二报文的网关访问网络;
通过所述网络接口503接收来自第二网关的第三报文,所述第二网关是所述至少一个网关中的一个网关,所述第三报文用于指示所述第一IP地址标识的主机通过所述第二网关访问网络;
将所述第二网关的地址作为所述第一IP地址的下一跳的地址,写入所述存储器存储的所述转发表。
举例来说,处理器501可以包括NP和CPU,所述NP和所述CPU通过总线通信。NP用于执行转发面的操作,CPU用于执行控制面的操作。具体来说,NP执行通过所述网络接口503接收第一报文;以及在所述存储器502存储的所述转发表中查找所述第一报文中的IP地址的下一跳。NP查找所述第一报文中的IP地址的下一跳失败之后,NP将所述IP地址通过总线发送给CPU。具体来说,NP查找下一跳,一种可能的方式是,如果所述存储器是RAM,NP可以读取存储器中转发表的信息,查找所述第一IP地址的下一跳;另一种可能的方式是,如果所述存储器是CAM,NP将所述第一IP地址发送给存储器,指示存储器在转发表中查找第一IP地址匹配的表项,所述表项中存储所述第一IP地址的下一跳,存储器将查找结果发送给NP。查找下一跳失败,可以是指NP没有在转发表中查找到第一IP地址匹配的表项。查找下一跳失败,也可以是指存储器将查找失败的结果发送给NP,例如转发表中存在通用的表项,当第一IP地址与转发表中其他表项均不匹配时,存储器将所述通用的表项作为查找的结果,发送给NP。CPU生成所述第二报文并通过所述网络接口503向至少一个网关发送所述第二报文。进一步地,CPU 通过所述网络接口503接收来自第二网关的第三报文,将所述第二网关的地址作为所述第一IP地址的下一跳的地址。CPU通过总线将所述第一IP地址以及所述第一IP地址的下一跳地址发送给NP。NP将所述第一IP地址以及所述第一IP地址的下一跳地址写入所述存储器501存储的所述转发表。
可选的,所述处理器501在所述存储器502存储的所述转发表中查找所述第一报文中的IP地址的下一跳之前,还执行以下步骤:确定接收所述第一报文的端口;根据所述端口到虚拟可扩展局域网VXLAN网络标识VNI的映射,确定所述VNI;以及根据所述VNI到所述转发表的映射,确定所述转发表。举例来说,该步骤可以由NP执行。NP通过总线504向CPU发送所述IP地址时,还向CPU发送所述VNI。
可选的,所述第二报文还携带所述VNI。可选的,所述处理器501通过所述网络接口503向至少一个网关发送第二报文之前,所述处理器501还执行:在多个VNI中到多个网关的映射表中查找具有所述VNI的网关;根据所述查找的结果,确定所述至少一个网关。举例来说,该步骤可以由CPU执行。所述多个VNI中到多个网关的映射表可以存储于所述CPU的内存中。
所述第一报文为数据报文,所述第一IP地址为所述第一报文的目的IP地址,所述处理器还执行:为所述第一报文做VXLAN封装以得到第三报文;通过所述网络接口发送所述第三报文;其中,所述第三报文的VXLAN首部中的VNI字段的值为所述VNI;所述第三报文的外层IP首部的目的IP地址为所述第二网关的IP地址。举例来说,该步骤可以由NP执行。
可选的,所述第一报文为地址解析协议ARP报文,所述第一IP地址为所述第一报文的目标IP地址TPA,或者,所述第一报文为邻居发现协议NDP报文,所述IP地址为所述第一报文的目标地址Target Address。
可选的,所述处理器501还执行:通过所述网络接口503接收来自第三网关的第四报文,所述第四报文携带第二IP地址;获取所述第二IP地址对应的MAC地址;通过所述网络接口向所述第三网关发送第五报文,所述第五报文用于指示所述第三网关将所述第一网关的地址作为所述第二IP地址的下一跳的地址。举例来说,该步骤可以由CPU执行。
可选的,所述第四报文中还携带虚拟可扩展局域网VXLAN网络标识VNI,所述处理器501获取所述第二IP地址对应的MAC地址,具体包括:所述处理器501在所述VNI对应的VXLAN段中获取所述第二IP地址对应的MAC 地址。举例来说,该步骤可以由CPU执行。
本实施例提供的第一网关500可以应用于图2和图3实施例的方法中,实现其第一网关的功能。所述第一网关可以实现的其他附加功能,以及与其他网关的交互过程,请参照方法实施例中对第一网关的描述,在这里不再赘述。
图5是本申请实施例提供的另一种第一网关的结构示意图。如图5所示,第一网关600包括第一接收单元601,存储单元602,查找单元603,发送单元604,第二接收单元605以及处理单元606。
所述第一接收单元601,用于接收第一报文,所述第一报文包括第一网际协议IP地址;
所述存储单元602,用于存储转发表;
所述查找单元603,用于获取所述第一接收单元601接收的所述第一报文,并在所述存储单元602存储的所述转发表中查找所述第一IP地址的下一跳失败;
所述发送单元604,用于在所述查找单元603查找所述第一IP地址的下一跳失败后,向至少一个网关发送第二报文,所述第二报文携带所述第一IP地址,所述第二报文用于指示接收所述第二报文的网关确定所述第一IP地址标识的主机是否通过所述接收所述第二报文的网关访问网络;
所述第二接收单元605,用于接收来自第二网关的第三报文,所述第二网关是所述至少一个网关中的一个网关,所述第三报文用于指示所述第一IP地址标识的主机通过所述第二网关访问网络;
所述处理单元,用于获取所述第二接收单元接收的所述第三报文,并根据所述第三报文将所述第二网关的地址作为所述第一IP地址的下一跳的地址写入所述存储单元存储的所述转发表。
可选的,所述第二报文还携带第一报文的第一虚拟可扩展局域网VXLAN网络标识VNI,所述查找单元603还用于,在所述发送单元向至少一个网关发送所述第二报文之前:确定所述第一报文的所述第一VNI。
可选的,所述第一报文为地址解析协议ARP报文,所述第一IP地址为所述第一报文的目标IP地址TPA,或者,所述第一报文为邻居发现协议NDP报文,所述IP地址为所述第一报文的目标地址Target Address。
可选的,所述第二接收单元605还用于,接收来自第三网关的第四报文, 所述第四报文携带第二IP地址;所述查找单元603还用于,获取所述第二接收单元605接收的所述第四报文,并确定能够获取到所述第四报文携带的所述第二IP地址标识的主机的MAC地址;所述发送单元604还用于,向所述第三网关发送第五报文,所述第五报文用于指示所述第二IP地址标识的主机通过所述第一网络访问网络。
可选的,所述第四报文中还携带第二VNI,所述查找单元603用于确定能够获取到所述第二IP地址标识的主机的MAC地址,具体用于:在所述第二VNI标识的VXLAN段中尝试获取所述第二IP地址标识的主机的MAC地址。
图5所示的第一网关600与图4所示的第一网关500可以是同一个装置,例如均为图2和图3的方法中所述的第一网关。可以认为,图4从物理的角度显示了第一网关包括的内容,而图5从逻辑的角度显示了第一网关包括的内容。可选地,图5所示的第一接收单元601,第二接收单元602以及发送单元604,可以由图4所示的网络接口503来实现,图5所示的查找单元603以及处理单元606可以由图4所示的处理器501来实现,图5所示的存储单元602可以由图4所示的存储器602来实现。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (15)

  1. 一种按需获取路由的方法,其特征在于,包括:
    第一网关接收第一报文,所述第一报文包括第一网际协议IP地址;
    所述第一网关在转发表中查找所述第一IP地址的下一跳失败;
    所述第一网关向至少一个网关发送第二报文,所述第二报文携带所述第一IP地址,所述第二报文用于指示接收所述第二报文的网关确定所述第一IP地址标识的主机是否通过所述接收所述第二报文的网关访问网络;
    所述第一网关接收来自第二网关的第三报文,所述第二网关是所述至少一个网关中的一个网关,所述第三报文用于指示所述第一IP地址标识的主机通过所述第二网关访问网络;
    所述第一网关将所述第二网关的地址作为所述第一IP地址的下一跳的地址写入所述转发表。
  2. 根据权利要求1所述的方法,其特征在于,所述第二报文还携带第一报文的第一虚拟可扩展局域网VXLAN网络标识VNI;
    所述第一网关向至少一个网关发送所述第二报文之前,所述方法还包括:
    所述第一网关确定所述第一报文的所述第一VNI。
  3. 根据权利要求1或2所述的方法,其特征在于,所述第一报文为地址解析协议ARP报文,所述第一IP地址为所述第一报文的目标IP地址,
    或者,
    所述第一报文为邻居发现协议NDP报文,所述IP地址为所述第一报文的目标地址。
  4. 根据权利要求1至3任一所述的方法,其特征在于,包括:
    所述第一网关接收来自第三网关的第四报文,所述第四报文携带第二IP地址;
    所述第一网关确定能够获取到所述第二IP地址标识的主机的MAC地址;
    所述第一网关向所述第三网关发送第五报文,所述第五报文用于指示所述第二IP地址标识的主机通过所述第一网关访问网络。
  5. 根据权利要求4所述的方法,其特征在于,所述第四报文中还携带的第二VNI,所述第一网关确定能够获取到所述第二IP地址标识的主机的MAC地址,包括:
    所述第一网关在所述第二VNI标识的VXLAN段中尝试获取所述第二IP地址标识的主机的MAC地址。
  6. 一种网络设备,其特征在于,包括:
    处理器,存储器和网络接口,所述存储器用于存储转发表,所述处理器用于:
    通过所述网络接口接收第一报文,所述第一报文包括第一网际协议IP地址;
    在所述存储器存储的所述转发表中查找所述第一IP地址的下一跳失败;
    通过所述网络接口向至少一个网关发送第二报文,所述第二报文携带所述第一IP地址,所述第二报文用于指示接收所述第二报文的网关确定所述第一IP地址标识的主机是否通过所述接收所述第二报文的网关访问网络;
    通过所述网络接口接收来自第一网关的第三报文,所述第一网关是所述至少一个网关中的一个网关,所述第三报文用于指示所述第一IP地址标识的主机通过所述第一网关访问网络;
    将所述第一网关的地址作为所述第一IP地址的下一跳的地址,写入所述存储器存储的所述转发表。
  7. 根据权利要求6所述的网络设备,其特征在于,所述第二报文还携带第一报文的第一虚拟可扩展局域网VXLAN网络标识VNI,所述处理器还用于,在向至少一个网关发送所述第二报文之前,确定所述第一报文的所述第一VNI。
  8. 根据权利要求6或7所述的网络设备,其特征在于,所述第一报文为地址解析协议ARP报文,所述第一IP地址为所述第一报文的目标IP地址TPA,
    或者,
    所述第一报文为邻居发现协议NDP报文,所述IP地址为所述第一报文的目标地址Target Address。
  9. 根据权利要求6至8任一所述的网络设备,其特征在于,所述处理器还用于:
    通过所述网络接口接收来自第二网关的第四报文,所述第四报文携带第二IP地址;
    确定能够获取到所述第二IP地址标识的主机的MAC地址;
    通过所述网络接口向所述第二网关发送第五报文,所述第五报文用于指示所述第二IP地址标识的主机通过所述第一网络访问网络。
  10. 根据权利要求9所述的网络设备,其特征在于,所述第四报文中还携带第二VNI,所述确定能够获取到所述第二IP地址标识的主机的MAC地址,具体包括:
    在所述第二VNI标识的VXLAN段中尝试获取所述第二IP地址标识的主机的MAC地址。
  11. 一种按需获取路由的第一网关,其特征在于,包括第一接收单元,存储单元,查找单元,发送单元,第二接收单元以及处理单元,其中,
    所述第一接收单元,用于接收第一报文,所述第一报文包括第一网际协议IP地址;
    所述存储单元,用于存储转发表;
    所述查找单元,用于在所述存储单元存储的所述转发表中查找所述第一IP地址的下一跳;
    所述发送单元,用于在所述存储单元存储的所述转发表中查找所述第一IP地址的下一跳失败时,在所述查找单元查找所述第一IP地址的下一跳失败后,用于向至少一个网关发送第二报文,所述第二报文携带所述第一IP地址,所述第二报文用于指示接收所述第二报文的网关确定所述第一IP地址标识的主机是否通过所述接收所述第二报文的网关访问网络;
    所述第二接收单元,用于接收来自第二网关的第三报文,所述第二网关是所述至少一个网关中的一个网关,所述第三报文用于指示所述第一IP地址标识的主机通过所述第二网关访问网络;
    所述处理单元,用于获取所述第二接收单元接收的所述第三报文,并根 据所述第三报文将所述第二网关的地址作为所述第一IP地址的下一跳的地址写入所述存储单元存储的所述转发表。
  12. 根据权利要求11所述的第一网关,其特征在于,所述第二报文还携带第一报文的第一虚拟可扩展局域网VXLAN网络标识VNI,所述查找单元还用于,在所述发送单元向至少一个网关发送所述第二报文之前,确定所述第一报文的所述第一VNI。
  13. 根据权利要求11或12所述的第一网关,其特征在于,所述第一报文为地址解析协议ARP报文,所述第一IP地址为所述第一报文的目标IP地址TPA,
    或者,
    所述第一报文为邻居发现协议NDP报文,所述IP地址为所述第一报文的目标地址Target Address。
  14. 根据权利要求11至13任一所述的第一网关,其特征在于,
    所述第二接收单元还用于,接收来自第三网关的第四报文,所述第四报文携带第二IP地址;
    所述查找单元还用于,获取所述第二接收单元接收的所述第四报文,并确定能够获取到所述第四报文携带的所述第二IP地址标识的主机的MAC地址;
    所述发送单元还用于,向所述第三网关发送第五报文,所述第五报文用于指示所述第二IP地址标识的主机通过所述第一网络访问网络。
  15. 根据权利要求14所述的第一网关,其特征在于,所述第四报文中还携带第二VNI,确定能够获取到所述第二IP地址标识的主机的MAC地址,包括:
    在所述第二VNI标识的VXLAN段中尝试获取所述第二IP地址标识的主机的MAC地址。
PCT/CN2016/111938 2016-01-18 2016-12-24 按需获取路由的方法及网关 WO2017124886A1 (zh)

Priority Applications (5)

Application Number Priority Date Filing Date Title
EP16886145.8A EP3306876B1 (en) 2016-01-18 2016-12-24 Method and gateway for acquiring route as required
EP20192140.0A EP3823226B1 (en) 2016-01-18 2016-12-24 Method and gateway for obtaining route according to requirement
JP2018526292A JP6542993B2 (ja) 2016-01-18 2016-12-24 要求に基づいてルートを取得する方法およびゲートウェイ
ES16886145T ES2826388T3 (es) 2016-01-18 2016-12-24 Procedimiento y puerta de enlace para adquirir una ruta según se requiera
US15/910,546 US10447593B2 (en) 2016-01-18 2018-03-02 Method and gateway for obtaining route according to requirement

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201610031655.4A CN106982163B (zh) 2016-01-18 2016-01-18 按需获取路由的方法及网关
CN201610031655.4 2016-01-18

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US15/910,546 Continuation US10447593B2 (en) 2016-01-18 2018-03-02 Method and gateway for obtaining route according to requirement

Publications (1)

Publication Number Publication Date
WO2017124886A1 true WO2017124886A1 (zh) 2017-07-27

Family

ID=59341173

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2016/111938 WO2017124886A1 (zh) 2016-01-18 2016-12-24 按需获取路由的方法及网关

Country Status (6)

Country Link
US (1) US10447593B2 (zh)
EP (2) EP3823226B1 (zh)
JP (1) JP6542993B2 (zh)
CN (2) CN106982163B (zh)
ES (1) ES2826388T3 (zh)
WO (1) WO2017124886A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107682261B (zh) * 2017-10-24 2020-04-03 新华三技术有限公司 流量转发方法及装置
CN113169934B (zh) * 2018-09-12 2023-05-19 华为技术有限公司 用于备份泛洪拓扑分离的系统和方法
JP7251085B2 (ja) * 2018-09-27 2023-04-04 株式会社リコー ネットワークシステム、通信制御装置、通信制御方法およびプログラム
US11502874B2 (en) * 2019-10-16 2022-11-15 Arista Networks, Inc. Filtering advertising of route advertisements based on virtual network identifiers
US11206155B2 (en) 2019-10-16 2021-12-21 Arista Networks, Inc. Filtering advertising of route advertisements based on virtual network identifiers
CN111884916A (zh) * 2020-07-24 2020-11-03 杭州希益丰新业科技有限公司 一种基于多网口计算机实现透明传输的代理网关系统
CN111935009B (zh) * 2020-08-05 2022-05-24 广州市百果园信息技术有限公司 数据包路由方法、装置、设备、系统及存储介质
CN114900560A (zh) * 2022-04-01 2022-08-12 阿里云计算有限公司 控制方法、系统、设备及介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101330447A (zh) * 2007-06-21 2008-12-24 中国科学院声学研究所 一种探测下一跳mac地址的方法
CN102857427A (zh) * 2012-08-27 2013-01-02 上海斐讯数据通信技术有限公司 探测路由下一跳mac地址的方法及其路由设备
CN104702476A (zh) * 2013-12-05 2015-06-10 华为技术有限公司 分布式网关、基于分布式网关的报文处理方法及装置
US20150312137A1 (en) * 2013-03-28 2015-10-29 International Business Machines Corporation Transferring data in a gateway

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7307990B2 (en) * 1999-01-19 2007-12-11 Cisco Technology, Inc. Shared communications network employing virtual-private-network identifiers
US6658481B1 (en) * 2000-04-06 2003-12-02 International Business Machines Corporation Router uses a single hierarchy independent routing table that includes a flag to look-up a series of next hop routers for routing packets
FI117033B (fi) * 2004-02-24 2006-05-15 Valtion Teknillinen Hajautettu dynaaminen reititys
US9210079B2 (en) * 2012-08-14 2015-12-08 Vmware, Inc. Method and system for virtual and physical network integration
CN102857414B (zh) * 2012-08-20 2018-05-04 中兴通讯股份有限公司 一种转发表写入、报文转发方法及装置
CN103716245B (zh) * 2012-09-29 2017-02-08 上海贝尔股份有限公司 基于虚拟专用局域网服务的边缘路由器
CN103873373B (zh) * 2012-12-11 2017-05-17 杭州华三通信技术有限公司 一种组播数据报文转发方法及设备
US9471356B2 (en) * 2013-06-12 2016-10-18 Dell Products L.P. Systems and methods for providing VLAN-independent gateways in a network virtualization overlay implementation
CN104426759B (zh) * 2013-08-21 2018-11-20 华为技术有限公司 主机路由获取方法、装置及系统
US9876711B2 (en) * 2013-11-05 2018-01-23 Cisco Technology, Inc. Source address translation in overlay networks
US9374294B1 (en) * 2013-11-05 2016-06-21 Cisco Technology, Inc. On-demand learning in overlay networks
WO2015100656A1 (zh) * 2013-12-31 2015-07-09 华为技术有限公司 一种实现虚拟机通信的方法和装置
US11075948B2 (en) * 2014-01-10 2021-07-27 Arista Networks, Inc. Method and system for virtual machine aware policy management
KR20150113597A (ko) * 2014-03-31 2015-10-08 한국전자통신연구원 Arp 패킷 처리 방법 및 장치
WO2015180084A1 (zh) * 2014-05-29 2015-12-03 华为技术有限公司 一种报文转发方法和VxLAN网关
CN104158718B (zh) * 2014-08-25 2017-06-13 新华三技术有限公司 一种报文处理方法和装置
CN104283980B (zh) * 2014-10-09 2018-02-09 新华三技术有限公司 一种地址解析协议代答方法和装置
CN106375231B (zh) * 2015-07-22 2019-11-05 华为技术有限公司 一种流量切换方法、设备及系统
CN105072038B (zh) * 2015-08-28 2018-12-21 华讯方舟科技有限公司 一种数据报文转发方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101330447A (zh) * 2007-06-21 2008-12-24 中国科学院声学研究所 一种探测下一跳mac地址的方法
CN102857427A (zh) * 2012-08-27 2013-01-02 上海斐讯数据通信技术有限公司 探测路由下一跳mac地址的方法及其路由设备
US20150312137A1 (en) * 2013-03-28 2015-10-29 International Business Machines Corporation Transferring data in a gateway
CN104702476A (zh) * 2013-12-05 2015-06-10 华为技术有限公司 分布式网关、基于分布式网关的报文处理方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3306876A4 *

Also Published As

Publication number Publication date
CN113162857A (zh) 2021-07-23
US20180198712A1 (en) 2018-07-12
EP3823226B1 (en) 2023-08-02
ES2826388T3 (es) 2021-05-18
EP3306876A1 (en) 2018-04-11
EP3306876A4 (en) 2018-08-22
JP6542993B2 (ja) 2019-07-10
CN113162857B (zh) 2023-01-13
EP3823226A1 (en) 2021-05-19
EP3306876B1 (en) 2020-09-16
JP2018523443A (ja) 2018-08-16
CN106982163B (zh) 2020-12-04
US10447593B2 (en) 2019-10-15
CN106982163A (zh) 2017-07-25

Similar Documents

Publication Publication Date Title
WO2017124886A1 (zh) 按需获取路由的方法及网关
US10652047B2 (en) Connectivity to internet via shared services in enterprise fabric based network with LISP control plane
US9467376B2 (en) Method and device for sending internet protocol packets
US20150358233A1 (en) Item aggregation in shortest path bridging mac-in-mac mode (spbm) network
US10693833B2 (en) Address resolution suppression in a logical network
US20140269702A1 (en) Interoperability of data plane based overlays and control plane based overlays in a network environment
US10616175B2 (en) Forwarding information to forward data to proxy devices
WO2016198022A1 (zh) 一种实现虚拟化网络叠加的方法与网络虚拟化边缘节点
WO2021139289A1 (zh) 报文发送方法、路由表项的生成方法、装置及存储介质
JP2020520612A (ja) パケット伝送方法、エッジデバイス及び機械可読記憶媒体
US12034631B2 (en) Loop avoidance communications method, device, and system
JP2022500915A (ja) 通信方法、デバイス、及びシステム
US20130332586A1 (en) Providing ipv6 connectivity through shared external interfaces on electronic devices
JP7547494B2 (ja) Macアドレス送信方法、装置、およびシステム、ならびに関連デバイス
US11936614B2 (en) Method and apparatus for sending reply packet, computing device, and storage medium
US20180131775A1 (en) Network based service discovery via unicast messages
WO2018001339A1 (zh) 虚拟可扩展局域网vxlan中报文转发方法及装置
JP6629681B2 (ja) スイッチ装置および中継システム
WO2022199486A1 (zh) 路径跟踪方法、设备和存储介质
US20180367452A1 (en) Information centric networking over multi-access network interfaces
CN106452992B (zh) 一种远端多归属组网的实现方法及装置
WO2022001666A1 (zh) 建立vxlan隧道的方法及相关设备
US20220045956A1 (en) Policy based routing in extranet networks

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 16886145

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2016886145

Country of ref document: EP

ENP Entry into the national phase

Ref document number: 2018526292

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE