iptables

随笔2个月前发布 白城
2 0 0

SNAT、DNAT、MASQUERADE

iptables 中可以做多种网络地址转换(NAT),包括 SNAT/DNAT。

iptables

概念

SNAT(source network address translation)是源地址目标转换。比如多个PC机通过同一个路由器上网,每个PC机配置了内网IP,PC机在访问外网时,路由器会将数据包的报头中的源地址替换为路由器IP。当外部网络服务接收到访问请求时,会记录下路由器IP而不是内网IP,这样响应才能到达路由器。

DNAT(destination network address translation)是目标网络地址转换。比如有个web服务器配置的为内网IP,如果该服务器想向外提供服务,就需要在防火墙配置公网IP。互联网上的请求数据包以公网IP为目标IP地址发送到防火墙,防火墙根据端口判断是否访问内网web服务,如果是就重写数据包的报头,并将目的地址改写为web服务器的内网IP,然后将数据包发送到内网web服务器上。

MASQUERADE,地址伪装,算是snat中的一种特例,可以实现自动化的SNAT。

实践

# 将所有属于 10.8.0.0 网段的数据包SNAT成 192.168.5.3 IP地址然后发送出去
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j SNAT --to-source 192.168.5.3

# SNAT 成多个IP然后发送出去
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j SNAT --to-source 192.168.5.3-192.168.5.5

# 自动读取 eth0 的IP地址,然后 SNAT 转换发送出去
iptables-t nat -A POSTROUTING -s 10.8.0.0/255.255.255.0 -o eth0 -j MASQUERADE
© 版权声明

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...