概述
点击蓝字关注
找到右上角点击 ... 设为 星标置顶
在数据中心内部,虚拟化正成为占据主导地位的技术。这带来了“虚拟网络”等一些新的管理要素。虚拟网络允许虚拟机在现有的underlay网络(IP Fabric)上,利用软件功能和overlay技术相互通信。 当然,即使在现代数据中心内部,虚拟化也不是唯一的信条。我们仍然有物理设备和裸金属服务器。而且,虚拟机和裸金属服务器通常不是孤立的世界,它们需要彼此集成。 这种集成可能意味着让虚拟机和BMS出现在同一子网中。此解决方案通常称为BMS集成。 原理 利用vRouter对EVPN原生的支持,同时与现有IP Fabric具备互操作性,就可以实现该目标。 与过去涉及附加元素(TSN节点)和协议(OVSDB)的解决方案不同,如今,我们仅依靠标准协议——EVPN。EVPN正在成为数据中心内部事实上的标准。由于SDN控制器可以轻松地与底层IP Fabric集成在一起,并且它们都使用BGP、EVPN和VXLAN,这带来了巨大的优势。 此外,使用标准的和众所周知的协议,可以避免供应商锁定,向多供应商的场景开放。 以终为始,这就是我们想要实现的目标:


1set interfaces xe-0/0/8:0 gigether-options 802.3ad ae90 2set interfaces ae90 description "PVV CONTRAIL BMS INTEGRATION CGNAT" 3set interfaces ae90 flexible-vlan-tagging 4set interfaces ae90 mtu 9216 5set interfaces ae90 encapsulation extended-vlan-bridge 6set interfaces ae90 esi 00:00:00:00:00:00:01:00:10:01 7set interfaces ae90 esi all-active 8set interfaces ae90 aggregated-ether-options lacp active 9set interfaces ae90 aggregated-ether-options lacp periodic fast10set interfaces ae90 aggregated-ether-options lacp system-id 00:00:00:00:00:0111set interfaces ae90 unit 123 description "PVV CONTRAIL BMS INTEGRATION CGNAT"12set interfaces ae90 unit 123 vlan-id 123
这是带有一些额外“调整(tweaks)”的标准AE接口。我们定义了两个leaf上都必须匹配的ESI,为了使用EVPN管理多宿主这是必须的。然后,我们还需要两个leaf上的LACP系统ID匹配。这是“欺骗”BMS所必需的;如果在两个链接上的系统ID相同,即使实际上在另一侧有两个不同的设备(leaf),BMS也将假定它已连接到单个系统。同样,这是在启用EVPN的DC中配置多宿主的标准最佳实践。
接下来,我们转到EVPN部分。
我们需要一个新的VNI:
1set protocols evpn vni-options vni 5123 vrf-target target:64520:22222set protocols evpn extended-vni-list 51233set policy-options policy-statement EVPN-IN term VNI-5123 then accept4set policy-options policy-statement EVPN-IN term VNI-5123 from community TARGET:64520:22225set policy-options policy-statement EVPN-IN term VNI-5123 then accept6set policy-options community TARGET:64520:2222 members target:64520:2222
VNI被分配了route target(实现BMS集成的关键参数)。Leaf EVPN策略必须进行更新以反映新服务(service)。
最后,添加一个新的VLAN:
1set vlans VLAN-BMSINT description "PVV CONTRAIL BMS INTEGRATION"2set vlans VLAN-BMSINT interface ae90.1233set vlans VLAN-BMSINT vxlan vni 5123
作为可选项,可以通过在overlay BGP会话上向spine添加route target,来优化EVPN路由交换:
1set protocols bgp group IPFAB-OVER family route-target2set routing-options resolution rib bgp.rtarget.0 resolution-ribs inet.0
这对于leaf(和IP Fabric)的配置来说,已经足够了。
如果需要用作LAN网关的IRB接口,则在spine设备上还需要一些其它配置。
BMS配置非常简单。
BMS可以是我们想要的任何设备;例如,支持绑定的Centos服务器。
不过,这里我用了Juniper MX。以下代码行已加载到设备上:
1set interfaces xe-0/0/0 gigether-options 802.3ad ae02set interfaces xe-0/0/1 gigether-options 802.3ad ae03set interfaces ae0 vlan-tagging4set interfaces ae0 aggregated-ether-options lacp active5set interfaces ae0 aggregated-ether-options lacp periodic fast6set interfaces ae0 unit 123 vlan-id 1237set interfaces ae0 unit 123 family inet address 100.64.1.100/248set routing-instances BMS_CONTRAIL instance-type virtual-router9set routing-instances BMS_CONTRAIL interface ae0.123
接口被分配给虚拟路由器,以便在路由方面将其与设备的其余部分隔离。
Tungsten Fabric配置涉及多个方面。
如前所述,我们假设Tungsten Fabric控制器和IP Fabric spine之间的BGP会话已经存在。
可以通过在Tungsten Fabric GUI中检查BGP路由器来验证这一点:






1root@MX1-NAT44-RE0> show interfaces ae0 | match rdw2 Current address: 88:e0:f3:b3:1f:c0, Hardware address: 88:e0:f3:b3:1f:c0
在这里,我假设到处都配置了route target。
我检查在leaf(连接到BMS)和spine之间是否相互交换route target:
1{master:0}[edit]2netconfadmin@nfv-vb-leaf-08# run show route receive-protocol bgp 172.16.118.162 table bgp.rtarget.0 | match 22223 64520:64520:2222/9645{master:0}[edit]6netconfadmin@nfv-vb-leaf-08# run show route advertising-protocol bgp 172.16.118.162 table bgp.rtarget.0 | match 22227 64520:64520:2222/96
可以在另一个leaf上进行相同的检查。
然后,我将验证在spine和Tungsten Fabric控制器之间交换了相同的路由目标:
1{master:0}[edit]2netconfadmin@nfv-vb-spine-01# run show route advertising-protocol bgp 163.162.83.205 table bgp.rtarget.0 | match 22223 64520:64520:2222/9645{master:0}[edit]6netconfadmin@nfv-vb-spine-01# run show route receive-protocol bgp 163.162.83.205 table bgp.rtarget.0 | match 22227 64520:64520:2222/96
可以在第二个spine上进行相同的操作。
一旦知道route target交换正常,就可以转到实际的MAC路由。
从学习了BMS MAC的leaf中,我将检查EVPN T2路由是否已发送到spine:
1{master:0}[edit]2netconfadmin@nfv-vb-leaf-08# run show route advertising-protocol bgp 172.16.118.162 table bgp.evpn.0 evpn-ethernet-tag-id 5123 match-prefix 2*34bgp.evpn.0: 1087 destinations, 1979 routes (1087 active, 0 holddown, 0 hidden)5 Prefix Nexthop MED Lclpref AS path6 2:172.16.118.170:1::5123::88:e0:f3:b3:1f:c0/304 MAC/IP7* Self 100 I8 2:172.16.118.170:1::5123::88:e0:f3:b3:1f:c0::100.64.1.100/304 MAC/IP9* Self 100 I
是的,它们在那里!MAC和MAC/IP路由。
该路由应从spine发送到Tungsten Fabric:
1{master:0}[edit]2netconfadmin@nfv-vb-spine-01# run show route advertising-protocol bgp 163.162.83.205 table bgp.evpn.0 evpn-ethernet-tag-id 5123 match-prefix 2:172*34bgp.evpn.0: 4242 destinations, 7157 routes (4242 active, 0 holddown, 0 hidden)5 Prefix Nexthop MED Lclpref AS path6 2:172.16.118.170:1::5123::88:e0:f3:b3:1f:c0/304 MAC/IP7* 172.16.118.170 100 I8 2:172.16.118.170:1::5123::88:e0:f3:b3:1f:c0::100.64.1.100/304 MAC/IP9* 172.16.118.170 100 I
路由就在那里!
结果就是,我们在Tungsten Fabric虚拟网络MAC表中找到了MAC信息:

1{master:0}[edit] 2netconfadmin@nfv-vb-spine-01# run show route receive-protocol bgp 163.162.83.205 table bgp.evpn.0 evpn-ethernet-tag-id 5123 3 4bgp.evpn.0: 4232 destinations, 7137 routes (4232 active, 0 holddown, 0 hidden) 5 Prefix Nexthop MED Lclpref AS path 6 2:163.162.83.222:7::5123::d0:f0:db:00:00:01/304 MAC/IP 7* 163.162.83.222 200 100 ? 8 2:163.162.83.232:4::5123::d0:f0:db:00:00:02/304 MAC/IP 9 163.162.83.232 200 100 ?10 3:163.162.83.222:7::5123::163.162.83.222/248 IM11* 163.162.83.222 200 100 ?12 3:163.162.83.232:4::5123::163.162.83.232/248 IM13 163.162.83.232 200 100 ?
有4个路由(2个MAC,2个MAC/IP);这是因为有2个虚拟机。请注意虚拟机使用的IP。如果您还记得,我们确实在VN内配置了CIDR 99.99.99.0/24。无论如何,如前所述,作为L2 VN,我们可以在VM内配置所需的任何IP(但是我们需要保持MAC地址不变,这超过了本文的范围)。
从那里,路由一定会到达leaf:
1{master:0}[edit] 2netconfadmin@nfv-vb-leaf-07# run show route receive-protocol bgp 172.16.118.162 table bgp.evpn.0 evpn-ethernet-tag-id 5123 3 4bgp.evpn.0: 1088 destinations, 1713 routes (1088 active, 0 holddown, 0 hidden) 5 Prefix Nexthop MED Lclpref AS path 6 2:172.16.118.170:1::5123::88:e0:f3:b3:1f:c0/304 MAC/IP 7 172.16.118.170 100 I 8 2:172.16.118.170:1::5123::88:e0:f3:b3:1f:c0::100.64.1.100/304 MAC/IP 9 172.16.118.170 100 I10 3:172.16.118.170:1::5123::172.16.118.170/248 IM11 172.16.118.170 100 I
是的,都在那里!
结果就是,在leaf上,以太网表应反映以下内容:
1netconfadmin@nfv-vb-leaf-07# run show ethernet-switching table vlan-name VLAN-BMSINT 2 3MAC flags (S - static MAC, D - dynamic MAC, L - locally learned, P - Persistent static 4 SE - statistics enabled, NM - non configured MAC, R - remote PE MAC, O - ovsdb MAC) 5 6 7Ethernet switching table : 3 entries, 3 learned 8Routing instance : default-switch 9 Vlan MAC MAC Logical Active10 name address flags interface source11 VLAN-BMSINT 88:e0:f3:b3:1f:c0 DR ae90.12312 VLAN-BMSINT d0:f0:db:00:00:01 D vtep.32778 163.162.83.22213 VLAN-BMSINT d0:f0:db:00:00:02 D vtep.32779 163.162.83.232
BMS MAC只有一个条目。标志DR的意思是“远程(remote)”。这告诉我们MAC实际上是由另一个leaf学习的。
另外两个路由指向虚拟机。
转发接口是VTEP IFL。当数据包必须封装到VXLAN隧道中时,使用接口VTEP。最右边的值是VTEP目标地址:在这种情况下,是托管VM的计算节点的vhost0地址。
这里也可以看到:
1netconfadmin@nfv-vb-leaf-07# run show interfaces vtep.327782 Logical interface vtep.32778 (Index 947) (SNMP ifIndex 1085)3 Flags: Up SNMP-Traps Encapsulation: ENET24 VXLAN Endpoint Type: Remote, VXLAN Endpoint Address: 163.162.83.222, L2 Routing Instance: default-switch, L3 Routing Instance: default5 Input packets : 06 Output packets: 47 Protocol eth-switch, MTU: Unlimited8 Flags: Trunk-Mode
虽然我们没有提到,但是与类型2路由类似,EVPN类型1路由也完成了交换。这意味着可以使用诸如aliasing之类的原生EVPN机制,并且Tungsten Fabric可以利用它。



原文链接:
https://iosonounrouter.wordpress.com/2019/11/21/bare-metal-integration-in-a-contrail-world/推荐阅读
解密BGPaaS代理是如何工作的
一文讲透什么是服务链(多图)
手把手教你配置服务链
服务链后台的路由实现
如何配置服务链的高级功能
多云互联 · 开源开放
最后
以上就是顺心热狗为你收集整理的vxlan 分布式网关数据包转发过程_如何在Tungsten Fabric上整合裸金属服务器(附配置验证过程)... 的全部内容,希望文章能够帮你解决vxlan 分布式网关数据包转发过程_如何在Tungsten Fabric上整合裸金属服务器(附配置验证过程)... 所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复