ITPub博客

首页 > IT基础架构 > 网络通信/物联网 > TF实战Q&A丨这个问题,我以前也遇到过

TF实战Q&A丨这个问题,我以前也遇到过

原创 网络通信/物联网 作者:TF中文社区 时间:2020-08-03 09:42:32 0 删除 编辑

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

Q : 最近在做的小实验,OpenStack+Tungsten Fabric 模式的网络性能以及稳定性问题,但是因为没有瞻博的路由器,没有 gateway , VM 无法访问外部网络。想请问有没有 OpenStack+ Tungsten Fabric 模式,有没有其他替代的访问外部网络的方式,并且有没有这方面的文档?

杨雨: 可以用vMX 或者更简单的 vSRX 。

https://github.com/Juniper/contrail-controller/wiki/Simple-Gateway     也可以用来做测试。

Q : Tungsten Fabric 如何支持多个 VXLAN fabric ?(物理网建了 VXLAN fabric ,他们各自有各自的 gateway , Tungsten Fabric 要跟这几个物理网的 fabric 打通,也就是说 Tungsten Fabric 里面管理的这些宿主机里面的 VM 或者容器的实例,能够跟物理 VXLAN 里面 BMS 裸金属服务器通起来,同时它能把不同的 fabric 里面的这些虚机连接到一起)

Edward Ting:   这个是可以做的,但它有一个plug in ,要自己写。因为物理的 Facebook 的 switch 或者 VXLAN fabric ,它们目前只支持 Juniper 的,但社区的版本是只支持 Juniper 的,然后怎么去配置这些东西,它在 5.1 版是用 ansible 或一些自动化的脚本做,社区的 UI 不能做这些事情。

Q : 有大神知道这个咋解决的吗(Disk for DB is too low )?

wenrui : /etc/contrail/common.env ,需要把 config database 的 docker compose 重启一下,自己做 lab 的话,这个问题可以忽略,不影响功能。

https://github.com/Juniper/contrail-ansible-deployer/wiki/Provisioning-F.A.Q    

Q : 对于 Tungsten Fabric , Overlay 隧道可以是基于 GRE/UDP 的 MPLS 隧道,也可以是 VXLAN 隧道。为什么要用 GRE/UDP 的 MPLS ?

JianXun-KkBLuE :一个原因是之前 vxlan 还不够成熟,第二个是考虑可能 SP (运营商)的场景。

Wenrui : Tungsten Fabric 一开始就是 vRouter 组网,是 L3 overlay , Juniper 又比较擅长 MPLS ,另外十多年前 vxlan 也不太成熟,所以 vxlan 是后来支持的。

Q : 咨询大家一个小白问题,DPDK 有没有 flow 模式和 packet 模式 ?

钱誉:http://doc.dpdk.org/guides/prog_guide/flow_classify_lib.html 可能未必是你所想的模式。有流分类库和数据包分发器库。
我的理解是这样的,因为在contrail 里默认就是基于 flow 的模式,跟 DPDK 网卡配置没有关系。默认情况下每个 vrouter 都有一个流标的。 contrail 还提供另一种包模式。
因为流不是无限的,而且很多时候我们不需要那么严格的流功能,那么流的意义就失去了,另一个主要原因就在于流是很废资源的,会在使用中窃取负载资源。
当然这个里面其实有利有弊存在,比如说包模式的优点在于出现故障时候能快速收敛,不需要时间去创建流,vrouter 上没有 SYN FLOOD 这种 DDOS ,因为 vrouter 不需要保持状态,当然缺点就是没有留就少了分析,网络策略不能实现 ACL ,不能进行镜像或者 steering ,仅仅支持单个 SI 服务链,也没有 RPF 等等。

[root@openshift-comp01 ~]# vif --get 3Vrouter Interface Tablevif0/3      OS: tap233eefc1-94            Type:Virtual HWaddr:00:00:5e:00:01:00 IPaddr:5.5.5.4Vrf:2 Mcast Vrf:2 Flags:PL3L2DUufEr QOS:-1 Ref:6[root@openshift-comp01 ~]# vif --get 3Vrouter Interface Tablevif0/3      OS: tap233eefc1-94            Type:Virtual HWaddr:00:00:5e:00:01:00 IPaddr:5.5.5.4Vrf:2 Mcast Vrf:2 Flags:L3L2DUufEr QOS:-1 Ref:6

开了包模式后你看Flags: 这个里面第一个 P 消失了。

Q : Tungsten Fabric 目前能对接多少个 OpenStack 集群啊? instances.yaml 配置文件中看不出可以定义多组的样子,难道是 1:1 然后做联盟?

杨雨:1:1 。

Q : 请教下,Cloudify 已经比较成熟了吗?已经有一些公司在使用的成功案例吗?

杨雨:Cloudify 都大改过一次了, NFV 方面用来做 NFVO 还是比较多的,

https://www.mirantis.com/blog/which-nfv-orchestration-platform-best-review-osm-open-o-cord-cloudify/    

Q : Tungsten Fabric 支持 vlan aware vm 接入吗?

王峻:可以创建一个子接口port ,测试一下。

 

 

Q : 哪位专家有Tungsten Fabric 体系架构文档 ?

陈刚:中文版本

https://tungstenfabric.github.io/website/L10N/Tungsten-Fabric-Architecture-CN.html   

Q : 有Tungsten Fabric 源码编译成 deb 或 rpm 包的链接或文档吗?

Shuqiang :现在 Tungsten Fabric 直接下载 image , ansible 部署好之后就可以用了,都用不着编译。可以从这里下载镜像 https://hub.docker.com/u/opencontrailnightly      

Q : Tungsten Fabric 有 rest api 文档吗?有没有写怎么传递参数?

Edward Ting:

http://configuration-schema-documentation.s3-website-us-west-1.amazonaws.com/R3.2/tutorial_with_rest.html     这个 3.2 基本类似, 2005 版也可以。有一些开放的库可以用,你不一定需要自己写。这个 api 文档里面,有一些参数,可以直接把 vnc-api 库拿过来用就行。

Q : 阅读vRouter 的代码,想分析下数据层的数据流程,有参考资料吗?

杨雨:vRouter 的数据转发是在 kernel 层实现的,可以去 GitHub 搜索 contrail-vrouter 找到源代码。

Q : vRouter ,是说的 EDGE 这个么?

Wenrui : EDGE 是 nsx 里的 gateway ,就像 Tungsten Fabric 里的 VMX 。 Tungsten Fabric 在 VMware 环境的 vRouter 不是 EDGE 的作用,主要是用于内部 VN 。

Q : DLR 这个是分布式路由器么? NSX-T 和 NSX 又不一样。

Wenrui : Tungsten Fabric 里的 vRouter 跟 dlr 比较像,在 VMware 里不太一样,是一个 VM ,实现方式是通过 portgroup 把 VM 的端口连到 vRouter VM 。

其实Tungsten Fabric 和 VMware 环境先后有三种集成方式, vCenter as compute ( contrail VM ), vRO 集成, CVFM (商业版),现在商业版主要是做 CVFM 了。

Q : Tungsten Fabric 的 vRouter 里, vhost0. 和 pkt0. 分别是什么作用?

钱誉:vhost0 是主机操作系统和 vRouter 之间的 Tap 接口。 vhost0 是主机操作系统使用的第 3 层接口。作为设置的一部分, Tungsten Fabric 软件会将 IP 配置从以太网端口迁移到 vhost0 。当主机操作系统的网络堆栈在 vhost0 接口上发送数据包时,它们将 vRouter 模块接收。 vRouter 依次路由数据包。当 vRouter 需要将数据包发送到 host-os 的网络堆栈时,它将通过 vhost0 接口进行传输。 pkt0 是 vRouter 和 vrouter-agent 之间的 Tap 接口。 vRouter 在该接口上捕获需要控制处理(例如流设置)的数据包。另外,当代理使用 pkt0 接口传输控制数据包(例如 ARP )时。详细可参考:

https://sureshkvl.gitbooks.io/opencontrail-beginners-tutorial/content/introspect/contrail-vrouter-agent.html  

Q : 请问有vRouter 详细一点的资料吗 ?

钱誉:

https://github.com/Juniper/contrail-controller/wiki       

https://github.com/Juniper/contrail-controller/wiki/contrail-discovery-and-contrail-vrouter-agent-communication     

https://subscription.packtpub.com/book/virtualization_and_cloud/9781786465993/7/ch07lvl1sec43/opencontrail-architecture          

https://github.com/tnaganawa/tungstenfabric-docs/blob/master/TungstenFabricKnowledgeBase.md  

Q : 如果OpenStack 集成了 Tungsten Fabric 控制器,那这个 OpenStack 能否通过 Ironic 组件部署裸机?

杨雨:可以,Contrail Command 可以实现,目前开源版本还没有这个功能,得自己改。简单的描述一下: 1. PXE OS Provision 时,要把物理机的 PXE 口对应交换机的口改到 Provision 的虚拟机网络,完成 TFTP 装机; 2. 装完机,把 PXE 口对应交换机的口改到业务虚拟网络; 3. 物理机下架或维护,需要报网口切换到用于清理的虚拟网络,完成清理; OVSDB 是过去时,现在是用 EVPN-VXLAN 。

Q : PXE OS Provision 网络和 Ironic 的 tftp 是怎么配置才能互通呢?

杨雨:

https://www.juniper.net/documentation/en_US/contrail19/topics/concept/how-bms-manager-works.html   

Q : OpenStack project 删除了,但是 Tungsten Fabric 还有,就会出现错误…… UI 很多错误都二次封装了。导致看不到原来的错误。

Edward Ting: 以前的 5.1 有 bug ,我以前也遇到过这个问题。 UI 界面 bug 很多, 5.2 和 5.1 都是有这个问题, 5.1 比 5.2 好一些,但都有些 bug ,得自己修。我建议不要用 UI 。有两个原因,第一它有很多 bug ,第二它没有汉化。所以用 UI 大家可能会浪费更多时间,倒不如自己写 UI 。

Q : nova_compute 和 nova_libvirt 一直 restarting , docker logs 也看不到任何报错。 VT-x 已经开了,请问怎么排障啊?

陈刚:找到方法了,VM 上 systemctl disable libvirtd.service , systemctl disable dnsmasq 之后,两个 docker 容器就正常了。

Q : 有人用vqfx 遇到过这个问题吗?总是提示要登录 vc-m 。虚拟的还分主备引擎吗?

钱誉:用这个方法试试

https://andrewroderos.com/deploying-vqfx-on-vmware-esxi/    

https://github.com/tonyliu0592/contrail/blob/master/doc/vqfx.md  

Q : 同网段跨节点交换mac 路由吗?类似于 l2vni ,还是只用 l3vni ,同网段用 arp proxy ?

JianXun-KkBLuE : L3 。

Q : 如果路由模式, VNF 可以配置一个网卡吗?还是必须 left 和 right 两个?

Wenrui :必须是两个,分别连两个 VNF 。路由模式 VM 的网关也不在 VNF 上。

Q : 两个网卡,是不是虚拟机的两个网卡都要配置IP ?

Wenrui :嗯, VNF 是 L2 或 L3 都可以,但是需要连接不同子网。其实有没有地址对 Tungsten Fabric 来说都一样,即使是 L3 ,业务 VM 的网关也不在 VNF 上。

Q : nat 也一样,对吧?

Wenrui : nat 不太一样,是用在内外网的场景。

Q : 如果服务链中vnf 做 nat 也可以实现?就是 waf 反向代理。

Wenrui :对, in-netwrok nat 就是这种方式。

Q : 宿主机有两块网卡,TF 创建的几个 network 总是使用跟 vhost 一起的 eth1 ,怎么才能让 VM 的两块网卡中的一个使用宿主机的 eth0?

杨雨:可以看看这个

https://nicojnpr.github.io/Contrail_Cookbook/#provider-network

Q : 专家们,你们怎么解决neutron l3 router 的性能瓶颈?

钱誉:Tungsten Fabric 的 pkt0 跟 openflow 的首包没什么关系,因为 Tungsten Fabric 是 overlay 方式,报文不需要上送控制器,另外控制器主动下发 Virtual Overlay vSwitch/vRouter ,依靠现有的协议来建立 IP Fabric 的连通性。 Underlay 拓扑变化不会影响 overlay , Tungsten Fabric 不会保留任何 Overlay Per-Tenant 状态信息。

Q : Tungsten Fabric 支持高可用 ( HA )吗?

Edward Ting: 它有支持,而且很容易做。它的设计是要有三个节点, 3 、 5 、 7 个节点,那 HA 就有了。

Q : 分析服务可选部署,减少占用小环境里使用不合适?

Edward Ting:

https://www.juniper.net/documentation/en_US/contrail20/information-products/pathway-pages/contrail-service-provider-feature-guide.pdf     你可以分开部署,它有个东西叫做 remote computer ,就是远程计算,它是把分析服务放在 central office 里,然后控制的服务器可以放在边缘,所以边缘的那些节点上并不需要分析服务器,你可以用运营商的 central office 装分析服务器,部署,然后分析所有边缘的服务器,这样的话,比如说有 1000 台节点,但是你的分析服务器都在 central office 里头,这样可以减少环境的一些浪费。

 


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69957171/viewspace-2708730/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
Tungsten Fabric项目是一个开源项目协议,它基于标准协议开发,并且提供网络虚拟化和网络安全所必需的所有组件。项目的组件包括:SDN控制器,虚拟路由器,分析引擎,北向API的发布,硬件集成功能,云编排软件和广泛的REST API。

注册时间:2019-12-11

  • 博文量
    102
  • 访问量
    74491