关于交换机和路由器的一点思考笔记
为什么ARP报文只在同一网段?
因为这由IP协议控制:
在制作以太网帧时,需要目的mac地址,
如果目的IP地址和源IP地址同一网段,没有mac地址就arp请求;
如果不同,就交由网关处理。此时的“交由”是指从主机发往网关(如路由器),那以太网帧的目的mac地址就为网关的mac地址,如果没有网关的mac地址,就arp请求。如果没有设置网关,就放弃这次通信。
综上所述,是因为如果目标主机在不同网段,IP协议的处理方式不是arp寻找该目标的mac地址,而是arp寻找网关的mac地址,也就是说,根本不需要目标主机的mac地址,所以只有同一网段才会进行arp请求。
ARP请求在交换机中如何处理?
因为arp请求的以太网帧首部的目的mac地址是全1广播地址,所以交换机会对所有接口泛洪
三层交换机的转发过程
同网段就直接交给二层接口,过程跟二层交换机一样:
1.源主机ARP请求得到目的主机的mac地址,填入报文,将报文发给交换机;
2.交换机将拆开报文,将目的mac地址与mac地址表比对,找到对应接口则发送,找不到则丢弃。
不同网段的过程就比较复杂:
1.ARP得到网关的mac地址,即交换机三层接口的mac地址,设置报文的目的地址为得到的mac地址,然后将报文发给交换机;
2.交换机拆开报文,将目的mac地址与二层mac地址表对比;
3.上一步会发现是自己的三层接口的mac地址,然后交换机去寻找自己的三层mac地址表(这个是最关键的区别)。如果有对应表项,就直接二层进行转发;如果没有对应表项,就让三层接口进行ARP请求,得到目的主机的mac地址;
4.有了mac地址就可发送报文,而且需要将该mac地址信息记录入三层mac地址表。