Linux IP 表在 access.log 上转发松散的源 IP

Linux IP 表在 access.log 上转发松散的源 IP

团队,

我们已经配置了 IP 表,将来自 eth1(公共 IP xxxx)接口的请求转发到其他服务器。我们能够转发所有请求,但问题是服务器 192.168.254.X 上的原始公共 IP(用户的源 IP)丢失

请参阅以下配置:

# Generated by iptables-save v1.6.0 on Wed Sep 13 12:19:51 2017
*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [8:827]
:POSTROUTING ACCEPT [0:0]

-A PREROUTING -d 192.168.254.142/32 -i eth1 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.254.89
-A PREROUTING -d 192.168.254.142/32 -i eth1 -p tcp -m tcp --dport 443 -j DNAT --to-destination 192.168.254.89

-A POSTROUTING -o eth1 -j MASQUERADE
-A POSTROUTING -o eth0 -j MASQUERADE
COMMIT
# Completed on Wed Sep 13 12:19:51 2017
# Generated by iptables-save v1.6.0 on Wed Sep 13 12:19:51 2017
 *filter
 :INPUT ACCEPT [479:52143]
 :FORWARD ACCEPT [41:1856]
 :OUTPUT ACCEPT [417:79506]
 -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
 -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
 -A FORWARD -i eth0 -o eth1 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
 COMMIT
# Completed on Wed Sep 13 12:19:51 2017

请查找 IP 规则列表的输出。

0:      from all lookup local
1000:   from 192.168.254.142 lookup eth1rt
1000:   from 192.168.254.89 lookup eth1rt
32766:  from all lookup main
32767:  from all lookup default

请更新在服务器 254.89 上丢失源 IP 的问题。

任何优先帮助都会对您有帮助。

谢谢。

答案1

配置中的规则-j MASQUERADE指示内核将数据包的源 IP 地址重写为数据包退出系统时使用的接口上的 IP 地址(也称为源 NAT)。
如果您不想这样做,则需要删除这些规则。

但请注意,当您不使用 SNAT(而仅使用目标 NAT 重新路由数据包)时,您必须具有正确的路由(在服务器 192.168.254.89 上)才能使连接按预期工作。

相关内容