Q1:如何保证压力下的性能
A1:ovs本身在查找匹配上下了功夫,现在ovs也支持dpdk,性能会有所提升。不过这和硬件交换机比起来,还是有较大的提升空间。
Q2:对于新增匹配类型,只需要在用户态修改,内核态不用修改?
A2:需要修改的,第四点中讲到了内核层数据包头解析和key修改等,都是内核态需要修改完成的。
Q3:请问你们现在ovs用在哪个方面的产品上?
A3:我们目前FNL实验室利用OVS和CNVP等搭建了SDN实验平台,提供给学生切虚网做实验。
Q4:内核态里面是精准匹配,用户态模糊匹配?
A4:内核态可以理解为“精确表项”。举个例子,比如用户层写某条表项action是Flood,那么给内核层下发的表项Action就是Output1,2,3..等等端口,内核层的action是用户层翻译过的。内核态具有提升性能等作用,这里就是之前提到的数据包匹配处理的slow-path和fast-path问题了。
Q5:你的意思是完全没有内核态应该也行吧?
A5:恩,记得安装时候,可以不构建安装内核态,即只跑用户态,但功能上会有缺失~,也其实是很少这么干的。
Q6:一个网络包第一次进入这个交换机后,要么被drop,要么被转发到控制器,内核是怎么判断的? 是转发到控制器还是drop?
A6:内核的判断全来自于用户层曾经的判断:一个网络包如果在内核层被匹配到,那就按照action执行,没有匹配到,就上传用户层进行用户层的匹配。用户层会将匹配结果和相应表项下发到内核层,便于以后类似数据包在内核层匹配可以直接匹配成功,提高效率。至于是否转发给控制器,这要看是否匹配到的表项action为Controller(of1.3)。
Q7:如果用户层没有匹配成功,用户层会下发流表为drop?
A7:在of1.3中会的,不过内核层表项生存时间很短的哦,防止后来用户向用户态插入新表项导致匹配可以成功了。当然,生存时间短也是一种节约资源的方式。
Q8:你的意思是,内核没有匹配成功,一定会发到用户态,用户态没有匹配成功会有两个动作1)转发到控制器,2)直接drop?
A8:在of1.3中,用户态如果匹配没有成功,数据包会drop,且给内核层发一个精确表项(action为drop),在of1.3之前,用户层没有匹配到,才会默认发给控制器的。
Q9:如果你做出去这么一套东西给客户,然后跑起来了,用户说断了或者网速慢,但是用户不会编程,怎么排除故障?
A9:个人觉得,SDN中对于故障解决问题还不成熟,当然对于控制器端故障,可以通过集群等方式解决,如果是数据层面,可以通过控制器端写业务应用来检测切换。
欢迎光临 51学通信论坛2017新版 (http://bbs.51xuetongxin.com/) | Powered by Discuz! X3 |