01
PART
拓扑简介
- 假设有AB两个公司网络互通
- 左边为A公司,右边为B公司
- 为保证容易理解,AB设备和规划完全对称
02
PART
情景一:A公司内部通信
以hostA1与hostA2通信(192.168.1.1---192.168.1.2)举例
A
判断通信是二层还是三层
- hostA1:IP:192.168.1.1/24 GW:192.168.1.254
- hostA2:IP:192.168.1.2
- hostA1通过自己的IP和掩码判断与hostA2同一网段
- 192.168.1.1/24的IP范围:192.168.1.0-255(0网络地址,255广播地址),192.168.1.2在这个范围内
- 故得出结论:hostA1和hostA2通信走二层
- 注意:二层通信不过网关,不需要路由
备注:这一步特别重要,大部分人都会忽略这一步
B
设备初始状态信息
C
hostA1发包异常
由于此时hostA1里没有192.168.1.2的MAC地址(即hostA2的MAC),故这个数据包无法组装成功;此时需要想办法拿到hostA2的MAC地址,这时需要ARP出马
D
hostA1 ARP找hostA2 MAC过程
E
hostA1 ARP后的设备状态信息
- ARP的作用:二层通信中完成IP及端口和MAC的丢应表
- ARP后hostA1:增加了hostA2 IP与MAC的对应关系
- ARP后hostA2:增加了hostA1 IP与MAC的对应关系
- ARP后交换机A:增加了hostA1|A2 MAC与端口对应关系
F
hostA1发包正常
G
hostA1到hostA2通信过程
至此hostA1到hostA2的通信已经完成;反过来hostA2到hostA1的通信也类似,只是少了ARP过程(hostA1到hostA2的过程已经完成,可以重复利用已有的MAC表)
03
PART
情景二:AB公司进行通讯
以hostA1与hostB1通信(192.168.1.1---192.168.2.1)举例
A
判断通信是二层还是三层
- hostA1:IP:192.168.1.1/24 GW:192.168.1.254
- hostB1:IP:192.168.2.1
- hostA1通过自己的IP和掩码判断与hostB1不在同一网段
- 192.168.1.1/24的IP范围:192.168.1.0-255(0网络地址,255广播地址),192.168.2.1不在这个范围内
- 故得出结论:hostA1和hostB1通信走三层
- 备注:三层通信必须要过网关走路由
备注:这一步特别重要,大部分人都会忽略这一步
B
设备初始状态信息
备注:上图中我省略了路由器之间互联的ARP过程
C
hostA1发包异常
由于是三层通信,所以要走网关。此时hostA1里没有网关192.168.1.254的MAC地址,故这个数据包无法组装成功;此时需要想办法拿到网关的MAC地址,这时需要ARP出马。
D
hostA1 ARP找网关MAC过程
E
hostA1 ARP后的设备状态信息
- ARP的作用:二层通信中完成IP及端口和MAC的丢应表
- ARP后hostA1:增加了网关 IP与MAC的对应关系
- ARP后路由器:增加了hostA1 IP与MAC的对应关系
- ARP后交换机A:增加了hostA1|网关 MAC与端口对应关系
F
hostA1正常发包
G
hostA1到路由器B通信过程
- 跨二层设备,MAC地址不变
- 跨三层设备后MAC地址必变
- 路由器A收到数据包后判断包的目的IP
- 路由器A查询自己的路由表判断发给路由器B
- 路由器B收到数据包后判断包的目的IP
- 路由器N查询自己的路由表判断为直连,从port1口发给hostB1
H
路由器B到hostB1发包异常
由于路由器B内还没有hostB1的MAC地址,此时包发送异常。接下来需要路由器B发ARP找hostB1的MAC地址。
I
路由器B ARP找hostB1 MAC过程
J
路由器 ARP后的设备状态信息
K
继续G后续的流转(序号:78)
序号123456已经在G步骤完成,序号78是路由器ARP找hostB1 MAC地址后的转发流程。
至此:以hostA1与hostB1通信(192.168.1.1---192.168.2.1)包的流转过程已经完成;hostB1到hostA1的通信也类似,只是少了ARP过程(hostA1到hostB1的过程已经完成,可以重复利用已有的MAC表)。
03
PART
总结
A
网络模型
B
设备对应的层次
C
网关的作用
- 二层网络通信
二层网络可以理解为同公司内部,知道名字但对不上真人人的时候内部吼一声即可(ARP找MAC,IP就是名字,MAC就是真人)
- 三层网络通信
三层网络可以理解为跨公司沟通,这个时候你知道名字找真人的时候内部吼人家听不到或者听到不搭理你(我认识你谁啊),这个时候就需要公对公业务(每个公司设置一个对外对公人员,这个对外对公 人员就是网关)。
- 内网分离
找公司内部人,自己吼一下即可;找公司外部人,直接让对外对公人员帮你找,然后再转给你。
D
避坑指南
- 好多文档上没有把二层和三层没有做有机统一(也许对方高估了你的理解能力,认为你自己可以融会贯通)
- 缺乏一个从头到尾案例:讲解包流转过程
- 另外也缺乏大白话与生活场景对应,理解起来费劲