首页 > IT基础架构 > 网络通信/物联网 > TF实战Q&A丨这个问题,我以前也遇到过
在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 )时。详细可参考:
Q : 请问有vRouter 详细一点的资料吗 ?
钱誉:
https://github.com/Juniper/contrail-controller/wiki
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/69981760/viewspace-2718195/ ,如需转载,请注明出处,否则将追究法律责任。