- 路由交换技术
- 梁广民 徐磊 程越 王诗雨主编
- 1984字
- 2025-01-09 16:40:59
1.1.4 IP路由原理
路由器是网络互联的核心,它可以连接多个网络。当路由器从某个接口收到IP报文时,它会确定使用哪个接口将该IP报文转发到目的地。因此路由器转发IP报文的行为包括确定发送IP报文的最优路径和将IP报文转发到正确的出接口。路由器使用路由表来确定转发IP报文的最优路径。当IP报文到达路由器时,路由器首先提取出IP报文的目的IP地址,然后将IP报文的目的IP地址按照路由表中表项网络地址的掩码长度做“与”操作。将“与”操作后的结果与路由表中的表项进行比较,相同则表示匹配,否则表示不匹配。当操作结果与多条表项都匹配时,路由器会选择匹配掩码最长的表项作为最优路径信息。
路由器转发IP报文的过程如下:路由器收到IP报文后,首先拆掉二层信息,然后根据IP报文中的目的 IP 地址在路由表中搜索最匹配的路由表项作为最优路径,并将 IP 报文重新封装(重写二层信息)后转发到下一台路由器,路径上最后的路由器负责将IP报文转发给目的主机。重写的二层信息取决于路由器出接口的二层封装类型(如以太网封装或者PPP封装等)及其连接的介质类型等。
下面通过以下例子进一步说明路由器转发IP报文的过程,如图1-3所示。此例只关注计算机和路由器对IP报文进行封装、解封装和转发的过程。假设所有计算机和路由器的ARP表为空。提示:计算机可以通过使用arp –d命令清空ARP表。
图1-3 路由器转发IP报文的过程
IP报文从计算机PC1到达计算机PC2的转发过程如下。
(1)在计算机PC1上执行ping 172.16.2.100命令,此时PC1首先判断目的IP地址和本机IP地址不在同一个网段,于是向网关(172.16.1.1)发送ARP请求。此IP报文为二层广播包,以太网帧二层头部信息如下:源MAC地址为5489-98E1-3D83,目的MAC地址为FFFF-FFFF-FFFF(广播),类型字段值为0x0806(0x表示数值为十六进制,0806代表ARP)。
(2)路由器R1收到ARP请求后,首先更新自己的ARP表,添加PC1的IP地址和网卡MAC地址的映射记录,同时回复 ARP 应答(单播)。其以太网帧二层头部信息如下:源 MAC 地址为00E0-FC47-723A,目的MAC地址为5489-98E1-3D83,类型字段值为0x0806。
(3)计算机PC1收到路由器R1回复的ARP应答后,更新自己的ARP表,此时PC1的ARP表如下。
C:\>arp -a Internet Address Physical Address Type 172.16.1.1 00-E0-FC-47-72-3A dynamic
在实际应用环境中,当路由器R1的G0/0/0接口启动后,会主动发送Gratuitous ARP(免费ARP),处在同一网段的计算机收到后,就会更新自己的ARP表,而当计算机网卡启动的时候,也会主动周期性发送 ARP 请求,以便获得网关的 MAC 地址。因此上述(1)~(3)的过程实际上是自动完成的,不需要用户发送IP报文来触发、生成ARP表项。
(4)计算机PC1收到路由器R1回复的ARP应答后,进行以太网帧封装,IP报文二层和三层头部部分信息如下:源MAC地址为5489-98E1-3D83,目的MAC地址为00E0-FC47-723A,类型字段值为0x0800(0800代表IP),源IP地址为172.16.1.100,目的IP地址为172.16.2.100,协议字段值为1(代表ICMP)。
(5)计算机PC1将封装好的IP报文发送到默认路由器R1,R1从G0/0/0接口收到该以太网帧后,进行解封装(删除以太网帧二层信息),然后路由器R1使用IP报文的目的IP地址172.16.2.100搜索路由表,查找匹配的路由条目。在路由表中找到匹配的目的网络地址后,确定出接口为S1/0/0,路由器R1将IP报文重新封装(重写二层信息)到PPP帧中,然后将IP报文转发到路由器R2,IP报文二层和三层头部部分信息如下:PPP帧地址字段值为0xFF,类型字段值为0x0021(0021代表IP),源IP地址为172.16.1.100,目的IP地址为172.16.2.100,协议字段值为1。
(6)路由器R2收到路由器 R1发送的 IP 报文后,进行解封装(删除 PPP帧二层信息),路由器R2使用IP报文的目的IP地址172.16.2.100搜索路由表,查找匹配的路由条目。在路由表中找到目的网络地址后,发现目的主机位置和自己直连的G0/0/0接口网络地址相同。如果此时路由器R2的ARP表中有与172.16.2.100对应的ARP缓存条目,则直接转到(10)继续二层重写;如果此时路由器R2的ARP表中没有与172.16.2.100对应的ARP缓存条目,则发送ARP请求,以便获得计算机PC2的网卡的 MAC 地址信息。路由器 R2发送 ARP 请求的以太网帧二层头部信息如下:源 MAC 地址为00E0-FCBC-3B8B,目的MAC地址为FFFF-FFFF-FFFF,类型字段值为0x0806。对计算机PC1来说,此时第一次ping的结果显示超时(Timeout),然后执行第二次ping命令,其转发过程直接从(5)和(6)开始。
(7)计算机PC2收到路由器R2发送的ARP请求后,更新自己的ARP表,此时PC2的ARP表如下。
C:\>arp -a Internet Address Physical Address Type 172.16.2.2 00-E0-FC-BC-3B-8B dynamic
(8)计算机PC2收到路由器R2发送的ARP请求后会回复ARP应答(单播)。以太网帧二层IP报头信息如下:源MAC地址为5489-9803-1BFA,目的MAC地址为00E0-FCBC-3B8B,类型字段值为0x0806。
(9)路由器R2收到计算机PC2回复的ARP应答后,更新自己的ARP表,具体显示如下。
<R2>display arp dynamic IP ADDRESS MAC ADDRESS EXPIRE(M) TYPE INTERFACE VLAN/CEVLAN PVC --------------------------------------------------------------- 172.16.2.2 00e0-fcbc-3b8b I - GE0/0/0 172.16.2.100 5489-9803-1bfa 12 D-0 GE0/0/0 --------------------------------------------------------------- Total:2 Dynamic:1 Static:0 Interface:1
(10)路由器R2进行重新封装(重写二层信息),然后将IP报文转发到计算机PC2。IP报文二层和三层头部部分信息如下:源 MAC 地址为00E0-FCBC-3B8B,目的 MAC 地址为5489-9803-1BFA,类型字段值为0x0800,源IP地址为172.16.1.100,目的IP地址为172.16.2.100,协议字段值为1。
(11)计算机PC2收到IP报文后,继续执行和上述类似的过程,IP报文最后到达计算机PC1,完成一次ping的过程。
以上数据转发过程表明,IP报文在从计算机PC1到达计算机PC2的整个传输过程中,二层地址信息会被逐跳重写,但是三层IP地址信息保持不变。