在linux上分开两个网桥

在linux上分开两个网桥

我目前正在尝试使用 Linux(更具体地说是 Archlinux)为我的家庭网络设置路由器。我使用的嵌入式板有 3 个 LAN 接口,称为wan0lan0lan1以及两个 wifi 卡,称为 wifi0wifi1。我想要有两个独立的网络,一个供我的客人使用,一个供我和我的家人使用。我当前的设置如下所示:

                   +-------+
                   | wifi0 +----------------+
                   +-------+           +----+---+
                                       |  brg0  |
                   +-------+           +----+---+
                   | eth0  +----------------+
                   +-------+


                   +-------+
                   | wifi1 +----------------+
                   +-------+           +----+---+
                                       |  brg1  |
                   +-------+           +----+---+
                   | eth1  +----------------+
                   +-------+

我配置了一个包含lan0wifi0、 名为brd0、 具有 ip 地址 的网桥,以及一个包含和、 名为 、 具有 ip 地址 的192.168.10.1/24网桥。 On以及dnsmasq 正在 dhcpd 模式下运行,以将 IP 地址传播到范围为和范围为 的 客户端。该网络是我的访客网络,同时 是我的家庭网络。lan1wifi1brd1192.168.20.1/24brd0brd1192.168.10.50-125brd0192.168.20.50-125brd1192.168.20.1/24192.168.10.1/24

到目前为止,此设置有效。然而,有一件事让我大吃一惊。不过,由于访客网络和家庭网络位于两个不同的子网中,因此它们之间的流量也是分开的。但是,当我连接到访客网络时,即使没有设置静态路由器或转发,我也可以访问家庭网络上的服务和计算机。 (反之亦然)。我想这与桥接设备在 Linux 下的工作方式有关。

我的问题是,如何配置路由器以使两个网络彼此分离?我需要使用流量过滤规则吗?这可以用etables来实现吗?或者我的设置是否以某种方式损坏,并且应该无法从一个网络到另一个网络提供服务?

答案1

我将使用文本作为参考,因为您的界面名称在图片和文本之间不匹配。

路由器是在具有 IP 的所有接口之间进行路由,因此brd0(家庭)、brd1(访客)和wan0(您忘记在图片中添加),正如路由器所期望的那样。

brd0由于稍后您将需要在和wan0之间进行路由,brd1因此wan0您不能简单地禁用路由。您可以使用两条 iptablesFORWARD规则来禁止此路由,每个方向一条:

iptables -A FORWARD -i brd0 -o brd1 -j DROP
iptables -A FORWARD -i brd1 -o brd0 -j DROP

如果您想让家庭网络能够访问访客网络,而不是相反,有状态规则可以做到这一点,而是使用:

iptables -A FORWARD -i brd1 -o brd0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i brd1 -o brd0 -j DROP

第一个规则可能可以通过删除接口名称与未来的类似规则“分解”:

iptables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT

注意:来自一个网络的系统仍然可以 ping 属于另一网络的路由器 IP(例如,来自192.168.20.2ping 192.168.10.1会成功),因为它没有被路由,因此不会遍历这些FORWARD规则,但这会有点过分解决它(使用正确的规则)在INPUT链中)。我只是留下它作为评论。

注意2:这个答案中没有任何内容需要处理 和 是桥的事实brd0brd1这都是关于路由的。

相关内容