none
區網檔案分享(SMB)在PPPOE連線後變得很慢 RRS feed

  • 問題

  • 環境:
    Server: Windows Server 2012 x64
    Client1: Windows 8 Pro x64
    Client2: Windows 7 Ultimate x64
    全部都接在同一台Switch上,沒有分到其他Router

    Server開了檔案分享(SMB)
    在未做PPPOE外連時,Client1從區網拉檔案速度很正常(100MB/s以上)
    但實際上此時還是有連外,因為NAT作用中。

    但因為一些任務需要PPPOE,但連線後Client1拉檔案的速度就會變得很慢。
    無論用\\電腦名稱或\\區網IP結果都一樣。
    約剩500KB~5MB/s。

    同樣的環境與條件下,Client1對Server走IIS內的FTP並不會有這個問題。
    連線我都設定成私人網路了。

    另外,Client2連Server並不會有這個問題...愈來愈奇怪了。
    整理一下像這樣,以下均為SMB協定的檔案分享:

    Server(無PPPOE) -- Client1  正常
    Server(無PPPOE) -- Client2  正常
    Server(有PPPOE) -- Client1  不正常(慢)
    Server(有PPPOE) -- Client2  正常

    請問這要怎麼檢查問題到底在哪呢?

    • 已編輯 Litfal 2013年1月4日 上午 03:25 狀況更新
    2013年1月4日 上午 03:11

解答

  • 如果你有兩台路由器,我剛想到另一種解法,我沒有實際這樣架,
    可不可行不確定,但或許可以試試看。
    架構上還能避免伺服器直接對外,看你有沒有興趣參考了。 :)

    這也很類似我目前家裡的測試環境,同樣有雙路由器,
    只差在我沒有把數據機當路由器使用,我有獨立的兩台分享器負責撥接。

    RT-N16 接在數據機後方,用它做 PPPoE 並取得固定 IP,
    然後看是要用 Port Mapping 還是 IP Mapping 甚至是 DMZ 方式對應到伺服器,
    再來就是伺服器接在 RT-N16 的後方。

    但是要注意的是 RT-N16 不要開 DHCP,要與目前使用的網段分開,
    譬如伺服器跟 RT-N16 同屬於 192.168.99.0/24 的網段,
    然後伺服器的閘道就是指向 RT-N16。
    或許你接下來會問,那伺服器怎麼跟內部通,
    所以伺服器還要手動設定一組跟內部相同網段的 IP,
    這樣內部才會通,因為是同網段所以不用特別再為這個網段設定閘道。

    數據機 <---> 一般用戶端 (192.168.1.0/24)
    |               |
    - <---> (WAN) RT-N16 <--->  (LAN) <---> 伺服器 (192.168.99.0/24) (192.168.1.0/24)


    蘇老碎碎念
    資訊無涯,回頭已不見岸
    好用的微軟技術支援小工具
    Facebook - 微軟台灣官方論壇愛好者俱樂部
    如何在論壇正確發問,請參考iThome的文章: 如何問到我要的答案

    • 已標示為解答 Litfal 2013年1月16日 上午 06:11
    2013年1月11日 上午 05:09
    版主

所有回覆

  • 可以的話,再詳述一下網路架構及環境,
    譬如網路中是否僅有 Switch 沒有其他負責做 NAT 的路由器等等。

    另外,檢查一下伺服器在 PPPoE 取得對外 IP 後,
    伺服器與 Client1 的路由狀況及閘道,
    或者用 Tracert 看封包的路由狀況。


    蘇老碎碎念
    資訊無涯,回頭已不見岸
    好用的微軟技術支援小工具
    Facebook - 微軟台灣官方論壇愛好者俱樂部
    如何在論壇正確發問,請參考iThome的文章: 如何問到我要的答案

    2013年1月7日 上午 02:32
    版主
  • 我也碰到一樣的情形,我的Server有三張網卡,一張直接對外ADSL

    一樣只要ADSL一開,區網傳檔就變的異常緩慢,原來可以80MB的會降到幾百K~5MB...

    不過這個情形只發生在Windows 8&Windows Server 2012去三張網卡的Windows Sevrer 2012區網抓檔下載時出現

    Windows 7/Windows XP去該Server抓檔卻不會有此情形

    難道是Windows Sevrer的網路QoS機制所導致?

    Windows 7/XP因為不適用該機制所以不受影響...

    樓主也是和我一樣Win 8降速但是Win 7不降速

    我想和網路環境無關,應該是什麼Windows 2012的新機制所導致


    • 已編輯 TOMOKURI 2013年1月7日 上午 09:50
    2013年1月7日 上午 09:48
  • 可以的話,再詳述一下網路架構及環境,
    譬如網路中是否僅有 Switch 沒有其他負責做 NAT 的路由器等等。

    另外,檢查一下伺服器在 PPPoE 取得對外 IP 後,
    伺服器與 Client1 的路由狀況及閘道,
    或者用 Tracert 看封包的路由狀況。


    蘇老碎碎念
    資訊無涯,回頭已不見岸
    好用的微軟技術支援小工具
    Facebook - 微軟台灣官方論壇愛好者俱樂部
    如何在論壇正確發問,請參考iThome的文章: 如何問到我要的答案

    感謝您的幫助。

    我這邊測試的結果,PPPoE連線後,Client1與Server之間就會經過外網再回來,導致速度緩慢。
    很奇怪的是,用固定/浮動IP會導致不同的結果。

    我的Router有開PPPoE+NAT,接上線就有連外了,使用的是@hinet.net的浮動IP。
    由於Server必須使用固定IP,所以我是設定@ip.hinet.net的固定IP。
    有一次我測試發現,若Server改用@hinet.net的浮動IP,就不會有經過外網再連回區網的問題。

    2013年1月7日 下午 01:21
  • 從問題描述可能還是無法清楚知道你的環境架構及相關設備為何,
    所以要確認問題原因可能有點困難,
    但單就資訊安全來看,讓伺服器直接 PPPoE 取得外部 IP 並曝露在外,
    其實風險相當的高,還是建議在伺服器前面有一個路由器代為撥接處理,
    再讓伺服器透過 NAT 方式對外會安全些。

    蘇老碎碎念
    資訊無涯,回頭已不見岸
    好用的微軟技術支援小工具
    Facebook - 微軟台灣官方論壇愛好者俱樂部
    如何在論壇正確發問,請參考iThome的文章: 如何問到我要的答案


    2013年1月8日 上午 02:26
    版主
  • 您說的是。

    前面放個路由器再開NAT會比較安全,雖然麻煩了點,
    但是目前N16還在路上XD

    現在是直接用數據機(P874)的硬體撥接,但怕做Server連線量太大它承受不了,所以先用直接PPPoE、跳過NAT轉發來測試。

    我現在是比較好奇,為什麼會走到比較遠的外網再回來?


    • 已編輯 Litfal 2013年1月8日 下午 12:43
    2013年1月8日 下午 12:42
  • 您可以在 Server 撥接 PPPoE 的「前/後」使用 route print 指令查看 Routing Table 的情況。

    因為 Default Gateway 只能有一個,所以我猜有可能是因為撥接後將本來的 Default Gateway 蓋掉,所以才會造成這種情況?

    2013年1月9日 上午 01:36
  • 奇怪的是都是區網傳檔,應該不會和L3層扯上關係

    Windows Server本身不是Gateway

    且區網的Metric是最大的,同網段應該走區網

    怎麼會走到PPPoE別的網段去,基本上一定有問題...

    同樣環境下Windows Sevrer 2008 /R2都不會有此情形

    換了Windows Sevrer 2012才變這樣

    且Server本身沒有做任何Router設定...

    2013年1月9日 上午 02:24
  • 我測試了一下,在Client1重新開機後,使用\\192.168.1.4 (Server區網IP)訪問清單,並下載一個檔案,
    同時以netstat -n -p TCP 分別測試Server PPPoE前後的差別。(以下資料省略部分連線,x隱藏號,請容我保密一下固定IP)

    Server NO PPPoE
      TCP    192.168.1.204:1048     192.168.1.4:445        ESTABLISHED
      TCP    192.168.1.204:1050     220.x.x.x:445     SYN_SENT

    Server PPPoE
      TCP    192.168.1.204:1051     192.168.1.4:445        ESTABLISHED
      TCP    192.168.1.204:1053     220.x.x.x:445     ESTABLISHED

    445是檔案共享的預設Port,兩組220.x.x.x:445是一樣的。
    各有一筆192.168.1.4:445 ESTABLISHED是訪問清單時的連線。
    很有趣的是,無論Server有無PPPoE,Client1下載時都有訪問 220.x.x.x:445。
    差別在於一個沒有連上所以走區網連線下載;另一個連上了並用該通道下載。

    這樣看起來怎麼比較像Router的問題...

    但我這幾台都接在同一台Switch( Asus GX-D1081 )上面,如果發送目標是走區網,Switch應該會先檢查MAC位置做封包傳遞,而根本不會走到Router吧。
    這麼說來也有可能是Client1(Windows 8)的問題,下載時自動把server:microsoft-ds轉成220.x.x.x:microsoft-ds了。

    至於Routing Table,讓我研究一下再來發,不太熟不知道什麼該藏什麼不該藏。
    • 已編輯 Litfal 2013年1月9日 上午 08:30
    2013年1月9日 上午 08:21
  • 目前使用的路由器是什麼廠牌及型號呢?
    說不定能找到其他的討論資訊。

    蘇老碎碎念
    資訊無涯,回頭已不見岸
    好用的微軟技術支援小工具
    Facebook - 微軟台灣官方論壇愛好者俱樂部
    如何在論壇正確發問,請參考iThome的文章: 如何問到我要的答案

    2013年1月10日 上午 02:17
    版主
  • Zyxel P874,也就是數據機兼路由器。

    正在考慮要繼續專研這個問題,還是接上正職路由器(RT-N16)再測試。

    ==================================================

    後來我把Client1與Server都改接RT-N16,並啟動PPPoE Relay,讓電腦可以自行PPPoE。
    兩台電腦的設定只改Gateway、指向RT-N16,其他都沒變,狀況依舊。

    TCP    192.168.1.7:2557       FS:microsoft-ds        ESTABLISHED
    TCP    192.168.1.7:2558       220-x-x-x:microsoft-ds  ESTABLISHED

    訪問清單都還很乖的走內網,下載就改走外網了...

    其實說真的,不需要走外網做檔案分享的話,把防火牆裡面、TCP Port 445的對外關掉就好。
    但總覺得這個bug在是個疙瘩。
    這個問題不知道怎麼下英文關鍵字去搜尋...

    • 已編輯 Litfal 2013年1月10日 上午 09:15
    2013年1月10日 上午 06:18
  • 如果你有兩台路由器,我剛想到另一種解法,我沒有實際這樣架,
    可不可行不確定,但或許可以試試看。
    架構上還能避免伺服器直接對外,看你有沒有興趣參考了。 :)

    這也很類似我目前家裡的測試環境,同樣有雙路由器,
    只差在我沒有把數據機當路由器使用,我有獨立的兩台分享器負責撥接。

    RT-N16 接在數據機後方,用它做 PPPoE 並取得固定 IP,
    然後看是要用 Port Mapping 還是 IP Mapping 甚至是 DMZ 方式對應到伺服器,
    再來就是伺服器接在 RT-N16 的後方。

    但是要注意的是 RT-N16 不要開 DHCP,要與目前使用的網段分開,
    譬如伺服器跟 RT-N16 同屬於 192.168.99.0/24 的網段,
    然後伺服器的閘道就是指向 RT-N16。
    或許你接下來會問,那伺服器怎麼跟內部通,
    所以伺服器還要手動設定一組跟內部相同網段的 IP,
    這樣內部才會通,因為是同網段所以不用特別再為這個網段設定閘道。

    數據機 <---> 一般用戶端 (192.168.1.0/24)
    |               |
    - <---> (WAN) RT-N16 <--->  (LAN) <---> 伺服器 (192.168.99.0/24) (192.168.1.0/24)


    蘇老碎碎念
    資訊無涯,回頭已不見岸
    好用的微軟技術支援小工具
    Facebook - 微軟台灣官方論壇愛好者俱樂部
    如何在論壇正確發問,請參考iThome的文章: 如何問到我要的答案

    • 已標示為解答 Litfal 2013年1月16日 上午 06:11
    2013年1月11日 上午 05:09
    版主
  • 您好:

    抱歉那麼晚才回覆,這幾天測試你提供的接法,遇到一些問題。
    例如數據機只有100Mbps,如果區網要走1Gbps勢必要再添購一台路由器...
    最後想想,我還是保持單純好了。

    不過經過一陣折騰後,我換回原本的接法與設定值。
    可以確定我的網路設定是跟原本一樣(1月10日6:18、樓上上那篇全部走N16的設定;我有一個文件,紀錄區域網路成員的IP等設定)
    發現我用同樣的方法測試時(Client1下載自Server、用netstat查看連線),Client1不會再嘗試從220.x.x.x的外網IP去連線了。
    起因不明,解決方法也不明...

    沒想到在網路界也有重新編譯就能解掉的bug。
    就當這個問題解決了吧= ="


    • 已編輯 Litfal 2013年1月16日 上午 06:11
    2013年1月16日 上午 06:10
  • 感謝你的測試回報 :D
    網路架構的東西其實也不好搞。

    不過還蠻好奇問題解掉後的路由是不是還跟之前一樣 @@?


    蘇老碎碎念
    資訊無涯,回頭已不見岸
    好用的微軟技術支援小工具
    Facebook - 微軟台灣官方論壇愛好者俱樂部
    如何在論壇正確發問,請參考iThome的文章: 如何問到我要的答案

    2013年1月16日 上午 06:40
    版主