locked
用HyperV虛擬主機架NLB,用Unicast mode 模式,網卡位址應該要相同? RRS feed

  • 問題

  • 我是使用HyperV虛擬主機架NLB 兩張網卡
    Unicast mode 模式
    Server 2008R2 Enterprise
    serverA 10.0.0.102 / 192.168.1.102
    serverB 10.0.0.103 / 192.168.1.103
    叢集IP 10.0.0.10 網路位址是02-bf-0a-00-00-0a

    在路由器的畫面如上圖,10.0.0.103的網卡位址與10.0.0.102並不相同

    用getmac
    10.0.0.102兩張網卡位址是
    00-15-5D-3D-83-1A /10.0.0.102
    00-15-5D-3D-83-1B /192.168.1.102

    10.0.0.103兩張網卡位址是
    00-15-5D-3D-83-1D /10.0.0.103
    00-15-5D-3D-83-1C /192.168.1.103

    還是"用Unicast mode 模式,網卡位址會相同"
    這句話指的是兩台的叢集網路位址都是02-bf-0a-00-00-0a
    但實際的網卡位址並不會相同?

    但從102和102裝置管理員看到的位址卻是叢集網路位址02-bf-0a-00-00-0a

    跟用getmac查詢的結果不同,這讓我更疑惑了...

    在網路上有看到討論說
    NLB 在虛擬主機上使用 Unicast mode 會出現問題,必須要改採 Multicase Mode
    此說法是正確的嗎?





    • 已編輯 Dorigo 2012年6月20日 上午 04:03
    2012年6月19日 上午 06:28

解答

  • Hi

    您要在Guest OS的網路卡介面啟用MAC位置詐騙

    預設情況下,Windows 2008 R2的Hyper-V,Guest OS的MAC詐騙是關閉的,非分配到的MAC都無法通過vSwitch,因為無法覆蓋Guest OS的MAC Address(網卡中設定的MAC位址的功能會無效)

    New in Hyper-V Windows Server 2008 R2 Part 2 – MAC Spoofing中的

    未勾選時的第五點及勾選時的第四點就有提到這個問題

    When the checkbox is not checked (i.e. the port is in “secure” mode):

    5.Attempts to override the MAC address inside the virtual machine are ignored.

    When the checkbox is not checked (i.e. the port is in “less secure” mode):

    When the checkbox is not checked (i.e. the port is in “secure” mode):

    1. The MAC address set in the Virtual NIC settings page (either static or the dynamically assigned on) is the only MAC address a virtual machine can specify for the source MAC address in any packets it sends.
    2. The virtual machine will only receive unicast packets with a destination MAC address matching the address in the virtual NIC settings page, and packets destined for its MAC won’t be flooded to other ports.
    3. As our virtual switch is a learning switch, we maintain various internal structures including a routing table. When the virtual machine starts and we power-on the virtual NIC, we pin the MAC address in the virtual NIC settings page into the routing table to ensure it cannot move to another port. We stop any more learning on that port.
    4. When traffic needs to be flooded by the switch to switch ports, we do not flood traffic to ports running in “secure” mode.
    5. Attempts to override the MAC address inside the virtual machine are ignored.

    When the checkbox is checked (i.e. the port is in “less secure” mode):

    1. The virtual machine can send and receive traffic using any MAC address
    2. The virtual machine receives flooded unicast packets
    3. Learning is enabled on the switch port so that multiple MAC addresses can be learnt on that port. No pre-population of the routing table is performed and MAC addresses for a port are learnt as traffic passes through the switch.
    4. Virtual machines can override their MAC address.


      Best Regards, Daniel Liang


    • 已編輯 Daniel-Liang 2012年6月20日 上午 11:37
    • 已提議為解答 AChange 2012年6月22日 上午 09:08
    • 已標示為解答 AChange 2012年6月25日 上午 02:16
    2012年6月20日 上午 10:26

所有回覆

  • Hi

    您要在Guest OS的網路卡介面啟用MAC位置詐騙

    預設情況下,Windows 2008 R2的Hyper-V,Guest OS的MAC詐騙是關閉的,非分配到的MAC都無法通過vSwitch,因為無法覆蓋Guest OS的MAC Address(網卡中設定的MAC位址的功能會無效)

    New in Hyper-V Windows Server 2008 R2 Part 2 – MAC Spoofing中的

    未勾選時的第五點及勾選時的第四點就有提到這個問題

    When the checkbox is not checked (i.e. the port is in “secure” mode):

    5.Attempts to override the MAC address inside the virtual machine are ignored.

    When the checkbox is not checked (i.e. the port is in “less secure” mode):

    When the checkbox is not checked (i.e. the port is in “secure” mode):

    1. The MAC address set in the Virtual NIC settings page (either static or the dynamically assigned on) is the only MAC address a virtual machine can specify for the source MAC address in any packets it sends.
    2. The virtual machine will only receive unicast packets with a destination MAC address matching the address in the virtual NIC settings page, and packets destined for its MAC won’t be flooded to other ports.
    3. As our virtual switch is a learning switch, we maintain various internal structures including a routing table. When the virtual machine starts and we power-on the virtual NIC, we pin the MAC address in the virtual NIC settings page into the routing table to ensure it cannot move to another port. We stop any more learning on that port.
    4. When traffic needs to be flooded by the switch to switch ports, we do not flood traffic to ports running in “secure” mode.
    5. Attempts to override the MAC address inside the virtual machine are ignored.

    When the checkbox is checked (i.e. the port is in “less secure” mode):

    1. The virtual machine can send and receive traffic using any MAC address
    2. The virtual machine receives flooded unicast packets
    3. Learning is enabled on the switch port so that multiple MAC addresses can be learnt on that port. No pre-population of the routing table is performed and MAC addresses for a port are learnt as traffic passes through the switch.
    4. Virtual machines can override their MAC address.


      Best Regards, Daniel Liang


    • 已編輯 Daniel-Liang 2012年6月20日 上午 11:37
    • 已提議為解答 AChange 2012年6月22日 上午 09:08
    • 已標示為解答 AChange 2012年6月25日 上午 02:16
    2012年6月20日 上午 10:26
  • 您好,因為我本機的OS是Windows Server 2008 ,不是R2  所以 Hyper-V 虛擬機器自動是可以使用 MAC 位址的詐騙~

    我現在正在試試本機OS改裝R2來看看~

    2012年6月25日 上午 07:07
  • Hi

    如果是Windows 2008的Hyper-V,您可以試著在Guest OS中將網路卡中的【網路位址】內的02-bf-0a-00-00-0a改成02BF0A00000A看看

    因為我印象中,虛擬網卡的那個欄位只能輸入12的字元,它輸入少會沒辦法正確使用那個MAC,多的話我沒試過(GUI不能輸入)

    那個網路位址是由Windows NLB所指定,您可以把【-】都拿掉試看看

    以及您可以參考這篇文章以及Hotfix

    How to Configure a NLB Cluster on a Windows Server 2008 child hosted on a Hyper-V parent

    Windows Server 2008 Hyper-V virtual machines generate a Stop error when NLB is configured or when the NLB cluster does not converge as expected


    Best Regards, Daniel Liang


    2012年6月26日 上午 07:25
  • Unicast mode 模式
    Server 2008R2 Enterprise
    serverA 10.0.0.102 / 192.168.1.102
    serverB 10.0.0.103 / 192.168.1.103
    叢集IP 10.0.0.10 網路位址是02-bf-0a-00-00-0a

    您好,在我把本機的OS換成R2,以及勾選MAC詐騙之後

    10.0.0.102和10.0.0.103都是叢集IP 10.0.0.10的網路位址02-bf-0a-00-00-0a了

    從內部用10.0.0.10來測試網頁,101和102都會輪流運作

    但是我想從外部IP來測試時,卻無法顯示網頁

    是不是路由器的設定有誤或是不支援?

    我是用NAT >> DMZ Host

    將外部IP219.X.X.X對應到叢集IP 10.0.0.10

    煩請指教,謝謝。

    2012年6月26日 上午 08:47
  • Hi

    您的Router有啟用Proxy ARP嗎?

    以及您外部Ping 219.X.X.X有回應嗎?

    您可以參考疑難排解網路負載平衡叢集

    另外您可以參考這篇文章去啟用IP forwarding,Dual-NIC Configuration with Windows Server 2008 NLB Clusters


    Best Regards, Daniel Liang



    • 已編輯 Daniel-Liang 2012年6月26日 上午 11:03 新增參考文章
    2012年6月26日 上午 09:44
  • 啟用Proxy ARP?
    您指的是 綁定 IP 與 MAC 位址嗎?
    把網路位址02-bf-0a-00-00-0a 綁定給 10.0.0.10

    Ping 219.x.x.x是有回應的

    2012年6月27日 上午 03:30
  • Hi

    如果您有指定靜態ARP的話,可以不用開

    如果Ping是有回應的,那麼Telnet 219.x.x.x 80呢?

    另外,您有按照上面所提供的文章啟用IP forwarding了嗎?


    Best Regards, Daniel Liang

    2012年6月27日 上午 04:27
  • 我是採用Via the registry 啟用IP forwarding

    Key name: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters Value Name: IpEnableRouter Data Type: REG_DWORD Value: 1

    努力解決中~

    2012年6月27日 上午 06:25