Bootstrap

【网络】route和 IP route的区别|route 和 IP route 添加路由

目录

route和 IP route的区别

 route 和 IP route 显示路由

route 和 IP route 添加路由

route 添加路由

IP route 添加路由

添加的路由持久化

linux下添加路由的方法

使用 route 命令

 使用ip route 命令


route和 IP route的区别

route是一个相当简单的工具,非常适合创建静态路由。为了兼容性,它仍然存在于许多发行版中。

ip route功能更强大,功能更多,并且可以创建更专业的规则。

route

并非所有路由规则条目都可以用route 显示,route 只显示主路由表中的信息,而NAT路由信息以及和主路由表以外的其他路由表信息必须使用 ip route 工具单独管理和查看。

D.1. route (linux-ip.net):http://linux-ip.net/html/tools-route.html

IP route

IP route是用于 IP 管理的 iproute2 工具套件的另一部分,ip route 提供了用于操作任何路由表的管理工具。操作包括显示路由或路由缓存、添加路由、删除路由、修改现有路由、获取路由和清除整个路由表或路由缓存。使用 ip route 时要记住的一件事是,您可以使用此命令对 255 个路由表中的任何一个进行操作。在 route 命令仅在主路由表(表 254)上运行的情况下,ip route 命令默认情况下在主路由表上运行,但可以通过 table 参数轻松coaxed into使用其他表。

D.2. ip route (linux-ip.net):http://linux-ip.net/html/tools-ip-route.html#tools-ip-route-show

ip命令与ifconfig命令类似,但比ifconfig命令更加强大,主要功能是用于显示或设置网络设备、路由和隧道的配置等,ip命令是Linux加强版的的网络配置工具,用于代替ifconfig命令。

ip命令是Linux管理员非常方便的工具。此工具的唯一缺点是更改是非持久性的,这意味着重新启动后将无法生存。
原文链接:https://blog.csdn.net/qq_35029061/article/details/125967340

ip link list 显示ip链路状态信息
ip address show 除显示所有网络地址
ip route show 显示主路由表信息
ip neigh show 显示邻居表

 route 和 IP route 显示路由

route -n显示现在所有路由

root@Ubuntu:~# route

 结果是自上而下, 就是说, 哪条在前面, 哪条就有优先, 前面都没有, 就用最后一条default,

1、第一行的意思就是去往所有目标地址数据包由网关192.168.124.1 通过网卡eth0来转发,Flags那一列中有G时才会使用Gateway

2、第二行:表示去往节点1的eth0的数据由网关192.168.124.254通过本机的eth0来转发

3、第三行:同样是去往节点2的eth0的数据由网关192.168.1244.253通过本机的eth0来转发

4、第四行:意思就是去往192.168.122.0地址的数据包通过virbr0网桥设备来转发

5、第五行:就是说去往192.168.124.0 地址中的数据要通过eth0网卡来转发

#route add -net 192.168.1.0/24 gw 192.168.124.254#图第2行添加命令

#route add -net 192.168.2.0/24 gw 192.168.124.253#图第3行添加命令

其中:

add : 添加一条路由规则

del : 删除一条路由规则

-net : 目的地址是一个网络

-host : 目的地址是一个主机

target : 目的网络或主机

netmask : 目的地址的网络掩码

gw : 路由数据包通过的网关

dev : 为路由指定的网络接口

列出项说明:

ip route解读

default via 192.168.1.1 dev wlan0
192.168.1.0/24 dev wlan0  proto kernel  scope link  src 192.168.1.100 

https://diego.assencio.com/?index=d71346b8737ee449bb09496784c9b344

先解释第二行,所有发往192.168.1.0/24网络的报文必须通过wlan0这个网络接口(wifi网卡)转发,并且使用192.168.1.100作为其source ip. 该ip就是通过DHCP获取的绑定于wlan0这个接口的ip地址

proto kernel的意思是这个路由项是在自动配置阶段由kernel创建的,而scope link的意思是192.168.1.0/24这个子网内的目标ip仅仅在wlan0这个接口上valid.

第一行是默认路由。任何无路由报文都通过wlan0经由默认网关192.168.1.1来转发。

路由表的查看可有以下二种方法:
      ip route list table table_number
      ip route list table table_name


路由表序号和表名的对应关系在/etc/iproute2/rt_tables中,可手动编辑

查看命令 解释

ip route
或:ip r
或:ip route show
或:ip route list

ip route list table  table_name

显示系统路由
ip route list 192.168.1.0/24 查看指定网段的路由
ip route show [exact] 169.254.0.0/16 精准查看具体某一条路由
ip route show match 172.18 模糊匹配某一条路由
ip route show src 172.18.16.0/20 仅列出源地址前缀为172.18.16.0/20的路由
ip route show via 172.18.31.253 仅列出通过前缀选择的为该ip的路由
ip -s route show cache 192.168.100.17 显示来自路由缓存的统计信息
ip route show table local
或:ip route list table local
查看本地路由表

ip route list table main


linux 系统中,可以自定义从 1-252个路由表,其中,linux系统维护了4个路由表:

0#表: 系统保留表
253#表: defult table 没特别指定的默认路由都放在改表
254#表: main table 没指明路由表的所有路由放在该表
255#表: local table 保存本地接口地址,广播地址、NAT地址 由系统维护,用户不得更改
( 路由表序号和表名的对应关系在 /etc/iproute2/rt_tables 文件中,可手动编辑。路由表序号和表名添加完毕后, ip rule add from all table 表名, 然后ip rule list查看 )

参考博客:

Linux Advanced Routing & Traffic Control HOWTO
https://lartc.org/howto/

https://blog.csdn.net/liuqun69/article/details/88888893

route 和 IP route 添加路由

(本章节转自:https://blog.csdn.net/Answer_to_you/article/details/108997735)

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

路由规则的添加
ip rule add from 192.168.1.10/32 table 1 pref 100
如果pref值不指定,则将在已有规则最小序号前插入

route 添加路由

(注意使用route 命令添加的路由,机器重启或者网卡重启后路由就失效了,持久化方法见后面说明)

#添加一条路由(发往192.168.62这个网段的全部要经过网关192.168.1.1)
route add -net 192.168.62.0 netmask 255.255.255.0 gw 192.168.1.1

#删除一条路由 删除的时候不用写网关
route del -net 192.168.122.0 netmask 255.255.255.0

示例1:添加到主机路由 (指定一个主机-host 192.168.4.2)

route add –host 192.168.4.2 dev eth0:1
route add –host 192.168.4.1 gw 192.168.4.250

示例2:添加到网络的路由(指定一个网络-net 192.168.2.0/24)

route add –net IP netmask MASK eth0
route add –net IP netmask MASK gw IP
route add –net IP/24 eth1

routeadd -net 192.168.1.11 netmask 255.255.255.0 eth0

routeadd -net 192.168.1.11 netmask 255.255.255.0 gw 192.168.1.1

routeadd -net 192.168.1.0/24 eth0

routeadd-net192.168.1.0/24gw192.168.1.1

route add -net 192.168.2.0/24 gw 192.168.1.1
route add -host 192.168.2.100/32 gw 192.168.1.1


示例3:添加默认网关

route add default gw IP

route add default gw 192.168.1.1

删除路由
route del -net 192.168.2.0/24 gw 192.168.1.1
route del -host 192.168.2.100/32 gw 192.168.1.1

示例和说明:

有两块网卡if1和if2
eth0: 192.168.10.23/255.255.255.0
eth1: 192.168.20.22/255.255.255.0

添加路由命令如下
route add -net 192.168.10.0 netmask 255.255.255.0 dev eth0
route add -net 192.168.20.0 netmask 255.255.255.0 dev eth1

通过上面两个命令, 发往192.168.10.0网段的IP包会通过eth0发送, 发往192.168.20.0网段的IP包会通过eth1发送. 

如果其它网段的IP包如何发送? 需要设置一个默认网关, 命令如下
route add default gw 192.168.20.1

通过上面命令, 会将除了这两个网络的IP包都发往192.168.20.1网关, 如何转发到192.168.20.1网关? 在上面的两条路由项中已经定义了, 会通过eth1网口转发,

route  命令说明:

route  [-v] [-A family |-4|-6] del [-net|-host] target [gw Gw] [netmask Nm] [metric N] [[dev] If]

简化版

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

注:虽然可指定网络接口,但是不建议这么做。

参数解释

add:添加一条路由规则

del:删除一条路由规则

-net:目的地址是一个网络

-host:目的地址是一个主机

target:目的网络或主机

netmask:目的地址的网络掩码

gw:路由数据包通过的网关

dev:为路由指定的网络接口


链接:https://www.jianshu.com/p/93392249ef24

IP route 添加路由

注:创建完路由规则若需立即生效须执行#ip route flush cache;刷新路由缓冲
    可参数解析如下:   &n
        From -- 源地址
        To -- 目的地址(这里是选择规则时使用,查找路由表时也使用)
     Tos -- IP包头的TOS(type of sevice)域Linux高级路由-
      Dev -- 物理接口
      Fwmark -- iptables标签

添加路由到table 100。
ip route add 192.168.1.0/24 dev eth0 src 192.168.1.183 table 100

查看的时候也要指定table 100: ip route list table  100

命令 解释
ip route add default via 192.168.1.1 设置系统默认路由
ip route add 192.168.2.0/24 via 192.168.1.1 设置192.168.2.0网段的网关为192.168.1.1
ip route add 192.168.4.0/24 via 192.168.0.254 dev eth0 设置192.168.4.0网段的网关为192.168.0.254,数据走eth0接口
ip route add default via 192.168.0.254 dev eth0 设置默认网关为192.168.0.254
ip route add default via 192.168.1.1 table 1 在一号表中添加默认路由为192.168.1.1
ip route add 192.168.0.0/24 via 192.168.1.2 table 1 在一号表中添加一条到192.168.0.0网段的路由为192.168.1.2
ip route add prohibit 209.10.26.51 设置请求的目的地不可达的路由
ip route add prohibit 209.10.26.51 from 192.168.99.35 假设您不想阻止所有用户访问此特定主机,则可以使用该from选项,阻止了源IP 192.168.99.35到达209.10.26.51
ip route change default via 192.168.99.113 dev eth0 更改默认路由。此操作等同于先删除,后新增


ip route append 192.168.2.0/24 via 192.168.1.12 #追加一个指定网络的路由,为了平滑切换网关使用

修改路由
ip route change 192.168.2.0/24 via 192.168.1.11
ip route replace 192.168.2.0/24 via 192.168.1.111

删除路由
ip route del 192.168.2.0/24 via 192.168.1.1

清空指定网络的路由
ip route flush 192.168.2.0/24 #这个是清理所有192.168.2.0/24相关的所有路由,有时候设置错网关存在多条记录,就需要一次性清空相关路由再进行添加
指定路由metirc
ip route add 192.168.2.0/24 via 192.168.1.15 metric 10

添加默认路由
ip route add 192.168.2.0/24 via 192.168.1.1


默认路由到table 100
ip route add 192.168.1.0/24 dev eth0 src 192.168.1.183 table 100
/online/ip_route_ctrl.sh: ip route add default via 192.168.1.1 dev eth0
静态路由
ip route add 192.168.2.0 via 192.168.3.7 dev eth1 table 101

linux之路由知识之ip route 命令中的疑惑,这篇问准详细介绍了IP route
https://blog.csdn.net/u011068702/article/details/53899537

查看命令 解释
ip route get 169.254.0.0/16 获取到目标的单个路由,并按照内核所看到的方式打印其内容

ip route delete

命令 解释
ip route del 192.168.4.0/24 删除192.168.4.0网段的网关
ip route del default 删除默认路由
ip route delete 192.168.1.0/24 dev eth0 删除路由

ip route flush

flush选项与ip route

;