我的NAT设置有一个小问题。
我在做什么:
我有2个VLAN(在本例中为100和200),并希望他们可以通过单独的IP访问networking。 这应该通过iptables NAT来完成。 我用pf(FreeBSD)创build了这个设置,但不幸的是我必须使用的硬件不兼容。 我很喜欢在我们的主路由器,但是CPU不能处理这样的负载。 与IP表等我只是一个小白;)架构:
用户VLAN 100(10.100.0.0/24) – > 10.100.0.1 NAT xxx.yyy.zzz.6 – >networking
VLAN 200上的用户(10.200.0.0/24) – > 10.200.0.1 NAT xxx.yyy.zzz.7 – >networking
所有这些都在同一个物理接口上,具有VLAN接口等
这是我目前的configuration:/ etc / network / interfaces
罗...
iface ens2f3 inet static
地址xxx.yyy.zzz.6
networking掩码255.255.252.0
auto ens2f3.100
iface ens2f3.100 inet static
地址10.100.0.1
networking掩码255.255.255.0
vlan-raw-device ens2f3
iface ens2f3 inet static
地址xxx.yyy.zzz.7
networking掩码255.255.252.0
auto ens2f3.200
iface ens2f3.200 inet static
地址10.200.0.1
networking掩码255.255.255.0
vlan-raw-device ens2f3
/etc/iptables/rules.v4(自动加载)
#NAT桌子 * NAT :PREROUTING ACCEPT [0:0] :input接受[0:0] :OUTPUT ACCEPT [0:0] :POSTROUTING ACCEPT [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 承诺 #总表 *过滤 :input接受[0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] 承诺 #我知道这个设置是非常不安全的! 当我有NAT工作时,我locking服务器
问题是,我可以得到一个10.100.0.100我可以连接到xxx.yyy.zzy.1正是这个IP(10.100.0.100;这应该是不可能的),而不是我应该通过NAT获得的IP。
我也试着在包裹到达界面的时候给它们打上标记,并为它们分配了路由表。 有上面的问题不存在,但没有任何连接到任何地方是可能的
你能否提供一些关于如何用基于Linux的操作系统来实现这一点的技巧。 如果有必要,我有另一个10G接口可用
我没有分析一切,但第一步是纠正这一点:
-o ens2f3
因为你是postROUTING,路由决定已经完成,我期望这个数据包直接通过一个不同的接口直接到网关xxx.yyy.zzz.1:
-o enp3s0