Linux 路由基础知识介绍_linux路由的作用

201 阅读5分钟

[root@bogon ~]# route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface default bogon 0.0.0.0 UG 100 0 0 ens33 192.168.1.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33 192.168.2.0 0.0.0.0 255.255.255.0 U 0 0 0 ens33 192.168.2.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33


route 命令的输出项说明:




| 输出项 | 说明 |
| --- | --- |
| Destination | 目标网段或者主机 |
| Gateway | 网关地址,”\*” 表示目标是本主机所属的网络,不需要路由 |
| Genmask | 网络掩码 |
| Flags | 标记。一些可能的标记如下: |
|  | U — 路由是活动的 |
|  | H — 目标是一个主机 |
|  | G — 路由指向网关 |
|  | R — 恢复动态路由产生的表项 |
|  | D — 由路由的后台程序动态地安装 |
|  | M — 由路由的后台程序修改 |
|  | ! — 拒绝路由 |
| Metric | 路由距离,到达指定网络所需的中转数(linux 内核中没有使用) |
| Ref | 路由项引用次数(linux 内核中没有使用) |
| Use | 此路由项被路由软件查找的次数 |
| Iface | 该路由表项对应的输出接口 |



#### **三、3 种路由类型**



##### **1、主机路由**


主机路由是路由选择表中指向单个IP地址或主机名的路由记录。主机路由的Flags字段为H。例如,在下面的示例中,本地主机通过IP地址192.168.1.1的路由器到达IP地址为10.0.0.10的主机。



Destination Gateway Genmask Flags Metric Ref Use Iface


10.0.0.10 192.168.1.1 255.255.255.255 UH 0 0 0 eth0


##### **2、网络路由**


网络路由是代表主机可以到达的网络。网络路由的Flags字段为N。例如,在下面的示例中,本地主机将发送到网络192.19.12的数据包转发到IP地址为192.168.1.1的路由器。



Destination Gateway Genmask Flags Metric Ref Use Iface


192.19.12 192.168.1.1 255.255.255.0 UN 0 0 0 eth0


##### **3、默认路由**


当主机不能在路由表中查找到目标主机的IP地址或网络路由时,数据包就被发送到默认路由(默认网关)上。默认路由的Flags字段为G。例如,在下面的示例中,默认路由是IP地址为192.168.1.1的路由器。



Destination Gateway Genmask Flags Metric Ref Use Iface


default 192.168.1.1 0.0.0.0 UG 0 0 0 eth0


#### **四、route、ip route、ip rule命令介绍**


##### **1、route命令**


设置和查看路由表都可以用 route 命令,设置内核路由表的命令格式是:



route [add|del] [-net|-host] target [netmask Nm] [gw Gw] [[dev] If]


其中:


* **add** : 添加一条路由规则;
* **del** : 删除一条路由规则;
* **-net** : 目的地址是一个网络;
* **-host** : 目的地址是一个主机;
* **target** : 目的网络或主机;
* **netmask** : 目的地址的网络掩码;
* **gw** : 路由数据包通过的网关;
* **dev** : 为路由指定的网络接口。


**route 命令使用举例**


添加到主机的路由



route add -host 192.168.1.2 dev eth0:0

route add -host 10.20.30.148 gw 10.20.30.40


添加到网络的路由



route add -net 10.20.30.40 netmask 255.255.255.248 eth0

route add -net 10.20.30.48 netmask 255.255.255.248 gw 10.20.30.41

route add -net 192.168.1.0/24 eth1


添加默认路由



route add default gw 192.168.1.1


删除路由



route del -host 192.168.1.2 dev eth0:0

route del -host 10.20.30.148 gw 10.20.30.40

route del -net 10.20.30.40 netmask 255.255.255.248 eth0

route del -net 10.20.30.48 netmask 255.255.255.248 gw 10.20.30.41

route del -net 192.168.1.0/24 eth1

route del default gw 192.168.1.1


##### **2、ip rule**


早期在管理Linux系统的网络时,常使用ifconfig及route之类的命令,不过如果你准备开始使用linux强大的基于策略的路由机制,那么,就请不要使用这类工具了,因为这类工具根本无法用于功能强大的基于策略的路由机制,取而代之的工具是iproute。



[root@bogon ~]# ip rule help Usage: ip rule { add | del } SELECTOR ACTION ip rule { flush } ip rule [ list ] SELECTOR := [ not ] [ from PREFIX ] [ to PREFIX ] [ tos TOS ] [ fwmark FWMARK[/MASK] ] [ iif STRING ] [ oif STRING ] [ pref NUMBER ] ACTION := [ table TABLE_ID ] [ nat ADDRESS ] [ realms [SRCREALM/]DSTREALM ] [ goto NUMBER ] TABLE_ID := [ local | main | default | NUMBER ]


如果新加的路由在main表之外的路由表,则只有先添加规则后才能确定新的路由表的ID,有了新的路由表ID后,才能在该路由表中添加路由。


在添加规则时,需要先定义好优先级、条件及路由表ID,然后才可以添加规则。如下例:



#根据源地址决定路由表 ip rule add from 192.168.10.0/24 table 100 ip rule add from 192.168.20.20 table 110

#根据目的地址决定路由表 ip rule add to 192.168.30.0/24 table 120 ip rule add to 192.168.40.0/24 table 130

#根据网卡设备决定路由表 ip rule add dev eth0 table 140 ip rule add dev eth1 table 150

#此外还可以根据其他条件进行设置,例如tos等等


上面的路由表都是用100、110、120、130等数字表示的,时间一久难免自己也会忘记该路由表的作用,不过iproute提供了一个路由表和名称的对应表(/etc/iproute2/rt\_tables),可以手动修改该表。


可以看到添加路由表100后,显示确实是100,在修改rt\_tables的映射关系后(100映射到wangtong),ip rule show的内容也变化了。


当然也可使用ip命令来删除路由表了。



#根据明细条目删除 ip rule del from 192.168.10.10

#根据优先级删除 ip rule del prio 32765

#根据表名称来删除 ip rule del table wangtong


ip rule show查看的只是有哪些路由表,要查看路由表里面的具体路由,则可以使用ip route show/list table ID/name,默认的ip route show查看的是main表的路由条目。


进行路由时,正是根据路由规则来进行匹配,按优先级(pref后数值)从高到低匹配,直到找到合适的规则.所以在应用中配置默认路由是必要的。



> 
> 注:各路由表中应当指明默认路由,尽量不回查路由表.路由添加完毕,即可在路由规则中应用
> 
> 
> 



### 最后的话

最近很多小伙伴找我要Linux学习资料,于是我翻箱倒柜,整理了一些优质资源,涵盖视频、电子书、PPT等共享给大家!

### 资料预览

给大家整理的视频资料:

![](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/08956d48394346b48329f9c153422009~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3MDgwNDUxMTkwMTI=:q75.awebp?rk3s=f64ab15b&x-expires=1772114863&x-signature=wggI4QEzuR6oq3czKu4KZKPGgOs%3D)

给大家整理的电子书资料:

  

![](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/2b6a828ec2814a2084bd57f3c68859ad~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3MDgwNDUxMTkwMTI=:q75.awebp?rk3s=f64ab15b&x-expires=1772114863&x-signature=Nq%2Bxm%2FYxR1DKvjm9W33AEWZH9Nk%3D)



**如果本文对你有帮助,欢迎点赞、收藏、转发给朋友,让我有持续创作的动力!**

详情docs.qq.com/doc/DSmdCdUNwcEJDTXFK