CN118233247A - 覆盖网络中的跨隧道端点的服务发现 - Google Patents

覆盖网络中的跨隧道端点的服务发现 Download PDF

Info

Publication number
CN118233247A
CN118233247A CN202311111507.XA CN202311111507A CN118233247A CN 118233247 A CN118233247 A CN 118233247A CN 202311111507 A CN202311111507 A CN 202311111507A CN 118233247 A CN118233247 A CN 118233247A
Authority
CN
China
Prior art keywords
network
vtep
overlay network
service
overlay
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
CN202311111507.XA
Other languages
English (en)
Inventor
T·南迪
V·德瓦拉贾
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Enterprise Development LP
Original Assignee
Hewlett Packard Enterprise Development LP
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 Hewlett Packard Enterprise Development LP filed Critical Hewlett Packard Enterprise Development LP
Publication of CN118233247A publication Critical patent/CN118233247A/zh
Pending legal-status Critical Current

Links

Abstract

本公开的实施例涉及覆盖网络中的跨隧道端点的服务发现。在示例中,网络设备可以从客户端设备接收针对由被连接到另一网络设备的主机设备通告的服务的多播查询。网络设备被配置作为覆盖网络中的第一虚拟隧道端点(VTEP),而另一网络设备被配置作为第二VTEP。网络设备可以确定主机设备的与多播查询中的服务名相对应的主机名是否存在于资源记录中。响应于确定主机名存在于资源记录中,网络设备可以从资源记录标识与主机名相对应的覆盖网络路径。网络设备可以基于在第一VTEP处实现的覆盖封装协议来封装多播查询,并且经由覆盖网络路径将所封装的多播查询路由到主机设备。

Description

覆盖网络中的跨隧道端点的服务发现
背景技术
网络可以包括通过通信链路连接的资源,并且可以用于连接人们、提供服务(例如,经由互联网和/或内联网在内部和/或外部)、和/或组织信息、以及其他活动。网络还可以包括主机设备(诸如,打印机、扫描仪、传真机、媒体流设备、联网投影仪、监控***、IP电话等),其可以托管由网络中的客户端设备(诸如,计算机、笔记本电脑、手持设备、智能手机等)访问的不同服务功能性。
服务发现包括计算机网络上的主机设备和由这些主机设备提供的服务的检测。服务发现需要通用语言和/或协议来使得客户端设备能够利用由主机设备托管的服务,而无需持续的用户干预,并且旨在减少来自用户/网络管理员的配置工作。服务发现还允许应用访问主机设备在本地网络上提供的服务。
附图说明
为了更完整地理解本公开,可以参考结合附图的以下具体实施方式更容易地理解根据本文中所描述的各种特征的示例,其中相同的附图标记指明相同的结构元件,在附图中:
图1示意性地图示了根据示例的针对跨覆盖网络中的虚拟隧道端点(VTEP)的服务发现的网络环境;
图2示意性地图示了根据示例的针对跨覆盖网络中的VTEP的服务发现的另一网络环境;
图3示意性地图示了根据示例的针对跨覆盖网络中的VTEP的服务发现的另一网络环境;
图4是图示了根据示例的针对跨覆盖网络中的VTEP的服务发现的方法的流程图;
图5是图示了根据示例的针对跨覆盖网络中的VTEP的服务发现的另一方法的流程图;
图6图示了根据示例的用于实现针对跨覆盖网络中的VTEP的服务发现的方法的计算设备;以及
图7示出了源自主机设备、寻址到客户端设备的封装的多播服务公告的示例。
某些示例具有对上述附图中所图示的特征进行补充或代替的特征。为了清楚起见,可以从某些图中省略某些标签。
具体实施方式
在本公开中,除非上下文另有明确指示,否则术语“一”、“一个”或“该”的使用也旨在包括复数形式。此外,术语“包括”、“包含”或“具有”当在本公开中被使用时指定所述元素的存在,但是不排除其他元素的存在或添加。
如本文中所使用的,术语“第二层(L2)”指的是数据链路层,即,用于网络协议设计的七层开放***互连(OSI)参考模型中的第二层。第二层是用于在广域网内的相邻网络节点之间或在同一局域网上的节点之间传送数据的协议层。术语“第3层(L3)”也被称为网络层,是用于网络协议设计的七层OSI参考模型中的第三层。L3是提供将数据从一个网络上的源主机传送到不同网络上的目的地主机的功能和程序手段的协议层(与连接同一网络内的主机的数据链路层相反)。L3执行网络路由功能,并且还可以执行分片和重新组装,以及报告传送错误。术语“网络虚拟化技术”是指通过定义封装机制和控制平面而将虚拟化L2网络覆盖在L3网络上的框架/协议。术语“虚拟隧道”是指在覆盖网络中的两个节点之间承载封装的业务的虚拟通信链路。术语“主机设备”是指可以由客户端访问并且可以为客户端托管不同服务(诸如,流广播和/或视频服务、有线和/或***服务、多媒体流服务、打印机服务等)的计算实体。术语“客户端设备”是指可以发现和访问由主机设备托管的服务的计算实体。术语“多播”是指将数据分组从一个或多个源传输到目的地设备的群组。该群组可以由单个多播IP地址定义。
此外,术语“服务发现协议”是指用于通过交换多播IP分组通告由主机设备托管的服务以及由客户端设备发现服务的规则集。术语“子网”是指IP网络的逻辑细分。因此,子网是第三层中的一个网络分段。术语“L2覆盖网络”是指允许同一子网中的主机设备相互发送桥接或第二层业务的覆盖网络。L2覆盖网络使用L2虚拟网络实例(VNI)来在网络中的两个VTEP之间转发桥接业务。术语“L2虚拟网络实例(VNI)”是指连接到同一子网中的主机/客户端的VTEP的标识符。术语“L3覆盖网络”是指允许不同子网中的主机设备相互发送L3业务或路由的业务的覆盖网络。L3覆盖网络使用L3虚拟网络实例(VNI)和虚拟路由器(即,虚拟路由和转发(VRF)实例)来在网络中的两个VTEP之间转发路由的业务。术语“L3虚拟网络实例(VNI)”是指连接到不同子网中的主机/客户端的VTEP的标识符。
计算机网络可以包括覆盖网络和底层。覆盖网络是指部署在网络设备的物理网络基础设施之上的节点和/或逻辑链路的软件定义的虚拟网络。通过实现覆盖网络,可以跨第三层(L3)网络伸展第二层(L2)网络。可以使用允许将硬件网络资源抽象为软件的不同网络虚拟化技术来实现覆盖网络。底层是指在其上实现覆盖网络的网络设备的物理网络基础设施。覆盖网络中的节点被称为虚拟隧道端点(VTEP)。VTEP可以是对通过覆盖网络进行传送的分组执行封装和解封装的物理或虚拟网络设备。VTEP可以经由覆盖网络中的虚拟隧道相互连接。覆盖网络在虚拟网络资源的分组转发、服务添加、协议实现和按需分配方面提供了灵活性,而无需修改/重新配置物理网络基础设施(即,底层)。因此,覆盖网络主要被使用在园区和企业网络中。
园区和企业网络中的服务发现通常通过使用服务发现协议来作业,诸如多播域名***(mDNS)、DNS服务发现(DNS-SD)、轻量级服务发现(LSD)和多播源发现协议(MSDP)。服务发现协议通过将多播查询从客户端设备转发到主机设备并且将多播响应从主机设备转发回客户端设备来工作。在实现覆盖网络的网络中,客户端设备和主机设备可以连接到VTEP。只要客户端设备和主机设备两者都连接到相同的VTEP,则由主机设备通告的服务就可以被客户端设备发现。在这种场景中,当客户端设备需要解析主机名时,它会向其连接的VTEP发送多播查询,要求具有该主机名的主机设备标识其自身。连接到客户端设备的VTEP可以将多播查询洪泛到其所有接入端口。因此,连接到VTEP的接入端口的客户端设备的子网中的所有主机设备都可以接收该多播查询。作为响应,具有所查询的主机名的主机设备可以多播包括其IP地址的消息。VTEP还可以将该响应从主机设备洪泛到同一子网中的其所有接入端口。然后,子网中的所有其他客户端和主机都可以使用该信息来更新它们的高速缓存。因此,客户端设备可以解析与连接到同一VTEP的主机设备相关联的IP地址并且发现由主机设备托管的服务。然而,通常客户端设备可以连接到一个VTEP,而主机设备可以连接到不同的VTEP。在这种场景中,为了让客户端设备发现主机设备的服务,需要通过覆盖网络在两个不同的VTEP之间交换多播查询/响应。然而,VTEP不具备通过覆盖网络将多播查询/响应路由到其他VTEP的能力。因此,当客户端设备和主机设备连接到覆盖网络中的两个不同的VTEP时,客户端设备发现由主机设备通告的服务可能具有挑战性。
此外,服务发现协议通常使用链路本地地址来发送/接收多播查询/响应。链路本地地址是在单个子网内唯一的网络地址,因此设备的链路本地地址只能用于该设备连接到的子网内的通信。由于链路本地地址在其子网之外可能不是唯一的,并且使用这些链路本地地址来转发多播查询/响应,因此按照设计,不会跨不同子网路由多播查询/响应。由于不会跨子网路由多播查询/响应,因此一个子网中连接到VTEP的客户端可能无法发现另一子网中连接到不同VTEP的主机的服务。因此,跨连接到覆盖网络中的不同VTEP的设备的服务发现涉及附加的挑战。
对于跨连接到覆盖网络中的不同VTEP的客户端和主机的服务发现,允许VTEP经由覆盖网络转发多播查询/响应可以是有用的。然而,在允许经由覆盖网络转发多播查询/响应的情况下,覆盖网络中的所有VTEP可以通过多播查询/响应被洪泛。所有VTEP处的多播查询/响应的洪泛利用了VTEP处的计算资源并且消耗了覆盖网络的数据带宽。当多播查询/响应的数目增加时,覆盖网络可能会遇到带宽问题。
此外,服务发现被预期是位置特定的。例如,学校校园中的1号教室中的教师可能想要访问安装在他/她附近(例如,教室1内)的智能板,或者办公园区中的1-3楼中的工程人员可能想要访问安装在他附近(例如,在同一建筑物和同一层楼)的打印机。发现在不同教室中的智能板或在不同建筑物中的打印机对于教师或工程人员来说可能是不相关的并且是无用的。因此,远离客户端设备的位置的服务和/或主机设备的发现可能与用户无关并且因此没有用处。随着覆盖网络中的所有VTEP通过多播查询/响应的洪泛,连接到那些VTEP的客户端设备可以向可能不在其附近的主机设备发送多播查询,并且还从那些主机接收多播响应。来自地理上远程的主机设备的这种多播响应对于客户端设备的用户来说可能是不相关的并且是无用的。在带宽使用成本很高的分布式网络中,通过覆盖网络传输此类不相关的查询和响应会消耗数据带宽,并且可以被视为附加的带宽成本。
本文中所公开的示例允许使用请求服务的客户端设备和提供服务的主机设备之间的覆盖网络路径来跨VTEP选择性地路由多播查询/响应。具体地,来自客户端的多播查询经由覆盖网络路径仅被转发到与提供服务的主机设备连接的那些VTEP,而不是用多播查询洪泛覆盖网络中的所有VTEP。这允许连接到一个VTEP的客户端发现由连接到覆盖网络中的不同VTEP的主机设备提供的服务,而无需通过来自客户端的服务查询洪泛VTEP,从而避免覆盖网络中的附加带宽消耗和附加计算资源使用。
此外,在示例中,基于指示客户端设备的位置的位置标签来标识主机设备的覆盖网络路径。具体地,标识到具有与客户端设备的位置标签共同的位置标签的主机设备的覆盖网络路径。因此,基于客户端设备的位置,沿覆盖网络路径路由来自客户端的多播查询。沿基于客户端设备的位置而标识的覆盖网络路径路由多播查询允许主机设备及其服务的位置特定发现。由于主机设备的发现是位置特定的,因此来自地理上远程的主机设备的多播响应可以不被转发到客户端设备,从而减少了来自不紧邻客户端设备的主机设备的不相关响应的传输。这可以防止覆盖网络中的数据带宽的浪费消耗。
因此,本文中所公开的各种示例涉及针对跨覆盖网络中的VTEP的服务发现的方法和***。在一些示例中,被配置作为覆盖网络中的第一VTEP的第一网络设备从连接到该网络设备的客户端设备接收针对服务的多播查询。多播查询包括正在被客户端设备查询的服务的服务名。多播查询可以指示客户端设备想要访问由服务名标示的服务。该服务可以由被连接到第二网络设备的主机设备提供,第二网络设备被配置作为覆盖网络中的第二VTEP。第一网络设备可以存储资源记录,该资源记录包括连接到覆盖网络中的VTEP的主机设备的主机名、相应主机IP地址、相应服务名和相应覆盖网络路径的列表。覆盖网络路径是指经由覆盖网络的主机设备的可达性信息。在一些示例中,可达性信息可以标识连接覆盖网络中的两个不同的VTEP的虚拟隧道。覆盖网络路径可以包括用于在L2覆盖网络中转发业务的L2虚拟网络实例(VNI)或者用于在L3覆盖网络中转发业务的L3VNI、以及与主机设备连接的第二VTEP的IP地址。
第一网络设备可以基于从覆盖网络中的其他VTEP接收到的封装的多播服务公告来创建资源记录。响应于确定与服务名相对应的主机名存在于资源记录中,第一网络设备从资源记录标识与主机名相对应的覆盖网络路径。覆盖网络路径指示覆盖网络中的主机设备的可达性信息。此外,第一网络设备基于在第一VTEP处实现的覆盖封装协议来封装多播查询。所封装的多播服务查询包括覆盖网络路径的至少一部分。第一网络设备(实现第一VTEP)然后经由覆盖网络路径将所封装的多播服务查询路由到主机设备,使得该服务由客户端设备可发现。因此,来自客户端设备(连接到VTEP)的针对服务的多播查询可以经由覆盖网络路径而被发送到覆盖网络中的选择性VTEP(连接到提供服务的主机)。这允许跨覆盖网络中的VTEP进行服务发现,同时避免在VTEP处的多播查询/响应的洪泛,从而防止覆盖网络中的附加带宽消耗和附加计算资源使用。
参考图1至图6进一步描述上述***和方法。应注意的是,描述和附图仅与本文中所描述的示例一起说明本主题的原理,并且不应被解释为对本主题的限制。因此应当理解,尽管在本文中没有明确描述或图示,但是可以设计出体现本主题的原理的各种布置。此外,在本文中叙述本主题的原理、方面和实施例及其具体示例的所有陈述旨在涵盖其等同物。
图1示意性地图示了网络环境100。在示例中,网络环境100可以是由有限地理区域内的LAN的互连组成的计算机网络。在一个示例中,网络环境100可以包括校园网络。在一些示例中,网络环境100可以是有线网络、无线网络或其组合。网络环境100可以是专用网络或共享网络,其表示使用各种协议来彼此通信的不同类型网络的关联,各种协议例如是超文本传输协议(HTTP)、传输控制协议/互联网协议(TCP)/IP)等。
如图1中所示,网络环境100包括主机设备102。“主机设备”是指可以由客户端访问并且可以为客户提供托管不同服务(诸如,流广播和/或视频服务、有线和/或***服务、多媒体流服务、打印机服务等)的计算实体。主机设备102能够通告一个或多个服务。在一些示例中,服务可以是指主机设备102可以通过在主机设备102处执行应用来提供的特定功能性。主机设备可以包括发送或接收数据、服务或应用的服务器。主机设备102可以经由交换机通过物理链路,或者在一些示例中经由无线通信链路,与网络环境100上的客户端设备或其他主机设备通信。
网络环境100还包括可以与主机设备通信的客户端设备104。“客户端设备”是指可以发现和访问由主机设备托管的服务的计算实体。客户端设备的示例包括计算机、膝上型电脑、平板电脑、PDA、以及可以用于运行应用以访问由主机设备提供的不同服务功能性的其他计算设备。在网络环境100中,客户端设备104可以访问由主机设备102托管的服务。尽管在图1中示出了单个主机设备102和单个客户端设备104,但是在一些示例中,可以存在多个主机设备和多个客户端设备。
网络环境100包括网络设备106-1和106-2,被统称为网络设备106。每个网络设备106可以被实现为但不限于交换单元、交换路由器、网关、或者能够交换数据分组的任何设备,其提供诸如网络环境10的计算机网络中的主机与客户端之间的连接性。如图1中所示,客户端设备104本地连接到网络设备106-1。在一些示例中,客户端设备104可以经由以太网电缆连接到网络设备106-1的接入端口。在一些示例中,客户端设备104可以是可以经由无线接入点(未示出)连接到网络设备106-1的无线设备,即,客户端设备可以无线连接到无线接入点,而无线接入点又可以连接到网络设备106-1的接入端口。如图1中所示,主机设备102本地连接到网络设备106-2。在一些示例中,主机设备102可以经由以太网电缆连接到网络设备106-2的接入端口。
客户端设备104可以经由网络设备106与主机设备102通信。在一些示例中,网络设备106可以经由在其间延伸的覆盖网络108连接。“覆盖网络”是指部署在网络设备的物理网络基础设施之上的节点和/或逻辑链路的软件定义的虚拟网络。可以通过实现覆盖网络跨L3网络伸展L2网络。可以使用允许将硬件网络资源抽象为软件的不同网络虚拟化技术来实现覆盖网络。不同网络虚拟化技术的示例包括虚拟可扩展局域网(VXLAN)、通用路由封装(GRE)和使用通用路由封装的网络虚拟化(NVGRE)。如早先所解释的,覆盖网络可以包括VTEP,这些VTEP可以是虚拟或物理交换机端口。VTEP可以封装从源设备进入覆盖网络的数据分组,并且在数据分组离开覆盖网络时对数据分组进行解封装。可以使用被称为底层(未示出)的交换机底部层来部署覆盖网络108。在覆盖网络108中,网络设备106-1被配置作为一个VTEP,并且网络设备106-2被配置作为另一VTEP。在一些示例中,在网络设备106-1处实现的VTEP被称为第一VTEP或客户端侧VTEP,并且在网络设备106-2处实现的VTEP被称为第二VTEP或主机侧VTEP。VTEP可以经由覆盖网络108中的虚拟隧道彼此连接。
在一些示例中,客户端设备104和主机设备102可以在单个广播域中,即,它们是单个虚拟局域网(VLAN)的一部分。在一些示例中,客户端设备104和主机设备102处于不同的广播域中,即,它们是不同VLAN的一部分。在一些示例中,(在网络设备106-1处配置的)第一VTEP和(在网络设备106-2处配置处)第二VTEP在由公共L2VNI标识的单个覆盖网络分段中。覆盖网络分段是指单个L2覆盖网络,其中设备被配置在单个广播域/子网中。在一些示例中,第一VTEP在由第一L2VNI标识的第一覆盖网络分段中,并且第二VTEP在由第二L2VNI标识的第二覆盖网络分段中。因此,第一VTEP和第二VTEP在两个不同的L2覆盖网络中,并且可以经由L3VNI通信。在一些示例中,第一VTEP在第一覆盖网络结构中,并且第二VTEP在第二覆盖网络结构中。覆盖网络结构是指其中每个VTEP通过网状连接与另一VTEP连接的覆盖网络,即覆盖网络中的每个VTEP经由虚拟隧道连接到每个其他VTEP。
如图1中所示,网络设备106-1可以包括可以通过通信链路(例如,总线)彼此耦接的处理器110和存储器112。处理器110可以包括单个或多个中央处理单元(CPU)、或者其他合适的(多个)硬件处理器,诸如网络ASIC。存储器112可以是可以存储由处理器110执行的机器可读指令的机器可读存储介质。存储器112可以包括易失性和/或非易失性存储器的任何合适的组合,诸如随机存取存储器(RAM)、只读存储器(ROM)、闪存和/或其他合适的存储器的组合。
存储器112存储要由处理器152执行的指令,包括针对多播查询接收器114、资源记录管理器116、覆盖路径标识符118和查询路由管理器120的指令。
处理器110可以执行多播查询接收器114以从客户端设备104接收针对服务的多播查询。在一些示例中,多播查询是指源自尝试访问网络中的特定服务的客户端设备的基于服务发现协议的多播IP分组。多播查询可以包括客户端设备正在尝试访问的服务的服务名。考虑在图1的示例中,客户端设备104尝试访问由主机设备102提供的服务。在一些示例中,多播查询可以是基于多播域名***(mDNS)协议的服务查询。在一些示例中,多播查询包括mDNS的SRV记录和TXT记录。服务记录(SRV记录)是指DNS中的定义提供由客户端设备查询的服务的主机设备的主机名和端口号的数据的规范。TXT是指DNS中的数据的规范,其允许域管理员将文本值(字符串)与主机设备的域名相关联。在一些示例中,由客户端设备104查询的服务的服务名可以被包括在SRV记录或TXT记录中。
在接收到针对服务的多播查询时,处理器110可以执行资源记录管理器116以确定与服务名相对应的主机名是否存在于网络设备106-1的资源记录中。在图1的示例中,主机名是提供服务的主机设备102的主机名。在一些示例中,资源记录包括连接到覆盖网络108中的VTEP的主机设备的主机名、相应服务名、相应IP地址和相应覆盖网络路径的列表。在一些示例中,资源记录还可以包括针对主机设备中的每个主机设备的相应角色标签和位置标签。角色标签指示客户端设备104的基于角色的访问策略,并且位置标签指示客户端设备104所位于的地理区域。可以基于从与覆盖网络108中的VTEP连接的主机设备接收的多播服务公告来创建资源记录。
在一些示例中,处理器110可以执行资源记录管理器116以确定主机名是否对应于客户端设备104的角色标签和位置标签。处理器110可以基于客户端设备104经由其连接到网络设备106-1的端口地址、客户端设备104的MAC地址、或者基于客户端设备104的认证信息之一向客户端设备网络104指派角色标签。在一些示例中,网络设备106-1可以被配置为使得网络设备106-1的接入端口被指派给特定角色。因此,基于客户端设备104连接到网络设备106-1的端口,处理器110可以向客户端设备指派角色标签。类似地,可以在网络设备106-1中配置MAC地址到角色的映射。使用MAC地址到角色的映射和客户端设备的MAC地址,网络设备106-1可以向客户端设备104指派角色标签。在一些示例中,角色标签到客户端设备104的指派由认证服务器(诸如,RADIUS)执行。当客户端设备104连接到网络设备106-1并且提供其认证凭证时,那么基于其认证凭证,认证服务器可以向客户端设备104指派角色标签并且与网络设备106-1共享该角色标签。网络设备106-1可以基于所指派的角色标签来应用访问策略和权限。
处理器110可以静态地或者基于从其接收多播查询的无线接入点的位置向客户端设备104指派位置标签。在标识角色标签和位置标签时,处理器110可以执行资源记录管理器116来检查资源记录以确定主机名是否对应于客户端设备104的角色标签和位置标签。也就是说,资源记录管理器116除了检查所查询的服务是否由主机设备102提供以外,还可以检查主机设备102的角色标签和位置标签是否与客户端设备104的角色标签和位置标签匹配。
响应于确定与服务名、角色标签和位置标签相对应的主机名存在于资源记录中,处理器110可以执行覆盖路径标识器118以从资源记录标识与主机名相对应的覆盖网络路径。覆盖网络路径指示覆盖网络108中的主机设备102的可达性信息。在一些示例中,覆盖网络路径包括用于在L2覆盖网络中转发业务的L2虚拟网络实例(VNI)或者用于在L3覆盖网络中转发业务的L3VNI、以及与主机设备连接的目的地VTEP的IP地址(即,在该示例中,与主机设备102连接的第二VTEP的IP地址)。L2VNI是指连接到同一子网中的主机/客户端的VTEP的标识符。因此,L2VNI是包括同一IP子网内的端点(VTEP)的特定覆盖网络分段。L2覆盖网络是指允许同一子网中的主机/客户端设备相互发送桥接或第二层业务的覆盖网络。在L2覆盖网络中,可以使用L2VNI转发两个VTEP之间的桥接业务。L3VNI是指连接到不同子网中的主机/客户端的VTEP的标识符。因此,L3VNI是包括不同IP子网中的端点(VTEP)的特定覆盖网络分段。L3覆盖网络是指允许不同子网中的主机/客户端设备相互发送L3业务或路由的业务的覆盖网络。在L3覆盖网络中,可以使用L3VNI和虚拟路由器(即,虚拟路由和转发(VRF)实例)转发两个VTEP之间的路由的业务。覆盖网络路径提供经由覆盖网络108连接到客户端设备104的(在网络设备106-1处配置的)第一VTEP和连接到主机设备102的(在网络设备106-2处配置的)第二VTEP之间的虚拟通信链路。在一些示例中,虚拟通信链路可以是连接第一VTEP和第二VTEP的虚拟隧道。
一旦覆盖网络路径被标识,处理器110就可以执行查询路由管理器120以封装多播查询并且经由覆盖网络路径将所封装的多播查询路由到主机设备102。在一些示例中,查询路由管理器120可以在第一VTEP处实现覆盖封装协议以封装多播查询。覆盖封装协议也被称为隧道协议,是一种通信协议,其中网络(覆盖网络)中的逻辑上独立的功能通过实现更高级别的对象从其底层结构(底层)中抽象出来。示例包括GENEVE、GRE、SSH、VXLAN和NVGRE。作为封装的结果,可以将一个或多个报头添加到多播查询中。覆盖网络路径的至少一部分可以被包括在报头中的一个报头中。在一些示例中,包括在报头中的覆盖网络路径的部分包括连接到主机设备102的第二VTEP的IP地址。在一些示例中,封装可以是用户数据报协议(UDP)数据报内的媒体访问控制(MAC)帧的VXLAN封装,用于跨IP网络的传输。在一些示例中,封装的多播查询可以经由覆盖网络路径(即,由L2VNI和/或L3VNI所标识的虚拟隧道以及第二VTEP的IP地址)来路由。在沿覆盖网络路径进行路由时,多播查询可以到达第二VTEP并且最终到达主机设备102。在接收到多播查询时,主机设备102可以发送同意沿相同的覆盖网络路径提供服务的响应。因此,连接到VTEP(覆盖网络108中的第一VTEP)的客户端设备104可以经由覆盖网络路径发现并且访问由连接到不同VTEP(即,覆盖网络108中的第二VTEP)的主机设备102所通告的服务。覆盖网络路径的标识允许在特定路由中路由多播查询(即,经由虚拟隧道从客户端侧VTEP(第一VTEP)到主机侧VTEP(第二VTEP)),这防止多播查询不必要地向覆盖网络中的其他VTEP泛洪,从而防止覆盖网络108中浪费带宽消耗。此外,由于在一些示例中,覆盖网络路径是基于主机设备的位置标签与客户端设备的位置标签的匹配来标识的,多播查询还沿覆盖网络路径而路由到位置特定的主机设备,从而允许服务发现是位置特定的。
图2示意性地图示了网络环境200。在示例中,网络环境200可以是由有限地理区域内的LAN的互连组成的计算机网络。在一个示例中,网络环境200可以包括校园网络。在一些示例中,网络环境200可以是有线网络、无线网络或其组合。网络环境200可以是专用网络或共享网络,其表示使用各种协议来彼此通信的不同类型网络的关联,各种协议例如是超文本传输协议(HTTP)、传输控制协议/互联网协议(TCP)/IP)等。
如图2中所示,网络环境200包括主机设备202和能够与主机设备202通信的客户端设备204。主机设备202可以类似于主机设备102,并且客户端设备204可以类似于客户端设备104。尽管在图2中示出了单个主机设备202和单个客户端设备204,但是在一些示例中,网络环境200中可以存在多个主机设备和多个客户端设备。
网络环境200还包括网络设备206-1和206-2,被统称为网络设备206。网络设备206可以类似于图1的网络设备106。在一些示例中,客户端设备204可以经由以太网电缆连接到网络设备206-1的接入端口。在一些示例中,客户端设备204可以是可以经由无线接入点(未示出)连接到网络设备206-1的无线设备,即,客户端设备可以无线连接到无线接入点,而无线接入点又可以连接到网络设备206-1的接入端口。如图2中所示,主机设备202本地连接到网络设备206-2。在一些示例中,主机设备202可以经由以太网电缆连接到网络设备206-2的接入端口。
客户端设备204可以经由网络设备206来与主机设备202通信。在一些示例中,网络设备206可以经由在其间延伸的覆盖网络208连接。如早先所解释的,覆盖网络可以包括VTEP,这些VTEP可以是虚拟或物理交换机端口。VTEP可以封装从源设备进入覆盖网络的数据分组,并且在数据分组离开覆盖网络时对数据分组进行解封装。可以使用被称为底层(未示出)的交换机底部层来来部署覆盖网络208。在覆盖网络208中,网络设备206-1被配置作为一个VTEP,并且网络设备206-2被配置作为另一VTEP。在一些示例中,在网络设备206-1处实现的VTEP被称为第一VTEP或客户端侧VTEP,并且在网络设备206-2处实现的VTEP被称为第二VTEP2或主机侧VTEP。VTEP可以经由覆盖网络208中的虚拟隧道彼此连接。
在上面的图1中,解释了客户端侧VTEP的功能性。图2重点描述主机侧VTEP的功能性。如图2中所示,网络设备206-2可以包括可以通过通信链路(例如,总线)彼此耦接的处理器210和存储器212。处理器210可以类似于图1的处理器110,并且存储器212可以类似于图1的存储器112。
存储器212存储要由处理器210执行的指令,包括用于多播服务公告接收器214、服务公告管理器216和公告路由管理器218的指令。
处理器210可以执行多播服务公告接收器214以从连接到网络设备206-2的主机设备202接收多播服务公告。多播服务公告包括主机设备202的主机名和由主机设备202通告的服务的服务名。多播服务公告指示来自主机设备202的由主机设备202提供的服务的通告。在一些示例中,多播服务公告是具有1秒的生存时间(TTL)的多播域名***(mDNS)指针(PTR)记录。PTR记录包括映射到服务的特定实例的名称的服务的名称。主机设备202可以周期性地或间歇性地发送多播服务公告。在一些示例中,网络设备206-2还可以向主机设备202查询多播服务公告。每个多播服务公告包括主机设备202的主机名、IP地址、以及由主机设备202提供的服务的服务名。
在接收到多播服务公告时,处理器110可以执行服务公告管理器216以标识将第二VTEP连接到覆盖网络208中的其他VTEP的一组覆盖网络路径。在示例中,每个覆盖网络路径可以包括L2VNI/L3VNI和与L2VNI/L3VNI相关联的远程VTEP的IP地址。因此,服务公告管理器216可以搜索在网络设备206-2中实现的第二VTEP中配置的VNI。在一些示例中,服务公告管理器216可以检查第二VTEP中的接口以标识第二VTEP的对等VTEP。在一些示例中,当两个主机设备本地连接到同一对等VTEP时,可能存在与该对等VTEP相对应的多个覆盖网络路径。在这种情况下,多个覆盖网络路径之一被包括在该组覆盖网络路径中。换言之,该组覆盖网络路径中的每一个在每个路径提供第二VTEP与不同VTEP之间的可达性信息的意义上是唯一的。在图2的示例中,第一VTEP被配置作为第二VTEP的对等VTEP。因此,服务公告管理器216也可以标识针对第一VTEP的覆盖网络路径。在一些示例中,第一VTEP和第二VTEP可以被配置在单个覆盖网络分段中。在一些其他示例中,第一VTEP和第二VTEP可以被配置在不同的覆盖网络分段中。
处理器210可以执行服务公告管理器216以创建多播服务公告的一组副本。多播服务公告的副本中的每个副本将沿来自该组覆盖网络路径中的相应覆盖网络路径被转发。因此,取决于该组中的覆盖网络路径的数目,可以创建多播服务公告的副本的数目。
此外,处理器210还可以执行服务公告管理器216以基于在第二VTEP处实现的覆盖封装协议来封装服务公告的副本中的每个副本。在一些示例中,封装服务公告的副本中的每个副本包括执行MAC-in-UDP封装,使得将报头添加到服务公告的每个副本中。在一些示例中,报头包括其将沿进行路由的相应覆盖网络路径的至少一部分。在一些示例中,原始服务公告可以是添加了VXLAN报头的L2帧,然后将其放置在UDP-IP分组中。在一些示例中,在封装服务公告的副本中的每个副本期间,处理器110还可以将主机设备202的角色标签和位置标签与封装的多播服务公告的副本中的每个副本相关联。角色标签指示主机设备202的基于角色的访问策略,并且位置标签指示主机设备202所位于的地理区域。
处理器210可以执行公告路由管理器218以经由相应覆盖网络路径将多播服务公告的每个封装副本路由到远程VTEP中的每个远程VTEP。因此,覆盖网络208中的每个远程VTEP可以从主机设备202接收服务公告。每个远程VTEP可以存储来自不同主机设备(诸如,主机设备202)的多播服务公告以及相应覆盖网络路径,它们经由该相应覆盖网络路径而被接收在资源记录中。因此,在覆盖网络208中的每个VTEP中创建资源记录。资源记录可以在获取与由与VTEP相关联的客户端设备所查询的服务相关联的主机名时由VTEP使用。
图3示意性地图示了根据示例的针对跨覆盖网络中的VTEP的服务发现的网络环境300。网络环境300包括连接到不同网络设备的多个客户端设备302-1和302-2。图3中所描绘的客户端设备302可以表示图1中所描述的客户端设备104的示例。类似地,如图1所描绘的网络设备304-1至304-5可以表示图1中所描述的网络设备106-1或106-2的示例。网络设备304-1至304-5可以被统称为网络设备304。如图3中所示,客户端设备302-1连接到网络设备304-1并且客户端设备302-2连接到网络设备304-2。客户端设备302-1和302-2可以经由与网络设备的接入端口连接的以太网电缆而分别连接到网络设备304-1和304-2。
网络环境300还包括连接到不同网络设备的多个主机设备306-1至306-4。主机设备306-1至306-4可以被统称为主机设备306。图3中所描绘的主机设备306可以表示图1中所描述的主机设备102的示例。如图3中所示,主机设备306-1和306-2连接到网络设备304-3。主机设备306-3连接到网络设备304-4,并且主机设备306-4连接到网络设备304-5。主机设备306-1至306-4可以经由与相应网络设备的接入端口连接的以太网电缆而分别连接到网络设备304-3至304-5。每个接入端口包括网络设备的接口,其可以包括例如RJ45插孔。每个接入端口可以被配置为接收以太网电缆的连接器,其可以包括RJ45连接器。客户端设备302可以经由局域网(LAN)或广域网(WAN)而连接到主机设备306。客户端设备302可以经由覆盖网络308来与主机设备306通信。覆盖网络308可以表示图1中所描述的覆盖网络108。每个网络设备304可以被配置作为覆盖网络308中的VTEP。因此,网络设备304-2实现VTEP1,网络设备304-3实现VTEP2,网络设备304-4实现VTEP3,网络设备304-5实现VTEP4,并且网络设备304-1实现VTEP5。在图3的描述中,由网络设备执行的功能或步骤可以替代地被称为由在网络设备处实现的VTEP执行的功能或步骤。如可以注意到的,在图3的示例中,客户端设备302和主机设备306连接到不同的VTEP。为了描述图3的目的,考虑连接到VTEP1的客户端设备302-2想要访问打印服务。为了便于解释,有时也将VTEP1称为第一VTEP,并且将VTEP2称为第二VTEP。
在一些示例中,主机设备306-1可以周期性地或间歇性地向网络设备304-3发送多播服务公告。多播服务公告可以包括主机设备306-1的主机名(或者,域名,诸如本地-打印-1层(Local-print-Floor1))和由主机设备306-1所通告的服务的服务名(即,print serv(打印服务))。多播服务公告的示例可以是mDNSPTR记录。在示例中,主机设备306-1可以是通告具有服务名“print serv”的打印服务的打印机。由第二VTEP接收的多播服务公告是L2帧的形式。由于多播服务公告是从本地连接的主机设备306-1接收的,所以多播服务公告不被封装。第二VTEP可以经由交换机接口接收多播服务公告。交换机接口是指本地LAN网络分段中用于支持本地端点通信的VTEP的物理接口。第二VTEP还具有IP接口,该IP接口是指VTEP的虚拟接口,用于经由IP网络来与其他VTEP通信。类似地,主机设备306-2也可以向第二VTEP发送多播服务公告。在示例中,主机设备306-2可以是通告具有服务名“proj scrn”的投影仪服务的智能投影仪。在一些示例中,第二VTEP也可以向主机设备306-1/306-2发送要求服务公告的请求。
在接收到多播服务公告时,第二VTEP可以创建本地主机列表。本地主机列表包括由本地连接到第二VTEP的主机设备306-1和306-2提供的服务的服务名、主机IP地址和主机名的列表。此外,通常主机设备是静态有线设备。因此,当使用认证服务器(诸如,RADIUS)对设备进行认证时,可以静态地输入此类主机设备的位置的标识符。第二VTEP可以通过散列将该标识符转换为位置标签。主机设备306-1和306-2的位置标签也可以被存储在本地主机列表中。此外,主机设备306-1和306-2的角色可以由第二VTEP确定。主机设备的角色可以定义主机设备能够发送/接收什么类型的业务以及该业务可以被发送到什么其他设备/用户/角色。因此,被分组在“访客角色(guest role)”下的主机可以由被指派在相同“访客角色”下的客户端设备访问。被分类在单个角色下的实体或设备经受类似的访问策略或权限。基于指派给主机设备306-1和306-2的角色,第二VTEP可以为主机设备306-1和306-2指派角色标签。角色标签可以是指示指派给一组设备或实体的特定角色的标识符。主机设备306-1和306-2的角色标签也可以被存储在本地主机列表中。在示例中,在第二VTEP中创建的本地主机列表如下“表1”中所示。
表1
主机IP 服务名 角色标签 位置标签
1.1.1.2/24 “print serv 1” 访客 101
1.1.1.3/24 “proj scrn” 管理员 101
从表1中的本地主机列表可以看出,主机设备306-1的IP地址为1.1.1.2/24,提供打印服务“print serv1”,被指派为“访客(Guest)”角色,并且具有指示建筑物/楼层中的特定位置的位置标签“101”。主机设备306-2具有IP地址1.1.1.3/24,提供屏幕投影服务“projscrn”,被指派为“管理员(Admin)”角色,并且具有位置标签“101”。类似地,分别在网络设备304-4和304-5中实现的VTEP3和VTEP4可以维持具有来自其相应本地连接的主机设备306-3和306-4的多播服务公告的相应本地主机列表。
此外,第二VTEP被配置为标识将第二VTEP连接到覆盖网络308中的其他VTEP的一组覆盖网络路径。在示例中,第二VTEP可以标识第二VTEP中所配置的L2VNI/L3VNI以及具有相同L2VNI/L3VNI的远程VTEP。通过标识作为与第二VTEP中所配置的相同L2VNI/L3VNI的一部分的远程VTEP,第二VTEP能够标识将第二VTEP连接到覆盖网络308中的其他VTEP的该组覆盖网络路径。在示例中,第二VTEP(VTEP2)可以标识VTEP1、VTEP3、VTEP4和VTEP5的IP地址以及将VTEP1连接到这些VTEP中的每个VTEP的L2VNI/L3VNI。
网络设备304-3可以创建多播服务公告的一组副本。多播服务公告的副本中的每个副本将沿覆盖该组网络路径中的相应覆盖网络路径被转发。因此,该组中的副本的数目与所标识的覆盖网络路径的数目相同。网络设备304-3可以执行多播服务公告的复制以创建该组副本。
网络设备304-3还可以基于在第二VTEP处实现的覆盖封装协议来封装多播服务公告的副本中的每个副本。在示例中,封装可以是基于VXLAN的MAC-in-UDP封装。作为L2帧的多播服务公告的副本可以被封装在UDP数据报内。在一些示例中,多播服务公告的封装副本包括作为覆盖网络308中的VTEP(VTEP1/VTEP3/VTEP4/VTEP5)之一的IP地址的外部IP地址和包括L2VNI/L3VNI的VXLAN报头以及多播服务公告所源自的主机设备(诸如,主机设备306-1)的角色标签。图7示出了源自主机设备306-1、寻址到客户端设备302-2的封装的多播服务公告的示例。
示例“原始L2帧”可以是指多播服务公告。在一些示例中,“原始L2帧”包括mDNS L2报头、mDNS IP报头和mDNS有效负载。在示例中,通过封装的方式将“VXLAN报头”添加到“原始L2帧”中。如可以看出的,“VXLAN报头”包括指示要经由其转发多播服务公告的封装副本的覆盖网络分段的VNI。此外,主机设备306-1的角色标签(即,“访客”)和位置标签(即,“101”)也被包括在“VXLAN报头”中。“外部IP报头”可以包括“外部源IP”,其为封装多播服务公告的副本的VTEP(在这种情况下为VTEP2)的IP地址。类似地,“外部IP报头”还包括“外部目的地IP”,其为对多播服务公告的副本进行解封装的VTEP(在这种情况下为VTEP1)的IP地址。第二VTEP(VTEP2)与第一VTEP(VTEP1)之间的覆盖网络路径可以由VTEP2和VTEP1中所配置的L2VNI/L3VNI以及目的地VTEP(即,VTEP1)的IP地址指示。如可以注意到的,VTEP2与VTEP1之间的覆盖网络路径的一部分(即,VTEP1的IP地址和VNI)被包括在多播服务公告的封装副本中。类似地,多播服务公告的每个封装副本包括每个封装副本将沿其进行路由的相应覆盖网络路径的至少一部分。在该示例中,VTEP2可以创建多播服务公告的副本,每个副本可以被路由到VTEP1、VTEP3、VTEP4和VTEP5。在要被转发到这些VTEP的多播服务公告的每个封装副本中,可以包括相应覆盖网络路径的一部分。此外,如上面所解释的,网络设备304-3还将主机设备306-1的角色标签和位置标签与封装的多播服务公告的每个副本相关联(例如,在封装副本的VXLAN报头的保留字段内)。
网络设备304-3(实现VTEP2)然后可以经由相应覆盖网络路径将多播服务公告的每个封装副本路由到其他VTEP(即,VTEP1、VTEP3、VTEP4和VTEP5)中的每个VTEP。由于多播服务公告的副本经由特定覆盖网络路径路由到特定VTEP,因此这些副本不会在源VTEP(在本示例中为VTEP2)的L2VNI中泛洪,从而避免了覆盖网络308中的过度带宽消耗。
在上面的描述中,解释了网络设备304-3(实现第二VTEP)将多播服务公告的封装副本路由到覆盖网络308中的其他VTEP。类似地,网络设备304-4和304-5还可以向所有其他VTEP发送封装的多播服务公告。考虑由VTEP1接收的封装的多播服务公告。具体地,网络设备304-2(实现VTEP1)可以经由覆盖网络路径从VTEP2接收主机设备306-1的封装的多播服务公告。如早先所解释的,封装的多播服务公告包括主机设备306-1的主机名、主机IP地址、服务名、位置标签和角色标签。
在接收到封装的多播服务公告时,网络设备304-2可以创建将相应覆盖网络路径与服务名和主机名相关联的记录条目。在一些示例中,网络设备304-2可以用主机名、服务名和主机IP指派从其接收封装的多播服务公告的L2VNI/L3VNI和VTEP IP以创建记录条目。记录条目被存储在资源记录中,该资源记录在第一VTEP处被维持。“资源记录”是指与可以被存储在覆盖网络中的VTEP内的相应主机名、服务名、角色标签、覆盖网络路径和位置标签相关联的主机设备的IP地址的列表。第一VTEP(VTEP1)可以从本地连接到主机设备306-1、306-2、306-3和306-4的VTEP2、VTEP3和VTEP4中的每个VTEP接收多播服务公告的副本。基于来自主机设备306的所有这些封装的服务公告,网络设备304-2可以创建资源记录。因此,在第一VTEP处创建的示例资源记录如下“表2”中所示:
表2
网络设备304-2可以从客户端设备302-2接收针对由诸如主机设备306-1和306-3的主机设备通告的名为“打印服务(print serv)”的打印服务的多播查询。多播查询包括服务的服务名(打印服务(print serv))。考虑客户端设备302-2与“访客”角色相关联。
当接收到多播查询时,网络设备304-2确定网络设备304-2的资源记录(其示例在表2中示出)中是否存在与服务名(打印服务(print serv))相对应的主机设备的主机名。参考表2的示例资源记录,网络设备304-2可以确定主机名为“本地-打印-1层(Local-print-Floor1)”和“本地-打印-2层(Local-print-Floor2)”的两个主机设备正在通告名为“打印服务(print serv)”的服务。
在一些示例中,网络设备304-2还可以标识客户端设备302-2的角色标签和位置标签。如早先所提及,客户端设备302-2被指派角色标签“访客”。认证服务器可以基于客户端设备302-2的认证凭证将角色标签指派给客户端设备302-2。在一些示例中,还可以在每端口的基础上指派角色标签。也就是说,网络设备304-2的每个接入端口可以被指派特定的角色。取决于使用哪个端口来将客户端设备302-2连接到网络设备304-2,可以指派角色标签。此外,位置标签101可以基于客户端设备302-2的认证期间的静态位置指派而被指派给客户端设备302-2。
响应于确定与服务名(打印服务(print serv))相对应的主机名存在于资源记录中,网络设备304-2可以确定在资源记录中的主机名对应于角色标签和位置标签。参考图3的示例,网络设备304-2可以确定具有主机名“本地-打印-1层(Local-print-Floor1)”和主机IP“1.1.1.2/24”的主机设备306-1具有与指派给客户端设备302-2的那些匹配的角色标签(“访客”)和位置标签(“101”)。因此,网络设备304-2标识出与服务名“打印服务(printserv)”、位置标签“101”和角色标签“访客”相对应的主机设备306-1存在于资源记录中(其示例在表2中示出)。可以注意到,尽管具有主机名“本地-打印-2层(Local-print-Floor2)”的主机设备306-3通告由客户端设备302-2查询的相同服务“打印服务(print serv)”,然而,主机设备306-3与角色标签“雇员”和位置标签“105”相关联,其与客户端设备302-2的角色标签“访客”和位置标签“101”不匹配。因此,主机设备306-3被网络设备340-2忽略。
响应于确定与匹配的服务名“打印服务(print serv)”、角色标签“访客”和位置标签“101”相对应的主机名(本地-打印-1层(Local-print-Floor1))存在于资源记录中,网络设备304-2可以从资源记录标识与主机名(本地-打印-1层(Local-print-Floor1))相对应的覆盖网络路径。因此,网络设备304-2可以将“L2VNI100”和“<VTEP2IP地址>”标识为与主机设备306-1的主机名“本地-打印-1层(Local-print-Floor1)”相对应的覆盖网络路径。网络设备304-2还可以基于在第一VTEP(即,VTEP1)处实现的覆盖封装协议来封装多播查询。在示例中,封装可以是基于VXLAN的MAC-in-UDP封装。封装的多播查询包括覆盖网络路径的至少一部分。例如,封装的多播查询可以包括VXLAN报头内的“L2VNI100”以及作为外部目的地IP的“<VTEP2 IP地址>”,该外部目的地IP作为外部IP报头的一部分而被包括。响应于确定资源记录中不存在与服务名、角色标签和位置标签相对应的主机名,网络设备304-2可以丢弃/抛弃多播查询。
此外,网络设备304-2可以经由覆盖网络路径(即,经由“L2VNI100”和“<VTEP2 IP地址>”)将所封装的多播查询路由到主机设备(即,在此示例中为主机设备306-1)。因此,第二VTEP(VTEP2)可以接收源自客户端设备302-2的封装的多播查询。第二VTEP(VTEP2)可以对多播查询进行解封装,并且可以将解封装的多播查询发送到主机设备306-1。主机设备306-1在接收到多播查询后可以对这样的查询进行响应。因此,连接到VTEP(VTEP1)的客户端设备302-2可以经由从本地连接到客户端设备302-2的VTEP(VTEP1)中维持的(表2的)资源记录中所标识的覆盖网络路径(“L2VNI100”和“<VTEP2 IP地址>”)来发现连接到不同VTEP(VTEP2)的主机设备306-1。来自客户端设备的多播查询沿覆盖网络路径的路由允许客户端设备发现由主机设备所通告的服务,而不会将多播查询洪泛到覆盖网络308中的其他VTEP,从而防止带宽浪费。此外,由于主机设备306-1具有与客户端设备302-2的角色标签和位置标签匹配的角色标签和位置标签,所以经由覆盖网络路径的多播查询的路由也是角色特定和位置特定的。
图4是图示了根据示例的针对跨覆盖网络中的VTEP的服务发现的方法400的流程图。方法400可以在网络设备上执行,诸如图1的网络环境100中的网络设备106-1。网络设备可以被配置作为覆盖网络中的VTEP。覆盖网络包括诸如图1的主机设备102的主机设备可以连接到的其他VTEP。
在框402处,网络设备可以从诸如图1的客户端设备104的客户端设备接收针对服务的多播查询。在一些示例中,多播查询是指源自尝试访问网络中的特定服务的客户端设备的基于服务发现协议的多播IP分组。多播查询可以包括客户端设备正在尝试访问的服务的服务名。在一些示例中,多播查询可以是基于多播域名***(mDNS)协议的服务查询。在一些示例中,多播查询包括SRV记录和TXT记录。服务记录(SRV记录)是指DNS中的定义提供由客户端设备查询的服务的主机设备的主机名和端口号的数据的规范。TXT是指DNS中的数据的规范,其允许域管理员将文本值(字符串)与主机设备的域名相关联。在一些示例中,由客户端设备查询的服务的服务名可以被包括在SRV记录或TXT记录中。
在接收到针对服务的多播查询时,在框404处,网络设备可以确定与服务名相对应的主机名是否存在于网络设备的资源记录中。在一些示例中,资源记录包括与覆盖网络中的VTEP连接的主机设备的主机名、相应服务名、相应IP地址和相应覆盖网络路径的列表。在一些示例中,资源记录还可以包括针对主机设备中的每个主机设备的相应角色标签和位置标签。可以基于从与覆盖网络中的VTEP连接的主机设备接收的多播服务公告来创建资源记录。
在一些示例中,网络设备可以确定主机名是否对应于客户端设备的角色标签和位置标签。客户端设备的角色标签是指客户端设备的基于角色的访问策略。网络设备可以基于客户端设备经由其连接到网络设备的端口地址、客户端设备的MAC地址、或者基于客户端设备的认证信息之一向客户端设备指派角色标签。在一些示例中,网络设备可以被配置为使得网络设备的接入端口被指派给特定角色。因此,基于客户端设备连接到网络设备的端口,网络设备可以向客户端设备指派角色标签。类似地,可以在网络设备中配置MAC地址到角色的映射。使用MAC地址到角色的映射和客户端设备的MAC地址,网络设备可以向客户端设备指派角色标签。在一些示例中,角色标签到客户端设备的指派由认证服务器(诸如,RADIUS)执行。当客户端设备连接到网络设备并且提供其认证凭证时,那么基于其认证凭证,认证服务器可以向客户端设备指派角色标签并且与网络设备共享该角色标签。网络设备可以基于所指派的角色标签来应用访问策略和权限。网络设备还可以静态地或者基于从其接收多播查询的无线接入点的位置来向客户端设备指派位置标签。在标识指派给客户端设备的角色标签和位置标签时,网络设备可以检查资源记录以确定主机名是否对应于客户端设备的角色标签和位置标签。也就是说,资源记录管理器除了检查所查询的服务是否由主机设备提供以外,还可以检查主机设备的角色标签和位置标签是否与客户端设备的角色标签和位置标签匹配。
响应于确定与服务名相对应的主机名存在于资源记录中,在框406处,网络设备可以从资源记录标识与主机名相对应的覆盖网络路径。覆盖网络路径指示覆盖网络中的主机设备的可达性信息。在一些示例中,覆盖网络路径包括用于在L2覆盖网络中转发业务的L2虚拟网络实例(VNI)或者用于在L3覆盖网络中转发业务的L3VNI、以及与主机设备连接的目的地VTEP的IP地址。L2VNI是指包括同一IP子网内的端点(VTEP)的特定覆盖网络分段的标识符。L2VNI允许在L2覆盖网络中的同一子网中的两个设备之间转发桥接的封装的业务。L3VNI是指包括不同IP子网中的端点(VTEP)的特定覆盖网络分段的标识符。L3VNI与虚拟路由器(即,虚拟路由和转发(VRF)实例)一起允许在L3覆盖网络中的不同子网中的两个设备之间路由封装的业务。覆盖网络路径提供经由覆盖网络本地连接到客户端设备的VTEP与本地连接到主机设备的另一VTEP之间的虚拟通信链路。在一些示例中,虚拟通信链路可以是连接两个VTEP的虚拟隧道。
一旦覆盖网络路径被标识,在框408处,网络设备就可以封装多播查询。在一些示例中,网络设备可以在其VTEP中实现覆盖封装协议以封装多播查询。覆盖封装协议也被称为隧道协议,是一种通信协议,其中网络(覆盖网络)中的逻辑上独立的功能通过实现更高级别的对象而从其底层结构(底层)中抽象出来。示例包括GENEVE、GRE、SSH、VXLAN和NVGRE。作为封装的结果,可以将一个或多个报头添加到多播查询中。覆盖网络路径的至少一部分可以被包括在这样的报头中的一个报头中。在一些示例中,包括在报头中的覆盖网络路径的部分包括连接到主机设备的VTEP的IP地址。在一些示例中,封装可以是用户数据报协议(UDP)数据报内的媒体访问控制(MAC)帧的VXLAN封装,用于跨IP网络的传输。
在框410处,网络设备可以经由覆盖网络路径将所封装的多播查询路由到主机设备。在一些示例中,封装的多播查询可以经由覆盖网络路径(即,由L2VNI和/或L3VNI所标识的虚拟隧道以及连接到主机设备的VTEP的IP地址)路由。在沿覆盖网络路径进行路由时,多播查询可以到达连接到主机设备的VTEP并且最终到达主机设备。在接收到多播查询时,主机设备可以发送同意沿相同的覆盖网络路径提供服务的响应。因此,连接到VTEP的客户端设备可以经由覆盖网络路径发现并且访问由连接到不同VTEP的主机设备所通告的服务。覆盖网络路径的标识允许在特定路由中路由多播查询(即,经由覆盖网络路径所定义的虚拟隧道从客户端侧VTEP到主机侧VTEP(VTEP2)),这防止多播查询不必要地向覆盖网络中的其他VTEP泛洪,从而防止覆盖网络中浪费带宽消耗。
图5是图示了根据示例的针对跨覆盖网络中的VTEP的服务发现的方法500的流程图。方法500可以在网络设备上执行,例如图1的网络环境100中的网络设备106-1。网络设备可以被配置作为覆盖网络中的VTEP,诸如图1的客户端设备104的客户端设备可以本地连接到该VTEP。因此,方法500的步骤可以由客户端侧VTEP执行。覆盖网络包括诸如图1的主机设备102的主机设备可以连接到的其他VTEP。覆盖网络可以类似于图1的覆盖网络108。
在框502处,网络设备可以检查是否接收到针对服务的多播查询。网络设备可以实现连接到客户端设备的VTEP。该服务可以由连接到覆盖网络中的另一VTEP的主机设备提供。在示例中,多播查询可以是包括客户端设备正在查询的服务的服务名的mDNSSRV或TXT记录。
响应于确定没有接收到多播查询(来自框502的“否”分支),在框504处,网络设备可以继续其数据转发操作。数据转发操作可以是指网络设备用于处理不同设备之间的通信的通常操作。响应于确定接收到多播查询,在框506处,网络设备可以检查多播查询的服务名是否存在于资源记录中。资源记录包括连接到覆盖网络中的VTEP的主机名、相应服务名和相应覆盖网络路径的列表。在一个示例中,资源记录可以类似于“表2”中所示的资源记录。
响应于确定服务名不存在于资源记录中(来自框506的“否”分支),在框508处,网络交换机可以丢弃多播查询。丢弃多播查询是指丢弃多播查询,其中网络设备不再针对多播查询进行进一步的操作。响应于确定服务名存在于资源记录中(来自框506的“是”分支),在框510处,网络交换机可以标识与服务名相对应的主机名。主机名指示利用服务名通告服务的主机设备。在一些示例中,网络设备还可以标识与服务名相对应的多个主机名。在由连接到覆盖网络的多个主机设备提供相同服务的情况下,则网络设备可以标识与服务名相对应的多个主机名。
在框512处,网络交换机可以检查资源记录以找出哪些主机名具有与客户端设备的位置标签和角色标签匹配的位置标签和角色标签。由于客户端设备本地连接到网络交换机,因此客户端设备的角色标签和位置可以由网络交换机标识。响应于发现主机设备的位置标签和角色标签与客户端设备的位置标签和角色标签不匹配(来自框512的“否”分支),在框508处,网络交换机可以丢弃或抛弃多播查询。
响应于发现主机设备的位置标签和角色标签确实与客户端设备的位置标签和角色标签匹配(来自框512的“是”分支),在框514处,网络交换机可以从资源记录标识与主机名相对应的覆盖网络路径。覆盖网络路径指示覆盖网络中的主机设备的可达性信息。
在框516处,网络交换机可以使用隧道协议(例如,VXLAN、GRE或NVGRE)来封装多播查询。封装的多播查询包括覆盖网络路径的至少一部分。在框518处,沿覆盖网络路径将所封装的多播查询转发到通告所查询的服务的主机设备。因此,连接到覆盖网络中的VTEP的客户端设备可以通过经由覆盖网络路径路由多播查询来发现与覆盖网络中的不同VTEP连接的主机设备的服务。
图6图示了根据一个或多个所公开的示例实现的示例计算设备600,其具有硬件处理器601以及存储在机器可读介质602上的用于实现一个示例***的可访问的机器可读指令。在示例中,计算设备600可以是网络设备,诸如上面参考图1描述的网络设备106。图6图示了被配置为执行下面描述的指令604-612的计算设备600。然而,计算设备600还可以被配置为执行本公开中所描述的其他方法、技术、功能或过程的流程(诸如,例如图4的方法400)。
诸如处理器601之类的处理元件可以包含一个或多个硬件处理器,其中每个硬件处理器可以具有单个或多个处理器核。在一个实施例中,处理器601可以包括至少一个共享高速缓存,其存储由处理器601的一个或多个其他组件所利用的数据(例如,计算指令)。例如,共享高速缓存可以是存储在存储器中用于由构成处理器601的处理元件的各组件更快地访问的本地高速缓存的数据。在一个或多个实施例中,共享高速缓存可以包括一个或多个中级高速缓存(诸如,第二级(L2)、第三级(L3)、第四级(L4)、或者其他级别的高速缓存)、最后一级高速缓存(LLC)或其组合。处理器的示例包括但不限于中央处理单元(CPU)、微处理器。尽管在图6中没有图示,但是组成处理器601的处理元件还可以包括一种或多种其他类型的硬件处理组件,诸如图形处理单元(GPU)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、和/或数字信号处理器(DSP)。
处理器601可以可操作地且可通信地耦接到存储器。存储器可以是非暂态计算机可读介质,诸如机器可读存储介质602,被配置为存储各种类型的数据。例如,存储器可以包括一个或多个存储设备,其包括非易失性存储设备和/或易失性存储器。易失性存储器,诸如随机存取存储器(RAM),可以是任何合适的非永久存储设备。非易失性存储设备可以包括一个或多个磁盘驱动器、光盘驱动器、固态驱动器(SSD)、分接驱动器、闪存、只读存储器(ROM)和/或被设计用于在断电或关闭操作后的一段时间内维护数据的任何其他类型的存储器。在某些方面,如果所分配的RAM不够大以保存所有作业数据,则非易失性存储设备可以用于存储溢出数据。非易失性存储设备还可以用于存储当选择执行程序时而被加载到RAM中的这些程序。
图6的机器可读存储介质602可以包括易失性和非易失性、可移动和不可移动介质,并且可以是包含或存储可执行指令、数据结构、程序模块或处理器可访问的其他数据的任何电、磁、光或其他物理存储设备,例如固件、可擦除可编程只读存储器(EPROM)、随机存取存储器(RAM)、非易失性随机存取存储器(NVRAM)、光盘、固态驱动器(SSD)、闪存芯片等等。机器可读存储介质可以是非暂态存储介质,其中术语“非暂态”不涵盖瞬态传播信号。
机器可读介质602包括指令604,当由处理器601执行时,指令604使网络设备从诸如图1的客户端设备104之类的客户端设备接收针对服务的多播查询。在一些示例中,多播查询是指源自尝试访问网络中的特定服务的客户端设备的基于服务发现协议的多播IP分组。多播查询可以包括客户端设备正在尝试访问的服务的服务名。在一些示例中,多播查询可以是基于多播域名***(mDNS)协议的服务查询。在一些示例中,多播查询包括SRV记录和TXT记录。服务记录(SRV记录)是指DNS中的定义提供由客户端设备查询的服务的主机设备的主机名和端口号的数据的规范。TXT是指DNS中的数据的规范,其允许域管理员将文本值(字符串)与主机设备的域名相关联。在一些示例中,由客户端设备查询的服务的服务名可以被包括在SRV记录或TXT记录中。
在接收到针对服务的多播查询时,机器可读介质602包括指令606,当由处理器601执行时,指令606使网络设备确定与服务名相对应的主机名是否存在于网络设备的资源记录中。在一些示例中,资源记录包括与覆盖网络中的VTEP连接的主机设备的主机名、相应服务名、相应IP地址和相应覆盖网络路径的列表。在一些示例中,资源记录还可以包括针对主机设备中的每个主机设备的相应角色标签和位置标签。可以基于从与覆盖网络中的VTEP连接的主机设备接收的多播服务公告来创建资源记录。
在一些示例中,网络设备可以确定主机名是否对应于客户端设备的角色标签和位置标签。客户端设备的角色标签是指客户端设备的基于角色的访问策略。网络设备可以基于客户端设备经由其连接到网络设备的端口地址、客户端设备的MAC地址、或者基于客户端设备的认证信息之一向客户端设备指派角色标签。在一些示例中,网络设备可以被配置为使得网络设备的接入端口被指派给特定角色。因此,基于客户端设备连接到网络设备的端口,网络设备可以向客户端设备指派角色标签。类似地,可以在网络设备中配置MAC地址到角色的映射。使用MAC地址到角色的映射和客户端设备的MAC地址,网络设备可以向客户端设备指派角色标签。在一些示例中,角色标签到客户端设备的指派由认证服务器(诸如,RADIUS)执行。当客户端设备连接到网络设备并且提供其认证凭证时,那么基于其认证凭证,认证服务器可以向客户端设备指派角色标签并且与网络设备共享该角色标签。网络设备可以基于所指派的角色标签来应用访问策略和权限。网络设备还可以静态地或者基于从其接收多播查询的无线接入点的位置来向客户端设备指派位置标签。在标识指派给客户端设备的角色标签和位置标签时,网络设备可以检查资源记录以确定主机名是否对应于客户端设备的角色标签和位置标签。也就是说,资源记录管理器除了检查所查询的服务是否由主机设备提供以外,还可以检查主机设备的角色标签和位置标签是否与客户端设备的角色标签和位置标签匹配。
响应于确定与服务名相对应的主机名存在于资源记录中,机器可读介质602包括指令608,指令608在由处理器601执行时使网络设备从资源记录标识与主机名相对应的覆盖网络路径。覆盖网络路径指示覆盖网络中的主机设备的可达性信息。在一些示例中,覆盖网络路径包括用于在L2覆盖网络中转发业务的L2虚拟网络实例(VNI)或者用于在L3覆盖网络中转发业务的L3VNI、以及与主机设备连接的目的地VTEP的IP地址。L2VNI是指包括同一IP子网内的端点(VTEP)的特定覆盖网络分段的标识符。L2VNI允许在L2覆盖网络中的同一子网中的两个设备之间转发桥接的封装的业务。L3VNI是指包括不同IP子网中的端点(VTEP)的特定覆盖网络分段的标识符。L3VNI与虚拟路由器(即,虚拟路由和转发(VRF)实例)一起允许在L3覆盖网络中的不同子网中的两个设备之间路由封装业务。覆盖网络路径提供经由覆盖网络本地连接到客户端设备的VTEP与本地连接到主机设备的另一VTEP之间的虚拟通信链路。在一些示例中,虚拟通信链路可以是连接两个VTEP的虚拟隧道。
一旦覆盖网络路径被标识,机器可读介质602包括指令610,指令610在由处理器601执行时使网络设备封装多播查询。在一些示例中,网络设备可以在其VTEP中实现覆盖封装协议以封装多播查询。覆盖封装协议也被称为隧道协议,是一种通信协议,其中网络(覆盖网络)中的逻辑上独立的功能通过实现更高级别的对象从其底层结构(底层)中抽象出来。示例包括GENEVE、GRE、SSH、VXLAN和NVGRE。作为封装的结果,可以将一个或多个报头添加到多播查询中。覆盖网络路径的至少一部分可以被包括在这样的报头中的一个报头中。在一些示例中,包括在报头中的覆盖网络路径的部分包括连接到主机设备的VTEP的IP地址。在一些示例中,封装可以是用户数据报协议(UDP)数据报内的媒体访问控制(MAC)帧的VXLAN封装,用于跨IP网络的传输。
此外,机器可读介质602包括指令612,指令612在由处理器601执行时使网络设备经由覆盖网络路径将所封装的多播查询路由到主机设备。在一些示例中,封装的多播查询可以经由覆盖网络路径(即,由L2VNI和/或L3VNI所标识的虚拟隧道以及连接到主机设备的VTEP的IP地址)来路由。在沿覆盖网络路径进行路由时,多播查询可以到达连接到主机设备的VTEP并且最终到达主机设备。在接收到多播查询时,主机设备可以发送同意沿相同的覆盖网络路径提供服务的响应。因此,连接到VTEP的客户端设备可以经由覆盖网络路径发现并且访问由连接到不同VTEP的主机设备所通告的服务。覆盖网络路径的标识允许在特定路由中路由多播查询(即,经由覆盖网络路径所定义的虚拟隧道从客户端侧VTEP到主机侧VTEP(VTEP2)),这防止多播查询不必要地向覆盖网络中的其他VTEP泛洪,从而防止覆盖网络中浪费带宽消耗。
如本文中的示例中所使用的网络设备是接收网络业务并且将网络业务转发到目的地的设备。一些网络设备对在网络设备处接收的某些网络业务执行分组服务,诸如应用分类和深度分组检查。一些网络设备监控网络设备的各种物理和逻辑资源的负载参数,并且将负载信息报告给网络编排器或编排器。交换机是网络设备的示例。
如本文中的示例中所使用的,交换机基于由交换机可访问的转发信息(或者等效地,“路由信息”)来在发送方设备和接收方设备(或者,多个接收方设备)之间转发数据(在控制分组中)。转发信息可以包括条目,该条目将网络地址(例如,MAC地址或IP地址)和/或端口映射到朝向(多个)接收设备的相应网络路径。
如本文中所使用的,客户端设备的示例可以包括:膝上型计算机、服务器、Web服务器、认证服务器、认证-授权-计费(AAA)服务器、域名***(DNS)服务器、动态主机配置协议(DHCP)服务器、互联网协议(IP)服务器、虚拟专用网络(VPN)服务器、网络策略服务器、大型机、平板计算机、电子阅读器、上网本电脑、电视和类似显示器(例如,智能电视)、内容接收器、机顶盒、个人数字助理(PDA)、移动电话、智能电话、智能终端、哑终端、虚拟终端、视频游戏机、虚拟助理、物联网(IOT)设备等。客户端设备也可以被称为站(STA)。
在本说明书和权利要求书中使用了某些术语来指代特定的***组件。如本领域技术人员将了解的,不同方可以用不同的名称来指代组件。本文档无意区分名称不同但功能不同的组件。在本公开和权利要求中,术语“包括”和“包含”以开放式方式来进行使用,并且因此应被解释为意指“包括但不限于……”。而且,术语“耦接”旨在意指间接或直接有线或无线连接。因此,如果第一设备耦接到第二设备,则该连接可以通过直接连接或通过经由其他设备和连接的间接连接。叙述“基于”旨在意指“至少部分地基于”。因此,如果X基于Y,则X可以是Y和任意数目的其他因素的函数。
上述讨论旨在说明本公开的原理和各种实现。一旦充分了解了上述公开内容,许多变化和修改对于本领域技术人员来说将变得显而易见。所附权利要求旨在被解释为包括所有这样的变化和修改。

Claims (20)

1.一种网络设备,包括:
处理器;
存储指令的非暂态计算机可读存储介质,所述指令在由所述处理器执行时使所述处理器:
从被连接到所述网络设备的客户端设备接收针对由被连接到另一网络设备的主机设备通告的服务的多播查询,所述网络设备被配置作为覆盖网络中的第一虚拟隧道端点VTEP,所述另一网络设备被配置作为所述覆盖网络中的第二VTEP,其中所述多播查询包括所述服务的服务名;
确定所述主机设备的与所述服务名相对应的主机名是否存在于所述网络设备的资源记录中,其中所述资源记录包括被连接到所述覆盖网络中的VTEP的主机名、相应服务名和相应覆盖网络路径的列表;
响应于确定所述主机名存在于所述资源记录中,从所述资源记录标识与所述主机名相对应的覆盖网络路径,所述覆盖网络路径指示所述主机设备在所述覆盖网络中的可达性信息;
基于在所述第一VTEP处被实现的覆盖封装协议来封装所述多播查询,其中所封装的所述多播查询包括所述覆盖网络路径的至少一部分;以及
将所封装的所述多播查询经由所述覆盖网络路径路由到所述主机设备,使得所述服务由所述客户端设备可发现。
2.根据权利要求1所述的网络设备,其中所述覆盖网络路径包括第二层L2虚拟网络实例VNI或者第三层L3 VNI、以及所述第二VTEP的IP地址。
3.根据权利要求1所述的网络设备,其中响应于确定所述主机名不存在于所述资源记录中,丢弃所述多播查询。
4.根据权利要求1所述的网络设备,其中所述处理器还用以:
经由所述覆盖网络路径从所述第二VTEP接收所述主机设备的封装的多播服务公告,其中所述封装的多播服务公告包括所述主机设备的所述主机名和所述服务名;
创建将所述覆盖网络路径与所述服务名和所述主机名相关联的记录条目;以及
将所述记录条目存储在所述资源记录中,所述资源记录在所述第一VTEP处被维护。
5.根据权利要求1所述的网络设备,其中所述处理器还用以:
标识针对所述客户端设备的角色标签和位置标签,所述角色标签指示所述客户端设备的基于角色的访问策略,并且所述位置标签指示所述客户端设备所位于的地理区域;以及
确定所述资源记录中的所述主机名与所述角色标签和所述位置标签相对应。
6.根据权利要求1所述的网络设备,其中所述客户端设备和所述主机设备在单个广播域中。
7.根据权利要求1所述的网络设备,其中所述客户端设备和所述主机设备在不同的广播域中。
8.根据权利要求1所述的网络设备,其中所述第一VTEP和所述第二VTEP在由公共第二层L2虚拟网络标识符VNI标识的单个覆盖网络分段中。
9.根据权利要求1所述的网络设备,其中所述第一VTEP在由第一L2VNI标识的第一覆盖网络分段中,并且所述第二VTEP在由第二L2VNI标识的第二覆盖网络分段中。
10.根据权利要求1所述的网络设备,其中所述第一VTEP在第一覆盖网络结构中,并且所述第二VTEP在第二覆盖网络结构中。
11.根据权利要求1所述的网络设备,其中所述覆盖封装协议是虚拟可扩展局域网VXLAN、通用网络虚拟化封装GENEVE、或者使用通用路由封装的网络虚拟化NVGRE之一。
12.根据权利要求1所述的网络设备,其中所述多播查询是多播域名***mDNS服务查询。
13.根据权利要求1所述的网络设备,其中所述多播查询包括mDNS服务记录SRV和mDNS文本记录TXT之一。
14.一种用于覆盖网络中的服务发现的方法,包括:
由网络设备从被连接到所述网络设备的客户端设备接收针对由被连接到另一网络设备的主机设备通告的服务的多播查询,所述网络设备被配置作为所述覆盖网络中的第一虚拟隧道端点VTEP,所述另一网络设备被配置作为所述覆盖网络中的第二VTEP,其中所述多播查询包括所述服务的服务名;
由所述网络设备确定所述主机设备的与所述服务名相对应的主机名是否存在于所述网络设备的资源记录中,其中所述资源记录包括被连接到所述覆盖网络中的VTEP的主机名、相应服务名和相应覆盖网络路径的列表;
响应于确定所述主机名存在于所述资源记录中,由所述网络设备从所述资源记录标识与所述主机名相对应的覆盖网络路径,所述覆盖网络路径指示所述主机设备在所述覆盖网络中的可达性信息;
由所述网络设备基于在所述第一VTEP处被实现的覆盖封装协议来封装所述多播查询,其中所封装的所述多播查询包括所述覆盖网络路径的至少一部分;以及
由所述网络设备将所封装的所述多播查询经由所述覆盖网络路径路由到所述主机设备,使得所述服务由所述客户端设备可发现。
15.根据权利要求14所述的方法,其中所述覆盖网络路径包括第二层L2虚拟网络实例VNI或者第三层L3 VNI、以及所述第二VTEP的IP地址。
16.根据权利要求14所述的方法,其中响应于确定所述主机名不存在于所述资源记录中,丢弃所述多播查询。
17.根据权利要求14所述的方法,还包括:
经由所述覆盖网络路径从所述第二VTEP接收所述主机设备的封装的多播服务公告,其中所述封装的多播服务公告包括所述主机设备的所述主机名和所述服务名;
创建将所述覆盖网络路径与所述服务名和所述主机名相关联的记录条目;以及
将所述记录条目存储在所述资源记录中,所述资源记录在所述第一VTEP处被维持。
18.一种网络设备,包括:
处理器;
存储指令的非暂态计算机可读存储介质,所述指令在由所述处理器执行时使所述处理器:
从被连接到所述网络设备的主机设备接收多播服务公告,其中所述多播服务公告包括主机设备的主机名和由所述主机设备通告的服务的服务名,并且其中所述网络设备被配置作为覆盖网络中的虚拟隧道端点VTEP;
标识将所述VTEP连接到所述覆盖网络中的其他VTEP的一组覆盖网络路径;
创建所述多播服务公告的一组副本,所述副本中的每个副本将沿来自所述一组覆盖网络路径的相应覆盖网络路径被转发;
基于在所述VTEP处被实现的覆盖封装协议来封装所述副本中的每个副本,其中所述多播服务公告的所封装的所述副本中的每个副本包括所封装的所述副本将沿其被路由的所述相应覆盖网络路径的至少一部分;以及
经由所述相应覆盖网络路径将所述多播服务公告的所封装的所述副本中的每个副本路由到所述其他VTEP中的每个VTEP。
19.根据权利要求18所述的网络设备,其中所述多播服务公告是具有1秒的生存时间TTL的多播域名***mDNS指针PTR记录。
20.根据权利要求18所述的网络设备,其中所述处理器还用以将所述主机设备的角色标签和位置标签与所述封装的多播服务公告的所述副本中的每个副本相关联,所述角色标签指示所述主机设备的基于角色的访问策略,并且所述位置标签指示所述主机设备所位于的地理区域。
CN202311111507.XA 2022-12-19 2023-08-31 覆盖网络中的跨隧道端点的服务发现 Pending CN118233247A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US18/067,813 2022-12-19

Publications (1)

Publication Number Publication Date
CN118233247A true CN118233247A (zh) 2024-06-21

Family

ID=

Similar Documents

Publication Publication Date Title
US9515930B2 (en) Intelligent handling of virtual machine mobility in large data center environments
US9730269B2 (en) Method and system for partitioning wireless local area network
US8750288B2 (en) Physical path determination for virtual network packet flows
US10616108B2 (en) Scalable MAC address virtualization
EP2874359B1 (en) Extended ethernet fabric switches
EP2905930B1 (en) Processing method, apparatus and system for multicast
US8923294B2 (en) Dynamically provisioning middleboxes
US9350815B2 (en) System and method for supporting multicast domain name system device and service classification
US9641417B2 (en) Proactive detection of host status in a communications network
CN106878288B (zh) 一种报文转发方法及装置
US9866522B2 (en) Method to control dynamic host configuration protocol pool exhaustion in dynamic network environments
CN103248720A (zh) 一种查询物理地址的方法及装置
CN106688209B (zh) 用于传输广播数据的方法和***
US20150229523A1 (en) Virtual extensible local area network (vxlan) system of automatically configuring multicasting tunnel for segment of virtual extensible local area network according to life cycle of end system and operating method thereof
US10498836B2 (en) Network based service discovery via unicast messages
US10530873B1 (en) Techniques for optimizing EVPN-IRB for IPv6-enabled data centers with top-of-rack deployments
US9219688B2 (en) Method and system for network load balancing
CN103780494A (zh) 一种用户信息获取方法和装置
Amamou et al. A trill-based multi-tenant data center network
US20160028650A1 (en) Method and system for a user to create favorite server lists for multiple services
US20240205048A1 (en) Service discovery across tunnel endpoints in overlays
US10091106B2 (en) Method for implementing layer 3 virtual private network and device
CN112994928B (zh) 一种虚拟机的管理方法、装置及***
US9231862B2 (en) Selective service based virtual local area network flooding
CN118233247A (zh) 覆盖网络中的跨隧道端点的服务发现

Legal Events

Date Code Title Description
PB01 Publication