例外情况是,Mangling(路由标记)在 iptables 上不起作用

例外情况是,Mangling(路由标记)在 iptables 上不起作用

我正在使用 iptables,将其用作我家庭实验室中的某种“DMZ 防火墙”。我的服务器有两个接口(连接到两个不同的虚拟防火墙),因此,我想路由标记我的整个 iptables 流量(相同的子网需要在两个接口上连接)。目标是使两个客户端子网都可以从两个接口连接。我的场景中有以下信息:

VLAN1000 interface address: 192.168.255.17/30

VLAN2000 interface address: 192.168.255.29/30

来自外部 FW1(VLAN1000)的传入子网:

Servers: 192.168.0.0/24
Clients: 192.168.1.0/24

来自外部 FW2(VLAN2000)的传入子网:

Servers: 192.168.2.0/24
Clients: 192.168.3.0/24

/etc/iproute2/rt_tables 中有两个自定义路由表

2000     VLAN2000
1000     VLAN1000

VLAN1000 上的静态路由 (route-VLAN1000):

192.168.0.0/24 via 192.168.255.18 dev VLAN1000 table VLAN1000
192.168.1.0/24 via 192.168.255.18 dev VLAN1000 table VLAN1000
192.168.3.0/24 via 192.168.255.18 dev VLAN1000 table VLAN1000

VLAN1000 规则(rule-VLAN1000):

from 192.168.255.17/32 table VLAN1000
to 192.168.255.17/32 table VLAN1000
from 192.168.0.0/24 table VLAN1000
to 192.168.0.0/24 table VLAN1000
from 192.168.1.0/24 table VLAN1000
to 192.168.1.0/24 table VLAN1000
from 192.168.3.0/24 table VLAN1000
to 192.168.3.0/24 table VLAN1000

VLAN2000 上的静态路由(route-VLAN2000):

192.168.1.0/24 via 192.168.255.30 dev VLAN2000 table VLAN2000
192.168.2.0/24 via 192.168.255.30 dev VLAN2000 table VLAN2000
192.168.3.0/24 via 192.168.255.30 dev VLAN2000 table VLAN2000

VLAN2000 规则(rule-VLAN2000):

from 192.168.255.29/32 table VLAN2000
to 192.168.255.29/32 table VLAN2000
from 192.168.1.0/24 table VLAN2000
to 192.168.1.0/24 table VLAN2000
from 192.168.2.0/24 table VLAN2000
to 192.168.2.0/24 table VLAN2000
from 192.168.3.0/24 table VLAN2000
to 192.168.3.0/24 table VLAN2000

我在 iptables mangle 表中的配置:

-A PREROUTING -i VLAN1000 -j MARK --set-mark 1000
-A PREROUTING -i VLAN2000-j MARK --set-mark 2000
-A POSTROUTING -o VLAN1000 -j MARK --set-mark 1000
-A POSTROUTING -o VLAN2000 -j MARK --set-mark 2000
-A FORWARD -i VLAN1000 -j MARK --set-mark 1000
-A FORWARD -o VLAN1000 -j MARK --set-mark 1000

我的 nat 表中的配置:

-A PREROUTING -i VLAN1000 -m mark --mark 1000 -d 10.0.0.5 -p tcp --dport 3389 -j DNAT --to-destination 192.168.0.5:3389
-A POSTROUTING -o VLAN1000 -m mark --mark 1000 -d 192.168.0.5 -j SNAT --to-source 192.168.255.17

过滤表中的配置:

-A FORWARD -i VLAN1000 -m mark --mark 1000 -s 192.168.1.0/24,192.168.3.0/24 -d 192.168.0.5 -p tcp -m tcp --dport 3389 -j ACCEPT
-A FORWARD -i VLAN1000 -m mark --mark 1000 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -o VLAN1000 -m mark --mark 1000 -m state --state RELATED,ESTABLISHED -j ACCEPT

关于 iptables mangling 的文档很少。我的场景中遗漏了什么?或者我误解了它的工作机制?提前谢谢您。

相关内容