Network

pFsense tcp offloading in kvm virtio

如果在KVM中创建 pFsense 实例用于 OpenStack 虚拟机的三层网关,在虚拟机之间的私有网络或者虚拟机对外网络会出现问题。例如虚拟机的DNS 解析(UDP Port 53)不正常,内部可以ping通dns 服务器,也可以ping通目标机器,但就是DNS解析无法工作。 在排除了是虚拟机的Egress规则以及pFsense中的防火墙问题外,那么可能就是由于虚拟网卡(VirtIO)以及物理网卡的问题。 通过勾选pFsense中的’Disable hardware checksum offload’和’Disable hardware TCP segmentation offload’ 可以解决问题。 TCP Offloading 的功能可能在ssl termination 中会有用处,但我们只用到了pFsense 的路由及防火墙功能,应用上面的负载均衡,漏洞扫描等尚未涉及到,所以关闭该功能对虚拟机来说没有影响。

Read More

Openstack Havana Neutron 虚拟网络设备分析

Openstack网络设计中有:Tap设备、veth对,linux 桥接、OvS 桥接四中虚拟网络设备。对于一个流经vm中的eth0到物理host的eth1的以太网数据帧来说,要利用host上的9个设备完成:Tap设备vnet0(vm nic),linux 桥接qbrXXX, veth pair(qvbXXX,qvoXXX),Open vSwitch 桥接br-int, veth pair(intbr-eth1,phy-br-eth1),以及最后的物理主机的网卡eth1。 Tap设备:例如KVM、Xen虚拟一个网卡(通常称作VIF或者vNIC)vnet0,供vm使用。Guest OS因此接收到所有发送到Tap设备的以太网数据帧。 Veth pairs 是一对直接相连的虚拟网卡(virtual network interfaces),发送到veth对中的任意一方的以太网数据帧,另一方也会接收到。网络因此利用veth pairs作为VPC(virtual patch cables)来连接virtual bridges.

Read More