• 06 - ip route和route -n的区别


    1 ip route和route -n的区别


    ip route 和 route -n 都是用于查看和管理Linux系统路由表的命令。但下面是它们的区别:

    • ip route:是Linux系统中的现代工具,它属于iproute2套件;它提供了更多的选项,可以更精确地控制路由表的管理。
    • route -n:是传统的路由管理工具,它属于net-tools套件,它通常用于旧版的Linux系统;它的功能相对较少,选项也较为有限。

    1.1 ip route的用法

    [root@master-01 home]# ip route
    default via 192.168.217.2 dev ens33 
    10.3.1.0/24 via 10.3.1.0 dev flannel.1 onlink 
    172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 
    
    • 1
    • 2
    • 3
    • 4

    【常用参数】解释:

    • default:代表该条路由为默认路由;
    • via ADDRESS:下一跳地址;
    • 默认路由是指当系统无法匹配其他路由时,将数据包发送到指定的下一跳地址。

    • dev NAME:输出的设备名称。
    • src ADDRESS:指定数据包的源 IP 地址。
    • metric:跳数,该条路由记录的质量,一般情况下,如果有多条到达相同目的地的路由记录,路由器会采用metric值小的那条路由。


    【不常用参数】解释:

    • proto:路由协议标识符,指示此路由的路由协议类型;
    • kernel:表示该路由是由内核在自动配置期间安装的;
    • proto kernel 的意思是指这个路由项是在自动配置阶段由kernel创建的。

    • scope:指示路由表条目所覆盖的目的地范围;
    • link:表示在设备的网络段内,可以通过此链接进行通信;
    • scope link 的意思是 172.17.0.0/16 这个子网内的目标ip仅仅在 docker0 这个接口上有效。

    • onlink是Linux路由表中的一个参数,表示路由应该“假装下一跳直接连接到这个链路,即使它不匹配任何接口前缀”。这意味着路由器会假设下一跳地址是直接连接的,即使它实际上并不是。这通常用于特殊的网络配置,例如在某些隧道设置中。onlink参数通常用于在路由表中创建虚拟路由。

    第一行:
    default via 192.168.217.2 dev ens33
    此条路由为默认路由,也就是任何无路由报文都通过ens33 经由默认网关192.168.217.2 来转发。


    第二行:
    10.3.1.0/24 via 10.3.1.0 dev flannel.1 onlink
    首先,从该条路由可以表明:Flannel正在使用VXLAN或类似的技术来实现覆盖网络,这条路由的意思是:目的地址10.3.1.0/24通过flannel.1设备上的10.3.1.0进行路由。"onlink"选项表示该路由表项指定的目的地址是直接连接的,不需要经过网关。


    第三行:
    172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1

    • 172.17.0.0/16:这是目的地,表示所有目的IP地址在192.168.1.0到192.168.1.255之间的数据包。
    • dev eth0:这表示数据包将通过名为eth0的网络接口发送和接收。
    • proto kernel:这表示这个路由是由内核自动添加的。
    • scope link:这表示该路由仅对本地链路或直接连接的网络有效,而不可在公共互联网上路由。
    • src 172.17.0.1:这指定了发送数据包时要使用的源IP地址。

    因此,这个路由表条目告诉系统将目的IP地址在172.17.0.0/16范围内的数据包发送到名为docker0的网络接口,并使用源IP地址172.17.0.1。


    1.2 route -n的用法

    [root@master-01 home]# ip route 
    default via 192.168.217.2 dev ens33 
    10.3.0.0/24 dev cni0 proto kernel scope link src 10.3.0.1 
    10.3.1.0/24 via 10.3.1.0 dev flannel.1 onlink 
    169.254.0.0/16 dev ens33 scope link metric 1002 
    172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 
    192.168.217.0/24 dev ens33 proto kernel scope link src 192.168.217.129 
    [root@master-01 home]# 
    [root@master-01 home]# 
    [root@master-01 home]# 
    [root@master-01 home]# route -n
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    0.0.0.0         192.168.217.2   0.0.0.0         UG    0      0        0 ens33
    10.3.0.0        0.0.0.0         255.255.255.0   U     0      0        0 cni0
    10.3.1.0        10.3.1.0        255.255.255.0   UG    0      0        0 flannel.1
    169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 ens33
    172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 docker0
    192.168.217.0   0.0.0.0         255.255.255.0   U     0      0        0 ens33
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    参数解释:

    • Destination:目的网段;0.0.0.0 表示匹配任意网段。
    • Genmask:子网掩码
    • Gateway:默认网关;0.0.0.0 表示无网关,即与本地IP同一网段。
    • Flags:标志位,U - Up表示有效 G - Gateway表示链接路由,若无这个字段,表示直连目的地址(本机)
    • Metrics:跳数
    • Iface:出口网卡,如果不属于本网段,那么通过Iface端口发送到Gateway地址

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


    2 iproute2 对决 net-tools


    如今很多系统管理员依然通过组合使用诸如ifconfig、route、arp和netstat等命令行工具(统称为net-tools)来配置网络功能,解决网络故障。net-tools起源于BSD的TCP/IP工具箱,后来成为老版本Linux内核中配置网络功能的工具。但自2001年起,Linux社区已经对其停止维护。同时,一些Linux发行版比如Arch Linux和CentOS/RHEL 7则已经完全抛弃了net-tools,只支持iproute2。


    如果你仍在使用net-tools,而且尤其需要跟上新版Linux内核中的最新最重要的网络特性的话,那么是时候转到iproute2的阵营了。原因就在于使用iproute2可以做很多net-tools无法做到的事情。


    对于那些想要转到使用iproute2的用户,有必要了解下面有关net-tools和iproute2的众多对比。

    在这里插入图片描述


  • 相关阅读:
    Vue3实战笔记(57)—一键换肤:在Vuetify中打造个性化主题切换体验
    Selenium最新版谷歌浏览器驱动的下载及使用
    Django 一对多关系
    树莓派linux源码配置相关操作
    嵌入式常见接口协议总结
    【allegro 17.4软件操作保姆级教程五】布线前准备之过孔、差分对、布线集合添加
    b2b.ccb.com:443 需要你的凭据
    uniapp——自定义组件插槽及使用
    【面试题】面试小技巧:如果有人问你 xxx 技术是什么?
    毫末速度:中国自动驾驶落地最快的1000天
  • 原文地址:https://blog.csdn.net/UFC_llrs/article/details/136458003