路由器的工作原理
一、回顾交换机的工作原理
- 交换机里面维护了一张MAC地址表,主要记录了MAC地址和接口的对应关系
- 交换机在初始状态下,MAC地址表是空的,当收到一个数据来自莫接口(F0/1)的数据时,首先查看数据帧中的源MAC地址,对照自己的MAC地址表,如果不在表中,将发送方的MAC地址学习并记录到自己的MAC地址表中,并附上对应的接口(F0/1),再查看目的MAC地址,如果目的MAC地址也不在MAC地址表中,将进行从接收接口(F0/1)外的其他所有端口转发出去(广播方式)。此时,目的主机将收到,其他主机接收到后直接丢弃,目的主机接收到后进行回应,回应过程中数据同样会交由交换机进行转发,目的主机这时候就变成相应的发送主机,当交换机收到来自目的主机的回应报文时(F0/10),同样查看发送方的MAC地址,学习并记录,并附带对应接口(F0/10),再去查看目的MAC,由于之前已经有记录,所以直接从记录的接口(F0/1)进行转发(单播)。
- 总结:交换学习源MAC,广播数据帧,接收方回应,回应应使用单播直接转发。
二、回顾路由器相关知识
- 路由器是属于三层(网络层)设备
- 网络层所封装的IP头部
- 网络层功能
-
- 进行逻辑地址(ip地址)寻址,实现不同网络(网络地址不等或者说内网和外网分割,强调:内网的ip地址无法再外网上进行路由)直接的路径选择
- 去查找目的是否可以到达,如果可以到达,选择一条最优路径,如果不能到达,直接返回给发送方一个消息
- 网络层所传输的PDU(传输数据单元)是数据包(IP数据包)
三、网络层IP数据包的格式
-
IPV4
-
- 版本:表示当前使用的IP版本(IPV6,IPV4)
-
- 首部长度:由于可选字段可变,所以首部长度需要定义
-
- 区分服务:(服务质量/优先级和服务类型)
-
- 协议:标识上层数据使用的是何种协议(tcp 6,udp 17)
-
- 首部校验:校验数据报文的首部
-
- 源地址
-
- 目的地址
- 目的地址
-
IPV6
四、路由器工作原理
1.路由
- 从源主机到目标主机的转发过程(跨网络访问)
- 包含两个内容:
-
- 确定最佳路径(手动指定、根据动态路由协商方式)
-
- 通过网络传输信息
3.路由器的工作原理
- 路由表
-
- 直连路由:当路由器接口配置好对应的ip地址并开启端口后自动生成
-
- 半直连路由:需要手动配置静态路由或使用动态路由协议学习到
3.静态路由
- 由管理员手动配置,不灵活,而且单向
- 特殊的静态路由:默认路由
-
- 使用场景:一般应用于末节(末梢)网络(网络的最末端)(路由器的一端只连了一个网络)
4.动态路由
- 通过某种动态路由协议去建立自己的路由表
- 常见的动态路由协议:RIP OSPF IS-IS IGRP EIGRP
五、路由器转发数据包的封装过程
小实验:
这台(R3)是主机一个接口
这台(R4)也是主机,一个接口
这两个改一下样子,成主机
R1 & R2:两个接口,两个模块,一个模块一个接口
右键change hostname改名R3/R4为PC1/PC2
有abc的可以显示接口
目标:
PC1配置
PC1#conf t
PC1(config)#int f0/0
PC1(config-if)#ip add 192.168.10.1 255.255.255.0
PC1(config-if)#no shut
no shut:网络设备上的接口 打开(启用)的意思
PC1(config-if)#exit
PC1(config)#no ip routing #关闭三层的路由工作模式,因为是主机
PC1(config)#ip default-gateway 192.168.10.254
关于GNS3关联wireshark的命令
https://blog.youkuaiyun.com/qq_39641565/article/details/84400036
设置路由:
R1(config)#ip route 192.168.100.0 255.255.255.0 fastEthernet 1/0
R1(config)#ip route 192.168.100.0 255.255.255.0 192.168.50.2
查看接口信息
show int f0/0
PC1访问PC2
第一个报文:源IP:10.1 目的IP 100.1
源mac:PC1的mac 目的mac:R1F0/0接口的mac
当R1收到数据报后,会解封到网络层,查看是否可到,如
果可以到,转发到对应接口,重新进行二层封装,源mac变
成R1 F1/0接口mac,目的mac变成了R2 F0/0接口mac
当R2收到数据报文后,会解封到网络层,查看目的是否可以到,
目的和自己是同一网络,肯定可到,将数据交给对应接口,重
新进行二层封装,源mac变成R2 F0/0接口mac,目的mac变成了
PC2 mac
路由器在转发数据包的封装过程:
源ip和目的ip是没有发生变化的
源mac和目的mac是一直发生变化的
因为路由器会重新进行二层封装
同网段传输主要是二层转发(不需要进行重新封装 )
跨网段传输那么就是三层转发(需要重新进行二层封装)
Ehernet数据链路层
Internet Protocol Version网络层
ICMP在3.5层,在网络层之上,传输层之下