路由基础知识
路由是由一项或者多项路由表组成的,每个IP报文被发送前,系统都会查找主机路由表,决定将这个报文从哪个网卡,发送到哪个下一跳。每条路由表项主要由目标IP(主机或者网络),子网掩码,接口,网关(下一跳IP),度量(metric)这几项组成。
报文选路的6步走:
1,查找路由表
2,命中表项,则按表项指定,通过指定网络接口,将本IP报文转到到下一跳(或直接到目的地址)
3,不命中,则继续查找
4,如果全部表项都不命中,则查找默认路由
5,如果有默认路由,则按默认路由指定,通过指定网络接口,将本IP报文转到到下一跳
6,如果无默认路由,则丢弃本报文
使用route查看Linux路由表

| 输出项 | 说明 |
|---|---|
| Destination | 目标网段或者主机 |
| Gateway | 网关地址,”*” 表示目标是本主机所属的网络,不需要路由 |
| Genmask | 网络掩码 |
| Flags | 标记。一些可能的标记如下: |
| U — 路由是可用的 | |
| H — 目标是一个主机 | |
| G — 路由指向网关 | |
| R — 恢复动态路由产生的表项 | |
| D — 由路由的后台程序动态地安装 | |
| M — 由路由的后台程序修改 | |
| ! — 拒绝路由 | |
| Metric | 到达指定网络所需的中转数,所选的路由具有最少的跃点数(越小优先级越高) |
| Ref | 路由项引用次数(linux 内核中没有使用) |
| Use | 此路由项被路由软件查找的次数 |
| Iface | 该路由表项对应的输出接口 |
路由类型
路由表项可以分成主机路由,网络路由和默认路由3种。
-
主机路由:主机路由目标是一个主机地址,在路由选择表中指向单个IP地址或主机名的路由记录。
-
网络路由:网络路由是代表主机可以到达的网络。
-
默认路由:当主机不能在路由表中查找到目标主机的IP地址或网络路由时,数据包就被发送到默认路由(默认网关)上。
route 命令
Linux系统的route命令用于显示和操作IP路由表(show / manipulate the IP routing table)。要实现两个不同的子网之间的通信,需要一台连接两个网络的路由器,或者同时位于两个网络的网关来实现。
在Linux系统中,设置路由通常是为了解决以下问题:该Linux系统在一个局域网中,局域网中有一个网关,能够让机器访问Internet,那么就需要将这台机器的IP地址设置为Linux机器的默认路由。要注意的是,直接在命令行下执行route命令来添加路由,不会永久保存,当网卡重启或者机器重启之后,该路由就失效了;可以在/etc/rc.local中添加route命令来保证该路由设置永久有效。
网关:连接一个网络到另一个网络的关口,不同的网络有不同的网络地址,以及不同的网络中的主机分配有不同的段的ip地址。网关可以实现广域网的互连,也可以实现局域网的互连。 【说明:由于历史的原因,许多有关TCP/IP的文献曾经把网络层使用的路由器称为网关,在今天很多局域网采用都是路由来接入网络,因此通常指的网关就是路由器的IP】
Linux route常用命令
# 查看
route # 查看路由表
# 主机路由
route add -host 10.201.52.5 metric 10 dev eno1 # 增加主机路由
route add -host 10.201.52.5 gw 10.201.53.254 metric 10 dev eno1 # 增加主机路由,目标主机不再直通的网络上,则需要网关(下一跳IP)转发
route del --host 10.201.52.5 metric 10 dev eno1 # 删除主机路由
# 网络路由
route add -net 10.201.52.0 netmask 255.255.255.0 metric 100 dev eno1 # 增加网络路由(如果目标网络需要通过gw下一跳转发,则加上gw选项即可)
route del -net 10.201.52.0 netmask 255.255.255.0 metric 100 dev eno1 # 删除默认路由
# 默认路由
route add default gw 10.201.53.254 metric 100 dev eno1 # 增加默认路由
route del default gw 10.201.53.254 # 删除默认路由
示例:

Windows route常用命令
# 打印
route print # 查看路由表
route print -4 # 查看ipv4路由表
route print 192.168.3* # 查看192.168.3开头的路由段
# 添加路由
route add 10.201.53.0 mask 255.255.255.0 192.168.124.1 metric 3 # 下一跳地址位192.168.124.1
# 删除路由
route delete 10.201.53.0
文章介绍了IP报文的路由原理,包括查找路由表的步骤,以及Linux和Windows系统中route命令的使用,如添加、删除主机路由、网络路由和默认路由。还解释了网关在网络通信中的作用,强调了直接通过命令行添加的路由在重启后会失效,需通过rc.local持久化。

4594

被折叠的 条评论
为什么被折叠?



