5000个主机连在运营商交换机上,运营商把这些主机放在同一个VLAN里,有一个非常大的安全隐患:其中任意一台主机冒充网关,其它主机出网流量就被假冒网关劫持了。
运营商把每个主机放在一个独一无二的VLAN里,可以杜绝ARP欺骗,但是却没有那么多VLAN,毕竟VLAN最大值也不过4096。
其实,用户主机只要能ARP广播发现网关的mac地址,进而和网关通信,就可以与整个Internet通信,对吗?因为网关是连在Internet上的。
那怎样的解决方案,可以让主机只能ARP广播发现网关的MAC地址,从而杜绝ARP欺骗攻击?同时又最大程度减少VLAN的使用数量?这个解决方案的名字叫“私有VLAN“。
私有VLAN(Private VLAN)
主机们被分配在同一个Secondary VLAN(101)里,可是它们却不在一个广播域里,所以它们无法通过ARP广播发现彼此的MAC地址。ARP欺骗攻击很显然无法一展身手。
网关被分配在Primary VLAN(100)里。神奇的一幕发生了,位于VLAN 100里的网关却与每一个位于VLAN 101的主机在一个广播域。既然在一个广播域,主机们就可以ARP广播发现网关的MAC地址,进而可以与Internet主机通信。
吃葡萄不吐葡萄皮,不吃葡萄倒吐葡萄皮。为什么同属于VLAN 101的主机,却不在一个广播域?而网关和主机不在一个VLAN里,却能工作在一个广播域?
其实,这些奇巧淫技没有什么稀奇,不过是技术上一点小技巧。交换机的内部交换矩阵,按照配置的指令,将Primary VLAN(100)与每一个主机VLAN (101)桥接(Bridging)在一起,但不是完全桥接,因为主机之间却无法桥接。