起序:路由器选择路径的时候,不是根据 MAC 地址 选择路径,而是根据 目标 IP 地址 选择,因为路由器是连接不同网段的,路由器是对不同网段之间进行转发。

一、概述

先说一下 路由,它和 路由器 的意思容易让人搞混,差别还是有的:

  • 路由(动词):跨越从 源主机目标主机 的一个互联网络来 转发数据包 的过程,同时也是 选择最佳路径 的过程。
  • 路由器(名词):能够将数据包转发到正确的目的地,并在转发过程中 选择最佳路径 的设备。

路由器是 三层设备,主要工作就是路由,转发数据最基本的依据就是 路由表。路由表的形成方式:

  1. 直连路由条目:配置接口 IP 地址并开启,自动形成。
  2. 非直连路由条目:需要手工配置 静态路由 或配置 动态路由

路由表的形成方式不同,那么形成的 路由条目 就会有不同的类型:

  • C(Connect):直接路由条目(自动形成)
  • S(Static):静态路由(手工配置)
  • S*:默认路由(手工配置)

二、配置路由表

1、网络拓扑图

话不多说,开局一张图,内容全靠编。图结构不是很复杂,就是标注的比较多,为了更好区分,就采取了画框的手段。

android netd 修改路由表 android 路由表配置_android netd 修改路由表


2、路由表

网络拓扑图 中的 每个路由器 都需要配置 路由表 ,下方每个路由器需要配置的路由表。除了 直连路由可以写接口,非直连路由 不能写接口,只能写 下一跳地址

  • 配置静态路由
# ip route 目标网段 子网掩码 下一跳 IP 地址 [管理距离]
ip route 10.1.1.0 255.255.255.0 20.1.1.2
  • 配置默认路由
# ip route 0.0.0.0 0.0.0.0 下一跳 IP 地址 [管理距离]
ip route 0.0.0.0 0.0.0.0 20.1.1.2
  • 查看路由表
show ip	route
1)、路由器 R1

需要配置的路由表

路由条目类型

目标 IP 网段

接口 / 下一跳 IP 地址

C

10.1.1.0/24

Fa0/0

C

20.1.1.0/24

Fa0/1

S

30.1.1.0/24

20.1.1.2

S

40.1.1.0/24

20.1.1.2

S

50.1.1.0/24

20.1.1.2

S

60.1.1.0/24

20.1.1.2

配置 IP 地址

# 进入 `特权模式`
R1>en
# 进入 `全局配置模式`
R1#conf t
# 进入 `接口配置模式` 编号为 0 的接口
R1(config)#int f0/0
# 给接口编号为 0 的配置 IP 地址(格式:ip add IP地址 网关)
R1(config-if)#ip add 10.1.1.254 255.255.255.0
# 启动这个接口
R1(config-if)#no sh
# 进入 `接口配置模式` 编号为 1 的接口
R1(config-if)#int f0/1
# 给接口编号为 1 的配置 IP 地址(格式:ip add IP地址 网关)
R1(config-if)#ip add 20.1.1.1 255.255.255.0
# 启动这个接口
R1(config-if)#no sh
# 查看接口配置好的 IP 地址
R1(config-if)#do sh ip int b

android netd 修改路由表 android 路由表配置_android netd 修改路由表_02

配置路由表

# 进入 `特权模式`
R1>en
# 进入 `全局配置模式`
R1#conf t
# 配置静态路由表
R1(config)#ip route 30.1.1.0 255.255.255.0 20.1.1.2
R1(config)#ip route 40.1.1.0 255.255.255.0 20.1.1.2
R1(config)#ip route 50.1.1.0 255.255.255.0 20.1.1.2
R1(config)#ip route 60.1.1.0 255.255.255.0 20.1.1.2
# 查看配置好的路由表
R1(config)#do sh ip route

android netd 修改路由表 android 路由表配置_IP_03


2)、路由器 R2

需要配置的路由表

路由条目类型

目标 IP 网段

接口 / 下一跳 IP 地址

C

20.1.1.0/24

Fa0/0

C

30.1.1.0/24

Fa0/1

C

40.1.1.0/24

Fa1/0

S

10.1.1.0/24

20.1.1.1

S

50.1.1.0/24

40.1.1.2

S

60.1.1.0/24

30.1.1.2

配置 IP 地址

R2>en
R2#conf t
R2(config)#int f0/0
R2(config-if)#ip add 20.1.1.2 255.255.255.0
R2(config-if)#no sh
R2(config-if)#int f0/1
R2(config-if)#ip add 30.1.1.1 255.255.255.0
R2(config-if)#no sh
R2(config-if)#int f1/0
R2(config-if)#ip add 40.1.1.1 255.255.255.0
R2(config-if)#no sh
R2(config-if)#do sh ip int b

android netd 修改路由表 android 路由表配置_路由表_04

配置路由表

R2>en
R2#conf t
R2(config)#ip route 10.1.1.0 255.255.255.0 20.1.1.1
R2(config)#ip route 50.1.1.0 255.255.255.0 40.1.1.2
R2(config)#ip route 60.1.1.0 255.255.255.0 30.1.1.2
R2(config)#do sh ip route

android netd 修改路由表 android 路由表配置_R3_05


3)、路由器 R3

需要配置的路由表

路由条目类型

目标 IP 网段

接口 / 下一跳 IP 地址

C

50.1.1.0/24

Fa0/0

C

40.1.1.0/24

Fa0/1

S

10.1.1.0/24

40.1.1.1

S

20.1.1.0/24

40.1.1.1

S

30.1.1.0/24

40.1.1.1

S

60.1.1.0/24

40.1.1.1

配置 IP 地址

R3>en
R3#conf t
R3(config)#int f0/0
R3(config-if)#ip add 50.1.1.254 255.255.255.0
R3(config-if)#no sh
R3(config-if)#int f0/1
R3(config-if)#ip add 40.1.1.2 255.255.255.0
R3(config-if)#no sh
R3(config-if)#do sh ip int b

android netd 修改路由表 android 路由表配置_android netd 修改路由表_06

配置路由表

R3>en
R3#conf t
R3(config)#ip route 10.1.1.0 255.255.255.0 40.1.1.1
R3(config)#ip route 20.1.1.0 255.255.255.0 40.1.1.1
R3(config)#ip route 30.1.1.0 255.255.255.0 40.1.1.1
R3(config)#ip route 60.1.1.0 255.255.255.0 40.1.1.1
R3(config)#do sh ip route

android netd 修改路由表 android 路由表配置_R3_07


4)、路由器 R4

需要配置的路由表

路由条目类型

目标 IP 网段

接口 / 下一跳 IP 地址

C

30.1.1.0/24

Fa0/0

C

60.1.1.0/24

Fa0/1

S

10.1.1.0/24

30.1.1.1

S

20.1.1.0/24

30.1.1.1

S

40.1.1.0/24

30.1.1.1

S

50.1.1.0/24

30.1.1.1

配置 IP 地址

R4>en
R4#conf t
R4(config)#int f0/0
R4(config-if)#ip add 60.1.1.254 255.255.255.0
R4(config-if)#no sh
R4(config-if)#int f0/1
R4(config-if)#ip add 30.1.1.2 255.255.255.0
R4(config-if)#no sh
R4(config-if)#do sh ip int b

android netd 修改路由表 android 路由表配置_路由表_08

配置路由表

R4>en
R4#conf t
R4(config)#ip route 10.1.1.0 255.255.255.0 30.1.1.1
R4(config)#ip route 20.1.1.0 255.255.255.0 30.1.1.1
R4(config)#ip route 40.1.1.0 255.255.255.0 30.1.1.1
R4(config)#ip route 50.1.1.0 255.255.255.0 30.1.1.1
R4(config)#do sh ip route

android netd 修改路由表 android 路由表配置_IP_09

注:从 网络拓扑图每个路由器的路由表 中可以看出,路由器 R1、R3、R4 属于 末端路由,因为这些路由转发的 下一跳 IP 地址 是同样的,相同 下一跳 IP 地址 是可以合并的。所以 末端路由 可以很大程度的被优化。


3、路由优化

优化后的 路由表目标 IP 网段0.0.0.0/0 表示所有网段。而这同样是 手工配置 的,区分 静态路由

  • 静态路由(S):表示一个具体的网段。
  • 默认路由(S*):表示所有网段。

末端路由R1、R2、R3 优化之后 路由表 展示:

  • 路由器 R1

路由条目类型

目标 IP 网段

接口 / 下一跳 IP 地址

C

10.1.1.0/24

Fa0/0

C

20.1.1.0/24

Fa0/1

S*

0.0.0.0/0

20.1.1.2

  • 路由器 R3

路由条目类型

目标 IP 网段

接口 / 下一跳 IP 地址

C

50.1.1.0/24

Fa0/0

C

40.1.1.0/24

Fa0/1

S*

0.0.0.0/0

40.1.1.1

  • 路由器 R4

路由条目类型

目标 IP 网段

接口 / 下一跳 IP 地址

C

30.1.1.0/24

Fa0/0

C

60.1.1.0/24

Fa0/1

S*

0.0.0.0/0

30.1.1.1

注:0.0.0.0/0 有两个意思,一个是无效地址,另一个是所有地址。

4、路由条目的优先级

路由器在匹配路由条目时,是按照路由条目的优先级先后进行匹配。

路由条目的优先级与 管理距离值 A成反比,下面表格展示,管理距离值 越小的 优先级 越高。

在匹配过程中,一旦匹配成功,就不在往下匹配,而是按照响应的条目,直接向 下一跳 IP 地址 转发。

路由条目类型

管理距离值

备注

C(直接路由条目)

0

不可更改

S(静态路由)

1

可更改

S*(默认路由)

1无穷大

可更改