目的:实现以下效果
一、 准备环境
@1 三台虚拟机
@2 client 端 ip 192.168.1.2 server端 两块网卡 , ip 分别是 192.168.1.1 和 172.16.100.1 web端 ip 为 172.16.100.3
注:虚拟机添加网卡后没显示配置文件,需要自己手动编辑一个配置文件
二,部署环境
1> 这时会发现,用client 端去ping web 端时ping 不通的,如下
这是因为 server端相当于client端与web 端的桥梁, server端的路由转发功能没有开启
注: 路由转发 是一个内核参数如下
0 表示未开启, 那么如何将它开启呢,下面是一种临时开启的方法
1 表示开启,这样路由转发就临时开启了,我们来测试一下能否ping通
client 端 通过 server 端的 路由转发成功的 ping 通了 web 端
#上述方法是临时 开启路由转换功能,那么想要永久开启呢?需要写入 /etc/sysctl.conf 这个配置文件里面如下
#1写入
#2 生效
#查看
!成功
注:这是模拟实验,真实环境下是不允许client 端直接去访问 web 端主机的
三、试验
1>NAT 功能 可以在PREROUTING(DNAT),OUTPUT,INPUT,POSTROUTING(SNAT) 这四个链上来实现,因server端开启了路由转发功能,所以实际上是只经过 PREROUTING(DNAT),POSTROUTING(SNAT) FORWARD 这三个链
@1 开始web 端的 httpd 服务
@2 测试下 client 能否访问 web 端的 网站
@3 用web 端 查看下http的访问日志
@4 有记录
注意此时是 client i端 ip 访问的 。
现在开始进行网络地址转换
2>.(server端)需要在 NAT 表上添加规则 ,注:网路地址转换,DNAT 访问的时候需要在 PREROUTING 链上 进行网络地址转换 ;SNAT 出去的时候需要在POSTROUTING 上 进行网络地址转换
命令:iptables -t NAT -A POSTROUTING -s 192.168.1.2 -d 172.16.100.222 -j SNAT --to-source 172.168.100.1
3> 查看下 NAT 表
4>client 端再访问一下 web端的网站 ; 命令 curl http:// 172.16.100.222
5> 在web端 查看 httpd 的访问日志
client端 访问 web 端时 ip 被转换成了 172.16.100.1
注: 在真实环境下,一般都需要进行网络地址转换,毕竟 client 端不能直接 访问 web端的网站
$$2 DNAT
(实际是上访问server端,server端没有httpd服务,通过网络地址转换去找 client 端)
1>开启client 端的 httpd 服务
2>命令 :
3>查看
4>抓取
访问的server端 抓取的却是client端 (目标地址转换 DNT)
所有评论(0)