在ews ec2中,用户可以设置像防火墙一样工作的安全组 ,但通常情况下,防火墙在网关/ NAT服务器后工作,但是我发现EC2中的防火墙也工作在局域网中。
例如,用户有太多的实例, A: 10.108.33.13/26
B: 10.108.33.18/26
,根据ip
和netmask
,他们在同一个局域网,但是,如果我把这些实例放在不同的安全组并且规则阻止来自不同的sgs的访问),防火墙对它们起作用。
我的问题是,我认为防火墙只在Layer3 / 4,ip和端口是。 在局域网中,主机之间的stream量通过第二层(通过MAC地址)。 怎么可能在局域网中实现这样的防火墙?
PS我检查了每台主机上的iptables,我确定它停止了。
一大批更高级的L3交换机都支持ACL ,每进入一个数据包/帧, ACL都将被检查 – 无论它是否已经进入交换机的路由引擎。 这样,对同一广播域内的主机的限制可以很容易地实现,但是应该注意,ACL的处理通常不像你期望的状态包过滤那样复杂(主要是因为处理逻辑是在电路而不是软件)。
这就是说, 亚马逊正在与Xen虚拟化,所以他们将使用虚拟交换/ Linux桥接,而且可能会在软件层实现他们的过滤 – ebtables能够在桥接接口上进行IP过滤将是一个很好的select用于引擎盖下的处理。
最近,我一直在阅读OpenStack nova实现。
然后我发现,如果使用libvirt
,上面的防火墙可以使用libvirt
实现的nwfilter
机制轻松实现。
详细的信息可以在http://libvirt.org/firewall.htmlfind,它解释了它是如何实现的,正如@ syneticon-dj所提到的,它使用了ebtables
, iptables
和ip6tables
的组合。