VXLAN 基本信息介绍

VXLAN

    Virtual eXtensible Local Area Network,虚拟扩展局域网;
    是由IETF定义的NVO3(Network Virtualization over Layer 3)标准技术之一,是对传统VLAN协议的一种扩展;
    VXLAN的特点是将L2的以太帧封装到UDP报文中,并在L3进行传输;
    本质上是一种隧道技术,在源网络设备与目的网络设备之间的IP网络上,建立一条逻辑隧道,将用户侧报文经过特定的封装后通过这条隧道转发;

 

设计理念:

VXLAN如何满足虚拟机动态迁移时对网络的要求?
        同一台二层交换机可以实现下挂服务器之间的二层通信,且服务器从该二层交换机的一个端口迁移到另一个端口时,
        IP地址是可以保持不变的。这样就可以满足虚拟机动态迁移的需求了。
        VXLAN的设计理念和目标正是由此而来的;

基本概念:

  VNI:        

    VXLAN在VXLAN帧头中引入了类似VLAN ID的网络标识,称为VXLAN网络标识VNI(VXLAN Network ID),由24比特组成, 理论上可支持多达16M的VXLAN段,从而满足了大规模不同网络之间的标识、隔离需求;

    VNI 分类:           

      二层VNI是普通vni,以 1:1方式映射到广播域BD,实现VXLAN报文同子网的转发;

      三层VNI和VPN实例进行关联,用于VXLAN报文跨子网的转发;

  Vtep:

    vxlan 隧道的端点,报文的封装结与解封装都在此进行;

    可以是物理设备,也可以是服务器等;

  VSI:

    虚拟机交换机实例;
            可当作是vtep 设备上的一个交换机;比如将vlan 10 的报文,它会将报文进行处理,打vxlan 相关报文信息头;

    在虚拟机接入端口上,配置绑定到指定的VSI;
              如:将物理交换机的1口的tag 报文与VSI绑定,那么在转发的时候会将其丢进vxlan 隧道;
                  service-instance  1000    # 创建虚拟交换机实例,标识符为1000;
                      encapsulation s-vid 10 # 将vlan 10 的报文设置为感兴趣流;
                      xconnect vsi vsi1        # 将这个虚拟交换机1000的感兴趣流与vsi 进行绑定;

  AC:

    接入链路,终端接入vtep的逻辑链路,要指定接入到vxlan segment的感兴趣流;

    什么样的流量接入进来呢,比如vlan 10 的,那么这个流就叫AC的感兴趣流;

    如:encapsulation s-vid 10 # 将vlan 10 的报文设置为感兴趣流;

  关联关系:VTEP ---- VSI  ---(虚拟交换机)--物理端口

  VXLAN Vtep mac 地址表

    包含的内容:MAC地址、状态(动态或静态)、VSI Name、Link ID/Name(对应的接口);

    如:

      [SW1]dis l2vpn mac-address
                * - The output interface is issued to another VSI
                MAC Address    State     VSI Name                        Link ID/Name   Aging
                244a-e9a8-0906 Dynamic   vsi1                            Tunnel18       Aging
                24df-e948-0506 Dynamic   vsi1                            GE1/0/1        Aging
                24e0-0479-0606 Dynamic   vsi1                            Tunnel12       Aging
              很直接的可以看出G1/0/1 学习到的mac 地址,对应的VSI等信息;

VXLAN报文:

  如:外层IP头为IPv4格式为例:

     以太帧头(mac) || IP头 || UDP头 || VXLAN头 || 原始数据帧

    VTEP对VM发送的原始以太帧(Original L2 Frame)进行了以下“包装”,增加VXLAN头(8字节),其中包含24比特的VNI字段,用来定义VXLAN网络中不同的租户;

    还包含VXLAN Flags(8比特,取值为00001000)和两个保留字段;

    VXLAN头和原始以太帧一起作为UDP的数据,UDP头中,目的端口号(VXLAN Port)固定为4789,源端口号(UDP Src. Port)是原始以太帧通过哈希算法计算后的值;

    源IP地址(Outer Src. IP)为源VM所属VTEP的IP地址,目的IP地址(Outer Dst. IP)为目的VM所属VTEP的IP地址;

    源MAC地址(Src. MAC Addr.)为源VM所属VTEP的MAC地址,目的MAC地址(Dst. MAC Addr.)为到达目的VTEP的路径中下一跳设备的MAC地址;

    

    注意:

      vxlan封装要占50 字节的长度,所以一般需要在交换机上开启jumbo frame 功能;

 

 

Vxlan 隧道建立:

  简单的理解就是数据报文到达vtep(vsi)后,对原始报文进行封装,在vxlan 通道中进行传输,到达对端口,再对报文进行解封装,再送到到目标;

  vtep 是隧道的起点与终点,报文的封装与解封装都再次进行;

  VTEP既可以是一台独立的网络设备,也可以是在服务器中的虚拟交换机;

  vxlan 隧道建立如:

    interface tunnel 1 mode vxlan

      source 1.1.1.1
      dest 2.2.2.2


  

 

posted @ 2024-08-12 17:20  橘子飞飞  阅读(51)  评论(0编辑  收藏  举报