1. 什么是虚拟网络?
答:从架构角度考虑,我们可以采用与服务器虚拟化引入Hypervisor的方式一样,引入Nypervisor或者叫“虚拟网络管理平台”实现虚拟网络。虚拟网络必须像虚拟机一样,脱离物理网络设备,能够随时被创建、删除、扩展、收缩,实现高度灵活性。
2. 什么是VXLAN?
答:VXLAN全称Virtual eXtensible LAN,是一种覆盖网络技术或隧道技术。VXLAN将虚拟机发出的数据包封装在UDP中,并使用物理网络的IP/MAC作为outer-header进行封装,然后在物理IP网上传输,到达目的地后由隧道终结点解封并将数据发送给目标虚拟机。
3. VLAN、虚拟网卡、VPN、虚拟交换机,这些不都是虚拟网络技术嘛,那你这边指的虚拟网络和他们有什么区别?
答:这些技术仅用于解决某一个问题,但没有一个能够呈现完整的网络给用户。所谓完整的网络,我的理解是能够提供L2/L3,甚至L4/L7服务的网络,它不仅仅是交换机或路由器,它还能提供负载均衡、防火墙、ACL、VPN、NAT、DHCP、DNS、QoS等高层服务。而所有这些服务,必须能够在一个能够被单独创建出来的虚拟网络中实现。所以,我们必须有新的方式来实现完整的虚拟网络
4. VXLAN实现了完整的虚拟网络了吗?
答:没有。VXLAN更多的注重workload mobility,它打破了传统二层网络的限制,能够让跨IP子网传输同一个虚拟二层网络的MAC帧,使得虚拟机的移动不再受二层限制。因为跨三层的虚拟机移动是必需要更改IP的,而IP的更改,意味着与之绑定的N多策略也需要跟着变,非常不灵活。总的来说,VXLAN提供了二层网络框架,为实现上层网络服务虚拟化提供了基础。
5. VXLAN是实现网络虚拟化的唯一方式吗?
答:不是。VXLAN是一种网络覆盖技术实现二层虚拟化,如果需要三层以上服务,依旧需要额外的手段。另外,以SDN虚拟化控制器来分片网络的方式也能实现网络虚拟化。VXLAN也不是唯一的覆盖技术,微软NVGRE,Nicira STT都是同类实现。
6. 虚拟机如何连接到虚拟网络?
答:取决于具体实现。VMware ESXi虚拟机通过为虚拟机指定network label连接到VXLAN segment。而Network label就是virtual distributed switch上的port group。
7. VXLAN虚拟网络之间如何隔离?
答:通过VXLAN header中的VNI字段,这就相当于VLAN ID。不同的是,VNI是一个24bits的字段,可以实现1.6千万个虚拟网络,而VLAN只有4096个,在多租户的云计算环境中,4096个ID显然是不够的。
8. VXLAN封装是由谁来做的?
答:在VMWARE vCNS环境中,VXLAN的封装和解封装是由运行在ESXi上的一个内核模块,virtual tunnel endpoint(VTEP)来实现的。VTEP维护一张映射表,能够知道目标虚拟机所在的目标ESXi的位置。VMware VTEP会自动创建vmkernel port并为其分配IP地址与物理网络通信
9. VXLAN如何处理广播、多播和未知目的地单播?
答:VXLAN使用IP多播技术处理广播、多播和未知目的单播。每个VXLAN与一个多播地址绑定,从而确保来自虚拟网络的广播不会泛洪到物理交换机的所有端口。
10. VTEP只能运行在ESXi中吗?
答:不是。VTEP根据具体实现可以运行在单独的设备中,以软件或硬件的方式实现。
11. 如何虚拟化实现三层以上的服务?
答:VMware vCNS将L3以上的服务以edge appliance的方式实现,支持NAT,静态路由、VPN、负载均衡、防火墙、DNS、DHCP。
12. VXLAN之间如何通信?
答:必须通过edge appliance路由,就向VLAN间通信需要走一路由一样。