今天就跟大家聊聊有关如何解析vRouter体系结构,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
![](/upload/ad_content/xuanchuantu-5.jpg)
专注于为中小企业提供成都网站制作、网站设计服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业
铁岭免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上千家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。先来看一张Tungsten Fabric vRouter功能组件的概念视图。
![如何解析vRouter体系结构](/upload/otherpic15/75491.png)
vRouter代理在主机操作系统的用户空间中运行,而转发器可以是内核模块,在使用DPDK时在用户空间中运行,或者在可编程网络接口卡(也称为“智能NIC”)中运行。这些选项在后续文章中有更详细的描述,这里说明了更常用的内核模块模式。代理与控制器保持会话,并发送其需要的VRF、路由和访问控制列表(ACL)的信息。代理将信息存储在自己的数据库中,并使用该信息配置转发器。接口连接到VRF,每个VRF中的转发信息库(FIB)都配置有转发条目。每个VRF都有自己的转发表和流表,然而MPLS和VXLAN表在vRouter中是全局的。转发表包含目的地的IP和MAC地址的路由,并且IP到MAC关联用于提供代理ARP功能。当VM接口启动时,vRouter选择MPLS表中的标签值,并且这些值仅对该vRouter本地有效。在一个Tungsten Fabric域内,对于不同vRouters中同一虚拟网络的所有VRF来说,VXLAN网络标识符是全局的。每个虚拟网络都有一个分配给它的默认网关地址,并且每个VM或容器接口都会在初始化时获得的DHCP响应中接收该地址。当工作负载将数据包发送到其子网外的地址时,它将为与网关IP的IP地址对应的MAC进行ARP,并且vRouter以其自己的MAC地址进行响应。因此,vRouters支持所有虚拟网络的完全分布式默认网关功能。
详细的vRouter数据包处理逻辑流出VM和流入VM的数据包的逻辑详细信息略有不同,以下两张图和说明中对此进行了描述。
![如何解析vRouter体系结构](/upload/otherpic15/75493.png)
当从VM通过虚拟接口发送数据包时,转发器接收该数据包后,首先检查接口所在的VRF流表中是否存在与数据包的五元组(包括协议、源和目标IP地址、源和目标TCP或UDP)匹配的条目。
如果这是流中的第一个数据包,则不会有条目,转发器通过pkt0接口将该数据包发送给代理。代理根据VRF路由表和访问控制列表确定流的操作,并使用结果更新流表。动作可以是DROP、FORWARD、NAT或MIRROR。如果要转发数据包,转发器将检查目标MAC地址是否是其自己的MAC地址,如果VM在目标位于VM的子网外时将数据包发送到默认网关。在这种情况下,将在IP转发表中查找目的地的下一跳,否则将使用MAC地址用于查找。虽然在计算节点内,但vRouter在这里执行物理路由器的IRB(集成路由和桥接)功能。
![如何解析vRouter体系结构](/upload/otherpic15/75496.png)
当数据包从物理网络到达时,vRouter首先检查数据包是否具有支持的封装。如果不是,则将数据包发送到主机操作系统。
对于基于UDP的MPLS和基于GRE的MPLS,标签直接标识VM接口,但VXLAN需要由VLAN网络标识符(VNI)标识的VRF中查找内部报头中的目标MAC地址。
一旦识别出接口,如果没有为接口设置策略标志(指示允许所有协议和所有TCP / UDP端口),则vRouter可以立即转发数据包。否则,使用五元组来查找流表中的流,并使用与针对传出分组所描述的逻辑相同的逻辑。
相同子网虚拟机之间的数据包流
当VM中的应用程序首先将数据包发送到另一个VM时,发生的操作顺序如下图所示。起点是两个VM均已启动,并且控制器已将L2(MAC)和L3(IP)路由发送到两个vRouter,以启用VM之间的通信。发送VM前尚未将数据发送到其他的VM,因此之前没有通过DNS解析目标名称。
1. VM1需要向VM2发送数据包,因此首先查找自己的DNS缓存以获取IP地址,但由于这是第一个数据包,因此没有条目。2. VM1在其接口启动时向DHCP响应中提供的DNS服务器地址发送DNS请求。3. vRouter捕获DNS请求并将其转发到在Tungsten Fabric控制器中运行的DNS服务器。4. 控制器中的DNS服务器以VM2的IP地址响应。5. vRouter将DNS响应发送给VM1。6. VM1需要形成以太网帧,因此需要VM2的MAC地址,它会检查自己的ARP缓存,但没有条目,因为这是第一个数据包。7. VM1发出ARP请求。8. vRouter捕获ARP请求,并在其自己的转发表中查找IP-VM2的MAC地址,并在控制器为VM2发送的L2 / L3路由中找到关联。9. vRouter使用VM2的MAC地址向VM1发送ARP回复。10. VM1的网络堆栈中发生TCP超时。11. VM1的网络堆栈重试发送数据包,这次在ARP缓存中找到VM2的MAC地址,并可以形成以太网帧并将其发送出去。12. vRouter查找VM2的MAC地址并找到封装路由,vRouter构建外部头部,并将结果数据包发送到S2。13. S2上的vRouter对数据包进行解封装,并查找MPLS标签以识别将原始以太网帧发送到的虚拟接口,以太网帧被发送到接口并由VM2接收。不同子网虚拟机之间的数据包流
将数据包发送到不同子网中的目标时,顺序是相同的,只是vRouter作为默认网关响应。VM1将在以太网帧中发送数据包,其中包含默认网关的MAC地址,其IP地址是在VM1启动时vRouter提供的DHCP响应中提供的。
当VM1对网关IP地址发出ARP请求时,vRouter将使用自己的MAC地址进行响应。当VM1使用该网关MAC地址发送以太网帧时,vRouter使用帧内数据包的目的IP地址在VRF中查找转发表以查找路由,该路由将通过封装隧道连接到正在运行目标的主机。
看完上述内容,你们对如何解析vRouter体系结构有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注创新互联-成都网站建设公司行业资讯频道,感谢大家的支持。
本文名称:如何解析vRouter体系结构-创新互联
文章路径:
http://cdkjz.cn/article/eoihd.html