NAT:Network Address Tranlation(网络地址转换)
SNAT:源地址转换
DNAT:目的地址转换
NAT机制的三个链
- PREROUTING:位于NAT机制的最前面,主要是修改数据包的Destination IP,主要执行DNAT任务。
- POSTROUTING:位于NAT机制的最末端,主要是修改数据包的Source IP,只要执行SNAT任务。
- OUTPUT:当本机进程需要将数据包发出本机时,先要经过OUTPUT链匹配,如果匹配成功允许发出,才会将数据包交给POSTROUTING链进行SNAT
NAT机制的流程
- 数据包传入后先经过PREROUTING链进行DNAT操作,然后将数据包传给路由表
- 路由表对数据包进行拆解分析,如果该数据包是传给本机的,路由表对数据拆解分析后确定匹配成功,则传给本机进程进行处理,如果路由表对数据包惊醒拆解分析后确定不是传给本机的,则直接将其传给POSTROUTING链进行SNAT操作,然后传出
- 当本机需要将某个数据包传出时,本机进程先将数据包传给路由表,路由表拆解分析后传给OUTPUT链进行匹配,若匹配成功,则传给POSTROUTING链做SNAT操作后传出,若匹配不成功,则将数据包丢弃