ARP表、交换机转发表、路由表
要弄明白二三转发原理和流程,必须弄清楚ARP表、交换机转发表和路由表,这是数据转发的依据。由于ARP表和交换机转发表对于管理员来说是透明的,一般很忽视其工作原理,这是我需要注意的学习地方。所以今天主要是弄明白ARP表、交换机转发表、路由表。
数据最终转发依靠的都是ARP表,他是数据转发最基础的依据。ARP直接将硬件地址和网络地址相互映射。
数据最终转发依靠的虽然不是路由表,但路由表是一个向导,指引着数据的走向,让数据能跨越网络,ARP表是没有掩码的,是不区分网段的。
以下是我学习结合实验的学习内容小结:
ARP表
1、主机ARP表
主机上查看ARP表:arp -a
主机上删除ARP表:arp -d
主机上ARP表项主要有:
- Internet地址(这里是IP地址)
- 物理地址(这里是MAC地址)
- 类型(动态或静态,这里是动态)
2、路由器ARP表
路由器上查看ARP表:show arp
路由器上删除ARP表:no arp ……
路由器上ARP表项主要有:
- 协议(这里是IP协议)
- 地址(这里是IP地址)
- 生存时间(?)
- 硬件地址(这里是MAC地址)
- 类型(?)
- 接口(下一跳、出接口)
总结:无论是主机还是路由器,他们的ARP表最重要的是网络地址和硬件地址这两项,最常用的也就是IP地址和MAC地址这两项的映射关系,这是ARP表的本质作用。
路由表
1、主机上的路由表
主机上查看路由表:netstat -r
主机上的路由表项主要有:
- 目的网络(这里是IP地址)
- 网络掩码
- 网关
- 接口(这里是下一跳地址)
- 度量值
2、路由器的路由表
路由器上查看路由表:show ip route
路由器上删除路由表:no ip route ……
路由器上的路由表项主要有:
- 协议类型
- 网络地址(网段、子网掩码)
- 下一跳地址、下一跳接口
- 管理距离、度量值
- ……
总结:无论是路由器还是主机,他们的路由表都有网络地址、下一跳(地址或接口)、度量值等基本选项。
交换机转发表
交换机转发表(CAM/TCAM)
查看命令:show mac-address-table
交换机转发表表项:
网络分为七层:分别是 七层: 应用层,telnet/ftp/路由协议 六层:会话层 五层:表示层
四层: 传输层,TCP/UDP
三层: 网络层,通常是IP,数据包称文 二层: 链路层,比如以太网,数据包帧 一层: 物理层
二层转发原理
数据链路层是OSI参考模型中的第二层,介乎于物理层和网络层之间。数
据链路层在物理层提供的服务的基础上向网络层提供服务,其最基本的服务是 负责直接相连的网络设备之间的通讯。
二层转发依据:FDB表。网络设备都以MAC地址来唯一地标识自己,而交换机要实现设备之间的通信必须知道自己的哪个端口上连接着哪台设备,因此特别需要一张MAC地址与端口号一一对应的表,以便在交换机内部实现二层数据转发,这张二层转发表就是FDB(Forwarding Database)表.
FDB表的构成要素:
================= ====== =========
MAC VLAN SLOT/PORT TRUNK VID VIDX TYPE ================= ====== ========= ====== ======
00:1f:64:00:ff:10 5 1/1/13 - - - DYNAMIC
00:1f:64:00:ff:10 5 1/1/15 - - - DYNAMIC
00:1f:64:00:02:51 3 1/2/6 - - - DYNAMIC
二层转发:在一个二层网络内部(比如一个VLAN),将收到的帧选择适当的端口发出去。二层交换机通过解析和学习以太网帧的源MAC地址来维护MAC地址与端口的对应关系,它会把这些信息写入到MAC表中,其次是根据目的MAC来查找MAC表决定向哪个端口转发数据。转发流程如下:
1) 当交换机端口收到主机A发来的一个数据包时,从端口收到的帧中读出MAC
地址,得到它们的对应信息。它先读取包头中的源MAC地址,也就是主机A
的MAC地址,这样它就知道源MAC是通过port 1连接的主机A的地址。交换机会把源MAC地址与端口对应关系写入到FDB表中,作为以后的二次转发依据。
2) 读取包头中的目的MAC地址,即主机B的MAC地址们,并在FDB表中查找相
应的端口如表中有与这目的MAC地址对应的端口,直接把数据包发送到端口port 2
3) 如表中找不到相应的端口则把数据包广播到所有端口上。
4) 当目的机器对源机器回应时,交换机又可以学习目的MAC地址与哪个端口对
应,在下次传送数据时就不再需要对所有端口进行广播了。
三层转发原理:
三层转发是通过路由协议或配置得到远方网段的路由,链路层把收到的IP报文上交给IP层,IP层按路由做转发。
PC1PC2
1.1.1.0/242.2.2.0/24
三层转发依据是ARP表和路由表:
arp为IP地址到对应的硬件地址提供动态映射关系: arp表的构成要素如下:
IP MAC TYPE 11 .0 .0 .10 00:1f:64:00:02:51 dynamic 10 .0 .0 .10 00:1f:64:00:02:51 static 路由表是三层转发的依据; 表项结构如下: S 0.0.0.0/0 [10/0] via 13.0.0.2, vlan6 S>* 0.0.0.0/0 [1/0] via 192.168.1.254, vlan7 C>* 10.0.0.8/30 is directly connected, vlan2 C>* 11.0.0.8/30 is directly connected, vlan3 C>* 12.0.0.0/24 is directly connected, vlan4
源主机PC1在发包前,检查目的地址是否在本地网段: DestIP & Mask = MyIP & Mask ?
(1)如果两者位于同一个网段内,源主机PC1向目的主机发送ARP请求,收到ARP请求的交换机,会回应一个ARP应答,应答报文中带有目的主机的MAC地址,源主机获得目的MAC后,根据MAC地址发送报文。
(2)当源主机PC1判断目的主机地址与自己不是在同一个网段内时,它会通过网关来递交报文,即发送ARP请求到网关主机获得对应的MAC地址,以网关MAC地址作为报文的目的MAC地址进行报文交互,在此过程中,源IP地址和目的IP地址都不变,改变的是源MAC地址和目的MAC地址。报文到达网关后交换机会发送一个ARP请求寻找目的地址是2.2.2.0的主机,IP地址是2.2.2.0的PC2会回应一个ARP应答,应答中包括PC2的MAC地址,交换机获得目的MAC后,根据MAC地址发送报文。
以上就是我对二三层转发的一些简单的理解。