1. 问题介绍
由于网络地址段在两个网络(这里以a和b区分)里分配有问题,导致IP地址段有重复。现在网络a里面的一台机器想访问网络b里的机器需要NAT转换(例如10.2.85.56 需要转为10.42.85.56),但由于网络a里的一台机器Prometheus要访问网络b的一台机器IP 10.2.85.56,所以需要在本地防火墙软件做二次转换。
目前: (对网络a里的机器Prometheus)
可访问 不可访问
网络a: 10.42.85.56 10.2.85.56(10.2.*.*是网络a和b里重复的地址段,但网络a没有开放对Prometheus的访问权限,网络b里面的机器需要NAT访问)
目标:
可访问 也可访问
网络a: 10.42.85.56 10.2.85.56(目标机在网路b里面)
2. 解决方案
在网络a里的机器Prometheus上用firewalld/IP table设置IP转换规则,将对10.2.85.56的目标IP转换为10.42.85.56。
以firewalld 为例:
(1)Enable IPv4 packet forwarding
Add the following to /etc/sysctl.conf: net.ipv4.ip_forward = 1
Apply the sysctl settings: sysctl -p
(2)Add direct rules to firewalld. Add the --permanent option to keep these rules across restarts.
sudo firewall-cmd --permanent --direct --add-rule ipv4 nat OUTPUT 0 -d 10.2.85.56 -p tcp -j DNAT --to-destination 10.42.85.56
(3)firewall-cmd --reload
if everything is okay, then execute:
systemctl restart firewalld
(4)check:
firewall-cmd --direct --get-all-rules
3. IP table的报文流向
上图参考自链接 - iptables详解
网友评论