目录
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 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 eth1routeadd -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 101linux之路由知识之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