前言
在我们上网的过程中,不可能只用同一个ip地址来访问,在公网和内网之间,需要一些地址转换来实现公网和内网ip的变化。通常,我们可以使用NAT来做;在公网ip不固定的时候,也需要使用MASQUERADE来做地址转换。
NAT(Network Address Translation)
我们都知道,在ip数据包中,有两个参数可以定位包的源地址和目的地址,一个是源地址ip,一个是目标地址ip。我们常用的NAT有两种,一种是SNAT,修改源地址;一种是DNAT,修改目标地址。
SNAT(Source NAT)
此协议转换包的源地址,通常用于内网ip转公网ip,也就是正向代理会对发出的ip包做SNAT,使其可以传到公网环境中进行下一跳路由动作。
此修改作用于iptables的POSTROUTING阶段,具体命令如下:
iptables -t nat -A POSTROUTING -s <修改之前的ip段> -o <出口网卡> -j SNAT --to-source <修改之后的ip>
DNAT(Destination NAT)
此协议转换包的目的地址,通常用于公网ip转内网ip,也就是反向代理会对收到的ip包做DNAT,使其可以传到内网环境中进行下一跳路由动作。
此修改作用于iptables的PREROUTING阶段,具体命令如下:
iptables -t nat -A PREROUTING -d <需要使用的ip地址> -i <入口网卡> -j DNAT --to-destination <修改之前的ip段>
MASQUERADE(伪装)
当我们的网卡绑定的公网ip是动态的,我们就需要动态读取网卡上的ip信息,这时我们使用MASQUERADE协议可以实现。
当然,MASQUERADE是一种特殊的SNAT,通常用于动态网络环境中,也作用于POSTROUTING阶段。
具体的命令如下:
iptables -t nat -A POSTROUTING -s <修改之前的ip段> -o <出口网卡> MASQUERADE
标签:iptables,转换,MASQUERADE,ip,技术,地址,NAT,公网
From: https://www.cnblogs.com/young233/p/17106304.html