路由器的工作原理与数据包转发过程详解
路由器的工作原理与数据包转发过程详解
路由器是网络通信中的关键设备,它能够将数据包转发到正确的目的地,并在转发过程中选择最佳路径。本文将详细介绍路由器的工作原理、路由表的形成、静态路由和默认路由的概念,以及路由器转发数据包的封装过程。
路由器的工作原理
路由器的核心功能是根据路由表转发数据包。其工作流程如下:
- 接收数据包
- 查看目的地址
- 与路由表进行匹配,找到转发端口
- 将数据包转发到该端口
例如,主机1.1要发送数据包给主机4.1,因为IP地址不在同一网段,主机会将数据包发送给本网段的网关路由器A。路由器A接收到数据包后,查看数据包IP首部中的目标IP地址,再查找自己的路由表。数据包的目标IP地址是4.1,属于4.0网段,路由器A在路由表中查到4.0网段转发的接口是S0接口。于是,路由器A将数据包从S0接口转发出去。网络中的每个路由器都是按这样的步骤去转发数据,直到到达了路由器B,用同样的转发方法,从E0口转发出去,4.1主机接收到这个数据包。
路由表的形成
路由表是路由器中维护的路由条目的集合,路由器根据路由表做路径选择。路由表中记录了网段IP地址和对应下一跳接口的接口号。
- 直连网段:与路由器直接相连的网段,配置IP地址,端口UP状态,形成直连路由
- 非直连网段:与路由器不直接相连的网段,需要静态路由或动态路由,将网段添加到路由表中
静态路由和默认路由
静态路由
静态路由是由管理员手工配置的,是单向的,并且缺乏灵活性。静态路由需要管理员逐条写入,而且不能对网络的改变做出反应,因此一般来说,静态路由用于网络规模不大、拓扑结构相对固定的网络中。如果网络拓扑变了,管理员又要手动配置。
注意它是单方向的,如果要在路由器上配置到其他网段的静态路由,必须进行双向配置。例如,在上例中,在路由器 A 上配置了静态路由,只是告诉路由器 A 如何到达 192.168.1.0 网段。如果路由器 B 需要将数据包转发到连接在路由 器 A 上的网络,就还要在路由器 B 上配置路由 (两边都要配,不然没法互相发送数据)。
默认路由
当路由器在路由表中找不到目标网络的路由条目时,路由器把请求转发到默认路由接口,它是一种特殊的静态路由。同时它的优先级也是最低的,如果同时存在静态路由,它会优先匹配静态路由。
使用场景:
- 这个网络只有一个唯一的路径能够到达其他网络
- 适当地使用默认路由还可以减小路由表的大小。网络管理员有时会这样配置路由表,即在路由表中只添加少数的静态路由,同时添加一条默认路由。这样当收到数据包的目的网络没有包含在路由表中时,就按照默认路由来转发(当然默认路由有可能不是最好的路由)。
路由器转发数据包的封装过程
总结:整个过程中IP地址是不变的,MAC地址一直在变化。
通过学习路由器的转发原理,再来总结下和交换机的区别:
- 交换机查看MAC地址表,路由器查看路由表
- 如果MAC地址表没有对应条目,交换机会发送广播在区域内泛洪,而路由器如果找不到对应的条目会直接丢弃,并且会返回一个不可达的信息,它不会发送广播,所以路由器是隔离广播域的,而交换机所在的网络内部是一个广播域,它只在本区域内泛洪,不会泛洪到路由器外面
- 交换机工作在二层,根据MAC地址表转发数据帧,路由器工作在三层,根据路由表转发数据包
- 交换机一般工作在局域网内,而路由器工作在广域网
配置示例
下面讲解如何配置静态路由和默认路由,通过配置路由也熟悉下华为路由器的各种配置命令。
- 给主机配置IP、掩码,网关
- 拿到一台路由器首先配置接口IP地址
int g0/0/0
IP add 192.168.1.1 24
dis ip int b //查看接口对应IP地址,接口状态
ip route-static 网络号 子网掩码 下一跳IP //静态路由配置
ip route-static 0.0.0.0 0.0.0.0 下一跳IP //默认路由配置
dis ip routing-table //查看路由表(学会看路由表)
配置命令示例:
system-view (切换系统模式)
sysname R1 (配置主机名)
[R1]undo info-center enable (关闭提示信息)
[R1]int g0/0/0
[R1 0/0/0]ip add 192.168.10.1 (配置IP)
[R1 0/0/0]undo shutdown
[R1 0/0/0]quit
[R1]int g0/0/1
[R1 0/0/0]ip add 10.0.0.1 (配置IP)
[R1 0/0/0]undo shutdown
[R1 0/0/0]quit
两外一个端口一样
[R1]ip route-static 20.0.0.0 24 10.0.0.2 //网络号 子网掩码 下一跳IP //静态路由配置
[R1]ip route-static 192.168.20.0 24 10.0.0.2
[R1]dis ip routing-table //查看路由表
浮动路由
路由优先级(值越小越优先)优先级相同则比较度量值,度量值越小越优先,如果都一样则负载分担,多条链路同时传输数据
- 直连 0
- 静态 60 默认
- OSPF 10
- IS-IS 15
- RIP 100
- OSPF ASE 150
- IBGP 255
- EBGP 255
配置示例:
[R1]ip route-static 192.168.1.0 24 11.0.0.2 默认优先级为60,越小越优先
[R1]ip route-static 192.168.1.0 24 12.0.0.2 preference 70 配置浮动路由用于备份,也是静态路由,备用路径
取消操作用undo
最后验证主机是否ping通
故障排查
目标:
- 培养故障排查的思路
- 学会独立排障
方式:
从近到远,从下到上
华为路由命令:
- dis fib //查看FIB(转发信息库)表
- Tracert