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

本文涉及的产品
公网NAT网关,每月750个小时 15CU
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
简介: NAT (网络地址转换) 技术在平时是很多见的,如家庭中在使用路由器共享上网时,一般用的就是 NAT 技术,它可以实现众多内网 IP 共享一个公网 IP 上网。NAT 的原理 简单的说就是当内网主机访问外网时,当内网主机的数据包要通过路由器时,路由器将数据包中的源内网 IP 地址改为路由器上的公网 IP 地址,同时记录下该数据包的消息;当外网服务器响应这次由内而外发出的请求或数据交换时,当
NAT (网络地址转换) 技术在平时是很多见的,如家庭中在使用路由器共享上网时,一般用的就是 NAT 技术,它可以实现众多内网 IP 共享一个公网 IP 上网。NAT 的原理 简单的说就是当内网主机访问外网时,当内网主机的数据包要通过路由器时,路由器将数据包中的源内网 IP 地址改为路由器上的公网 IP 地址,同时记录下该数据包的消息;当外网服务器响应这次由内而外发出的请求或数据交换时,当外网服务器发出的数据包经过路由器时,原本是路由器上的公网 IP 地址被路由器改为内网 IP 。工作原理如下图所示:


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

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



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


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

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

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

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

POSTROUTING
和 PREROUTING 不同,在执行
S NAT 任务时的行为规则就添加在 POSTROUTING 链中。
相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
相关文章
|
3天前
内网和外联单位互访,看大佬是如何通过SNAT+DNAT实现的?
内网和外联单位互访,看大佬是如何通过SNAT+DNAT实现的?
|
1天前
|
安全 网络安全 网络架构
【揭秘】大佬如何玩转内网与外联单位互访?SNAT+DNAT实战揭秘,让你的网络畅通无阻!
【8月更文挑战第19天】内网与外联单位间的访问是企业网络的关键需求。通过SNAT和DNAT技术可巧妙解决此问题。SNAT修改源IP地址,隐藏内网真实身份;DNAT改变目的IP地址,实现外部对内网服务器的访问。
12 0
|
网络协议 Docker 容器
docker启动报错 (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 9876 -j DNAT --
docker启动报错 (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 9876 -j DNAT --
335 0
|
3月前
|
网络协议 开发工具 Docker
iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 9999 -j DNAT --to-destination 172.17.0.2:80 !
iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 9999 -j DNAT --to-destination 172.17.0.2:80 !
42 1
|
3月前
|
弹性计算 Linux 网络安全
三步搭建VPC专有网络NAT网关,配置SNAT和DNAT规则(补充版)
申明:该文档参考于用户 “帅宝宝”的文档进行的优化,新增永久生效的方式
500 1
|
3月前
|
网络协议 Linux 网络安全
Linux-SNAT和DNAT
Linux-SNAT和DNAT
67 0
|
弹性计算 运维 数据安全/隐私保护
《企业运维之云上网络原理与实践》——第三章 云上网络VPC&EIP&NAT&共享宽带&SLB——配套实验:ECS通过SNAT访问CLB(1)
《企业运维之云上网络原理与实践》——第三章 云上网络VPC&EIP&NAT&共享宽带&SLB——配套实验:ECS通过SNAT访问CLB(1)
298 0
|
弹性计算 运维
《企业运维之云上网络原理与实践》——第三章 云上网络VPC&EIP&NAT&共享宽带&SLB——配套实验:ECS通过SNAT访问CLB(2)
《企业运维之云上网络原理与实践》——第三章 云上网络VPC&EIP&NAT&共享宽带&SLB——配套实验:ECS通过SNAT访问CLB(2)
236 0
|
网络协议 Linux
iptables之SNAT与DNAT(二)
iptables之SNAT与DNAT(二)
iptables之SNAT与DNAT(二)
|
4天前
|
安全 网络安全 数据安全/隐私保护
手把手教你用eNSP模拟器配置防火墙源NAT
手把手教你用eNSP模拟器配置防火墙源NAT