对snat, dnat, 回环的一点认识
对snat, dnat, 回环的一点认识
其实所谓的snat, dnat就是对数据包的源地址和目的地址进行修改,并且保存修改前后的映射关系,并且根据需要进行还原操作。
snat: 出去的时候改变源地址(snat),回来的时候改变目的地址(un_snat)
dnat: 进来的时候改变目的地址(dnat),出去的时候改变源地址(un_dnat)
而所谓的回环,其实是同时用到了snat和dnat,例如:
src 192.168.1.2 (client), dnat 10.14.11.177 (firewall), dst 192.168.2.2 (HTTP Server)
添加回环规则后,从src对10.14.11.177进行请求,然后转到dst,随后进行相反操作,最后src客户端收到源为10.14.11.177,目的包为自身的数据包,因此会正确接收。过程如下:
1. 首先pre,进行目的地址的转换,开始192.168.1.2->10.14.11.177,转换后:192.168.1.2->192.168.2.2 (pre)
2. 然后post,进行源地址的转换,到达真正的http server;post:192.168.1.2->192.168.2.2,转换后10.14.11.177 (post)->192.168.2.2
3. dst进行请求回复,进行pre的反操作,进行源地址的转换:192.168.2.2->10.14.11.177,转换后:10.14.11.177(un_pre)->10.14.11.177
4. 进行post的反操作,进行目的地址的转换:进入un_post:10.14.11.177 ->10.14.11.177 ,转换后:10.14.11.177 ->192.168.1.2 (un_post)
上一篇: 安卓开发中四大组件的哪四个?
下一篇: 外部网关协议RGP