首页 > 编程知识 正文

snrna和snorna的区别,防火墙snat和dnat

时间:2023-05-03 16:29:18 阅读:116539 作者:3106

SNAT、DNAT、MASQUERADE都是NAT

MASQUERADE是SNAT的特例

所谓DNAT,是指从网卡发送数据包时,通过变更数据包中的目的地IP来访问a,但由于网关正在进行DNAT,所以将访问a的所有数据包的目的地IP都变更为b时,执行

这是因为路由是按照目的地地址选择的,DNAT是在PREROUTING链上进行的,而SNAT是在发送分组时进行的,因此在POSTROUTING链上进行

SNAT是指,当从网卡发送分组时,将分组中的发送源地址部分置换为指定的IP,从而接收端识别为将分组的发送源置换后的IP的主机

MASQUERADE用发送数据的网卡上的IP替换源IP,因此如果IP不是固定的(如拨号或通过dhcp分配IP ),则必须使用MASQUERADE

通过NAT转换将服务暴露到公共网络后,内部网无法通过公共地址访问。 在这种情况下为MASQUERADE

-family:Arial; font-size:14px; line-height:26px">

    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地址转换。


#RouterOS NAT配置

DNAT:


IP --> Firewall --> NAT --> Add New --> 

Enabled True
Chain dstnat
Dst. Address 182.40.111.37
Dst. Port 8080
Action   dst-nat
To Addresses 192.168.19.121
To Ports 8080

--> Apply


MASQUERADE:

IP --> Firewall --> NAT --> Add New --> 

General:
Enabled True
Chain srcnat
Src. Address 192.168.0.0/16
Protocol tcp
Action:
masquerade

--> Apply




版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。