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在网络中的迁移(从一个理交换机端口到另一个交换机)

cisco VN-Link 介绍相关推荐

  1. 关于 Cisco SCE 的介绍

    随着互联网应用的逐步扩大,用户对带宽的要求也越来越多,再加上绝大多少用户对安全使用电脑没有很好的知识.技术.致使电脑经常成为病毒的***者和病毒的散发者,同时也造成网络流量的异常加大.对ISP来说,就 ...

  2. Cisco 防火墙 技术介绍

    我们知道防火墙有四种类型:集成防火墙功能的路由器,集成防火墙功能的代理服务器,专用的软件防火墙和专用的软硬件结合的防火墙.Cisco的防火墙解决方案中包含了四种类型中的第一种和第四种,即:集成防火墙功 ...

  3. cisco STP协议介绍

    spanning tree protocol 生成树协议 作用:通过阻塞特定端口来防止二层交换机环路.进而实现网络的冗余和备份. 交换机环路带来的问题:①广播风暴②mac地址表不稳定③网络卡顿④网络不 ...

  4. cisco packet tracer 介绍

    原文博客链接:https://blog.csdn.net/qq_37992321/article/details/83867600

  5. 3A技术的介绍以及CISCO路由器上相关配置

    CISCO路由器AAA介绍及相关路由配置 3A概念:认证authentication 授权authorization 记帐 accounting cisco为路由器和交换机提供多种3A服务的方法: 1 ...

  6. CISCO交换机与华为交换机链路聚合及IRF

    链路聚合有成端口聚合,端口捆绑,英文名port trunking.功能是将交换机的多个低带宽端口捆绑成一条高带宽链路,可以实现链路负载平衡.避免链路出现拥塞现象.通过配置,可通过两个三个或是四个端口进 ...

  7. 使用npm link 创建本地模块

    1. npm link 介绍 创建一个全局的符号链接,优点是方便我们进行本地node模块的开发调用,和后期发布私服,或者npm 仓库调用是一致的以下为官方的说明:First, npm link in ...

  8. CISCO协议总结大全

    CISCO协议总结大全<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /& ...

  9. 网络——Cisco Packet Tracer 思科模拟器组网实验

    Cisco Packet Tracer介绍 Cisco Packet Tracer是Cisco公司针对CCNA认证开发的一个用来设计.配置和故障排除网络的模拟软件,非常适合网络设备初学者使用. Cis ...

  10. cisco无线网络实施方案

    cisco无线网络实施方案 一.网络环境特点 在室外广场的无线网络应用环境的特点是,广场内的用户是不固定人群,甚至接入设备也会频繁的变化,即网络用户的数量,网络用户的位置,以及网络用户的应用,网络行为 ...

最新文章

  1. 值转换器IValueConverter
  2. 自学python的书籍-Python学习可以用到的书籍有哪些?
  3. [云炬创业管理笔记]第三章测试2
  4. github怎么删除已经发布的Releases
  5. windows mongdb 安装
  6. python 树结构三方包_python第三方库---BeautifulSoup库(搬运)
  7. phpcmsV9 邮箱配置(含图文教程) - 案例篇
  8. 博弈论的经典入门课程和资料
  9. 50款PS完美汉化插件一键安装,win+mac
  10. plc用c语言编程实例,化学反应生产过程的PLC控制编程实例
  11. 图像处理农业应用sci_新增3本SCI期刊,JCR二区、SCI, EI双收 录,影响因子多年增长...
  12. 最新手机语音助手的调研
  13. Seaweeds配置部署
  14. mongo从开始到安装以及遇到的问题
  15. c语言任何一个大于6的偶数均可表示为两个素数之和,C语言:验证哥德巴赫猜想:任何一个大于6的偶数均可表示为2个素数之和...
  16. python3版本升级和系统更新_如何更新mac系统自带的python版本到最新3.3
  17. 使用python框架Django搭建web应用
  18. Linux C/C++ 获取系统时间
  19. 服务器 虚拟机版本,VMWARE-版本比较各版本区别
  20. 开源真的在蚕食整个世界吗

热门文章

  1. 斗地主的制牌、洗牌和发牌
  2. Mac单机安装Hadoop
  3. golang高性能日志库zap的使用
  4. Linux——硬盘分区
  5. mysql、oracle、sqlserver的默认端口号
  6. 什么软件能测试出内存有没有坏,有没有可以检测主板和内存坏没坏的软件
  7. detailview
  8. 擅长To C的腾讯,如何借腾讯云在这几个行业云市场占有率第一?
  9. IDEA代码提示忽略大小写
  10. 【0基础学java】教学日志:javaSE--Stream API