iptables实例4-NAT转换

iptables-NAT转换

准备工作

1、desktop用于模拟外网IP:192.168.3.2
2、proxy用于连接内外网:外网IP192.168.3.3 内网IP:192.168.200.2
3、web1和web2位于内网:IP地址分别为192.168.200.3和192.168.200.4
web1和web2的默认网关都设置为192.168.200.2
![在这里插入图片描述](https://img-blog.csdnimg.cn/de02ef2e371942b499dafca127e7d6a1.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAeXV5dXl1bGlhbmcwMA==,size_20,color_FFFFFF,t_70,g_se,x_16iptables实例4-NAT转换_第1张图片

转换源地址

在proxy把源IP来自192.168.200.0/24网段的IP地址转换成192.168.3.3:
iptables -t nat -A POSTROUTING -s 192.168.200.0/24 -j SNAT --to-source 192.168.3.3
iptables实例4-NAT转换_第2张图片

测试:

在做源地址转换前,web1和web2是ping不通IP地址192.168.3.2,在做完把源地址为192.168.200.0/24网段IP地址转成源地址192.168.3.3后,web1和web2就可以ping通192.168.3.2.
web1:
iptables实例4-NAT转换_第3张图片
web2:
iptables实例4-NAT转换_第4张图片

在proxy的eth0和eth1上抓包

tcpdump -i eth1 -nn tcp port 80
tcpdump -i eth0 -nn tcp port 80
在web1上访问desktop的web服务:curl 192.168.3.2
结果如图:
eth1上显示请求发送为: 192.168.200.3.58580 > 192.168.3.2.80
iptables实例4-NAT转换_第5张图片
在eth0上显示请求发送为:192.168.3.3.58580 > 192.168.3.2.80
iptables实例4-NAT转换_第6张图片
结论:源地址来自192.168.200.0/24网段的IP地址的数据包在经过Proxy后,其源地址被更改为了192.168.3.3。

目标地址和目标端口转换

将web1当作web服务器,其监听端口更改到8080
在这里插入图片描述
在proxy上先清空先前nat表中的规则,添加以下规则:
在proxy上来自192.168.3.2的访问192.168.3.3的tcp 80端口的数据包被转换成了访问192.168.200.3的tcp 8080的数据包:
iptables实例4-NAT转换_第7张图片
在desktop进行测试:
desktop对192.168.3.3的web访问的响应来自192.168.200.3
在这里插入图片描述

在proxy的eth0和eth1上分别抓取数据包:
eth0网卡:
iptables实例4-NAT转换_第8张图片
eth1网卡:
iptables实例4-NAT转换_第9张图片
来自desktop对proxy 80端口的web请求,被proxy转换成了对web1 8080端口的web请求后,由eth1网卡发送给了web1,来自web1响应desktop1的响应经过proxy后,变成了proxy 80端口对desktop的响应。

你可能感兴趣的:(iptables,linux,网络,服务器)