PREROUTING 和 POSTROUTING, SNAT 和 DNAT图文解析(非常清淅)

NAT (网络地址转换) 技术在平时是很多见的,如家庭中在使用路由器共享上网时,一般用的就是 NAT 技术,它可以实现众多内网 IP 共享一个公网 IP 上网。NAT 的原理 简单的说就是当内网主机访问外网时,当内网主机的数据包要通过路由器时,路由器将数据包中的源内网 IP 地址改为路由器上的公网 IP 地址,同时记录下该数据包的消息;当外网服务器响应这次由内而外发出的请求或数据交换时,当外网服务器发出的数据包经过路由器时,原本是路由器上的公网
IP 地址被路由器改为内网 IP 。工作原理如下图所示:

SNAT 和 DNAT 是 iptables 中使用 NAT 规则相关的的两个重要概念。如上图所示,如果内网主机访问外网而经过路由时,源 IP 会发生改变,这种变更行为就是 SNAT;反之,当外网的数据经过路由发往内网主机时,数据包中的目的 IP (路由器上的公网 IP) 将修改为内网 IP,这种变更行为就是 DNAT 。

与 SNAT 和 DNAT所对应的两个链分别是  POSTROUTING和PREROUTING  

说明:(个人理解)prerouting  和postrouting指的是数据包的流向,如上图所示postrouting一般指的是发往公网的数据包;prerouting一般指来自公网的数据包!



通常内网到外网是pre,外网到内网是post,但是外还是内只是个相对概念,在一定条件下是可以转换的。落实到网卡上,对于每个网卡数据流入的时候必然经过pre,数量流出必然经过post


POSTROUTING是源地址转换,要把你的内网地址转换成公网地址才能让你上网。

PREROUTING是目的地址转换,要把别人的公网IP换成你们内部的IP,才让访问到你们内部受防火墙保护的机器

PREROUTING
当外网的数据包进入到内网时,我们需要修改数据包中的公网 IP 为内网的主机 IP,这种 DNAT
的行为规则就要在 PREROUTING 链里添加。

POSTROUTING
和 PREROUTING 不同,在执行 SNAT
任务时的行为规则就添加在 POSTROUTING 链中。

时间: 2024-12-26 23:47:06

PREROUTING 和 POSTROUTING, SNAT 和 DNAT图文解析(非常清淅)的相关文章

linux的SNAT和DNAT目标函数

SNAT.DNAT目标函数 前面在ip_nat_fn()函数中调用的ip_nat_rule_find()用来查找NAT规则,执行规则的动作,规则目标不是SNAT就是DNAT,该目标的具体实现在net/ipv4/netfilter/ip_nat_rule.c中. 不论是SNAT还是DNAT规则,其目标函数最终都是调用ip_nat_setup_info()函数来建立连接的NAT info信息. net/ipv4/netfilter/ip_nat_rule.c: /* Source NAT */ st

在Ubuntu中怎么安装JDK图文解析

  在Ubuntu中怎么安装JDK图文解析,对于很多不知道怎么操作的朋友可以参考本文,希望能给大家带来帮助! 方法/步骤 1,到Oracle官网下载相关的JDK 2,假设jdk安装文件在桌面,我们指定的安装目录是:/usr/local/java .可是系统安装后在/usr/local下并没有java目录,这需要我们去创建一个java文件夹 3,打开终端(terminal) 切换到桌面下,执行复制sudo cp jdk-6u30-linux-i586.bin /usr/local/java/ 安装

ps智能对象的使用技巧图文解析

  智能对象是PS一个非常好的东西,我们经常下载一些智能对象模板,虽然自己会去使用,但是很多同学都不明白智能对象是怎么回事,今天这篇文件就是告大家关于智能对象的一切,让大家会用还知道原理,喜欢的朋友一起来学习吧. 教程结束,以上就是ps智能对象的使用技巧图文解析,希望对大家有所帮助! 分类: PS入门教程

图文解析AJAX的原理_AJAX相关

先上原理图:       背景:      1.传统的Web网站,提交表单,需要重新加载整个页面.      2.如果服务器长时间未能返回Response,则客户端将会无响应,用户体验很差.      3.服务端返回Response后,浏览器需要加载整个页面,对浏览器的负担也是很大的.      4.浏览器提交表单后,发送的数据量大,造成网络的性能问题. 问题:      1.如何改进?      2.AJAX是什么?      3.有什么优势?      4.有什么缺点? 一.什么是 AJAX

图文解析:无线通信技术和应用规范

无线技术是当前最热门的技术之一.无线技术出现在几乎所有电子设计的每个领域.目前,市场上的近距离无线通信技术主要有无线局域网Wi-Fi.蓝牙和一些专用标准(如Adhoc网等)的产品.一些大公司为开拓市场和应用领域,也在积极研究和制定一些 新的无线组网通信技术标准,如无线USB.超宽带通信UWB和 WiMAX等.498)this.w idth=498;' onmousewheel = 'javascript:return big(this)' alt=图文解析:无线通信技术和应用规范 src="ht

斐波那契堆(一)之 图文解析 和 C语言的实现

概要 本章介绍斐波那契堆.和以往一样,本文会先对斐波那契堆的理论知识进行简单介绍,然后给出C语言的实现.后续再分别给出C++和Java版本的实现:实现的语言虽不同,但是原理如出一辙,选择其中之一进行了解即可.若文章有错误或不足的地方,请不吝指出! 目录1. 斐波那契堆的介绍2. 斐波那契堆的基本操作3. 斐波那契堆的C实现(完整源码)4. 斐波那契堆的C测试程序 转载请注明出处:http://www.cnblogs.com/skywang12345/p/3659060.html 更多内容:数据结

二项堆(一)之 图文解析 和 C语言的实现

概要 本章介绍二项堆,它和之前所讲的堆(二叉堆.左倾堆.斜堆)一样,也是用于实现优先队列的.和以往一样,本文会先对二项堆的理论知识进行简单介绍,然后给出C语言的实现.后续再分别给出C++和Java版本的实现:实现的语言虽不同,但是原理一样,选择其中之一进行了解即可.若文章有错误或不足的地方,请不吝指出! 目录1. 二项树的介绍2. 二项堆的介绍3. 二项堆的基本操作4. 二项堆的C实现(完整源码)5. 二项堆的C测试程序 转载请注明出处:http://www.cnblogs.com/skywan

如何通过EIP实现VPC下的SNAT以及DNAT

场景一:有一个EIP,多台ECS,需要通过绑定EIP的机器让其他机器上网阿里云VPC配置SNAT 1,将EIP绑定到某台ECS上,然后测试通过eip登陆ssh,测试成功 2,开启ip转发功能,并使之生效 sed -i 's/net.ipv4.ip_forward = 0/net.ipv4.ip_forward = 1/g' /etc/sysctl.conf sysctl –p 3,iptables添加SNAT转换172.16.3.0是内网网段,3.2是绑定了EIP的这台机器的内网IP iptab

SNAT和DNAT介绍

DNAT(Destination Network Address Translation,目的地址转换) 通常被叫做目的映谢.而SNAT(Source Network Address Translation,源地址转换)通常被叫做源映谢. SNAT 内网访问 外网 客户端ip地址 网关指向server的eth0 网卡 server的2块网卡ip地址