问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

SNAT(源地址转换)、DNAT(目的地址转换)

创作时间:
作者:
@小白创作中心

SNAT(源地址转换)、DNAT(目的地址转换)

引用
CSDN
1.
https://blog.csdn.net/sunrj_niu/article/details/137038491

SNAT-源地址转换、DNAT-目的地址转换

  • SNAT
  • 典型应用场景
  • SNAT实现以及具体使用
  • 1.防火墙开启IP转换的功能
  • 2.源地址转换:通过SNAT源地址转换实现共享上网
  • 3.伪装:不能保证固定公网地址如何使用SNAT源地址转换
  • DNAT
  • 应用场景
  • DNAT实现以及具体使用
  • 1.防火墙主机一定要开启IP转换的功能。

SNAT

典型应用场景

  • snat实现共享上网,即通过SNAT实现局域网多台主机可以通过一个有效的公网ip地址访问外部网络
  • 内网访问外网:当内部网络中的主机需要访问外部网络时,内部主机的私有IP地址需要被转换为公共IP地址,以便外部网络正确识别和响应。这种情况下,SNAT将内部主机的私有IP地址替换为路由器或防火墙的公共IP地址,使得外部网络能够正确响应数据包。例如带动局域网主机上网,公司有很多台电脑,都需要上网,这时就可以在防火墙中配置一个SNAT地址转换,某个网段进入防火墙后通过SNAT修改源地址信息,修改为防火墙的公网地址,由防火墙去互联网环境中请求数据,最后返回给公司电脑,带动局域网上网。
  • 负载均衡:在负载均衡场景中,当负载均衡设备作为代理服务器转发请求时,为了避免外部服务器直接与内部服务器通信,通常会将源IP地址替换为负载均衡设备的IP地址。这样可以隐藏内部服务器的真实IP地址,提高安全性。
  • 保护内部网络:有时候内部网络希望隐藏真实的IP地址,以保护内部网络的安全。通过SNAT,可以将内部主机的IP地址替换为一个公共IP地址,从而隐藏了内部网络的拓扑结构,增强了网络安全性。
  • 访问控制:SNAT也可以用于实施访问控制策略,例如限制特定IP地址范围的主机访问外部网络,或者将特定IP地址范围的主机的流量路由到不同的网络出口。

SNAT实现以及具体使用

SNAT策略只能用在nat表的POSTROUTING链,使用iptables编写SNAT策略时,需要结合–to-source IP地址来指定修改后的源地址。

1.防火墙开启IP转换的功能

无论使用哪种类型的地址转换,防火墙主机一定要开启IP转换的功能。


临时开启
echo 1 > /proc/sys/net/ipv4/ip_forward
永久开启
echo 'net.ipv4.ip_forward=1' >> /etc/sysctl.conf
sysctl -p  

2.源地址转换:通过SNAT源地址转换实现共享上网

如上图所示,公司网段192.168.10.0想要通过防火墙公网地址上网,当数据包进入防火墙时修改源地址信息,公司电脑通过防火墙去上网,会经过的链路有PREROUTING、FORWARD、POSTROUTING,通过防火墙出去修改源地址,很明显需要在POSTROUTING链去添加规则。


[root@sunrj-1 ~]# iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -j SNAT --to-source 172.16.10.1  

解释:将源地址为192.168.10.0/24的转换为防火墙的公网地址172.16.10.1。

3.伪装:不能保证固定公网地址如何使用SNAT源地址转换

在某些情况下,防火墙公网IP不是固定的,针对这种需求、iptables命令提供了一个名为MASQUERADE(伪装)的数据包控制类型,MASQUERADE相当于SNAT的一个特例,同样用来修改数据包源IP地址,只不过它能够自动获取外网接口的IP地址,而无须使用–to-source指定固定的IP地址。


iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE  

DNAT

应用场景

所谓的DNAT目标地址转换指的是修改请求包中的目标地址,很多情况下只有一个公网地址,但是内网服务器有几百台,想要通过一个公网地址访问到内网的所有服务器,就需要用到DNAT目标地址转换的功能了,接收到用户发送的数据包后,修改
数据包中的目标地址,根据来源转发到具体的某台内网服务器中,如下图所示。
DNAT地址转换的应用场景:

  • 端口映射。
  • IP地址映射。

DNAT实现以及具体使用

1.防火墙主机一定要开启IP转换的功能。


临时开启
echo 1 > /proc/sys/net/ipv4/ip_forward
永久开启
echo 'net.ipv4.ip_forward=1' >> /etc/sysctl.conf
sysctl -p  

2.通过DNAT目标地址转换实现IP地址/端口映射

案例描述:
通过公司防火墙的公网地址,映射内网所有主机的22号端口,即使用一个公网地址根据不同的端口转发至不同主机的ssh服务上。
访问防火墙的888端口实际访问的是内网主机192.168.30.21。

访问防火墙的999端口实际访问的是内网主机192.168.30.22。
防火墙规则如下。


[root@ipsec-1 ~]# iptables -t nat -A PREROUTING -d 192.168.20.20 -p tcp --dport 888 -j DNAT --to-destination 192.168.30.21:22
[root@ipsec-1 ~]# iptables -t nat -A PREROUTING -d 192.168.20.20 -p tcp --dport 999 -j DNAT --to-destination 192.168.30.22:22  

注意:原文中提到"未完结 待完善",说明文章可能存在未完成的部分,读者在参考时需要注意这一点。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号