1. linux中的路由表table和路由策略rule
1)路由表,存放具体的路由条目。用于决定数据包从哪个网口发出,其主要判断依据是目标IP地址。
(2)路由策略,根据策略绑定路由表。id越小,优先级越高。
(3)路由寻址过程中,按顺序走路由策略,匹配路由策略后,在路由策略对应的路由表中寻找匹配路由。
(4)添加路由策略时。我们使用ip route list 或 route -n 或 netstat -rn查看的路由记录,只是其中的一个路由表的内容。
路由寻找过程中,会根据路由策略的优先级来查找路由表。所以分析时,
第一,我们应该根据优先级遍历路由策略。匹配路由策略则跳到第二步,否则继续遍历路由策略。
第二,找路由策略绑定的路由表,从路由表中匹配路由。若匹配到路由则跳到第三,否则跳到第一,继续下一个优先级的路由策略。
第三,找到路由。
路由表 | 说明 |
table id = 0 | 系统保留。 |
table id = 253 | 称为默认路由表,表名为default。一般来说默认的路由都放在这张表。 |
table id = 254 | 称为主路由表,表名为main。如果没有指明路由所属的表,所有的路由都默认都放在这个表里。一般来说,旧的路由工具(如route)所添加的路由都会加到这个表。main表中路由记录都是普通的路由记录。而且,使用ip route配置路由时,如果不明确制定要操作的路由表,默认情况下也是主路由表(表254)进行操作。 备注:我们使用ip route list 或 route -n 或 netstat -rn查看的路由记录,也都是main表中记录。 |
table id = 255 | 称为本地路由表,表名为local。像本地接口地址,广播地址,以及NAT地址都放在这个表。该路由表由系统自动维护,管理员不能直接修改。 |
2.route 命令大全
知道route的规则,那么如何添加route呢,以及如何能够事先多样化个性化的route功能呢,那就需要丰富的命令格式。
(1) 在linux系统中可以使用ip rule命令来配置路由策略。ip rule命令使用格式为:
Usage: ip rule [ list | add | del ] SELECTOR ACTION (add 添加;del 删除; llist 列表) |
SELECTOR := [ from IP 数据包源地址] [ to IP 数据包目的地址] [ tos NUMBER 服务类型] [ dev STRING 物理接口] [ pref NUMBER 优先级] [fwmark NUMBER 防火墙标签] |
ACTION :=
[ table TABLE_ID 指定所使用的路由表]
[ nat ADDRESS 网络地址转换]
[
prohibit 丢弃该包,并发送 COMM.ADM.PROHIITED的ICMP信息
| reject 单纯丢弃该包
| unreachable 丢弃该包, 并发送 NET UNREACHABLE的ICMP信息
]
[ flowid CLASSID ]
TABLE_ID := [ local | main | default | new | NUMBER ]
(2) 查看指定路由表的内容
ip route list table table_id
ip route list table table_name
ip route show table table_id
ip route show table table_name
添加路由
route add -net 192.168.100.0 netmask 255.255.255.0 gw 192.168.100.1
删除一条路由
route del -net 192.168.100.0 netmask 255.255.255.0
(2) 在QNX系统中可以使用route:
route add dest-IP gateway_ip
netstat 命令详解
netstat 命令详解_IT云清的博客-CSDN博客_netstathttps://blog.csdn.net/weixin_39800144/article/details/80929947
linux中的路由表table和路由策略rule