TF实战Q&A丨你不理解透,出了问题都不知道怎么弄

2020-06-08 14:48:36 浏览数 (1)

在TF中文社区,爱折腾的“实战派”们经常探讨有关SDN和Tungsten Fabric的各种问题,我们将其中的精华部分整理出来,形成 “ TF Q&A ” 栏目,他们碰到的困惑、踩过的坑,也许正是你想要了解的——

Q: TF对接K8s和server,VRF是什么角色?在整个网络架构的什么位置?在K8s里,是会为每台主机分配一个VRF?还是每个namespace?还是每个集群?那VMware VC这种没有租户概念的情况下呢?

钱誉:VMware的VC和这个关系不大,如果要对不同租户进行类似VRF隔离,那么就需要NSX才可以。应该这样说,首先给VM/Docker POD分配IP地址,DNS等等信息。在vRouter上创建 VRF/VSI, RT/RD等信息,上送回传到TF控制器。vRouter之间不需要协议通讯,vRouter仅仅跟TF控制器进行控制平面的通信。然后,生成L3VPN/EVPN转发表,控制器知道现存的多个vRouter可能要跟新创建的vRouter共享相同的VRF/VSI,并且需要互相通讯,就通过XMPP来下发转发表信息(BGP NLRI内嵌到XMPP消息里)到另一台服务器上的vRouter。vRouter之间仅仅建立转发平面的动态隧道。这样Server之间的M/Dockers 就可以通讯了。最后控制器通过BGP/Netconf来通知GW Router来自动发布VM/Docker的IP prefix。这样Openstack/vCenter创建的VM/Docker就可以被外界来使用了。简单来说就是物理GW,contrail-controller,contrail-vroute。

Q: 请教一个问题,一台服务器有两个租户,并且这两个租户出来的流量有重复的vlan tag,流量到达tor该怎么处理?

JianXun-KkBLuE:我觉得啊,还没到TOR,在服务器本身的vSwitch上就给你截胡了吧?TOR估计都看不到,抻着脖子往下一看,两个网络,不一样的IP网段,还在一个VLAN里面玩。

我觉得TOR不能实现这样的操作:一个物理接口下面创建两个子接口,一个子接口做vlan100到vxlan100,另外一个子接口做vxlan200,或许可以,但是这样的操作没玩过。

Q: 裸金属baremetal是不是用类似层次绑定的技术做vlan到vxlan的映射?

杨雨:没有涉及到层次绑定哈。因为baremetal物理卷默认是没有OVS的,就是物理网卡直连交换机。交换机的口会被TF的Device Manager通过NETCONF配置成trunk口,同时在交换机上配置VLAN子接口和对应的VNI。服务器在相应的物理网卡上绑个VLAN子接口就可以了。

Q: 有基于Tungsten Fabric实现全裸金属管理(BMS)吗?Ironic,层次绑定类的技术。不过开源的Ironic实现不了多租户隔离。

JianXun-KkBLuE:那就涉及到TF对物理TOR的管理,目前Juniper的交换机还OK,Cisco没测试过。

钱誉:Ironic做的话,要提供组合隔离需要中间层做然后配合ipmi。

Q: 如果一台MX上需要分别配置两个不同的ASN,用logical-system可以吗?logical-system是不是相当于物理路由器里的虚拟命名空间?

JianXun-KkBLuE:可以。不是一个路由器,当成多个路由器来用。自己跑自己的路由协议,和别人不干扰。

Q: vRouter支持SR-IOV,不位于租户的overlay网络,有什么应用场景?

钱誉:Hybrid模式,DPDK一般用在NFV的FW居多,性能能保证,但DPDK模式下MTU有各种问题。除了网卡本身的support还有一堆问题,目前用下来还是基于kernel的稳。

Q: 基于kernel的性能怎么样?可以达到物理网卡的百分之多少?

钱誉:实测在OpenStack环境下默认MTU1500走万兆可以达到9.3。但如果物理网卡不改的话外部访问VM就需要改MTU,否则SSH失败。基于kernel的方式在使用软件防火墙的话是无法达到厂商的标称值。TF对于OpenStack的支持目前比较友好了,但对于OKD的支持真的不咋地,目前刚刚坑填的差不多,业务流能run起来。

Q: TF的underlay的交换机必须支持MPLS吗?

JianXun-KkBLuE:不是BMS不需要。

杨雨:不需要,基于MPLSoUDP/GRE的封包和解包在Hypervisor上的vRouter就完成了,出口的CloudGateway需要支持BGP、GRE以及MPLS。

Q:tag和版本间在哪儿可以找到他们的对应关系?

钱誉:试试docker images | egrep -i "contrail | TAG"

Wenrui:opencontrailnightly上,-latest应该就是每个版本的GA版,像1910-latest, 2003-latest。

杨雨:https://www.juniper.net/documentation/en_US/contrail20/information-products/topic-collections/release-notes/readme-contrail-20.pdf我自己一般都是参考相应版本的这个文档(不过是商业版的Contrail)

https://www.juniper.net/documentation/en_US/contrail20/information-products/pathway-pages/contrail-install-and-upgrade-guide.html

Q:怎么部署TF与OpenStack 呢 ?

钱誉:建议还是按照这个来https://github.com/tungstenfabric/tf-devstack。只是了解TF,等了解透彻了再根据自己要的OpenStack环境去安装TF,这个不是一个标准模板从头到底就可以解决的,而且TF是ansible套ansible,容器套容器的,你不理解透,出了问题都不知道怎么弄。https://sureshkvl.gitbooks.io/opencontrail-beginners-tutorial/content/ 这个虽然有点老了,但对于学习TF还是很有帮助的。

Q:TF被offload到智能网卡上有应用案例吗?

JianXun-KkBLuE:

https://specs.openstack.org/openstack/nova-specs/specs/stein/implemented/vrouter-hw-offloads.html

你参考一下这个,我以前看过一个smartnic厂商提到。

https://www.juniper.net/documentation/en_US/release-independent/contrail/topics/reference/contrail-nic-support-matrix.pdf

这是smart nic的support list。

https://www.netronome.com/blog/host-data-plane-acceleration-tutorial-acm-sigcomm/这是agilio里面关于smart nic发展的一些描述。

Q:TF里的vRouter是开源的吗?

杨雨:开源的https://github.com/Juniper/contrail-vrouter

Q:求一个已经做好的cirros qcow2 镜像。

longguang(夢中人o_O):

https://github.com/bigclouds/misccode/tree/master/cirros(raw,得转一下)。

mky:这个可以http://download.cirros-cloud.net/0.4.0/cirros-0.4.0-x86_64-disk.img

Q:为什么 Type3路由Inclusive Multicast路由还要创建一个头端复制表。

JianXun-KkBLuE:找了一个文档,希望能有帮助。https://www.juniper.net/documentation/en_US/junos/topics/concept/evpn-mpls-igmp-snooping-overview.html 

Q:请问TF控制器能对接Juniper的交换机么?

钱誉:对接Juniper交换机是没什么问题的,大部分第三方交换机作为underlay使用没啥问题。


这里还有一些文章,帮您进一步答疑解惑:

  • 视频演示OpenStack与Tungsten Fabirc如何集成
  • Tungsten Fabric:连接CMP的金钥匙
  • Tungsten Fabric如何支撑大规模云平台
  • TF如何连接到物理网络
  • 技术杂谈-再谈软硬SDN(1)
  • 技术杂谈-再谈软硬SDN(2)
  • TF Q&A丨只在此网中,云深不知处

0 人点赞