免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: zhanglei590
打印 上一主题 下一主题

[网络管理] SNAT与MASQUERADE的区别的一点疑惑 [复制链接]

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
1 [报告]
发表于 2005-03-08 12:33 |显示全部楼层

SNAT与MASQUERADE的区别的一点疑惑

原帖由 "platinum" 发表:
MASQUERADE不管你的地址转换成什么出去,他只以当前网关的DEFAULT GATEWAY做为伪造的源地址,SNAT

实际上MASQUERADE是先取当前网关IP,然后作为源地址出去
SNAT是读取你的配置里面的地址,然后作为源地址出去


嗯? 上面說的有點不怎麼對哦...

不管 MASQUERADE 還是 SNAT, 都是對 source socket 的改寫.
差別是:
SNAT 可改寫為你所指定的 IP
MASQUERADE 則是根據 output 界面當時的 IP 來改寫.
在效能上, SNAT 比 MASQUERADE 要快些, 因為可省掉 IP 判斷的動作.
但從便利來看, 則 MASQUERADE 更為靈活, 無需事先抓出界面的 IP .
然而, 在多個 ip alias 的情況下, MASQUERADE 只能使用原生 IP, 而 SNAT 則可讓你指定你想要的 IP .

之前就討論過了:

http://bbs.chinaunix.net/forum/viewtopic.php?t=343664

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
2 [报告]
发表于 2005-03-08 12:42 |显示全部楼层

SNAT与MASQUERADE的区别的一点疑惑

感謝說明!  ^_^

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
3 [报告]
发表于 2005-03-08 14:30 |显示全部楼层

SNAT与MASQUERADE的区别的一点疑惑

在一個 packet 裡, source socket 就是 source port + source address.

請理解一下 socket pair 在 packet 中的定義.

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
4 [报告]
发表于 2005-03-08 15:13 |显示全部楼层

SNAT与MASQUERADE的区别的一点疑惑

更精確來講,
解開 tcp packet 最前面 16 個 bit 與 ip packet 的第 96 到第 127 個 bit , 就是 source socket .
iptables 程式在作 SNAT 或 MASQUERADE 時, 就是改那裡. 且是 routing process 處理完之後才改的.

解開 tcp packet 第 17 到 32 個 bit 與 ip packet 的第 128 到第 159 個 bit , 就是 destination socket .
那是 DNAT 修改之處. 且是 routing 之前改的.

有空, 再看看我前面貼的貼子吧.

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
5 [报告]
发表于 2005-03-08 15:21 |显示全部楼层

SNAT与MASQUERADE的区别的一点疑惑

煩燥是學習的大殺手. 先靜下來再說吧.
要不, 說話可能很容易衝動的呢~~~ 小心.

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
6 [报告]
发表于 2005-03-09 13:58 |显示全部楼层

SNAT与MASQUERADE的区别的一点疑惑

你說的第二種 case , 應該是有一個 router 吧?
router 的 wan 端是一個 private IP, 而 lan 端是一個 public IP 連著一個劃分下來的 subnet .

若是這樣的話, 其實一點也不難理解.
我們很多時候在 wan-wan 兩個 router 之間用 private IP 來連.
只要 router 收到 packet 能知到 which is next hop 就行了.
至於 packet 到了 next hop , 那是目前的 router 不必管的.
而是 next hop 去重復下一個 next hop 的判定.

假設:
你的 subnet 是 public IP, 接到 router 的 LAN port.
然後 router 的 wan 與 isp router lan port 之間接一個 private IP,
再, isp router 的 wan 再接一個 public 就到 internet 去.

你的 host 只要知到 gw 是你的 router lan port,
然後 router 轉到 isp (不必管它是 public 還是 private IP)
isp 轉到 internet.
這是出去的 packet ...

回來的:
internet 給你的 subnet 的 packet 路由到 isp.
isp 再轉到你的 router (同樣, 別管它是 public 還是 private)
你的 router 轉到 host .
完成!

這裡並沒用到任何的 nat 處理哦...
我想, 這類問題, 轉到 network 版去問, 會有很多人可以回答你.
只是, 我不常去那邊逛啦...
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP