日历存档: 2011 年 7 月 29 日

二层交换机每个端口有没有MAC地址

分类:思科技术日期:2011-07-29 - 11:17:01评论:12条作者:老谢

今天在一个思科学习群里面看到一个朋友问交换机的每个端口有没有MAC地址

我都第一反应是没有MAC,交换机的MAC是学来的,有一张MAC表来维护

但是有朋友反问,那STP等选举用哪个MAC来选举呢?好吧,无言以对了,开始google

搜了一篇文章以后明白了,二层交换机有一个基本MAC,该MAC可以show version看到

Switch#show version
Cisco IOS Software, C2960 Software (C2960-LANBASE-M), Version 12.2(25)FX, RELEASE SOFTWARE (fc1)
Copyright (c) 1986-2005 by Cisco Systems, Inc.
Compiled Wed 12-Oct-05 22:05 by pt_team

ROM: C2960 Boot Loader (C2960-HBOOT-M) Version 12.2(25r)FX, RELEASE SOFTWARE (fc4)

System returned to ROM by power-on

Cisco WS-C2960-24TT (RC32300) processor (revision C0) with 21039K bytes of memory.

24 FastEthernet/IEEE 802.3 interface(s)
2 Gigabit Ethernet/IEEE 802.3 interface(s)

64K bytes of flash-simulated non-volatile configuration memory.
Base ethernet MAC Address       : 00E0.B0E7.349C
Motherboard assembly number     : 73-9832-06
Power supply part number        : 341-0097-02
Motherboard serial number       : FOC103248MJ
Power supply serial number      : DCA102133JA
Model revision number           : B0
Motherboard revision number     : C0
Model number                    : WS-C2960-24TT
System serial number            : FOC1033Z1EY
Top Assembly Part Number        : 800-26671-02
Top Assembly Revision Number    : B0
Version ID                      : V02
CLEI Code Number                : COM3K00BRA
Hardware Board Revision Number  : 0x01

Switch   Ports  Model              SW Version              SW Image
——   —–  —–              ———-              ———-
*    1   26     WS-C2960-24TT      12.2                    C2960-LANBASE-M

Configuration register is 0xF

图中可以看到,有个基本MAC,这个MAC用于STP选举,而且这个MAC一般会在交换机的标签上说明,可以找找看有木有这个MAC地址

至于每个端口的MAC,可以用show int来查看

创建VLAN路由以后,VLAN的虚拟接口会创建另一个地址,所有VLAN的虚拟接口都使用这个地址。这个地址通常是设备MAC地址+1或者+2。

交换机有一个MAC地址池,一般交换机都有几十个到几百个MAC地址,给每个端口都会分配一个。
这些MAC都是连续的,生成树中的组成交换机ID的MAC一般是VLAN 1的MAC。

交换机的每个端口都有各自的mac地址!
#show int
得到结果是:
交换机的每个端口都有各自的mac地址,而且是逐个加一,
例如:如果交换机的mac地址是000d0.0000.0000.
那么,e0/1 的mac地址为00d0.0000.0001
         e0/2的mac地址为00d0.0000.0002

二层交换机属于数据链路层设备,每个交换机端口都有MAC地址,一个交换机内的所有Ethernet端口的MAC是连续的。二层交换机不具备三层设备的路有功能,但是可以配置1个telnet ip,便于配置管理

三层交换机 路由器的每个端口都有MAC地址,每个端口都可以配ip

——————————————————————————–

为了弄清楚二层交换机的端口MAC作用,继续搜索。。。。。

思科的一句原文

For L2 switches, there are mac addresses for different functions (to be able to communicate (when we want to telnet, ping or do snmp to the switch) and spanning tree (to form the bridge ID).

但是事实上很多交换机不只一个MAC地址,而是每个端口均有一个MAC地址,这个就与Spanning Tree生成树协议有关

运行生成树协议的交换机会发送BPDU获取Bridge ID,Bridge ID中包括网桥的优先级和网桥MAC地址,Bridge ID最小者当选根网桥,在选举出根网桥之后,Spanning Tree协议会在非根网桥选取唯一的根端口,这时就与端口的Port ID相关,在实际应用中是以端口的MAC地址作为Port ID。这就是端口MAC地址的用处之在。实际表现的形式就是交换机本地报文的二层封装,如BPDU。

至于Port ID为何要以MAC地址而不由交换机自定义,我个人的想法是这个原因和网卡MAC地址使用网卡物理地址的原因类似,Port ID要求标识出哪个网桥的哪个端口,使用Bridge ID+Port ID就可以在全网唯一标识一个端口,那采用何种地址方能保证唯一?自然就是MAC地址。

查阅了一些资料,实际上在思科的交换机中端口1存在一个MAC地址,之后的端口依次将1的MAC地址加1作为本端口的MAC。

———————————————————————————

下面是交换机MAC的问题于CCIE的一段对话

交谈中请勿轻信汇款、中奖信息、陌生电话,勿使用外挂软件。

查扣  11:45:46

  二层交换机 照理没有物理口mac

查扣  11:45:55

   有的话肯定也是真实的

夏日。  11:46:50

如果没有MAC 那STP如何选举根端口呢?

查扣  11:47:13

stp 的mac是交换机的mac

夏日。  11:47:46

交换机本身只有一个MAC吧 所有的选举都用这一个MAC?

查扣  11:47:56

  是啊

夏日。  11:48:05

根桥 根端口 指定端口 都用这一个MAC?

查扣  11:48:26

    优先级 交换机的mac  端口号 端口优先级,就这些因素吧

查扣  11:48:44

   是啊

查扣  11:48:51

  mac都是指交换机的桥maac

夏日。  11:49:03

端口ID不就是 端口优先级+MAC

夏日。  11:49:27

但是我show int每个端口 发现有自己不同的MAC 是什么情况

查扣  11:49:48

   那也有可能,端口mac一般是桥mac 好像尾数上加上去

查扣  11:49:56

  选跟桥用的肯定是交换机mac

夏日。  11:50:15

桥选举肯定用交换机的MAC没错 我现在疑惑就是端口的MAC

夏日。  11:50:40

那你的意思就是说 交换机的端口有MAC 尾数加上去 这个MAC是虚拟的 而不是物理的?

查扣  11:51:30

   怎么定义虚拟物理

查扣  11:51:44

    这个mac在二层环境是没有意义的

夏日。  11:52:19

我刚刚搜了一下相关的文章说 二层有一个地址池的概念

夏日。  11:53:03

虚拟和物理 我刚刚应该理解错了 网卡的MAC是物理烧制进去的 而交换机的端口MAC可以从地址池获取?

查扣  11:55:19

    mac哪来的获取

夏日。  11:56:15

交换机有一个MAC地址池,一般交换机都有几十个到几百个MAC地址,给每个端口都会分配一个。这些MAC都是连续的,生成树中的组成交换机ID的MAC一般是VLAN 1的MAC。

夏日。  11:56:21

找到的一篇文章的原话

查扣  11:56:35

    就是啊,指的就是交换机的 id

夏日。  11:57:17

这意思不还是 每个端口有一个属于自己的MAC么?

查扣  11:57:19

    生成树里,有root id 就是选出来的 跟桥mac 还有个 bri id 就是本交换机id

查扣  11:57:24

  还有一个cost

查扣  11:57:37

   还有一个 port id 这个你就当时端口序号就可以

查扣  11:58:37

    所谓的端口id就是 根据桥id开始往后自低往高 加1,给上去,无实际意义,只是标示意义

夏日。  11:58:40

哦 就是说每个端口是有MAC来参与计算port id的

夏日。  11:59:20

明白了

查扣  11:59:24

   你也可以理解为 有个mac

夏日。  11:59:43

嗯,理解了 基本根桥ID+1

查扣  11:59:40

   但是计算的时候前面部分相同,实际就是比的最后的,那相当于端口序号

查扣  12:00:02

   而在通讯中,这个端口所谓的mac是无任何意义的

查扣  12:00:08

    在二层概念里

夏日。  12:00:14

嗯 明白

查扣  12:00:17

  当然你三层后,就有意义了

夏日。  12:00:50

那如果划VLAN的话 配置IP 它用哪个MAC呢?

查扣  12:01:35

    划了vlan,自然就是用vlan接口的mac

夏日。  12:02:03

这个VLAN接口的MAC就是交换机本身的MAC+1得到的?

查扣  12:02:11

    你去观察下三层交换机 划几个vlan 这几个vlan 接口的mac有什么特点,你就知道了

夏日。  12:03:01

我是说在二层划VLAN的情况下

查扣  12:03:16

   一样

查扣  12:03:29

    所有vlan的svi接口的mac都一样

查扣  12:03:39

   也就是交换机的 mac

查扣  12:04:04

     所以没啥vlan1 地址这一说

查扣  12:04:11

  vlan2 有地址 mac也是这个

夏日。  12:04:26

svi接口?

查扣  12:04:28

    是哦

查扣  12:04:36

svi 就是 通俗说的vlan接口

夏日。  12:04:49

查扣  12:05:05

   所以他说桥id是vlan1 的mac 不完全确切

查扣  12:05:11

  所有vlan的mac都是这个

查扣  12:05:22

    倒过来理解才对

查扣  12:05:30

    交换机有一个桥id 本身有的

查扣  12:05:42

    交换机上起vlan,默认就借的这个mac

查扣  12:05:45

   是这样的逻辑

夏日。  12:07:01

所有VLAN用同一个MAC 最后确切找到这个VLAN使用IP来找?

查扣  12:07:25

  每个vlan 就是一个广播域,本身各个vlan都是隔开的

查扣  12:07:29

     所以无所谓

查扣  12:07:43

在vlan1的广播域里,这个mac是唯一的

查扣  12:08:10

    通信的时候还是按照arp来找

查扣  12:08:56

    即使不在一个广播域,问题也不大

夏日。  12:09:12

如果划分多个VLAN 比如VLAN10 VLAN20 都用同样的MAC 那么三层设备如何区分这两个广播域?

查扣  12:09:10

  因为这其实是在同一个物理主体上的一个mac

查扣  12:09:25

    你换个方法想

查扣  12:09:42

   不想交换机,就想电脑网卡

查扣  12:09:48

    一个网卡不是可以多个ip吗

查扣  12:09:54

   那不等于多个ip有一个mac

查扣  12:09:57

  不照样能路由

查扣  12:10:37

    数据包只需要正确到这个位置,然后查路由表再封装出去就可以

查扣  12:10:39

  没任何问题

查扣  12:11:16

这样应该想得通了吧,呵呵

夏日。  12:12:49

比如VLAN10的网段是192.168.1.0 VLAN20是192.168.2.0 发进来的包是192.168.2.0这个网络 VLAN1就会丢弃?

查扣  12:13:53

vlan1 ?又没关vlan1的事

夏日。  12:14:14

错了 其他VLAN就会丢弃么

查扣  12:14:27

  数据包到了既然从vlan20的 进入,就只能到vlan20的svi哦

夏日。  12:15:17

二层没有IP的概念 其他网段根本收不到  是吧

查扣  12:15:52

   你通讯的基础是ip。你发一个请求 问2.1 这个的arp,人家回应为aaaaaaa

查扣  12:15:58

  你就往这个mac发

查扣  12:16:14

   你这个 网络有这个mac的就收,只要这个mac上有这个2.1的地址

夏日。  12:16:48

明白了!

夏日。  12:17:08

谢谢查扣啊 耽误你这么久的时间  终于理解了

查扣  12:17:15

   呵呵

夏日。  12:17:26

查扣  12:17:27

  假如这个mac上没有2,1的地址,第一个arp也不会回应

查扣  12:17:31

所以必然会收哦

查扣  12:17:32

呵呵

夏日。  12:17:39

嗯 明白

查扣  12:17:51

   哦

夏日。  12:17:55

非常感谢查扣的耐心解答

查扣  12:17:58

夏日。  12:18:13

那你先忙,不打扰了哈~

查扣  12:18:14

老谢总结:交换机有一个基本MAC,PID=BID+1 所有VLAN都用同一个MAC 可以理解为一张网卡配置多个IP