我在服务器 B 上运行一个应用程序,该应用程序侦听服务器 B 上的 eth0。
我有一个来自服务器 A 的 GTP 数据包,我想更改其源地址。在数据包的 GTP 层中,存在公共 IP(即 xxxx)。我想将源IP更改为xxxx
应用程序需要 xxxx 系列,但在标头中它得到 10.xxx,因此它会丢弃数据包并且无法建立连接。
10.xxx(源)---->xxxx(目标)
我知道门户中有一些解决方案,但我的问题是没有传出接口,应用程序正在监听并使用更改后的 IP 进行回复;即,仅 eth0 上的 xxxx。我怎样才能看到数据包?和tcpdump
?
我使用了网上的一个示例规则,它是:
iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to x.x.x.x
但这不符合我的目的。
基本上,数据包是 gtp 并且来自指定接口。数据包由 gtp 层的公共 IP 组成。应用程序正在丢弃指定的源 IP,因为它在连接请求时查找数据包内存在的公共 IP。如果我可以将公共 IP 分配为 src IP(可访问),则将建立连接并且传出流量可以也通过修改后的 src IP 作为回复,最终将建立连接。
我是否可以有一个 iptable 规则,当数据包到达 eth0 时,将我的 src IP 更改为 GTP 层中存在的公共 IP?