- 论坛徽章:
- 0
|
回复 3# Fl_wolf
同vlan内的设备通讯是不会通过网关的,它的通讯发生在数据链路层,也就是二层,第一次建立联系的时候用广播,后续用单播。
表面上看是两个IP地址之间的通讯,本质还是二层通讯。
计算机的MAC地址表建立是通过ARP协议来实现的。
![]()
通过ARP协议完成IP地址与MAC地址对应关系。
交换机里的MAC地址表是完成计算机与交换机端口的对应关系。
![]()
10.30.1.37想去172.16.1.x这个网段,肯定要先去网关,那就会先查本机的IP与MAC对应表。
因为10.30.1.37网关你写的是10.30.1.200,所以会先找1.200,发广播,问1.200的设备怎么去。
1.37发的广播包进入交换机,问询1.200MAC地址。这时交换机会查MAC地址表,记住是交换机的MAC地址表。图二所示。从交换机里查到从1/0/XX端口学到的1.200的地址
别的设备收到广播,查看不是找自己的就会丢弃。只有10.30.1.200会回应,以单播包回应,因为广播包是带着源地址的,所以,1.200回应的时候就会把这个10.30.1.37的源地址当做它要发送的目的地址,
1.37收到1.200的单播报文,知道了怎么去1.200。
这是第一阶段
光知道怎么去1.200是不行的,最终目的是要去172.16.1.X
所以这时候,发单播报文,向1.200查询172.17.1.x网段。1.200一看自己的arp表,没有,所以数据包会丢弃。
所以,是不能与172.16.1.x通讯的。
那为什么能到网关通呢?
那是因为,它们是同段地址或者说同一VLAN。10.30.1.37与10.30.1.1通讯是不会通过1.200的。会直接查MAC地址表,
假如想让1.37通过1.200去访问172.16.1.x网段。需要在1.200上路由。
剩下的没有深究。
你可以验证一下。 |
|