目的:实现以下效果

一、 准备环境

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

最新文章

  1. C++迪杰斯特拉算法求最短路径
  2. 首页使用page类完成生成页面内容的大部分工作
  3. xampp 安装red扩展出错解决
  4. ios流媒体
  5. cvWaitKey
  6. HDFS命令行文件操作
  7. SCCM 2007 R2部署、操作详解系列之概念
  8. (转)为首次部署MongoDB做好准备:容量计划和监控
  9. JavaScript字符串插入、删除、替换函数
  10. linux内核源码阅读之facebook硬盘加速flashcache之三
  11. mysql经常使用的命令
  12. 安装 nodejs
  13. getHibernateTemplate()
  14. css挖坑爬坑之div高宽相等
  15. 移动端调用电话、短信、唤起QQ和使用百度地图
  16. SpringBoot 请求参数后端校验
  17. 指导手册 07 安装配置HIVE
  18. 【BZOJ5019】[SNOI2017]遗失的答案(FWT,动态规划)
  19. 2017.4.28 KVM 内存虚拟化及其实现
  20. C# Winform程序以及窗体运行的唯一性汇总

热门文章

  1. CREATE OPERATOR CLASS - 定义一个新的操作符类
  2. Centos7 安装MongoDB的详细过程
  3. log4net小记
  4. splice用法解析
  5. 小b和灯泡
  6. C# 如何发送Http请求
  7. 18第一章 ASP.Net内建对象
  8. JavaSE-10 多态
  9. Spring boot 配置tomcat后 控制台不打印SQL日志
  10. C++ 指针形参和指针引用形参的原理分析