第六章:交换机的基本配置
二层交换设备工作在OSI模型的第二层,即数据链路层,它对数据包的转发是建立在MAC(Media Access Control )地址基础之上的。二层交换设备不同的接口发送和接收数据独立,各接口属于不同的冲突域,因此有效地隔离了网络中物理层冲突域,使得通过它互连的主机(或网络)之间不必再担心流量大小对于数据发送冲突的影响。
6.1交换机概述
在网络中传输数据时需要遵循一些标准,以太网协议定义了数据帧在以太网上的传输标准,了解以太网协议是充分理解数据链路层通信的基础。以太网交换机是实现数据链路层通信的主要设备,了解以太网交换机的工作原理也是十分必要的。
1、Ethernet_II格式
|
|
|
|
|
表6-1以太帧Ethernet_II格式
DMAC(6B) | SMAC(6B) | Type(2B) | DATA(46-1500B) | FCS(4B) |
- DMAC:目的MAC地址,6字节,该字段标识帧的接收者。
- SMAC: 源MAC地址,6字节,该字段标识帧的发送者。
- Type:协议类型,2字节,常见值:
-
- 0x0800:Internet Protocol Version 4 (IPv4)
- 0x0806:Address Resolution Protocol (ARP)
-
- DATA:数据字段,46-1500字节,标识帧的负载。
- FCS:帧校验序列,4字节,是为接收者提供判断是否传输错误的一种方法,如果发现错误,丢弃此帧。
2、MAC分类
- 单播MAC地址:第8位为0,用于标识链路上的一个单一节点。
- 组播MAC地址:第8位为1,用来代表局域网上的一组终端。
- 广播MAC地址:全1 ,用来表示局域网上的所有终端设备。
3、冲突域:连接在同一共享介质上的所有节点的集合
4、广播域:一个节点发送一个广播报文其余节点都能够收到的节点的集合
5、交换机的原理
- 基于源MAC地址学习
- 基于目的MAC地址转发
- 收到的是一个广播帧或者未知的单播帧,除源端口以外所有端口转发
6、交换机的3种转发行为
- Flooding(泛洪):指交换机把从某一个接口收到的数据帧除源端口以外所有的端口转发出去,是一种点到多点的转发行为。交换机在以下情况会泛洪数据帧:
- 收到广播数据帧
- 收到组播数据帧
- 收到未知单手数据帧
- Forwarding(转发):指交换机从某一个接口收到的数据帧从另外一个端口转发出去,是一种点到点的行为。
- Discarding(丢弃):指交换机把从某一端口进来的帧直接丢弃。
6.2ARP概述
在局域网中,当主机或其它三层网络设备有数据要发送给另一台主机或三层网络设备时,它需要知道对方的网络层地址(即IP地址)。但是仅有IP地址是不够的,因为IP报文必须封装成帧才能通过物理网络发送,因此发送方还需要知道接收方的物理地址(即MAC地址),这就需要一个从IP地址到MAC地址的映射。ARP即可以实现将IP地址解析为MAC地址。主机或三层网络设备上会维护一张ARP表,用于存储IP地址和MAC地址的关系。一般ARP表项包括动态ARP表项和静态ARP表项。
1、ARP的报文格式如表6-2所示
表 6-2 arp的报文格式
Hardware Type | Protocol Type | |
Hardware Length | Protocol Length | Operation Code |
Source Hardware Address | ||
Source Protocol Address | ||
Destination Hardware Address | ||
Destination Protocol Address | ||
网络设备通过ARP报文来发现目的MAC地址。ARP报文中包含以下字段:
- Hardware Type表示硬件地址类型,一般为以太网;
- Protocol Type表示三层协议地址类型,一般为IP;
- Hardware Length和Protocol Length为MAC地址和IP地址的长度,单位是字节;
- Operation Code指定了ARP报文的类型,包括ARP Request和ARP Reply;
- Source Hardware Address指的是发送ARP报文的设备MAC地址;
- Source Protocol Address指的是发送ARP报文的设备IP地址;
- Destination Hardware Address指的是接收者MAC地址,在ARP Request报文中,该字段值为0;
- Destination Protocol Address指的是接收者的IP地址。
2、ARP的分类
- 动态ARP
动态ARP表项由ARP协议通过ARP报文自动生成和维护,可以被老化,可以被新的ARP报文更新,可以被静态ARP表项覆盖。动态ARP适用于拓扑结构复杂、通信实时性要求高的网络。
- 静态ARP
静态ARP表项是由网络管理员手工建立的IP地址和MAC地址之间固定的映射关系。静态ARP表项不会被老化,不会被动态ARP表项覆盖。
- 免费ARP
设备主动使用自己的IP地址作为目的IP地址发送ARP请求,此种方式称免费ARP。
免费ARP有如下作用:
IP地址冲突检测:当设备接口的协议状态变为Up时,设备主动对外发送免费ARP报文。正常情况下不会收到ARP应答,如果收到,则表明本网络中存在与自身IP地址重复的地址。如果检测到IP地址冲突,设备会周期性的广播发送免费ARP应答报文,直到冲突解除。
用于通告一个新的MAC地址:发送方更换了网卡,MAC地址变化了,为了能够在动态ARP表项老化前通告网络中其他设备,发送方可以发送一个免费ARP。
- proxy ARP(代理ARP)
如果ARP请求是从一个网络的主机发往同一网段但不在同一物理网络上的另一台主机,那么连接这两个网络的设备就可以回答该ARP请求,这个过程称作ARP代理(Proxy ARP)。
6.3实验一:交换机的基本原理
- 实验需求
- 掌握交换机的基本原理
- 实验拓扑
实验拓拓扑如图6-1所示:
图6-1 交换机基本原理
- 实验步骤
(1)步骤1:配置IP地址
PC1的配置如图6-2所示:
在ipv4下选择静态配置,输入对应的ip地址以及子网掩码,然后点击应用。PC2、PC3、PC4同理,在这里就不在阐述了。
图6-2 在PC1上手动添加IP地址
PC2的配置如图6-3所示:
图6-3 在PC2上手动添加IP地址
PC3的配置如图6-4所示:
图6-4在PC3上手动添加IP地址
PC4的配置如图6-5所示:
图6-5 在PC4上手动添加IP地址
- 实验调试
- 查看交换机的MAC地址表
<Huawei>system-view
[Huawei]undo info-center enable
[Huawei]sysname LSW1
[LSW1]display mac-address //查看MAC地址表
[LSW1]
可以看到交换机的MAC地址表为空,表示交换设备在没有开始转发数据的时候,mac地址默认为空的。
- 在PC1上访问PC4,如图6-6所示:
6-6 PC1上显示的ping程序测试信息
- 查看交换机的MAC地址表
[LSW1]display mac-address
MAC address table of slot 0:
-------------------------------------------------------------------------------
MAC Address VLAN/ PEVLAN CEVLAN Port Type LSP/LSR-ID
VSI/SI MAC-Tunnel
-------------------------------------------------------------------------------
5489-98a4-2b3b 1 - - GE0/0/1 dynamic 0/-
5489-982c-5442 1 - - GE0/0/4 dynamic 0/-
-------------------------------------------------------------------------------
Total matching items on slot 0 displayed = 2
以上显示了交换机SW1的mac地址表,具体含义如下:
①其中mac-address字段代表学习到的mac地址。
②Vlan字段表示交换机端口所在的vlan。
③Type字段代表填充mac地址的方式,dynamic表示mac地址是交换机动态学习到的,static表示mac地址是交换机静态配置的。
可以看到上表中交换机学习到了PC1和PC4的mac地址,并且都是动态学习到的。
【思考】:PC1访问PC4数据转发过程?
- PC1封装时没有PC4的MAC地址,要通过ARP知道PC4的MAC地址
- PC1封装数据,把它从E0/0/1口转发给交换机
- 交换机收到数据后,查看数据帧,第一步:学习PC1的MAC地址,第二步:泛洪数据帧
- PC2、PC3收到数据包以后不做处理,PC4收到数据包后要给PC1回应,从E0/0/1发出
- 交换机收到数据帧,第一步:学习PC4的MAC地址,第二步:从G0/0/1口转发出去
- PC1收到数据包
6.4实验二:动态ARP的原理与配置
1、实验目的:
①掌握ARP表项的内容
②掌握ARP动态获取mac地址的过程
2、实验拓扑
实验拓扑如图6-7所示
图6-7 动态arp实验
3、实验步骤:
(1)PC1的IP地址配置如图6-8所示
图6-8 PC1的ip地址配置
(2)PC2的ip地址配置如图6-9所示
图6-9 PC2的ip地址配置
(3)查看PC机的ARP缓存表
查看PC1的ARP缓存表,在PC的命令行界面输入arp -a,如图6-10所示
图6-10 PC1初始化的arp表项
查看PC2的ARP缓存表,在PC的命令行界面输入arp -a,如图6-11所示
图6-11 PC2的初始化ARP表项
以上显示了PC1和PC2的arp缓存表,具体含义如下:
①internet address :代表ip地址
②physical address :代表mac地址
③type: 代表arp表项的形成方式,static 为静态的arp表项,dynamic为动态学习的arp表项。
通过上图可以看到,对于PC1和PC2来说,arp表项初始为空,而PC进行数据帧的封装,必须知道目的主机的目的mac地址,因此需要arp协议来获取目的主机的mac地址。
(4)在PC1上访问PC2,并查看PC1的ARP缓存表,如图6-12所示
图6-12 在PC1上访问PC2并查看ARP缓存表
在PC2上查看ARP的缓存表,如图6-13所示
图6-13 在PC2查看arp缓存表
可以看到PC1学习到了10.1.1.2这个ip地址对应的mac地址为54-89-98-08-0B-8F。PC2学习到了10.1.1.1这个ip地址对应的mac地址为54-89-98-4C-14-70。
(5):查看抓包结果如图6-14所示
图6-14 arp抓包结果
(5)双击进入arp请求包,查看结果,如图6-15所示
图6-15 pc1发送的arp请求报文
(6)双击进入arp响应包,查看结果,通过发送者的mac地址和ip地址,pc1则能够知道pc2的mac和ip的对应关系,添加到arp的缓存表,如图6-16所示
图6-16 pc2发送的arp响应报文
【技术要点】:
PC1访问PC2动态学习mac地址的工作过程
①PC1访问PC2前,首先查看自己的arp缓存表,缓存表项为空,因此PC1不知道PC2的mac地址,无法封装数据帧的目的mac地址字段;
②PC1以广播报文的形式发送arp request报文请求PC2的mac地址,arp请求包中还会携带PC1的IP地址10.1.1.1以及mac地址54-89-98-4C-14-70;
③交换机的G0/0/1接口接收到广播报文后会将此报文通过泛洪的方式发送给PC2;
④PC2收到PC1发送的arp request报文后,由于arp request报文中携带PC1的ip地址及mac地址,则先把PC1的ip及mac的对应关系添加到自己的arp缓存表中,然后再通过查找本身因此的arp缓存表以单播的形式回归arp reply报文,arp reply报文就包含了PC2的ip地址10.1.1.2及PC2的mac地址54-89-98-08-0B-8F;
⑤交换机收到了单播报文后,会将此报文转发给PC1;
⑥PC1收到arp reply报文后,将得知PC2的mac地址及IP地址的对应关系并加入到自己的缓存表中。
6.5实验三:静态ARP的原理与配置
1、实验目的:
①掌握静态arp的配置方式
2、实验拓扑
实验拓扑如图6-17所示
图 6-17 静态arp
3、实验步骤:
(1):配置PC的ip地址,与实验二一致(略)
(2):查看PC1的MAC地址,如图6-18所示
图6-18 查看pc1的mac地址
(3)查看PC2的MAC地址,如图6-19所示
图6-19查看 pc2的mac地址
(4):在pc1的命令行界面配置静态arp绑定,如图6-20所示
图6-20 pc1的静态arp绑定配置
(5):在pc2的命令行界面配置静态arp绑定,如图6-21所示
图6-21 pc2的静态arp绑定配置
6.6实验四:代理ARP的原理与配置
1、实验目的:
①掌握arp代理的配置
②理解arp代理的工作原理
2、实验拓扑
实验拓扑如图6-22所示
图6-22 静态ARP的原理与配置
3、实验步骤:
(1)PC1的ip地址配置,如图6-23所示
图6-23 PC1的ip地址配置
(2)PC2的ip地址配置,如图6-24所示
图6-24 PC2的ip地址配置
(3):配置路由器的接口ip地址
<Huawei>system-view
Enter system view, return user view with Ctrl+Z.
[Huawei]sysname AR1
[AR1]int
[AR1]interface g0/0/0
[AR1-GigabitEthernet0/0/0]ip address 10.1.1.1 24 //配置G0/0/0口的ip地址
[AR1]interface g0/0/1
[AR1-GigabitEthernet0/0/1]ip address 10.1.2.1 24//配置G0/0/1口的ip地址
(4):在没有配置arp代理前测试pc1是否能访问pc2,如图6-25所示
图6-25配置arp代理前的测试结果
通过以上输出可以看到在没有配置arp代理前pc1无法访问pc2,原因是由于PC1和PC2的ip分别为10.1.1.2/16、10.1.2.2/16,都属于10.1.0.0/16网段,相同网段设备互访会使用二层通信,此时PC1会发送arp请求报文(广播包)请求PC2的mac地址,而路由设备会隔离广播域,因此不会将这个arp报文转发给PC2,因此PC1学习不到PC2的mac地址,无法封装数据帧,导致无法互访。
(5):在路由器的接口上配置arp代理
[AR1]interface g0/0/0
[AR1-GigabitEthernet0/0/0]arp-proxy enable //在G0/0/0口开启arp代理功能
[AR1]interface g0/0/1
[AR1-GigabitEthernet0/0/0]arp-proxy enable //在G0/0/1口开启arp代理功能
(6):测试PC1是否能够访问PC2,如图6-26所示
图6-26 配置arp代理后的测试结果
可以看到,PC1可以访问PC2并且学习到了PC2的ip地址和mac地址的对应关系,但是细心的读者可能发现这个mac地址并不是PC2的mac地址,因为PC2的mac地址其实是54-89-98-B7-28-D1,而这里PC1学习到的mac地址为00-E0-FC-F0-54-3A。这是什么原因产生的呢?
接下来我们来了解下arp代理的工作工程:
①PC1访问10.1.2.2,由于与本身配置的ip地址10.1.1.2属于相同网段,因此PC1会发送arp request报文请求PC2的mac地址;
②由于路由器会隔离广播包,因此在没有配置arp代理前两台设备无法互访;
③在路由器上面配置了arp代理后,路由器收到arp request报文后,路由器会查找路由表,由于PC2与路由器直连,因此路由器存在PC2的直连路由表项,此时路由器使用自己的mac地址给PC1发送arp应答报文;
④PC1收到了路由器的arp应答报文,将路由器的G0/0/0口的mac地址与PC2的ip地址做arp映射,下次数据转发使用路由器的mac地址进行数据转发,此时路由器相当于PC2的代理。
(7):查看路由器的G0/0/0口的mac地址,观察是否与PC1上学习到的mac地址一致。
<AR1>display interface g0/0/0
GigabitEthernet0/0/0 current state : UP
Line protocol current state : UP
Last line protocol up time : 2022-05-30 14:21:39 UTC-08:00
Description:HUAWEI, AR Series, GigabitEthernet0/0/0 Interface
Route Port,The Maximum Transmit Unit is 1500
Internet Address is 10.1.1.1/24
IP Sending Frames’ Format is PKTFMT_ETHNT_2, Hardware address is 00e0-fcf0-543a
…………………………
可以发现路由器的G0/0/0接口的mac地址为00e0-fcf0-543a,与PC1上学习到的10.1.2.2的mac地址一致,验证了上面的说法。咱们可以将这种arp代理看作一种arp欺骗,路由器欺骗了PC1,告诉PC1,PC2的mac地址为路由器接口的mac地址,只不过这种欺骗是一种善意欺骗,可以让IP地址属于同一网段却不属于同一物理网络的主机间能够相互通信。
6.7:交换机的基本原理命令汇总
表6-2列出了本章的命令
表6-2交换机的基本原理命令汇总
命令 | 作用 |
display mac-address | 查看交换机的MAC地址表 |
mac-address aging-time | 修改MAC地址表的老化时间 |
Arp -a | 查看PC机的ARP缓存表 |
Arp -s | 在PC机上绑定IP地址和MAC地址 |
arp-proxy enable | 在路由器上开启ARP代理功能 |