1、vPC概述

如下图所示,在传统网络中,出于冗余考虑,汇聚层往往由2台设备构成,一台接入层交换机使用2根上联链路,分别连接汇聚层2台设备。

这种拓扑所带来的问题是:受制于STP,对于同一个VLAN的流量,接入交换机上联冗余链路,无论是上行还是下行流量,都只有其中1条能被利用。

为了解决这个问题,在DC交换网络中引入了一种名为Virtual Port Channel的技术:

传统的EtherChannel技术无法让channel的一端分布到不同的设备上,如上图中所示,汇聚层2台交换机间可以建立EtherChannel,但是接入层交换机无法汇聚层2台交换机建立channel。而vPC技术正是打破了这个限制,让2台汇聚层交换机对于接入层交换机而言,就好比是1台设备一样,使得接入交换机能与2台汇聚交换机间建立channel。

如下图所示,vPC在不改变物理拓扑的情况下,使得接入交换机能够与2台汇聚交换机建立channel。

其逻辑拓扑如下:

通过在汇聚交换机上配置vPC,使得在接入交换机看来上联的设备只有1台,因而,接入交换机实际上只需要是1台支持EtherChannel的设备即可,甚至也可以是1台服务器。

由此,带来了以下的好处:

冗余拓扑:依然冗余的拓扑保证无单故障点。

无STP阻塞端口:虽然拓扑冗余,但是采用vPC技术后,不会有端口被STP阻塞。

链路充分利用:由于所有端口都处于转发状态,在加之优化的hash算法,使得在vPC网络中,接入设备上联链路能够被充分地利用。

2、vPC的实现

vPC的组成如下图:

vPC:

由vPC peers与下游设备所构建起来的channel。

vPC peer device:

运行vPC的相邻设备。

vPC domain:

由2台vPC peer device所构成的区域。

domain以数字的形式进行表示,相同domain中的vPC peer device必须隶属于同一domain id;不同的domain,其ID必须不一致。

vPC只支持2台设备。构成domain。

vPC member port:

构成vPC channel的位于vPC peer devices上的端口。

vPC peer-link:

用于同步vPC状态信息。

必须先建立peer-keepalive link才能建立peer-link。

peer-link必须是EtherChannel,即便只有1个端口。

peer-link模式必须为trunk。

vPC peer-keepalive link:

用于监控peer device的liveness 。

可以使用management端口、SVI、routed-mode端口——L3接口。

peer-keepalive link中间可以跨越多台L3设备,路由可达即可。

vPC的应用环境可以分为single-sided vPC和double-sided vPC 2种。

Single-sided vPC如图:

vPC peer devices直接与接入交换机或配置EtherChannel的网络终端设备相连。只有汇聚交换机间需要配置vPC。

Double-sided vPC如图:

此时从接入设备-终端设备,汇聚设备-接入设备之间都配置了vPC,逻辑上来看,相当于接入层和汇聚层之间采用4条链路建立了EtherChannel。

注意:由于本文档侧重于介绍以Nexus 3048作为接入交换机的组网方式,其它常见的如Nexus5000+Nexus 2000 Fabric Extenders案例不在此进行讲解。

3、Single-Sided vPC

简介:

在Single-Sided vPC网络中,N3K对下联交换机或服务器通过vPC虚拟化为1台设备。而在N3K的上联方向,N3K并不向上做vPC,这使得在其上游设备(如上联设备为N6K)看来,此设备下联了2台N3K。

如下图,N6K向下做了vPC使得在N3K看来,其上联到1台设备上;N3K向上只是做了普通EtherChannel,使得在N6K看来,它下联到两台N3K上;N3K向下做了vPC,使得在服务器看来,服务器上联到1台设备上。

以N6K为参考视角,其逻辑拓扑如图两台N3K在N6K看来,是一一可见的。

分析:

这种部署方式,使得在N6K与两台N3K之间构成环路,如图:

由于STP的关系,将有1个端口被阻塞。通常情况下,N3K间的互联端口其中之一会被阻塞。

对于从服务器方向上来的流量,由于N3K向下做了vPC,宏观上看,N3K-1与N3K-2收到的流量是均衡的。又因为N3K间互联端口被STP阻塞,这些流量向上转发时,在各自的N3K链路上以负载均衡的方式直接发送到N6K上,4条上行链路能够被充分利用。

对于从N6K方向下来的流量,有2条逻辑链路能将流量发送给下行设备。由于同一个MAC地址只能在交换机上对应1个端口。因此,对于N3K下联的1台设备而言,在上游N6K与N3K间实际只有2条链路能被利用。即便N3K下联的服务器增多,4条链路依然可能不会被很好地平均利用。这主要取决于服务器端ARP响应包发送的路径,以及N3K与N6K间互联链路ARP响应包达到的先后顺序。

此外,由于网络中引入了STP,其复杂性相应提高。特别需要注意的是,务必从配置上确保N6K作为STP网络的主根桥。

配置:

①N6K配置

a.开启相关feature

N6K-1(config)#feature lacp       //用于channel协商,建议使用LACP

N6K-1(config)#feature vpc       //开启vPC特性

N6K-2配置相同

b.配置peer-keepalive link

N6K-1(config)#inter mgmt0

mgmt0是一个三层接口,peer-keepalive link一般建议使用mgmt0,使用routed mode、SVI理论上也是可行的,不过有一说说其它类型接口做peer-keepalive link时,link fails再recovery时,会有问题,还待考证。

N6K-1(config-if)#ip address 1.1.1.1 255.255.255.252

这个IP地址如果不宣告进现网中,是可以随便选用的,保证keepalive link三层互通即可。

N6K-1(config-if)#no shutdown

N6K-1(config)#vpc domain 1

vpc domain在对端N6K上必须一致,N6K与N3K上必须不同

N6K-1(config-vpc)#peer-keepalive destination 1.1.1.2 source 1.1.1.1 vrf management        //VRF注意与对应keepalive接口所属VRF保持一致

N6K-2上类似配置

N6K#show vpc peer-keepalive            //查看peer-keepalive link状态

c.配置peer-link

N6K-1(config)#intere1/45

N6K-1(config-if)#switchport mode trunk           //peer-link要求一定是trunk

N6K-1(config-if)#switchport trunk allowed vlan all    //不一定要all

N6K-1(config-if)#channel-group 100 mode active

E1/46同样的配置

N6K-1(config)#interport-channel 100

N6K-1(config-if)#description vPC peer-link

N6K-1(config-if)#switchport mode trunk

N6K-1(config-if)#switchport trunk allowed vlan all

N6K-1(config-if)#vpc peer-link            //指定该链路为peer-link

N6K-2类似配置

d.加入vPC member ports

N6K-1(config)#intere1/1

N6K-1(config-if)#switchport mode trunk

N6K-1(config-if)#switchport trunk allowed vlan all

N6K-1(config-if)#channel-group1 mode active

N6K-1(config)#intere1/2

N6K-1(config-if)#switchport mode trunk

N6K-1(config-if)#switchport trunk allowed vlan all

N6K-1(config-if)#channel-group 2 mode active

N6K-1(config)#inter port-channel 1

N6K-1(config-if)#description To N3K-1

N6K-1(config-if)#switchport mode trunk

N6K-1(config-if)#switchport trunk allowed vlan all

N6K-1(config-if)#vpc 1         //vpc号不用与channel一致,但是不同member必须不同

N6K-1(config)#interport-channel 2

N6K-1(config-if)#description To N3K-2

N6K-1(config-if)#switchport mode trunk

N6K-1(config-if)#switchport trunk allowed vlan all

N6K-1(config-if)#vpc 2

N6K-2类似配置

②N3K配置

a.开启相关feature

b.配置peer-keepalive link。这里需要注意的是,N3K上的vPC domain number需要与N6K区分。

c.配置peer-link

d.下联服务器接口加入vPC member ports

N3K-1(config)#inter e1/1

N3K-1(config-if)#switchport mode trunk

这里端口的模式与服务器端有关,如果服务器需要承载多个VLAN的流量,则应当配置为trunk。

N3K-1(config-if)#switchport trunk allowed vlan all

实际建议与服务器需要承载的VLAN匹配

N3K-1(config-if)#channel-group 1 mode on

除非明确服务器网卡支持LACP(802.1ad),且你已知道如何进行配置,否则都建议配置为on。

e1/2相同配置

N3K-1(config)#inter port-channel 1

N3K-1(config-if)#description To Server-1

N3K-1(config-if)#switchport mode trunk

N3K-1(config-if)#switchport allowed vlan all

N3K-1(config-if)#vpc 1

e.配置EtherChannel

N3K-1(config)#inter e1/47

N3K-1(config-if)#switchport mode trunk

N3K-1(config-if)#switchport trunk allowed vlan all

N3K-1(config-if)#channel-group 101 mode active

这里的channel-group编号无需与上游一致

e1/48相同配置

N3K-1(config)#inter port-channel 101

N3K-1(config-if)#description To N6K

N3K-1(config-if)#switchport mode trunk

N3K-1(config-if)#switchport trunk allowed vlan all

N3K-2类似配置

N3K-1#show port-channel summary          //检查channel状态

N6K-1#show vpc          //在N6K上检查vPC工作状态

如图所示,该命令可以看到vPC keepalive link的状态、peer-link的状态以及vPC member的可用情况。

③服务器网卡配置

网卡的配置主要取决于服务器的操作系统以及网卡类型,主要的思路是进入该服务器操作系统的网卡配置界面(如vSwitch中的NIC Teaming),在相关网卡上配置网卡的load balancing模式。

以ESXi/ESX 5.1为例,配置步骤如下:

a.点击ESXi/ESX host

b.选择Configuration标签

c.点击Networking link

d.点击Properties

e.在Ports标签中,选择vSwitch,点击Edit

f.选择Networking Teaming标签,在Load Balancing中选择Route based on ip hash

此时,服务器发送的流量将基于Source-Destination哈希运算选择链路,对端N3K的channel mode应当为静态类型。

4、Double-Sided vPC

Double-Sided vPC的物理拓扑接线方式与Single-Sided vPC相同,只是在vPC member指定上有所区别,这使得它们的逻辑拓扑有较大差异。其逻辑拓扑如图2.12所示,在Double-Sided vPC中,由于N3K向上也做了vPC,使得整个网络逻辑拓扑变得非常简单。

好处:

①简化逻辑拓扑

②消除生成树:消除生成树主要带来的好处是进一步降低逻辑复杂度,即便是Double-Sided vPC,N3K间互联链路实际上一般也不走用户流量。

③N3K与N6K互联链路充分利用:这个是部署Double-Sided vPC相较而言最大的好处。

④简化配置

在Single-Sided vPC中,N6K下联方向要建立2个vPC member,而部署Double-Sided vPC时,所有下联N3K端口都划分到1个vPC中;对于N3K而言,也只是增加了1条命令行而已。

配置:

Double-Sided vPC的配置方式与Single-Sided vPC几乎完全相同,只是划分vPC member时有所区别。

在N6K-1与N6K-2上:

N6K-1(config)#inter e1/1

N6K-1(config-if)#sw mode trun

N6K-1(config-if)#sw trun all vlan all

N6K-1(config-if)#channel-group 1 mode active

N6K-1(config)#inter e1/2

N6K-1(config-if)#sw mode trun

N6K-1(config-if)#sw trun all vlan all

N6K-1(config-if)#channel-group 1 mode active

N6K-1(config)#inter port-channel 1

N6K-1(config-if)#description To N3K

N6K-1(config-if)#sw mode trun

N6K-1(config-if)#sw trun all vlan all

N6K-1(config-if)#vpc1

N6K-2相同配置

在N3K-1与N3K-2上

N3K-1(config)#inter port-channel 101

N3K-1(config-if)#sw mode trun

N3K-1(config-if)#sw trun all vlan all

N3K-1(config-if)#vpc 101                  //将po101划入vpc 101中

这里N3K上的vPC number无需与N6K一致

N3K-2相同配置

5、检查命令和注意事项

检查命令:

①查看port-channel状态

Nexus#show port-channel summary

②查看peer-keepalive link状态

Nexus#show vpc peer-keepalive

③查看peer-keepalive link、peer-link及vpc member

Nexus#show vpc

注意事项:

①peer-keepalive所用接口建议使用mgmt,可以使用routed mode port或SVI。

②peer-link必须为Port Channeltrunk mode。

③peer-link建议使用10GE接口,可以使用普通带宽接口。

④同一vPC组的设备必须处于同一vPC domain,不同组其domain必须不同。

⑤同一vPC member的接口,其vPC number必须一致。

⑥如果vPC member ports的模式为trunk,一定确保在该交换机上创建了相关的VLAN,已保证trunk链路能够承载此VLAN流量。

⑦注意查看生成树状态,即便在show vpc都显示up success的情况下,由于STP的配置错误,依然可能会出现vPC member ports被阻塞的情况。

原文链接:https://blog.51cto.com/thely/1570781 (感谢分享)

vpc配置静态ip_vPC配置 - 剪刀石头布Cheers - 博客园相关推荐

  1. android编程获取网络和wifi状态及调用网络设置界面,Android编程获取网络连接状态(3G/Wifi)及调用网络配置界面 - Android平台开发技术 - 博客园...

    获取网络连接状态 随着3G和Wifi的推广,越来越多的Android应用程序需要调用网络资源,检测网络连接状态也就成为网络应用程序所必备的功能. Android平台提供了ConnectivityMan ...

  2. 怎样使用两行代码实现博客园打赏功能

    也许大家看博客园博客的时候,遇到过一些博客右侧,展示了打赏二维码~ 如下图所示 那么,这是怎么实现的呢~~~ 不错,你没猜错,他们使用的是本人写的一个js插件--tctip. 大家搜一下,还能搜到网上 ...

  3. 定制和我一样的博客园主题

    有园友问我的博客园的主题怎么弄的,我答应了要发一篇博文分享一下我的博客主题配置.其实是很简单的,相信懂 CSS 的人都能自己搞,但如果你懒得花时间,正好可以直接复制我写好的配置代码. PS:按照博客园 ...

  4. Windows Live Writer离线博客工具使用教程(适用于博客园、CSDN、51CTO等等博客)

    文章背景 写博客不单是一种记录方式,更是一种工作习惯,与朋友一起分享是一件很快乐的事情,以前写博客,我们都会面临博客自带编辑器上各种头疼问题,比如排版.样式.功能局限性等等.但这些阻止不了我写下去的决 ...

  5. Ubuntu18.04的网络配置(静态IP和动态IP) - OpsDrip - 博客园

    Ubuntu18.04的网络配置(静态IP和动态IP) - OpsDrip - 博客园

  6. 【Android NDK 开发】Android.mk 配置静态库 ( Android Studio 配置静态库 | 配置动态库与静态库区别 | 动态库与静态库打包对比 )

    文章目录 I . Android Studio 中使用 Android.mk 配置静态库 总结 II . 第三方动态库来源 III . 配置 Android.mk 构建脚本路径 IV . 预编译 第三 ...

  7. virtualbox 在物理机是无线网卡的时候做桥接配置 - juandx - 博客园

    virtualbox 在物理机是无线网卡的时候做桥接配置 - juandx - 博客园

  8. 笔记-配置博客园客户端代码高亮(2016.08.20)

    参考博客文章:http://www.cnblogs.com/rollenholt/archive/2012/03/08/2384594.html 下载Window Live Writer 2012 最 ...

  9. 在Windows下配置与使用CVSNT - dudu - 博客园

    导读: dudu为程序员打杂的站长 博客园社区首页新随笔联系管理订阅 随笔- 1060 文章- 241 评论- 22227 在Windows下配置与使用CVSNT 1.下载CVSNT, 下载地址: h ...

最新文章

  1. 设置VSCode终端命令行清除快捷键Ctrl+K或Ctrl+L
  2. make[1]: g++: Command not found
  3. android 设置允许http请求_网络请求框架----OkHttp原理
  4. SHELL编程之执行环境----邹立巍的博客
  5. C语言任何基数转换为十进制(附完整源码)
  6. mysql数据库出现幻读,MySQL 幻读怎样处理?_数据库
  7. mybatis plus 导出sql_软件更新丨mybatis-plus 3.0.7 发布,辞旧迎新
  8. 交换机两个链路相连一些设置
  9. GprMax 3.1.5 建模的in文件编写详解(1)
  10. html5有本地存储吗,HTML5的本地存储
  11. 移动端业务数据管理平台+健康管理平台+banner管理+图标管理+订单管理+门店内容管理+用户信息管理+版本更新管理Axure通用web端高保真交互app业务数据管理平台
  12. 一步一步学Entity Framework 4(2)
  13. 递归+分治+贪心+动态规划
  14. Linux编写带缓存的程序,Video4linux2应用程序编写
  15. vb6 怎么把一个数组的 0 值 去掉_解决逆向查找问题?VLOOKUP、CHOOSE、IF,索引数组,轻松解决...
  16. python爬虫qq付费音乐_Python 应用爬虫下载QQ音乐
  17. 如何友好提示vue3.0不再支持IE11及以下的浏览器版本
  18. xxl-job调度执行器的端口被外部频繁访问造成的错误
  19. 【AI测试】人工智能测试整体介绍
  20. ALtera DE2开发板学习01

热门文章

  1. java单词接龙,百度2016年暑期实习生笔试题 —— 单词接龙
  2. Maven插件之wagon-maven-plugin,远程自动化部署
  3. win浏览器(edge)如何无痕浏览
  4. 技嘉GIGABYTE AERO 15SA风扇噪音过大加油修理方法
  5. matlab 对比汉字,Matlab汉字识别:同样的特征如粗网格,BP和RBF的训练差异
  6. 创业致富故事:本是无心之举,但赶上了风口,4年下来赚了100万
  7. echarts 关系图 option
  8. digitalLogic_根据表达式画电路图的建议(与非门实现全加器实例)
  9. 这份“插件英雄榜Top40”才是Chrome的正确打开方式!(Github7000+ Stars)
  10. Nginx:last 和 break 的区别