IPtables中可以灵活的做各种网络地址转换(NAT),网络地址转换主要有两种:SNAT和DNAT。

在路由模式下,包从路由器的lan侧出去的时候,会经过nat表的POSTROUTING链,去做SNAT,然后才能发送至外网,如下图所示:

SNAT是source networkaddress translation的缩写,即源地址目标转换。比如,多个PC机使用ADSL路由器共享上网,每个PC机都配置了内网IP,PC机访问外部网络的时候,路由器将数据包的报头中的源地址替换成路由器的ip,当外部网络的服务器比如网站web服务器接到访问请求的时候,他的日志记录下来的是路由器的ip地址,而不是pc机的内网ip,这是因为,这个服务器收到的数据包的报头里边的“源地址”,已经被替换了,所以叫做SNAT,基于源地址的地址转换。

DNAT是destination networkaddress translation的缩写,即目标网络地址转换,典型的应用是,有个web服务器放在内网配置内网ip,前端有个防火墙配置公网ip,互联网上的访问者使用公网ip来访问这个网站,当访问的时候,客户端发出一个数据包,这个数据包的报头里边,目标地址写的是防火墙的公网ip,防火墙会把这个数据包的报头改写一次,将目标地址改写成web服务器的内网ip,然后再把这个数据包发送到内网的web服务器上,这样,数据包就穿透了防火墙,并从公网ip变成了一个对内网地址的访问了,即DNAT,基于目标的网络地址转换。

MASQUERADE,地址伪装,算是snat中的一种特例,可以实现自动化的snat。

在iptables中有着和SNAT相近的效果,但也有一些区别,但使用SNAT的时候,出口ip的地址范围可以是一个,也可以是多个,例如:

如下命令表示把所有10.8.0.0网段的数据包SNAT成192.168.5.3的ip然后发出去,

iptables-t nat -A POSTROUTING -s 10.8.0.0/255.255.255.0 -o eth0 -j SNAT --to-source192.168.5.3

如下命令表示把所有10.8.0.0网段的数据包SNAT成192.168.5.3/192.168.5.4/192.168.5.5等几个ip然后发出去

iptables-t nat -A POSTROUTING -s 10.8.0.0/255.255.255.0 -o eth0 -j SNAT --to-source192.168.5.3-192.168.5.5

这就是SNAT的使用方法,即可以NAT成一个地址,也可以NAT成多个地址,但是,对于SNAT,不管是几个地址,必须明确的指定要SNAT的ip,假如当前系统用的是ADSL动态拨号方式,那么每次拨号,出口ip192.168.5.3都会改变,而且改变的幅度很大,不一定是192.168.5.3到192.168.5.5范围内的地址,这个时候如果按照现在的方式来配置iptables就会出现问题了,因为每次拨号后,服务器地址都会变化,而iptables规则内的ip是不会随着自动变化的,每次地址变化后都必须手工修改一次iptables,把规则里边的固定ip改成新的ip,这样是非常不好用的。

MASQUERADE就是针对这种场景而设计的,他的作用是,从服务器的网卡上,自动获取当前ip地址来做NAT。

比如下边的命令:

iptables-t nat -A POSTROUTING -s 10.8.0.0/255.255.255.0 -o eth0 -j MASQUERADE

如此配置的话,不用指定SNAT的目标ip了,不管现在eth0的出口获得了怎样的动态ip,MASQUERADE会自动读取eth0现在的ip地址然后做SNAT出去,这样就实现了很好的动态SNAT地址转换。

Linux防火墙配置工具iptables中MASQUERADE的含义相关推荐

  1. Linux 防火墙配置(iptables和firewalld)

    目录 防火墙基本概念 Iptables讲解 Iptables表 Iptables规则链 Iptables控制类型 Iptables命令配置 firewalld讲解 Firewalld区域概念 Fire ...

  2. Linux防火墙配置

    目录 一.实验目的及要求 二.实验环境 三.实验原理 1.防火墙的概念 2.防火墙的分类 3.Linux防火墙 (1):netfilter (2):iptables 4.iptables的规则表.规则 ...

  3. linux防火墙常用控制协议,linux防火墙配置及管理.doc

    linux防火墙配置与管理2 ufw防火墙简介 我们在工作中使用防火墙保护服务器的网络服务,实际上是通过防火墙来拒绝对服务器的访问.iptable 工具根据系统管理员编写的一系列规则筛选网络数据包对于 ...

  4. Linux防火墙配置入门

    Linux防火墙配置入门必学 RedHat Linux 为增加系统安全性提供了防火墙保护.防火墙存在于你的计算机和网络之间,用来判定网络中的远程用户有权访问你的计算机上的哪些资源.一个正确配置的防火墙 ...

  5. linux显示 防火墙配置文件,怎么查看Linux防火墙配置方法

    当Linux系统的防火墙的状态和信息时候,我们可以用哪些命令查看呢.下面由学习啦小编为大家整理了查看Linux系统防火墙的命令详解,希望对大家有帮助! 查看Linux系统防火墙的命令详解 查看Linu ...

  6. SuSE Linux防火墙配置

    SuSE Linux防火墙配置 SuSE Linux防火墙配置文件路径:/etc/sysconfig/SuSEfirewall2; 启动.关闭.重启防火墙: rcSuSEfirewall2 start ...

  7. Linux防火墙Firewall和Iptables的使用

    Linux防火墙Firewall和Iptables的使用 原创: 梦想de星空 macrozheng 6月6日 Linux中有两种防火墙软件,ConterOS7.0以上使用的是firewall,Con ...

  8. iptables防火墙配置工具ShoreWall的安装和使用实例

    shorewall不是一个daemon的程序,它是一个加载iptables指令的套件,所以请别指望使用ps -aux这类的指令来查询它的行程,接下来的部份就分别说明各个设定文件的功能及格式. 本质上来 ...

  9. CentOS Linux防火墙配置及关闭

    最近在CentOS Linux下安装配置 ORACLE 数据库的时候,总显示因为网络端口而导致的EM安装失败,遂打算先关闭一下防火墙. 偶然看到防火墙的配置操作说明,感觉不错.执行"setu ...

  10. linux禁用防火墙配置,CentOS Linux防火墙配置及关闭

    最近在CentOS Linux下安装配置 Oracle 数据库的时候,总显示因为网络端口而导致的EM安装失败,遂打算先关闭一下防火墙. 偶然看到防火墙的配置操作说明,感觉不错.执行"setu ...

最新文章

  1. Google AI的焦虑:拆分搜索和人工智能部门,Jeff Dean任AI业务负责人
  2. Unix/Linux提权漏洞快速检测工具unix-privesc-check
  3. MyBatis学习--简单的增删改查
  4. iOS中本地化字符串
  5. SIGIR 2019 eBay高精度召回任务挑战赛冠军团队DeepBlueAI技术分享
  6. 魅族 C++ 微服务框架技术内幕揭秘
  7. kali linux下安装TOR
  8. npm更换成淘宝镜像源以及cnpm
  9. 服务器部署 配置jetty运行参数_Zookeeper+websocket实现对分布式服务器的实时监控...
  10. Sharepoint学习笔记—Ribbon系列
  11. 计算机教案画圆形和方形,画方形和圆形的教案
  12. mysql innodb文件_MySQL的InnoDB文件介绍
  13. Qt工作笔记-QDialog模式对话框传递数据给主窗口
  14. LINQ to SQL集成到应用程序中需考虑的一些问题
  15. 记Python的一些用法
  16. 一道学吧上的题 ^ 题目:不允许重复的实验 - 从数字1、2、3、4、5中随机抽取3次数字(不允许重复)组成一个三位数,则其各位数字之和等于n的概率为________ 输入整数 输出一个小数(保留
  17. java unbox_java base-05-Box UnBox 自动装拆箱
  18. 学习笔记——数据的度量
  19. Sketch for UX Design Sketch UX设计教程 Lynda课程中文字幕
  20. C# 操作现有Word表格详细教程

热门文章

  1. 氨基酸英文表示及缩写
  2. 事件图谱的构建、推理与应用
  3. 2016山东教师教育网- 一师一优课
  4. IDC与云计算有什么区别
  5. WebSocket服务端消息推送
  6. Arduino超声波模块原理
  7. python操作word文档,合并
  8. 艾草减肚子方法非常有效 赛乐赛骗局是真的吗
  9. WORD动态目录打印预览出现:错误未…
  10. iOS相机、相册的访问权限