SNAT与DNAT原理及应用
SNAT与DNAT原理及应用
当内部地址要访问公网上的服务时(如httpd访问),内部地址会主动发起连接,由路由器或者防火墙上的网关对内部地址做个地址转换,将内部地址的私有IP转换为公网的公有IP,网关的这个地址转换功能称为SNAT,主要用于内部共享IP访问外部网络。
当内部地址需要提供对外服务时(如对外发布httpd网站),外部地址发起主动连接,由路由器或者防火墙上的网关接收这个连接,然后将连接转换到内部,此过程是由带有公网IP的网关替代内部服务来接收外部的连接,然后在内部将公网IP转换为私网IP,此转换功能称为DNAT,主要用于内部服务对外发布。
1.SNAT原理与应用
1.1 SNAT 应用环境:
局域网主机共享单个公网IP地址接入Internet (私有IP不能在Internet中正常路由)
1.2 SNAT原理:
源地址转换,根据指定条件修改数据包的源IP地址,通常被叫做源映谢
SNAT转换前提条件:
1.局域网各主机已正确设置IP地址、子网掩码、默认网关地址 2.Linux网关开启IP路由转发 linxu系统本身是没有转发功能 只有路由发送数据
Linux网关开启IP路由转发
linxu想系统本身是没有转发功能 只有路由发送数据
临时打开:
echo 1 > /proc/sys/net/ipv4/ip_forward 或 sysctl -W net.ipv4.ip_forward=1
永久打开:
vim /etc/sysctl.conf net.ipv4.ip_forward = 1 #将此行写入配置文件
sysctl -p #读取修改后的配置
修改iptables网卡
SNAT转换1:固定的公网IP地址:
[root@node2 ~]#iptables -t nat -A POSTROUTING -s 12.0.0.0/24 -o ens33 -j SNAT --to 192.168.1.1
将源IP地址为12.0.0.0/24的数据包发送到ens33网络接口,并通过源网络地址转换(SNAT)将源IP地址改为192.168.1.1。
[root@localhost ~]#iptables -t nat -A POSTROUTING -s 12.0.0.0/24 -o ens37 -j SNAT --to 192.168.1.1~192.168.1.3
将源IP地址为12.0.0.0/24的数据包发送到ens37网络接口,并通过源网络地址转换(SNAT)将源IP地址改为192.168.91.101到192.168.91.103之间的范围内的IP地址。这样设置可以实现IP地址范围的源IP地址转换。
SNAT转换2:非固定的公网IP地址:
iptables -t nat -A POSTROUTING -s 12.0.0.0/24 -d 192.168.100.0/24 -j MASQUERADE
将源IP地址的数据包进行网络地址伪装(MASQUERADE)
它会将来自12.0.0.0/24网络的数据包的源IP地址替换为出口网关的IP地址,从而隐藏了源IP地址并使数据包能够正确地返回到源网络
iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o ens33 -j MASQUERADE
,将源IP地址为192.168.100.0/24的数据包发送到ens33网络接口,并执行网络地址伪装(MASQUERADE)操作。网络地址伪装会将源IP地址改为执行该操作的网关(防火墙)的IP地址,从而隐藏了真正的源IP地址。
SNAT实操(如何配置SNAT)
1,7-1,添加网卡,仅主机
开启路由转发功能
[root@localhost network-scripts]# vim /etc/sysctl.conf #进入配置文件 添加 net.ipv4.ip_forward = 1
[root@localhost network-scripts]# sysctl -p #读取修改后的配置
net.ipv4.ip_forward = 1
7.2
7-3
设为仅主机模式
4.7-1
5.检验是否成功 7-2
2.DNAT原理及应用
DNAT原理与应用:
DNAT应用环境:
在Internet中发布位于局域网内的服务器
DNAT原理:
目的地址转换,根据指定条件修改数据包的目的IP地址,保证了内网服务器的安全,通常被叫做目的映谢。
DNAT转换前提条件:
1.局域网的服务器能够访问Internet 2.网关的外网地址有正确的DNS解析记录 3. Linux网关开启IP路由转发
内网有一个 网页服务器 想要给外网用户访问
外网用户直接访问 192.168.91.100 是访问不了 公网没有 192段地址
需要借助 DNAT 技术 将 192.168.91.100 :80 映射成 12.0.0.1:80
12.0.0.1:80 等于 访问 192.168.91.100:80
DNAT实操(如何配置DNAT)
1.7-2 安装httpd服务
最好提前安装好,因为之前做了SNAT是连不到外网的
若要安装可以创建本地yum仓库安装
2.进入httpd服务默认主页配置文件
cd /var/www/html
vim index.html
3.7-1
iptables -t nat -A PREROUTING -i ens36 -s 12.0.0.0/24 -p tcp --dport 80 -j DNAT --to 192.168.1.200:80
在nat表的PREROUTING链中添加一条规则。该规则的作用是对从ens36接口中来自IP地址范围为12.0.0.0/24、目的端口为80的TCP数据包进行目标地址转换(Destination NAT)。
4.7-3 测试是否成功
SNAT与DNAT原理及应用的更多相关文章
- iptables snat 和dnat说明
iptables中的snat和dnat是非常有用的,感觉他们二个比较特别,所以单独拿出来说一下. dnat是用来做目的网络地址转换的,就是重写包的目的IP地址.如果一个包被匹配了,那么和它属于同一个流 ...
- iptables中实现内外网互访,SNAT和DNAT
目录 一.SNAT原理与应用 二.DNAT原理与应用 DNAT转换:发布内网web服务 DNAT转换:发布时修改目标端口 三.防火墙规则的备份和还原 四.linux抓包 一.SNAT原理与应用 ① S ...
- 10.Linux防火墙iptables之SNAT与DNAT
Linux防火墙iptables之SNAT与DNAT 目录 Linux防火墙iptables之SNAT与DNAT SNAT策略及应用 SNAT策略概述 SNAT策略典型应用环境 SNAT策略原理 SN ...
- iptables snat和dnat
iptables中的snat和dnat是非常有用的,感觉他们二个比较特别,所以单独拿出来说一下. dnat是用来做目的网络地址转换的,就是重写包的目的IP地址.如果一个包被匹配了,那么和它属于同一个流 ...
- Iptables防火墙(SNAT和DNAT)
1.SNAT:源地址转换 实现内网访问外网,修改IP地址,使用POSTROUTING 命令:iptables -t nat -A POSTROUTING -s 192.168.1.10/2 ...
- [daily] SNAT和DNAT
SNAT,DNAT,MASQUERADE都是NAT MASQUERADE是SNAT的一个特例 SNAT是指在数据包从网卡发送出去的时候,把数据包中的源地址部分替换为指定的IP,这样,接收方就认为数据包 ...
- Iptables 下 SNAT、DNAT和MASQUERADE三者之间的区别
Iptables 中可以灵活的做各种网络地址转换(NAT,Network Address Translation) 网络地址转换(NAT)主要有两种:SNAT 和 DNAT,但是也有一种特例 MASQ ...
- iptables SNAT 和DNAT的转化配置实验
原文链接:http://www.jb51.net/LINUXjishu/402441.html DNAT(Destination Network Address Translation,目的地址转换) ...
- 经验分享:Linux 双网卡SNAT和DNAT映射本地端口出外网
A 机器 网卡1 公网IP网卡2 内网 B 机器网卡1 内网 如果想把公网端口P1 映射为内网B机器端口P2 iptables -t nat -A PREROUTING -d [A公网地址] -p ...
- 如何区分SNAT和DNAT
从定义来讲它们一个是源地址转换,一个是目标地址转换.都是地址转换的功能,将私有地址转换为公网地址.要区分这两个功能可以简单的由连接发起者是谁来区分: 内部地址要访问公网上的服务时(如web ...
随机推荐
- 2022-05-05:给定一个正数num,要返回一个大于num的数,并且每一位和相邻位的数字不能相等. 返回达标的数字中,最小的那个。 来自微软。
2022-05-05:给定一个正数num,要返回一个大于num的数,并且每一位和相邻位的数字不能相等. 返回达标的数字中,最小的那个. 来自微软. 答案2022-05-05: 从左往右看,是否有相邻两 ...
- 2022-04-23:给定一个长度为4的整数数组 cards 。你有 4 张卡片,每张卡片上都包含一个范围在 [1,9] 的数字。您应该使用运算符 [‘+‘, ‘-‘, ‘*‘, ‘/‘] 和括号 ‘
2022-04-23:给定一个长度为4的整数数组 cards .你有 4 张卡片,每张卡片上都包含一个范围在 [1,9] 的数字.您应该使用运算符 ['+', '-', '*', '/'] 和括号 ' ...
- 简单记录一下从网上找到的python的渗透方面的第三方库
python的hacker三方库 Scapy, Scapy3k:发送,嗅探和剖析并伪造网络数据包,可以做交互式应用或单纯的作为库来使用 pypcap, Pcapy and pylibpcap:几个不同 ...
- 云服务器挂载easyconnect
参考:easyconnect命令版地址 https://github.com/Hagb/docker-easyconnect 前提条件: 云服务器(以阿里云服务器 Centos7.6 为例) 用途: ...
- ConcurrentHashMap是如何实现的?
众所周知 ConcurrentHashMap 是 HashMap 的多线程版本,HashMap 在并发操作时会有各种问题,比如死循环问题.数据覆盖等问题.而这些问题,只要使用 ConcurrentHa ...
- Kubernetes(k8s)定时任务:CronJob
目录 一.系统环境 二.前言 三.Kubernetes CronJob简介 四.kubernetes CronJob和Linux crontab对比 五.CronJob表达式语法 六.创建CronJo ...
- C++面试八股文:如何在堆上和栈上分配一块内存?
某日二师兄参加XXX科技公司的C++工程师开发岗位6面: 面试官: 如何在堆上申请一块内存? 二师兄:常用的方法有malloc,new等. 面试官:两者有什么区别? 二师兄:malloc是向操作系统申 ...
- 让ChatGPT来写今年的高考作文,能得几分?
使用最新的ChatGPT4模型,做2023年全国甲卷的高考作文. 作文考试题目如下 人们因技术发展得以更好地掌控时间,但也有人因此成了时间的仆人.这句话引发了你怎样的联想与思考?请写一篇文章. 要求: ...
- ARHUD驾车导航技术概览
ARHUD (Augmented Reality Head Up Display),即增强现实与抬头显示的结合,是一种将渲染元素投影在真实世界的技术,也是目前用户理解成本最低的展示方式. HUD功 ...
- ASL单芯片CS5366TypeC转HDMI4K60HZ加HUB多口方案|CS5366带PD拓展方案原理图
CS5366芯片是ASL集睿致远最新推出的2Len带PD的扩展坞方案芯片,CS5366支持4K60HZ. 在分辨率4K下,刷新率60HZ对于30HZ看似提升不多,但是对于应用在游戏主座的客户来说至关重 ...