[关闭]
@Alex-Zhao 2018-06-13T14:26:30.000000Z 字数 1054 阅读 95

再谈虚拟交换机中的三种安全策略

vmware虚拟化


今天再一次被vmware虚拟化中的网络上了一课,在搭建OpenStack中,由于控制节点的使用vmware中的虚拟机搭建,网络节点和控制节点放在一次,这样就出现了DHCP agent放在了vmware的虚拟机中。
由于Openstack中的DHCP agent有带有IP的tap设备,就相当于在虚拟机中又创建了网桥设备,将tap设备和虚拟机的虚拟网卡桥接在一起,这就出现了一种现象,“mac地址透传”,当然这个名称我自己起的,不知道官方怎么叫,也懒得查了。
从外部ping tap设备的流量路径大概是这样的:

外部PC -> 物理交换机 -> 宿主机物理网卡 -> vmware虚拟交换机 -> 虚拟机的虚拟网卡 -> 虚拟机系统内的网桥 -> tap设备

在以上路径中出现2处问题点,外部PC要获得TAP设备的mac地址然后才能传输ICMP。但是在vmware虚拟化中,vmware虚拟交换机并不是像物理交换机那样来学习mac地址,而是虚拟交换机自己维护vCenter/ESXi分配的mac地址表,这样导致一个现象出现,当虚拟机交换机接收到外部流入的目标mac地址不在自己的mac表中时,虚拟交换机会主动丢弃,如果VM流入的目标mac地址不再MAC表中,虚拟机交换机会丢给物理网卡,对,没错,虚拟交换机就是这么简单。
所以在外部PC ping tap设备的时,就被虚拟机交换机丢弃了,都不会进入虚拟机。
讲安全策略之前,先来谈谈mac地址,mac地址分为三种:

OK,下边来谈谈安全模式:
混杂模式:很简单,就是让虚拟机看到虚拟端口组上的所有流量(可以是所有VLAN也可以是同一个VLAN,就看虚拟机端口组的VLAN标记了)。
MAC地址更改:虚拟交换机允许初始MAC和有效MAC地址不同,意味着OS mac地址和vCenter给的mac可以不同。有特殊应用场景,例如:NLB集群。如果拒绝,虚拟机交换机会阻止mac不一致的流量。
伪传输:策略会检查从VM进入虚拟交换机流量的源MAC地址,允许接受从VM过来的任何源mac地址的流量。拒绝,该帧将抛弃。

这样,如果在vmware平台要实现mac透传或者说嵌套虚拟化,需要开启混杂模式和伪传输模式,混杂是让tap设备接受到流量,伪传输是让tap设备的流量传输出来。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注