none
Windows 2012 RRAS的NAT功能是否會限制網路傳輸封包大小? RRS feed

  • 問題

  • 各位先進大家好,這幾天公司遇到一台router 故障,維修router 期間,我暫時以windows2012 的 RRAS 功能替代 原本的router連線上大致沒有問題,但是遇到一個很怪的情況,我如果用工作站電腦經過win 2012 的NAT 連到外部網站,封包大小就會被限制在1473 bytes(我用ping - l 指令測試出的最大數值),如果直接從2012 server 連出則無此問題,修改server 的MTU設定仍舊無法解除此限制,因為公司中有一套應用程式會以 socket傳檔給ftp 站台,這個限制會導致應用程式出現connection reset by peer 的例外,對方工程師也不願修改傳輸程式,請問我有什麼設定可以修改讓server 2012 nat 解除這個限制呢?

    • 已編輯 AskaSuModerator 2014年9月24日 上午 04:21 修改標題中不要的題詞,原始標題:請問各位先進,windows 2012 RRAS的NAT功能是否會限制網路傳輸封包大小?
    2014年9月24日 上午 02:48

解答

  • 普遍來說要到達Internet的封包就不會設定超過1500 MTU, 

    因為很可能出現的問題就是

    1. 效能下降, 因為每一個路過的路由器都要把分段了的封包組合又丟出去, 有問題的封包要重發又浪費資源

    2. 中途的路由器把封包丟了, 不是每日個網絡路由器都接受大於1500 MTU的封包

    其實不只是你的RASS這樣,

    極大部份的Ping封包內容最大都是1472 bytes,  這是因為有20 bytes的TCP Header和8 bytes的ICMP header

    在我認識上, 不理會路中設備有沒有支援Jumbo Frame, MTU改變只會影響效能, 不會有連不連到線的問題

    假使每一個路由器都幫你把封包送到FTP站前的交換機, 再交到FTP主機上, 主機NIC成功組合出封包得知封包是自己的

    得到內容, 這已經通過了Layer 2, Layer 3的考驗了, 再來是其他OSI層級有沒有了解到封包內容.

    你可以想像, 你有一堆東西要交給遠方的朋友, 你要一整個20 KG包起來, 還是1 KG的小包丟20件過去

    在結果上對方最後都是收到20 KG, 問題是郵件公司可能會拒絕接收20 KG這種大包裹, 

    但頗肯定不會拒絕1KG的小包裹, 只是拆禮物的一方可能會覺得麻煩一點, 還有就是郵費可能高一點.

    由於不清楚你的程式用甚麼特別方式傳送的, 我也不能斷定我說的就正確....所以只能慢慢討論看看怎樣幫助你了.

    你是從那裡得知, 要連線到FTP站台, 就要調整MTU數字呢?


    邊幫助, 邊鍛鍊

    • 已提議為解答 George.Chang 2014年9月25日 上午 02:11
    • 已標示為解答 George.Chang 2014年9月29日 上午 04:48
    2014年9月24日 上午 06:57
  • 在我所知, RRAS的確有限制MTU在1500, 但情況是在PPP與VPN連線

    而且需要透過修改機碼來改變設定: http://support.microsoft.com/kb/826159

    但NAT. 或Routing有沒有限制MTU就沒有文件顯示.

    而如果是以Active FTP傳輸協定時, 21埠用作傳送指令,

    傳送資料是以20埠連線的, 尤其當你說以2012主機或直駁到ISP路有器就沒問題的話, 這可能是防火牆設定問題, 

    你可以試試用其他FTP客戶端來向FTP站台連線, 看看站台要用Active還是Passive FTP.

    http://slacksite.com/other/ftp.html


    邊幫助, 邊鍛鍊


    2014年9月24日 上午 07:55

所有回覆

  • 你說連到外部網站, 是指網際網絡? 如果是連到網際網絡通常都被其他網絡設備限制在1500 MTU這個標準下,

    扣掉正常TCP Payload就餘下1472 bytes

    除非你的FTP站台在內網, 而且所有設備, 包括你的工作站, 路由器, 交換機, 對口FTP站台一律支援Jumbo Frame而且啟用,

    才可以設定超過這個MTU, 不然就會出現封包出現Fragmentation問題.

    如果你的Windows Server 2012 NAT直出OK, 那問題可能是工作站把封包包裹成1500 MTU了


    邊幫助, 邊鍛鍊

    2014年9月24日 上午 04:09
  • 感謝您的回覆, 我將工作站直接接到ISP的數據機之後, 封包大小就可以超過1472, FTP站台是在網際網路上, 

    且不只該FTP站台, 只要經過NAT的所有封包, 包括8.8.8.8, 168.95.1.1, yahoo, google全都一樣

    Ping 最大只能到1472, 我嘗試修改過SERVER的MTU, 可是沒達到預期的效果,

    請問我是否還有那邊可以修改這個預設的設定呢?

    2014年9月24日 上午 05:33
  • 普遍來說要到達Internet的封包就不會設定超過1500 MTU, 

    因為很可能出現的問題就是

    1. 效能下降, 因為每一個路過的路由器都要把分段了的封包組合又丟出去, 有問題的封包要重發又浪費資源

    2. 中途的路由器把封包丟了, 不是每日個網絡路由器都接受大於1500 MTU的封包

    其實不只是你的RASS這樣,

    極大部份的Ping封包內容最大都是1472 bytes,  這是因為有20 bytes的TCP Header和8 bytes的ICMP header

    在我認識上, 不理會路中設備有沒有支援Jumbo Frame, MTU改變只會影響效能, 不會有連不連到線的問題

    假使每一個路由器都幫你把封包送到FTP站前的交換機, 再交到FTP主機上, 主機NIC成功組合出封包得知封包是自己的

    得到內容, 這已經通過了Layer 2, Layer 3的考驗了, 再來是其他OSI層級有沒有了解到封包內容.

    你可以想像, 你有一堆東西要交給遠方的朋友, 你要一整個20 KG包起來, 還是1 KG的小包丟20件過去

    在結果上對方最後都是收到20 KG, 問題是郵件公司可能會拒絕接收20 KG這種大包裹, 

    但頗肯定不會拒絕1KG的小包裹, 只是拆禮物的一方可能會覺得麻煩一點, 還有就是郵費可能高一點.

    由於不清楚你的程式用甚麼特別方式傳送的, 我也不能斷定我說的就正確....所以只能慢慢討論看看怎樣幫助你了.

    你是從那裡得知, 要連線到FTP站台, 就要調整MTU數字呢?


    邊幫助, 邊鍛鍊

    • 已提議為解答 George.Chang 2014年9月25日 上午 02:11
    • 已標示為解答 George.Chang 2014年9月29日 上午 04:48
    2014年9月24日 上午 06:57
  • 感謝您的回覆, 該系統並非由我們公司撰寫, 主要是由廠商提供, 寫法我沒辦法很明確答覆, 請見諒。

    原來在ROUTER還沒壞掉時, 系統運作一切正常, Router壞掉之後, 我用RRAS來替代原來ROUTER的功能

    公司上下所有網路系統均運作正常, 唯獨該系統無法正常運作, 關閉所有防火牆, IP Filter 也無法正常傳送資料

    在工作站執行 NetStat 也確實看到工作站已連線至該FTP站台的21埠, 但是幾秒後就跳出Connection Reset By Peer

    的例外情況, 上網查詢相關錯誤, 得知與對方連線時有異常中斷的情況, 於是我便想用PING的方式不斷對FTP發送封包

    檢查是否有連線品質不良, 導致瞬斷的情況, 但在PING的過程完全沒發現異常, 再以PING加大SIZE的方式來測試

    就發現了這個情況, 封包不能超過1472的大小, 超過之後對方FTP就不會回應, 後來更發現, 所有外部網站均無法超過1472

    但是同樣情況在用來做RRAS的Windows 2012 SERVER上卻不會發生, 將工作站直接連到ISP數據機, 系統即可正常運作,

    且也相同不會發生封包大小限制情形, 所以我在猜想是否是這個大小限制導致了系統傳輸失敗, 系統分批傳輸的BUFFER

    規劃太大超過1472這個大小, 被NAT拒絕轉寄, 所以才想來此詢問RRAS 的 NAT是否有此限制。

    2014年9月24日 上午 07:33
  • 在我所知, RRAS的確有限制MTU在1500, 但情況是在PPP與VPN連線

    而且需要透過修改機碼來改變設定: http://support.microsoft.com/kb/826159

    但NAT. 或Routing有沒有限制MTU就沒有文件顯示.

    而如果是以Active FTP傳輸協定時, 21埠用作傳送指令,

    傳送資料是以20埠連線的, 尤其當你說以2012主機或直駁到ISP路有器就沒問題的話, 這可能是防火牆設定問題, 

    你可以試試用其他FTP客戶端來向FTP站台連線, 看看站台要用Active還是Passive FTP.

    http://slacksite.com/other/ftp.html


    邊幫助, 邊鍛鍊


    2014年9月24日 上午 07:55
  • 我有試過使用Windows 檔案總管來傳送檔案和下載檔案, 二者不管是否經過NAT, 都能正常運作

    唯獨使用該系統就顯示無法傳送, 對方硬要把責任推到我方更換ROUTER的問題上, 認為我方應解決此問題

    他們的系統萬無一失.....這種態度讓我很不高興, 才想要找出資料來證明他們程式的問題。

    今天ROUTER已修復, 換回原來ROUTER之後, 問題就莫名奇妙結束了, 我還是想找出到底問題出在那裡

    但我想, 我們拿不到程式碼, 實在很難猜出到底為什麼會有此情況。晚點用reflector偷看一下好了...

    2014年9月24日 上午 09:35
  • 謝謝你, 希望能得知你的測試結果

    邊幫助, 邊鍛鍊

    2014年9月25日 上午 01:31