通过华为eNSP验证路由器转发机制

实验原理

问题描述:

  • 有两台 PC,分别命名为 PC1 和 PC2。

  • PC1 和 PC2 分别连接路由器 R 的 G1 和 G2 端口。

  • PC1 的 IP 地址为 172.168.1.1,PC2 的 IP 地址为 192.168.1.2。

  • 路由器 R 对应端口一的网关地址为 172.168.1.254,对应端口二的网关地址为 192.168.1.254。

  • 现在 PC1 通过 ping 命令要 ping 通 PC2。
    需要解决的问题:

  • 在这个过程中,路由器 R 做了哪些事情?

  • 这个过程涉及到哪些网络层和传输层的协议?

  • 路由器如何进行 IP 地址和 MAC 地址表的学习?

实验过程

PC1到R:

  1. 发送一个ICMP包,源IP为172.168.1.1,目的IP为192.168.1.2,目的MAC为端口一的MAC地址。

  2. 路由器R收到ICMP包后,进行解包操作,读取目的IP地址,发现需要转发到另一个子网,于是进行路由查找。

  3. 路由器R查找路由表,发现目的IP地址192.168.1.2应该走端口二,于是将ICMP包转发给端口二。
    PC2回复ICMP:

  4. 端口二接收到ICMP包后,进行解包操作,读取目的MAC地址,发现该MAC地址为自己的MAC地址,于是进行目的IP地址查找。

  5. 端口二查找MAC表,发现没有192.168.1.2的MAC地址,于是发送ARP请求到端口一,请求192.168.1.2的MAC地址。

  6. PC2收到ARP请求后,返回ARP响应包,将自己的MAC地址告诉端口二。

  7. 端口二收到ARP响应包后,将目的MAC地址改为PC2的MAC地址,并将ICMP包转发给PC2。

  8. PC2接收到ICMP包后,进行回复操作,将ICMP包回复给PC1。
    PC2回复ICMP到PC1:

  9. PC2将ICMP包的源IP改为自己的IP地址,将目的IP改为172.168.1.1,将目的MAC改为端口二的MAC地址。

  10. 端口二接收到ICMP包后,进行解包操作,读取目的MAC地址,发现该MAC地址为自己的MAC地址,于是进行目的IP地址查找。

  11. 端口二查找MAC表,发现没有172.168.1.1的MAC地址,于是发送ARP请求到端口一,请求172.168.1.1的MAC地址。

  12. PC1收到ARP请求后,返回ARP响应包,将自己的MAC地址告诉端口一。

  13. 端口一收到ARP响应包后,将目的MAC地址改为PC1的MAC地址,并将ICMP包转发给PC1。

  14. PC1接收到ICMP包后,处理完毕。

总结

路由器对IP和MAC表的学习过程:

  • 当路由器收到一个数据包时,会将数据包中的源IP地址添加到相应的IP表中。但源MAC地址不会添加到MAC表,因为他的MAC表只记录端口MAC不会记录其他设备的MAC
  • 当路由器需要将数据包转发到一个目的IP地址时,会查找IP表来确定该数据包应该从哪个端口转发出去。
  • 如果在MAC表中找不到该目的IP地址对应的MAC地址,则会发送ARP请求到该目的IP地址所在的子网中,请求该IP地址的MAC地址。
  • 当收到ARP响应包时,会将对应的MAC地址添加到MAC表中。

实验结果:

端口一抓包

端口二抓包
路由转发原理实验

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注