IPTables 多 VLAN NAT 到多个 IP

IPTables 多 VLAN NAT 到多个 IP

我的 NAT 设置出了点问题。

我正在尝试做的事情:

我有 2 个 VLAN(本例中为 100 和 200),希望它们可以通过单独的 IP 访问网络。这应该通过 NAT 来实现iptables。我使用 pf(FreeBSD)创建了此设置,但不幸的是,我必须使用的硬件不兼容。我很想在我们的主路由器中实现这一点,但 CPU 无法处理这样的负载。使用 IP 表等。我只是个菜鸟 ;) 模式:

VLAN 100 上的用户 (10.100.0.0/24) -> 10.100.0.1 NAT xxx.yyy.zzz.6 -> 网络

VLAN 200 上的用户(10.200.0.0/24)-> 10.200.0.1 NAT xxx.yyy.zzz.7 -> 网络

所有这些都在同一个物理接口上,具有 VLAN 接口等。

这是我当前的配置:/etc/network/interfaces

    瞧....

    iface ens2f3 inet 静态
        地址 xxx.yyy.zzz.6
        网络掩码 255.255.252.0

自动 ens2f3.100
iface ens2f3.100 inet 静态
        地址 10.100.0.1
        网络掩码 255.255.255.0
        vlan-原始设备 ens2f3

iface ens2f3 inet 静态
        地址 xxx.yyy.zzz.7
        网络掩码 255.255.252.0

自动 ens2f3.200
iface ens2f3.200 inet 静态
        地址 10.200.0.1
        网络掩码 255.255.255.0
        vlan-原始设备 ens2f3

/etc/iptables/rules.v4(自动加载)

#NAT 表
*自然
:预路由接受 [0:0]
:输入接受 [0:0]
:输出接受 [0:0]
:后路由接受 [0:0]
-A POSTROUTING -s 10.100.0.0/24 -o ens2f3 -j SNAT --to-source xxx.yyy.zzz.6
-A POSTROUTING -s 10.200.0.0/24 -o ens2f3 -j SNAT --to-source xxx.yyy.zzz.7

犯罪

# 通用表
*筛选
:输入接受 [0:0]
:转发接受 [0:0]
:输出接受 [0:0]
犯罪

# 我知道这个设置非常不安全!当我让 NAT 工作时,我锁定了服务器

问题是,我可以使用 10.100.0.100 连接到 xxx.yyy.zzy.1,并且恰好使用此 IP(10.100.0.100;这应该是不可能的),而不是我应该通过 NAT 获得的 IP。

我也尝试过在数据包到达接口时对其进行标记,并为它们设置单独的路由表。上述问题不存在,但无法连接到任何地方

您能否为我提供一些关于如何使用基于 Linux 的操作系统实现这一点的提示。如果需要,我还有另一个 10G 接口可用

答案1

我还没有分析所有内容,但第一步是纠正这个问题:

-o ens2f3

由于您处于 postROUTING 状态,因此已经做出了路由决定,并且我预计数据包将直接到达网关 xxx.yyy.zzz.1,因此通过不同的接口:

-o enp3s0

相关内容