当前位置: 首页 > news >正文

H3C交换机MAC VLAN原理及配置示例

    对于不是很常用的MAC VLAN,许多读者都感到很陌生,读者QQ群中也经常见到有读者提到这方面的问题,希望我给予解答。现从笔者编著,目前在全国热销的《Cisco/H3C交换机配置与管理完全手册》(第二版)(与之配套的姊妹篇为《Cisco/H3C交换机高级配置与管理技术手册》)一书中摘选一部分H3C交换机MAC VLAN内容,希望对这些读者有所帮助。如要全面了解Cisco和H3C交换机的MAC VLAN相关知识和配置方法,请参见Cisco/H3C交换机配置与管理完全手册》(第二版)。

19.6  H3C交换机基于MAC地址VLAN配置

  Cisco IOS中的基于MAC地址VLAN一样,H3C交换机中的基于MAC地址VLAN也是一种动态VLAN划分方式。它并不会把某个端口静态地划分到一个特定的VLAN,而是要根据所连主机的MAC地址来动态选择加入到对应的VLAN中。

    我们在第一篇学习Cisco IOS交换机基于MAC地址划分VLAN时已体会到,总体来说还是比较麻烦的,要配置VMPS服务器,还要配置VPMS客户端,而且VMPS服务器目前来说只能由CatOS系统交换机担当,所以要实现基于MAC地址来划分VLAN网络中必须同时有两种操作系统的Cisco交换机,条件也是比较比较苛刻的。相比之下,本节介绍的H3C交换机基于MAC地址的VLAN划分就简单许多。它是按照报文的源MAC地址来定义VLAN成员,将指定报文加入该VLAN的标记后发送。但在H3C以太网交换机中,支持基于MAC地址的VLAN不多,与前面介绍的基于IP子网VLAN一样,主要有S5500S5510S7500E等交换机系列。

   与前面介绍的基于协议VLAN和基于IP子网VLAN一样,基于MAC地址VLAN功能也只能在Hybrid端口配置,而且也主要用于在用户的接入设备的下行端口上进行配置(基于协议VLAN和基于IP子网VLAN也仅在接入设备的下行端口上配置),因此不和聚合功能同时使用。

19.6.1  基于MAC地址VLAN的实现机制

在支持基于MAC地址划分VLANH3C交换机中,划分方式又有三种形式:手动配置静态MAC VLAN动态触发端口加入静态MAC VLAN和动态MAC VLAN

1.    手动配置静态MAC VLAN

    在手动配置静态MAC VLAN方式中,管理员需要手动配置MAC VLAN表项,启动基于MAC划分VLAN的功能,然后手动将对应的端口加入MAC VLAN。这种方式显然工作量比较大,常用于MAC VLAN中用户相对较少的网络环境。在该方式下,MAC VLAN的划分原理如下:

l  当端口收到的报文为不带VLAN标记的报文时,会根据报文的源MAC匹配MAC VLAN表项。首先进行模糊匹配,即查询表中MASKMAC地址掩码)不是全为F(只比较非F的位)的表项。将源MACMASK进行逻辑与运算后再与MAC VLAN表项中的MAC地址匹配,如果完全相同,则匹配成功,给报文添加表项中指定的VLAN ID并转发该报文;如果模糊匹配失败,则进行精确匹配,即查询表中MASK为全F的表项。如果报文中的源MACMAC VLAN表项中的MAC地址完全相同,则匹配成功,给报文添加表项中指定的VLAN ID并转发该报文;如果没有找到匹配MAC VLAN表项,则继续按照基于IP子网VLAN、协议VLAN、端口VLAN的先后顺序进行匹配。

l  当端口收到的报文为带有VLAN标记的报文时,如果VLAN ID在端口中允许通过的VLAN ID列表里时,则接收该报文;否则丢弃该报文。

2.    动态触发端口加入静态MAC VLAN

    在手动配置静态MAC VLAN划分方式中,管理员需要把端口一一加入相应的MAC VLAN,但这里有一个问题,那就是我们有时往往根本不能确定交换机从哪些端口收到属于MAC VLAN的报文,这时我们就不能通过手动方式把相应端口加入到MAC VLAN。此时,就需要借助另一种更加智能的MAC VLAN配置方式,使用动态触发端口加入静态MAC VLAN中。在这种MAC VLAN配置方式中,配置MAC VLAN表项后,管理员只需在端口上启用基于MACVLAN划分功能和MAC VLAN动态触发功能,在端口收到与MAC VLAN表项匹配的报文后,可以通过此报文动态触发端口加入MAC VLAN。其划分原理如下:

l  当端口收到的报文为不带VLAN标记的报文时,按图19-11所示流程进行处理。

l  当收到的报文为带VLAN标记的报文时,处理方式和基于端口的VLAN一样:如果端口允许携带该VLAN标记的报文通过,则正常转发;如果不允许,则丢弃该报文。

  【说明】如果用户在同一端口上同时启用了手动配置静态MAC VLAN和动态触发端口加入静态MAC VLAN,此时端口对收到的非精确匹配的报文将做丢弃处理。

19-11 在收到不带VLAN标记报文时,动态触发端口加入静态MAC VLAN的处理流程

 3. 动态MAC VLAN

   动态MAC VLAN需要和接入认证(比如基于MAC地址的802.1x认证)配合使用,以实现终端的安全、灵活接入。用户在交换机上配置动态MAC VLAN功能以后,还需要在接入认证服务器上配置MAC地址和VLAN的关联关系,这种MAC VLAN的配置就比较麻烦了,本书不做介绍。

   在动态 MAC VLAN 中,用户访问网络时,接入认证服务器先对用户进行认证,如果认证通过,服务器下发 VLAN 信息。交换机会根据用户报文的源 MAC 地址和下发的 VLAN 信息生成 MAC VLAN 表项,并将 MAC VLAN 添加到端口允许通过的 VLAN 列表中。用户下线后,交换机自动删除 MAC VLAN 表项,并将 MAC VLAN 从端口允许通过的 VLAN 列表中删除。

19.6.2 手动配置静态MAC VLAN配置(略)

19.6.3   动态触发端口加入静态MAC VLAN配置(略)

19.6.4  手动配置静态MAC VLAN配置示例

   本示例拓扑结构如图19-11所示。SwitchASwitchBGigabitEthernet1/0/1端口分别连接到两个会议室,Laptop1Laptop2是会议用笔记本电脑,会在两个会议室间移动使用。Laptop1Laptop2MAC地址分别为000d-88f8-4e710014-222c-aa69

    使用时,Laptop1Laptop2要分别用于两个部门的员工,两个部门间使用VLAN100VLAN200进行隔离。现要求这两台笔记本电脑无论在哪个会议室使用,均只能访问自己部门的服务器,即Server1Server2

19-11  手动配置静态MAC VLAN示例拓扑结构

 本示例配置所适用的H3C交换机系列和对应的软/硬件版本如表19-18所示。

19-18  示例适用的H3C交换机系列及软/硬件版本

H3C交换机系列

软件版本

硬件版本

S5500-SI系列以太网交换机

Release 1207软件版本

全系列硬件版本(除S5500-20TP-SI

Release 1301软件版本

S5500-20TP-SI

S5500-EI系列以太网交换机

Release 2102软件版本

全系列硬件版本

S7500E系列以太网交换机

Release 6100Release 6300软件版本

全系列硬件版本

1SwitchA的配置。

1)创建VLAN100VLAN200,并将GigabitEthernet1/0/2配置为Trunk端口,允许VLAN100VLAN200的报文通过。

<SwitchA> system-view

[SwitchA] vlan 100

[SwitchA-vlan100] quit

[SwitchA] vlan 200

[SwitchA-vlan200] quit

[SwitchA] interface GigabitEthernet1/0/2

[SwitchA-GigabitEthernet1/0/2] port link-type trunk

[SwitchA-GigabitEthernet1/0/2] port trunk permit vlan 100 200

[SwitchA-GigabitEthernet1/0/2] quit

2)将GigabitEthernet1/0/1配置为Hybrid端口,并使其在发送VLAN 100VLAN 200的报文时去掉VLAN Tag

[SwitchA] interface GigabitEthernet1/0/1

[SwitchA-GigabitEthernet1/0/1] port link-type hybrid

[SwitchA-GigabitEthernet1/0/1] port hybrid vlan 100 200 untagged

[SwitchA-GigabitEthernet1/0/1] quit

3)创建Laptop1MAC地址与VLAN 100的关联,创建Laptop2MAC地址与VLAN 200的关联,开启GigabitEthernet1/0/1端口的MAC-VLAN功能。

[SwitchA] mac-vlan mac-address 000d-88f8-4e71 vlan 100

[SwitchA] mac-vlan mac-address 0014-222c-aa69 vlan 200

[SwitchA] interface GigabitEthernet 1/0/1

[SwitchA-GigabitEthernet1/0/1] mac-vlan enable

2. SwitchB的配置。

SwitchB的配置与SwitchA完全一致,这里不再赘述。

3Core Switch的配置

1)创建VLAN100VLAN200,并将GigabitEthernet1/0/13GigabitVLANEthernet
1/0/14
端口分别加入这两个VLAN

<CoreSwitch> system-view

[CoreSwitch] vlan 100

[CoreSwitch-vlan100] port gigabitethernet 1/0/13

[CoreSwitch-vlan100] quit

[CoreSwitch] vlan 200

[CoreSwitch-vlan200] port gigabitethernet 1/0/14

[CoreSwitch-vlan200] quit

2)配置GigabitEthernet1/0/3GigabitEthernet1/0/4端口为Trunk端口,均允许VLAN100VLAN200的报文通过。从这里也可以看出,同一个VLAN中可以基于多种VLAN划分方式来添加端口,因为在VLAN 100VLAN 200中,上一步已通过基于端口VLAN划分方式添加了gigabitethernet 1/0/13gigabitethernet 1/0/14两个Access端口。而此处添加的了Trunk端口(在SwitchASwitchB中还通过基于MAC地址划分方式添加了Hybird端口)。

[CoreSwitch] interface GigabitEthernet1/0/3

[CoreSwitch-GigabitEthernet1/0/3] port link-type trunk

[CoreSwitch-GigabitEthernet1/0/3] port trunk permit vlan 100 200

[CoreSwitch-GigabitEthernet1/0/3] quit

[CoreSwitch] interface GigabitEthernet1/0/4

[CoreSwitch-GigabitEthernet1/0/4] port link-type trunk

[CoreSwitch-GigabitEthernet1/0/4] port trunk permit vlan 100 200

[CoreSwitch-GigabitEthernet1/0/4] quit

相关文章:

  • QQ互联redirect uri is illegal(100010)!
  • iterator迭代循环的风格问题
  • [objective-c]关于KVC--KVO--KVB
  • NSStringOC字符串
  • linux 升级kernel
  • 构建私有云和公有云的免费开源软件项目OpenStack
  • KNN算法介绍 | 沙湖王
  • MySQL主从同步设置和同步错误处理
  • Mysql note 2
  • Android拓展系列(8)--Vim插件便捷管理(使用git submodule和pathogen)
  • DHCP中继与vlan的隔离
  • poj 3041 Asteroids(二分图最小顶点覆盖)
  • linux下rsync+inotify实现文件时实同步
  • Windows批处理生成目录树
  • Linux中安装.rpm、.tar和.tar.gz或.tgz包
  • 【vuex入门系列02】mutation接收单个参数和多个参数
  • 2018天猫双11|这就是阿里云!不止有新技术,更有温暖的社会力量
  • IndexedDB
  • iOS筛选菜单、分段选择器、导航栏、悬浮窗、转场动画、启动视频等源码
  • javascript面向对象之创建对象
  • Material Design
  • Nginx 通过 Lua + Redis 实现动态封禁 IP
  • nodejs调试方法
  • SAP云平台运行环境Cloud Foundry和Neo的区别
  • SwizzleMethod 黑魔法
  • 百度地图API标注+时间轴组件
  • 给自己的博客网站加上酷炫的初音未来音乐游戏?
  • 排序(1):冒泡排序
  • 前端每日实战:61# 视频演示如何用纯 CSS 创作一只咖啡壶
  • 自定义函数
  • 新海诚画集[秒速5センチメートル:樱花抄·春]
  • 整理一些计算机基础知识!
  • ​queue --- 一个同步的队列类​
  • ​ssh免密码登录设置及问题总结
  • (13)[Xamarin.Android] 不同分辨率下的图片使用概论
  • (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (HAL库版)freeRTOS移植STMF103
  • (层次遍历)104. 二叉树的最大深度
  • (接口自动化)Python3操作MySQL数据库
  • (强烈推荐)移动端音视频从零到上手(上)
  • (一) storm的集群安装与配置
  • (一)kafka实战——kafka源码编译启动
  • .java 指数平滑_转载:二次指数平滑法求预测值的Java代码
  • .NET Standard、.NET Framework 、.NET Core三者的关系与区别?
  • .NET 跨平台图形库 SkiaSharp 基础应用
  • .NET 中创建支持集合初始化器的类型
  • .NET开发者必备的11款免费工具
  • .NET牛人应该知道些什么(2):中级.NET开发人员
  • .net生成的类,跨工程调用显示注释
  • .NET正则基础之——正则委托
  • .net专家(高海东的专栏)
  • @Autowired和@Resource的区别
  • @data注解_一枚 架构师 也不会用的Lombok注解,相见恨晚
  • @reference注解_Dubbo配置参考手册之dubbo:reference
  • @SpringBootApplication 包含的三个注解及其含义