二层交换设备工作在OSI模型的第二层,即数据链路层,它对数据包的转发是建立在Mac(媒体访问控制)地址基础之上的。
二层交换设备不同的接口发送和接收数据独立,各接口属于不同的冲突域,因此有效地隔离了网络中物理层冲突域,使得通过它互联的主机(或网络)之间不必再担心流量大对数据发送冲突的影响。
在网络中传输数据时需要遵循一些标准,以太网协议定义了数据帧在以太网中的传输标准。
格式名称 | 说明 |
---|---|
DMAC | 目的Mac地址,6B,该字段标识帧的接收者 |
SMAC | 源 Mac地址,6B,该字段标识帧的发送者 |
Type | 协议类型 |
Data | 数据字段,46~1500B。标识帧的负载 |
FCS | 帧校验序列,4B,是一种为接收者提供判断是否传输错误的方法,如果发现错误则丢弃此帧 |
名称 | 说明 |
---|---|
单播MAC地址 | 第8位为0,用于标识链路上的一个单一节点 |
组播MAC地址 | 第8位,为1,用来代表局域网上的一组终端 |
广播MAC地址 | 全1,用来表示局域网上的所有终端设备 |
冲突域是指连接在同一共享介质上的所有节点的集合
广播域是指一个节点发送一个广播报文,其余节点都能够收到的节点的集合
行为方式 | 描述 |
---|---|
Flooding(泛洪) | 交换机把某一个接口接收的数据帧从除源端口以外所有的端口转发出去,是一种点到多点的转发行为。(包含3种情况:收到广播数据帧、收到组播数据帧、收到未知单播数据帧) |
Forwarding(转发) | 交换机从某一个接口收到的数据帧从另一个端口转发出去是一种点到点的行为 |
Discarding(丢弃) | 交换机把从某一端口进行的帧直接丢弃 |
在局域网中,当主机或其他三层网络设备有数据要发送给另一台主机或三层网络设备时,它需要知道对方的网络层地址(即IP地址)
但是仅有IP地址是不够的,因为IP报文必须封装成帧才能通过物理网络发送。
因此发送方还需要知道接收方的物理地址(即MAC地址),这就需要从一个IP地址到Mac地址的映射。
ARP可以实现将IP地址解析为Mac地址。
主机或三层网络设备上会维护一张ARP表,用于存储IP地址和Mac地址的关系。一般ARP表项包括动态ARP表项和静态ARP表项
报文名称 | 描述 |
---|---|
Hardware Type | 硬件地址类型,一般为以太网 |
Protocal Type | 三层协议地址类型,一般为IP |
Hardware Length & Protocol Length | Mac地址和IP地址的长度,单位为字节 |
Operation Code | 指定ARP报文的类型,包括ARP Request和ARP Reply |
Source Hardware | 接收者的Mac地址,在ARP报文中,该字段值为0 |
Destination Protocol Address | 接收者的IP地址 |
种类 | 描述 |
---|---|
动态ARP | 表项有ARP协议,通过ARP报文自动生成和维护,可以被老化,可以被新的ARP报文更新,可以被静态ARP表项覆盖。动态ARP适用于拓扑结构复杂、通信实时性要求高的网络 |
静态态ARP | 是由网络管理员手工建立的IP地址和Mac地址之间固定的映射关系。静态ARP表象不会被老化,不会被动态ARP表象覆盖 |
免费ARP | 设备主动使用自己的IP地址作为目的IP地址发送ARP请求,此种方式称为免费ARP |
用途 | 描述 |
---|---|
IP地址冲突检测 | 当设备接口协议状态变为up时,设备主动对外发送免费的ARP报文,正常情况下不会受到ARP应答,如果收到,则表明本网络中存在与自身IP地址重复的地址。如果检测到IP冲突,设备会周期性的广播发送免费ARP应答报文,直到冲突解除。 |
通告新的Mac地址 | 如:发送方更换了网卡,Mac地址发生了改变。为了能够在动态ARP表象老化前通告网络中其他设备,发送方可以发送一个免费ARP |
代理ARP | 如果ARP请求是从一个网络的主机发送同一个网站,但不同于物理网络上的另一台主机,那么连接这两个网络的设备就可以回答该网ARP请求,这个过程称为代理ARP |
掌握交换机的基本原理
1)PC1的配置
在【IPV4配置】栏中选中【静态】单选按钮,输入对应的【IP地址】【子网掩码】和【网关】,然后点击应用按钮。PC2、PC3、PC4的配置步骤如图所示:
2)PC2的配置
3)PC3的配置
4)PC4的配置
#查看交换机的Mac地址表
<Huawei>system-view
[Huawei]undo info-center enable
[Huawei]sysname LSW1
[LSW1]display mac-address #查看mac地址表
如图所示:
可以看到,交换机的Mac地址表为空,表示交换机设备没有开始转发数据时Mac地址默认是为空的
#在PC1上访问PC4
PC>ping 192.168.1.4
#查看交换机MAC地址表,命令如下:
[LSW1]display mac-address
思考: PC访问PC4的数据转化过程是怎样的?
1)配置PC1的地址
在【IPV4配置】栏中选中【静态】单选按钮,输入对应的【IP地址】【子网掩码】和【网关】,然后点击应用按钮。PC1的配置步骤如图所示:
2)配置PC2的地址
如图所示:
#查看PC1的ARP缓存表,在PC1的命令行界面输入“arp -a”
PC>arp -a
#查看PC2的ARP缓存表,在PC1的命令行界面输入“arp -a”
PC>arp -a
参数名 | 描述 |
---|---|
Internet Address | 代表IP地址 |
Physical Address | 代表MAC地址 |
Type | 代表ARP表项的形式方式 |
#PC1访问PC2,并查看PC1的ARP缓存表
PC>ping 10.1.1.2
PC>arp -a
如图所示:
以上图可以看出PC1学习到了10.1.1.2,这个ip地址对应的mac地址为54-89-98-81-23-EE 。
对刚刚圈出两个抓包数据,双击点击进去查看,如图所示:
技术要点:
PC1访问PC2时动态学习MAC地址的工作过程是怎样的?
ARP request
报文后,会先把PC1的ip地址以及mac地址对应关系添加到自己的ARP缓存表中;1)PC1机静态ARP绑定配置
PC>arp -s 10.1.1.2 54-89-98-2E-6C-F1 #配置静态ARP绑定
PC>arp -a .
PC>arp -a
PC>arp -s 10.1.1.1 54-89-98-F1-65-7C
PC>arp -a
<AR1>system-view
[AR1]undo info-center enable
[AR1]sysname AR1
[AR1]interface g0/0/0
[AR1-GigabitEthernet0/0/0]ip address 10.1.1.1 24
[AR1-GigabitEthernet0/0/0]interface g0/0/1
[AR1-GigabitEthernet0/0/1]ip address 10.1.2.1 24
[AR1-GigabitEthernet0/0/1]
#这是没有配置代理ARP测试的结果
PC>ping 10.1.2.2
如图所示:
以上说明,没有配置代理ARP前,PC1是无法访问PC2的尽管IP分别是10.1.1.2/16、10.1.2.2/16
,且属于10.1.0.0/16
网段,但是对于相同网段设备互访会使用二层通信。
此时PC会发送ARP请求报文(广播包),请求PC2的Mac地址,而路由设备会隔离广播,不会将这个ARP报文转发给PC2。
因此PC1学习不到PC2的Mac地址,无法封装数据帧,导致无法互访。
[AR1-GigabitEthernet0/0/0]quit
[AR1]interface g0/0/0
[AR1-GigabitEthernet0/0/0]arp-proxy enable #在g0/0/0接口开启代理ARP功能
[AR1-GigabitEthernet0/0/0]interface g0/0/1
[AR1-GigabitEthernet0/0/1]arp-proxy enable #在g0/0/1接口开启代理ARP功能
#PC1访问PC2
PC>ping 10.1.2.2
PC>arp -a
如图所示:
通过以上输出可以看到,PC1可以访问PC2,并且学习到了PCR的IP地址和Mac地址的对应关系。
接下来,了解一下代理ARP的工作过程
G0/0/0/0
接口的Mac地址与PC2的IP地址进行ARP映射,下次使用路由器的Mac地址进行数据转发,此时路由器相当于PC2的代理[AR1]display interface g0/0/0
如图所示:
可以发现路由器的G0/0/0
接口的Mac地址为5489-9847-309b
与以PC1上学习到的10.1.2.2
的Mac地址一致验证了上面的说法。
可以将这种代理ARP
堪作一种欺骗,ARP路由器欺骗了PC1
,它传递的PC1
的信息是PC2
的Mac地址为路由器接口的Mac地址。
只不过这种欺骗是一种善意欺骗,可以让IP地址属于同一网站却不属于同一物理网络的主机间相互通信。
命令 | 作用 |
---|---|
display mac-address | 查看交换机Mac的地址表 |
mac-address aging-time | 修改Mac地址表的老化时间 |
arp -a | 查看PC机的ARP缓存表 |
arp -s | 在PC机上绑定IP地址和Mac地址 |
arp proxy enable | 在路由器上开启ARP代理功能 |