基本概念
IP地址:指互联网协议地址,用于在整个互联网中标识设备的存在位置(私有地址除外)。
MAC地址:为局域网地址,用于在一个局域网内确定主机的位置,这也说明了MAC只能在局部传递。
一:当互访者在同一个局域网内,即IP地址在同网段
实验拓扑:
1、当PC3访问PC4时,由于PC3和PC4处于相同网段,所以PC3会发送ARP广播报文,当LSW1收到广播报文时,会进行泛洪操作,ARP广播报文会从G0/0/2接口发出,PC4收到ARP广播报文时,发现34.1.1.4地址是我自己,此时PC4会回复一个ARP单播报文给PC3,里面携带自己的MAC地址。
2、此时PC3封装的数据报文为:
源MAC:5489-98C0-2E61 目的MAC:5489-984F-45CD
源IP地址:34.1.1.3 目的IP地址:34.1.1.4
3、这样当数据发送到LSW1时,会根据源/目地址将数据发送给PC4。
4、当PC4给PC3回包时会将PC3的MAC地址封装为目的MAC地址,当数据到达LSW1时,交换机根据目的MAC将数据发送给PC3,此时的数据封装为:
源MAC:5489-984F-45CD 目的MAC:5489-98C0-2E61
源IP地址:34.1.1.4 目的IP地址:34.1.1.3
二:当互访者在不同局域网内,即IP地址在不同网段
实验拓扑:
1、当PC1发现一个数据包的目的IP地址和自己不在同一个网段时,此时PC1会将数据交给网关来处理,所以PC1要首先知道网关的MAC地址(IP地址PC1已经知道),将数据发往网关设备,此时PC1会发送ARP请求,用于获取网关的MAC地址。
2、此时PC1已经有了源/目地址,可以进行封装数据:
源MAC:5489-981D-0ADC 目的MAC:00e0-fc2b-4912
源IP地址:1.1.1.1 目的IP地址:2.2.2.1
3、当数据到AR1时,会对数据进行解封装,发现目的MAC是自己接口的地址,此时会转发该数据包(不是自己接口的MAC会将该数据丢弃),首先会查看目的IP地址,发现目的地址和自己的G0/0/1接口处于同网段,所以会在G0/0/0接口发送ARP广播报文,用于获取2.2.2.2对应的MAC地址。
4、此时,AR1会重新将报文进行封装,源MAC为自己出接口的MAC地址,目的MAC地址为PC2,源/目IP地址不会改变。
源MAC:00e0-fc2b-4913 目的MAC:5489-9811-4145
源IP地址:1.1.1.1 目的IP地址:2.2.2.1
5、当PC2给PC1回包时,封装过程和以上过程类似,此时PC2已经知道网关的MAC地址(AR1给PC2发送数据的源MAC就是网关的MAC地址),当回数据时,由于PC1和自己不在同一网络内,此时会将数据交给网关处理,目的MAC封装网关的MAC地址(即接口G0/0/1的MAC地址),目的IP地址为PC1地址。
此时数据封装:
源MAC:5489-9811-4145 目的MAC:00e0-fc2b-4913
源IP地址:2.2.2.1 目的IP地址:1.1.1.1
6、当数据到达AR1时,AR1对数据包进行解封装,发现目的MAC是自己接口的地址,此时会转发该数据包(不是自己接口的MAC会将该数据丢弃),首先会查看目的IP地址为1.1.1.1,目的地址和G0/0/0接口在同个网段,由刚才发送数据,此时AR1已经知道1.1.1.1的MAC地址(发送给AR1的数据中源MAC就是1.1.1.1对应的MAC地址),这时候AR1会从新对数据进行封装,源MAC地址为能到达1.1.1.接口的MAC地址(即G0/0/0接口MAC地址)。
此时数据封装:
源MAC:00e0-fc2b-4912,目的MAC:5489-981D-0ADC
源IP地址:2.2.2.1,目的IP地址:1.1.1.1
总结:
- 当数据在单向传递时,源/目IP地址都不会发生改变,其实这也表明了IP地址(公网IP地址)的作用,用于在整个网络中标识设备的存在位置。
- 如果不同网段进行访问,每经过一个网络源/目MAC地址会发生改变。
由此可推算出,当经过多个路由设备时,源/目MAC地址在和源/目IP地址的变化。
注释:用字母代替每个接口的NAC地址,讨论PC1到PC2的单向访问。
1、在PC1上的数据封装为
源MAC地址:x 目的MAC地址:a
源IP地址:1.1.1.1 目的IP地址:2.2.2.1
2、在AR1上的数据封装:
源MAC地址:b 目的MAC地址:c
源IP地址:1.1.1.1 目的IP地址:2.2.2.1
3、在AR2上的数据封装:
源MAC地址:d 目的MAC地址:e
源IP地址:1.1.1.1 目的IP地址:2.2.2.1
4、在AR3上的数据封装:
源MAC地址:f 目的MAC地址:g
源IP地址:1.1.1.1 目的IP地址:2.2.2.1
5、在AR4上的数据封装:
源MAC地址:h 目的MAC地址:y
源IP地址:1.1.1.1 目的IP地址:2.2.2.1
此时,数据发到了PC2上,当PC2会数据时,封装过程为该