如何在局域网(如用户的操作系统)像EC2一样实施防火墙已经完成?

在ews ec2中,用户可以设置像防火墙一样工作的安全组 ,但通常情况下,防火墙在网关/ NAT服务器后工作,但是我发现EC2中的防火墙也工作在局域网中。

例如,用户有太多的实例, A: 10.108.33.13/26 B: 10.108.33.18/26 ,根据ipnetmask ,他们在同一个局域网,但是,如果我把这些实例放在不同的安全组并且规则阻止来自不同的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所提到的,它使用了ebtablesiptablesip6tables的组合。