路由

路由记录了整个网络通讯的路径,路由如果出错,网络肯定不通

路由表主要构成:

1
2
3
4
5
6
[root@centos7 network-scripts]#route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.0.0.2 0.0.0.0 UG 100 0 0 ens33
10.0.0.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
10.0.0.0 0.0.0.0 255.255.255.0 U 101 0 0 ens37
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
- Destination # 目标网络的IP,需要配合Genmask
- Gateway # 网关
# 目标网络直达,gateway是0.0.0.0,通过广播通信
# 目标网络非直达,gateway是相邻(下一跳)路由器的靠近本机的接口IP地址
# 要和本机在同一网段,不同网段是不能通信的
# 要先有一条能到达网关地址的路由
- Genmask # 目标网络的子网掩码
# 0.0.0.0/0 表示所有未知网络,又称为默认路由,优先级最低,我称之为兜底路由
# x.x.x.x/32 是主机路由,一般不写这么具体
- Flags # 路由标记
# U:该路由可以使用
# G:该路由是到一个网关(路由器). 若没有此标志, 说明目的地址为直接连接的
# H:该路由是到一个主机,如果没有该标志, 说明该路由是到一个网络
# D:该路由是有重定向报文创建的
# M:该路由已被重定向报文修改
- Metric # 路由开销,值越小,路由记录的优先级最高
- Ref #
- Use Iface # 网卡接口

配置动态路由

route 命令可以添加路由,可是靠手动一条一条的添加太麻烦了,大型的网络环境中,路由器中的路由不是手动添加的,而是通过路由协议自动生成的。

路由协议:

1
2
3
RIP     # Routing Information Protocol,路由信息协议
OSPF # Open Shortest Path First,开放式最短路径优先
BGP # Border Gateway Protocol,边界网关协议

大概的过程:每个路由器向网络中广播,告诉其他路由器自己连接的网段,互通有无。例如 pc1 要和 pc2 通信,pc1 只要知道 gwA 能连接 pc1,gwA 只知道 gwB 能连接 pc1,而 gwB 只知道 gwC 能连接 pc1,就这样,最后通过 gwE 才真正连接到 pc2

不同的协议决定了路由器选择路径的算法不同。RIP 很少用,OSPF 用于局域网,BGP 用于互联网