V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Songxwn
V2EX  ›  分享发现

VMware vSwitch - 水平分割的上联接口

  •  
  •   Songxwn · 287 天前 · 794 次点击
    这是一个创建于 287 天前的主题,其中的信息可能已经有所发展或是发生改变。

    博客

    https://songxwn.com/VMware-vSwitch-uplink/

    RSS: https://songxwn.com/atom.xml

    简介

    我在使用 VMware ESXi 的时候发现 vSwitch 两个以上的上联端口,连接同一个交换机,或者同一个二层广播域。

    且没有配置 LACP 或 STP 等协议,但并没有造成二层环路。这是因为 vSwitch 特殊的上联接口的水平分割。(和 iBGP 的水平分割很像)

    即从一个上联端口发过来的报文,不会转发到其他上联端口。( vSwitch 的上联端口是强定义的)

    (包括虚拟标准交换机 VSS 和 虚拟分布式交换机 VDS )

    示例图

    如上图所示,vSwitch0 有四个上联接口连接到物理交换机,且没有 LACP 或 STP 。

    流量会根据每台虚拟机进行负载分担到每个上联接口,当感知到物理故障的时候,则会自动切换。

    也就是说无需任何物理交换机的网络协议参与,即可实现防环、端口流量负载分担、故障感知。

    默认特性

    端口不相等

    在传统的以太网交换机中,所有端口都使用相同的转发规则。虚拟交换机对虚拟下联接口上联接口使用不同的转发规则。

    (强定义的上联接口,下联接口连接虚拟机的虚拟网卡)

    无 MAC 地址学习

    虚拟机监控程序知道 ESXi 服务器中运行的所有虚拟机的 MAC 地址;无需执行 MAC 地址学习。

    生成树协议忽略

    虚拟交换机未运行生成树协议 ( STP ),并且不发送 STP 网桥协议数据单元 ( BPDU )。虚拟交换机接收的 STP BPDU 将被忽略。上行链路永远不会根据 STP 信息被阻塞。

    PS:连接 ESXI 服务器的交换机接口,应该配置 BPDU 保护 ,以防止由于接线错误而导致转发环路。由于 ESXi 不运行 STP ,因此还应该在这些端口上配置 STP 边缘接口。

    水平分割转发

    通过其中一个上联接收的数据包永远不会转发到其他上联接口。此规则可防止通过虚拟交换机导致二层转发环路。

    有限的广播/组播报文泛洪

    由虚拟机发起的广播或多播数据包将发送到同一_端口组_中的所有其他虚拟机( VLAN 的 VMware 术语)。它们也像常规单播数据包一样通过其中一个上行链路发送(它们不会通过所有上行链路泛洪)。这可确保外部网络接收广播的单个副本。

    通过上行链路端口接收的广播/组播将发送到端口组中的所有虚拟机(由 VLAN 标记标识),但不会发送到其他上行链路(请参阅-水平分割转发)。

    没有未知单播泛洪

    从虚拟机发送到未知 MAC 地址的单播数据包通过其中一个上行链路(根据负载平衡模式选择)发送。它们没有被淹没。

    通过上行链路端口接收并寻址到未知 MAC 地址的单播数据包将被丢弃。

    基于源 MAC 地址的反向路径检查

    虚拟交换机向外部网络发送广播/组播/未知单播数据包的单个副本(请参阅上面的无泛洪规则),但物理交换机始终执行完全_泛洪_,并通过所有其他上行链路将数据包的副本发送回虚拟交换机。因此,VMware 必须检查通过上行链路接收的数据包的源 MAC 地址。通过其中一个上行链路接收且源 MAC 地址属于其中一个虚拟机的数据包将被静默丢弃。

    参考

    https://blog.ipspace.net/2010/11/vmware-virtual-switch-no-need-for-stp.html

    1 条回复    2024-01-26 11:03:08 +08:00
    tolbkni
        1
    tolbkni  
       287 天前
    优秀!
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   952 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 22:00 · PVG 06:00 · LAX 14:00 · JFK 17:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.