三层转发实例讲解
图1、三层转发连接图
一、三层转发的描述(PC1 ping PC3、通过了交换机和路由器)
1、PC1生成一个源IP地址为192.168.300.2/24,目的IP地址为192.168.1.3/24的ICMP请求报文。
2、PC1的IP地址为192.168.300.2/24,PC3的IP地址为192.168.1.3/24,通过IP地址与掩码相与可以知道PC1所在网段为192.168.300.0/24,PC3所在网段为192.168.1.0/24。由于不在同一个网段,需要路由器进行转发。PC1的网关为192.168.300.254,PC1会发送ARP请求报文请求网关R1的MAC地址。
(注:网关是网络的进口和出口,网关定义网络的边界。比如有网络A和网络B,网络A的IP地址范围为“192.168.1.1~192. 168.1.254”,子网掩码为255.255.255.0;网络B的IP地址范围为“192.168.2.1~192.168.2.254”,子网掩码为255.255.255.0。在没有路由器的情况下,两个网络之间是不能进行TCP/IP通信的,即使是两个网络连接在同一台交换机(或集线器)上,TCP/IP协议也会根据子网掩码(255.255.255.0)判定两个网络中的主机处在不同的网络里。而要实现这两个网络之间的通信,则必须通过网关。)
3、R1收到ARP请求后发现是请求自己的MAC地址,则回复自己的MAC地址。
4、PC1收到后将ICMP报文加上自己的MAC地址和R1的MAC地址,发送到R1。
5、R1收到报文后发现是自己的MAC地址,则拆开以太帧头,发现目的IP是192.168.1.3/24,则根据查自己的路由表,发现有到目的IP的路由,则保留报文,并发出ARP请求,请求R2的MAC地址。
(注:路由表项内容包括:
destination mask pre costdestination:目的地址,用来标识IP包的目的地址或者目的网络。
mask:网络掩码,与目的地址一起标识目的主机或者路由器所在的网段的地址。
pre:标识路由加入IP路由表的优先级。可能到达一个目的地有多条路由,但是优先级的存在让他们先选择优先级高的路由进行利用。
cost:路由开销,当到达一个目的地的多个路由优先级相同时,路由开销最小的将成为最优路由。
interface:输出接口,说明IP包将从该路由器哪个接口转发。
nexthop:下一跳IP地址,说明IP包所经过的下一个路由器。)
6、R2收到ARP请求后发现是请求自己的MAC地址,则回复自己的MAC地址。
7、R1在收到R2回复的MAC地址后将报文加上自己的MAC地址和R2的MAC地址后从对应端口发出。
8、R2收到报文后发现是自己的MAC地址,则拆开以太帧头,发现目的IP是192.168.1.3/24,则根据查自己的路由表,发现有到目的IP的路由,则保留报文,并发出ARP请求,请求R3的MAC地址。
9、R3收到ARP请求后发现是请求自己的MAC地址,则回复自己的MAC地址。
10、R2在收到R3回复的MAC地址后将报文加上自己的MAC地址和R3的MAC地址后从对应端口发出。
11、R3收到报文后发现是自己的MAC地址,则拆开以太帧头,发现目的IP是192.168.1.3/24,则根据查自己的路由表,发现有到目的IP的路由,则保留报文,并发出ARP请求,请求R4的MAC地址。
12、R4收到ARP请求后发现是请求自己的MAC地址,则回复自己的MAC地址。
13、R3在收到R4回复的MAC地址后将报文加上自己的MAC地址和R3的MAC地址后从对应端口发出。
14、R4收到报文后发现是自己的MAC地址,则拆开以太帧头,发现目的IP是192.168.1.3/24,而自己有一条192.168.1.0/24的直连路由,判断后发现为同一网段,则准备进行二层转发。
15、R4在广播域中发送ARP请求,请求获取PC3的MAC地址。
16、交换机收到来自R4的ARP请求,首先将端口和对应的MAC地址记录,然后向各个端口转发ARP请求。
17、对于到PC2的ARP请求,PC2接收到后发现请求的并不是自己的MAC地址,丢弃收到的ARP报文。
18、对于发送到PC3的ARP请求,PC3收到后发现请求的是自己的MAC地址,则回复自己的MAC地址。
19、交换机收到来自PC3的ARP回复,首先将端口和对应的MAC地址记录,然后将回复报文转发给R4。
20、R4知道了PC3的MAC地址,则将自己的MAC地址和PC3的MAC地址加入新的以太网帧,然后将报文途经交换机发送给PC3。
21、PC3收到报文后生成一个源IP地址为192.168.1.3/24,目的IP地址为192.168.300.2/24的ICMP回显报文。
22、PC1的IP地址为192.168.300.2/24,PC3的IP地址为192.168.1.3/24,通过IP地址与掩码相与可以知道PC1所在网段为192.168.300.0/24,PC3所在网段为192.168.1.0/24。由于不在同一个网段,那么进行三层转发。
23、由于不在同一个网段,需要路由器进行转发。PC3会发送ARP请求报文请求网关R4的MAC地址。
24、交换机收到PC3发来的ARP请求时先将端口和对应的MAC地址记录,然后进行转发。
25、对于到PC2的ARP请求,PC2接收到后发现请求的并不是自己的MAC地址,丢弃收到的ARP报文。
26、对于到R4的ARP请求,R4接收到后发现请求的是自己的MAC地址,则回复自己的MAC地址。
27、PC3知道了R4的MAC地址,则将ICMP回显报文加上自己的MAC地址和R4的MAC地址后途经交换机发送给R4。
28、R4收到报文发现MAC地址是自己的MAC地址,则拆开以太帧。R4发现报文的目的IP为192.168.300.2/24,查路由表后发现有到目的IP的路由,则保留报文,并发出ARP请求,请求R3的MAC地址。
29、R3收到ARP请求后发现是请求自己的MAC地址,则回复自己的MAC地址。
30、R4在收到R3回复的MAC地址后将报文加上自己的MAC地址和R4的MAC地址后从对应端口发出。
31、R3收到报文发现MAC地址是自己的MAC地址,则拆开以太帧。R3发现报文的目的IP为192.168.300.2/24,查路由表后发现有到目的IP的路由,则保留报文,并发出ARP请求,请求R2的MAC地址。
32、R2收到ARP请求后发现是请求自己的MAC地址,则回复自己的MAC地址。
33、R3在收到R2回复的MAC地址后将报文加上自己的MAC地址和R3的MAC地址后从对应端口发出。
34、R2收到报文发现MAC地址是自己的MAC地址,则拆开以太帧。R2发现报文的目的IP为192.168.300.2/24,查路由表后发现有到目的IP的路由,则保留报文,并发出ARP请求,请求R1的MAC地址。
35、R1收到ARP请求后发现是请求自己的MAC地址,则回复自己的MAC地址。
36、R2在收到R1回复的MAC地址后将报文加上自己的MAC地址和R2的MAC地址后从对应端口发出。
37、R1收到报文后发现是自己的MAC地址,则拆开以太帧头,发现目的IP是192.168.300.2/24,而自己有一条192.168.300.0/24的直连路由,判断后发现为同一网段,则准备进行二层转发。
38、R1在广播域中发送ARP请求,请求获取PC1的MAC地址。
39、PC1收到ARP请求后回复自己的MAC地址。
40、R1在收到PC1回复的MAC地址后将报文加上自己的MAC地址和R1的MAC地址后从对应端口发出。
41、PC1收到PC3的ICMP回显报文,则Ping通。
二、参考博客