cisco VN-Link 介绍

 

Vn-link的作用就是将虚拟机对应的虚拟网卡(Vnic)和CISCO交换机(具有VN-LINK功能的)之间建立一个逻辑的链路。这就好比是服务器(虚拟机)的网卡和接入交换机之间用一条线连起来。实现VN-link 有两种途径,一种是通过nexus 1000v来实现,另一种叫NIV(network interface virtualization)是通过硬件交换机(带VN-LINK功能)配合特殊网卡(带interface virtualizer功能,比如思科的polo卡)来实现。

 

一、 通过nexus 1000V实现VN-LINK

VMware提供了第三方在母鸡上布署软件交换机的API接口。Nexus 1000v 交换机其功能主要是建立一些ACCESS接口(功能NIV件环境下的vEth口)用于连接虚拟机,和一些uplink口,uplink口对应到物理网卡,和上游真实网络交换机相联(该口一般为trunk口,因为要为多个ACCESS口所接的虚拟机做数据转发,这些虚拟机有可能不在同一个vlan)。

 

1.    Nexus1000V由以下两部分组成:

1)Virtual Ethernet module (VEM)-data plane   ------Each hypervisor is embedded with one VEM

2)Virtual supervisor module (VSM)-control plane----独立装在一个物理或虚拟的服务器上(可以和vCenter装在一台服务器上)用来管理所有的Nexus 1000V system(包括VSM自已)。一个VSM可以管理64个VEM,VSM也可以工作在Active/Standby的HA模式。VSM负责运行控制层面协议以及管理VEM,但是不会参与数据转发。

VEM负责在同一个母鸡中各虚拟机之间的数据转发(数据不出母机),同时还负责将去往其他母鸡的数据转发到物理的接入层交换机。

 

2.    在NEXUS1000V中有两种交换接口:

1)  Eth指的是母机上的NIC,比如(config) #int eth2/1,这里的模块号是ESX作为VEM加入nexus 1000时被分配的。接口号则跟网卡的先后顺序号有关。

2)  vEth就是N1K中的ACCESS口,这种口完全是虚拟的,是通过命令来建立的,为了方便vMotion这种口是没有模块号的,也就是说这种口是和具体某台母机(ESX)没有关系的,可以在所有母机中移动,具体会停留在哪个母机中由对应的虚拟机在哪台母机中决定(其实是一个vEth pool)。 

1.     NEXUS 1000V VN-LINK实现过程

1) 建立profile

(config)# port-profile webservers

(config-port-prof)# switchport access vlan 10

(config-port-prof)# ip access-group 500 in

(config-port-prof)# inherit port-profile server

The port profile can then be assigned to a given vEth interface as follows:

(config)# interface veth1

(config-if)# inherit port-profile webservers

先建profile,然后将profile应用到对应的vEther interface上,如果profile修改,会立即对所有调用了该profile的vEther 口产生影响。

在N1K的VSM中定义port-profile,再将port-profile应用到N1K的vEth上。port-profile还分为up-link 和非UP-LINK,连虚拟机的口应用非UP-LINK的profile,连上游物理交换机的口应用UPLINK profile,uplink一般都是trunk。Up-link profile还分为system port-profile(用于传递系统信息,比如VSM和VEM间的控制数据)和uplink port-profile(用于传递网络数据)然后并将这些port-profile推送到vCenter,在vCenter中就会看到N1K中定议的port-profile,其表现为port group(相当于是一个端口池),管理员在创建虚拟机时可以选择所需的port group应用到虚拟机的Vnic上,创建好的虚拟机启动后vNIC就会连接到这个port group中的一个接口。

2) 数据转发过程

   同一母机下的数据转发由VEM本地完成,不出母机网卡。不同母机间通讯。。。。。。

   其所有的通讯过程就会一台物理的交换机完全一样。所不一样的就是他可以实现虚拟机的vMotion。

3)NEXUS 1000V下的vMotion

    Nexus 1000V和VMware的vCenter是高度集成的,他能够完全了解所有服务器虚拟化活动,例如 VMware VMotion。

vCenter kick off 一个vMotion(可以是手动的也可以是自分理处的),并发现一个通知信息NEXUS 1000V交换机;vCenter转移VM文件到新的母机,N1K复制VM的端口状态信息(包括port policy等)到新的母机;VM文件移动完毕,接口up,VM的vNIC和N1K port group池中的一个接口发生Connect。网络接通后VM会通过ARP包宣告自已的MAC在网络中的新的位置。

这里有个问题,在vMotion后虚拟机怎么知道自已和哪个vEth对应(重启也存在这个问题),我想可能是在vCenter中用VM的UUID和profile作了绑定。只要vMotion后UUID不变,其对应的profile也就不会变,那么接到哪个(或什么样的)vEth也就确定了。

 

二、 通过NIV实现VN-LINK

NIV通过硬件交换机(带VN-LINK功能)配合特殊网卡(带interface virtualizer功能,比如思科的polo卡)来实现。带VN-LINK功能的交换机和带interface virtualizer功能网卡都支持VN-Tag技术。实际上就靠VN-Tag建立起了一条VN-LINK(其实就是标签技术)。

 

2.      NIV 简单原理

NIV(network interface virtualization),是CISCO提出的近似于硬件的解决方案,他将所有的交换功能从母机(hypervisor)移走,放到硬件交换机中,从而与物理服务器无关。NIV模式的VIS(virtual interface switch)是不遵从802.1D的,802.1D规定从某个接口收到的数据不可以再从该接口发出去,VIS必须允许此种数据转发才能实现同一母机下不同虚拟机之间的通讯。但是这种转发还是需要适当的标准来防止环路的发生的,思科定义了VNTag协议用于VIS中,利用Tag可以识别数据的来源和要去的目的是不是同一个地方。此协议标准已提交给IEEE802.3工作组。

NIV还需要物理服务器上有interface virtualizer功能来配合,此功能可以通过hypervisor内建的软件实现,也可通过带有此功能的网卡实现。interface virtualizer的功能就是在网卡上建立很多的vEth端口用来和VM的vNIC对应,当vNIC有数据进入vEth时,vEth就会给他打上VN-Tag再发出去,配合VN-Tag功能完成VN-link功能。也就是说NIV解决方案中需要用到interface virtualizer+VNTag+VN-link功能的交换机,最终实现VN-link技术。

 

3.    其工作流程如下:

1)    VN-LINK形成

IV其实可以把他当着一个小的交换机来看待,他俱有很多的vEth口,俱备数据交换功能。在IV和VIS之间运CIV协议(Virtual Interface Control Protocol)。当IV中有新的vNIC建立时,IV使用这个协议请求VIS建立新的VIF,如果要建的VIF在VIS中已经存在且符合IV的要求则不用再新建,如果不存在就按照IV的要求新建一个(IV也可以请求VIS删除已建立的VIF)。新建完VIF后IV可以进一步请求VIS 为某个vNIC enable对应的VIF接口,VIS enable完后会返回一个VIF ID给IV,IV将VIF ID 和vNIC对应到自已的转发表中。这样vNIC和VIF就有了绑定关系,就形成了一条VN-LINK。Link形成后还需要进行地址注册才可以使用该VIF,也就是将vNIC的MAC关联到VIF(就好比是传到交换机的地址学习),这样VIS才会跟据数据帧中目的MAC找到对应的VIF转发出去(并且会打上VN-TAG)。

猜测:在IV的转发表中应该是没有MAC的,只需要根据tag做转发就可以了。

 

2)    数据转发过程

当有数据从服务器到网络时,interface virtualizer会识别数据的源vNIC,并将从此vNIC产生的数据打上一个唯一的tag(即VN-tag)发送出去(VN-Tag封装源目的MAC之内,此Tag的作用应该就是可以让VIS可以据此Tag来决定由哪个VIF来接收此帧或者也有可能是为了防止环路)àVIS收到数据后解出VN-Tag,并根据转发表选择对应的出接口和出VIF,并加上新的VN-Tag(此Tag的作用应该是让目的端的interface virtualizer可以据此选择某个vEth作为出接口,从而对应到相应的vNIC上)à数据到interface virtualizer,interface virtualizer解出VN-Tag,移除VNtag 并将此数据分发到对应的Vnic。

 

interface virtualizer从来不会执行本地不同虚拟机之间的数据交换,交换处理被从hypervisor中解放出来放到物理网络设备上来执行。和interface virtualizer相连的交换机称为virtual interface switch (VIS),此交换机不仅负责不同物理接口间的数据交换,还负责不同virtual interfaces (VIFs)间的数据交换,VIF和vNIC间会有对应关系(通过vEth),不同VIF间的数据交换其实就是不同虚拟机间的数据交互。任何数据交换和策略的实施都是在VIS中,并不是在hypervisor。VIS可以是任意的支持NIV(network interface virtualization)功能的交换机。

 

4.      NIV中 的VMotion

1)      vMotion 目前只能在同一个二层网内发生

2)      vCenter发送vMontion包(从源母鸡发向目标母鸡)

3)      虚拟机的状态信息被copy到目标母鸡

4)      虚拟接口(vEth)状态信息被相应copy到目标母鸡上

5)      通过RARP广播完成MAC在网络中的迁移(从一个理交换机端口到另一个交换机)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值