我正在新站点设置新服务器。服务器位于路由器/防火墙后面。服务器将运行多个 LXC 容器以提供各种服务。LXC 容器连接到网桥brlxc
。此外,服务器还使用 OpenVPN 连接到另一个站点,该站点位于桥接到服务器 NIC 的另一个 LXC 容器中。由于旧设置存在问题,我们的目标是将路由和防火墙功能放入专用的外部路由器中。
我们最终得到如下结果:
Router: 10.1.1.1
Server: 10.1.1.2
OpenVPN: 10.1.2.2 (bridged with 10.1.1.2 NIC and connected to router)
brlxc: 10.1.3.1 (on server)
Container: 10.1.3.2 (on brlxc)
Ext-Site: 10.2.0.0/16 (via 10.1.2.2)
物理上,路由器盒通过单根电缆连接到服务器。
服务器和 OpenVPN 客户端接收 10.1.1.1 作为默认路由;服务器上的容器为 10.1.3.1。路由器 10.1.1.1 有一条路由通过 10.1.2.2 发送 10.2.0.0/16,一条路由通过 10.1.1.2 发送 10.1.3.0/24,目前有 10.1.0.0/16 作为 LAN。
我注意到的第一件令人费解的事情是,我需要通过 10.1.2.2 将 10.2.0.0/16 作为服务器上的静态路由。否则,路由器会发送 ICMP 重定向,连接就会中断。
添加第一个 LXC 容器后,我需要通过 10.1.1.2 将 10.1.3.0/24 添加到 OpenVPN 客户端。
虽然设置所有这些路由并最终在服务器上定义防火墙规则并不困难,但这不符合我的设计目标,即让路由器进行路由和防火墙,并让服务器运行服务。
我想应该有更好的方法,但我似乎忽略了一些要点。如果能得到一些指导,我将不胜感激。
答案1
我找到了发布问题的解决方案。我现在使用带标记的以太网接口连接到路由器,并使用该eth0.VLAN
接口将 VLAN 分发到没有主机地址的网桥。
auto brvlanX
iface brvlanX inet static
bridge_ports eth0.vlanX
bridge_fd 0
bridge_nowait 0
address 0.0.0.0
并且主机本身可以立即使用其 VLAN 接口。
这通过路由器路由主机的虚拟机/容器的所有流量,进而可以执行防火墙规则。