目的:实现以下效果

 

一、 准备环境

@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)

 

转载于:https://www.cnblogs.com/myxxjie/p/10850022.html

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐