linux oracle 网络安全 编程
分类: 网络与安全
2013-01-08 09:55:39
我想这个问题困惑了多少青葱的少年们!
二层交换机:一个mac
三层交换机:一个端口一个mac
路由器:一个以太网口一个mac,桥接口、串行口没有mac
还是来看看大神的论文:
前两天某同学问的作用,一时还答不出来~~~~~~~~后来求助大神和大神,发现这个问题还真有很多人有误解在里面,不少blog都直接了当地说没有,可明明雷爷上课清清楚楚地讲每端口均有~~~~我国著名网络专家的话还是得听~~后来逛大量的论坛博客归纳了一下众高手的意见和实际交换机配置的信息,给一个总结~~~
交换机的MAC地址在交换机进行数据交换时是没有作用的,因为交换机并不对转发的数据帧进行拆包重封装。所以对于交换机来说,如果只是完成数据帧交换,则可以不要MAC地址(仅指二层交换机,三层交换机完成路由功能自然每个端口得有IP有MAC)。但是,若要求交换机有网管功能,即需要远程登录管理,则交换机必须有一个MAC地址,如此用户才可以对交换机进行远程登录管理。
引用cisco的原文
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。
本文链接地址:
看了大家的热烈讨论帖,我也说两句,呵呵。1,生成树使用桥ID号选举根桥,桥ID有交换机优先级和交换机基本MAC地址构成。这个基本MAC(base mac)地址不是任何端口的mac,端口mac是在这个mac的基础上顺序加1形成的。使用show version命令可以看到这个基本mac地址。使用show spanning-tree 也可以证明是使用该地址做ID号的。2,使用show spanning-tree 可以看到端口ID,由端口优先级(缺省是128)和端口编号/ID构成,这个端口编号既不是物理端口编号,也不是端口MAC地址,只是个数字。3,生成树选举根端口和指定端口时,如果路径开销相等,指定桥ID也相等的话,就比较端口ID(端口优先级+端口ID)。4,目前还没看到使用端口mac的情况。我也请教了一些人,但也没有答案。