1.命令

ip rule 路由策略数据库管理命令

2.对象

路由策略数据库的规则用于控制选择路由的算法。

Internet上采用的路由算法一般是基于数据包目的地址的。
而在某些情况下,我们不只是需要通过数据包的目的地址决定路由,可能还需要通过其他一些域:源地址、IP协议、传输层端口甚至数据包的负载。这就叫做:策略路由(policy routing)。
注意:策略路由(policy routing)不等于路由策略(rouing policy)。
在这种情况下,传统的基于目的地址的路由表就无法满足要求了,需要使用路由策略数据库(routing policy database,RPDB)代替,通过它选择执行某些路由。这些规则可以由很多不同的状态,而且它们没有天生的次序,要由系统管理员决定。

RPDB可以 匹配以下的域: 
数据包的源地址; 
数据包的目的地址; 
服务类型(Type of Service); 
进入的网络接口; 
匹配IP协议和传输层端口也是可能的,不过这要依靠iptables或者ipchains通过fwmark为某些数据包做标记,并重定向。

每个路由策略由一个选择符(selector)和一个操作(action)组成。系统按照顺序搜索路由策略数据库,把选择符和{源地址、目的地址、进入接口、tos、fwmark}等关键词进行匹配,如果匹配成功,就执行action定义的操作。操作或者成功返回,或者失败并且中止路由策略。否则,系统继续查询路由策略数据库。
操作如何定义?最原始的操作是选择下一跳(nexthop)和输出设备(output device)。Cisco IOS使用这种方式,我们姑且把这叫做匹配并设置(match & set)。而Linux的方式则更为灵活,Linux允许的操作包括:基于目的地址的路由表查询以及按照最长匹配的原则从路由表中选择路由。因此,匹配并 设置(match & set)的方式只是一个最简单的特例而已。 
再系统启动时,内核会为路由策略数据库配置三条缺省的规则: 
优先级 选择符 操作 解释  
0 匹配任何条件 查询路由表local(ID 255) 路由表local是一个特殊的路由表,包含对于本地和广播地址的高优先级控制路由。rule 0非常特殊,不能被删除或者覆盖。  
32766 匹配任何条件 查询路由表main(ID 254) 路由表main(ID 254)是一个通常的表,包含所有的无策略路由。系统管理员可以删除或者使用
另外的规则覆盖这条规则。
32767 匹配任何条件 查询路由表default(ID 253) 路由表default(ID 253)是一个空表,它是为一些后续处理保留的。对于前面的缺省策略没有匹配到的数据包,系统使用这个策略进行处理。这个规则也可以删除。
不要混淆路由表和策略:规则指向路由表,多个规则可以引用一个路由表,而且某些路由表可以没有策略指向它。如果系统管理员删除了指向某个路由表的所有规则,这个表就没有用了,但是仍然存在,直到里面的所有路由都被删除,它才会消失。

3.规则类型

路由策略规则数据库可以包括如下类型的规则: 
unicast 返回从被引用的路由表中发现的路由。
blackhole 丢弃数据包,不做任何反应。
unreachable 产生网络不可达(Network is unreachable)的ICMP错误信息 。
prohibit 产生通讯被禁止(Communication is administratively prohibited)的ICMP错误信息。
nat 把数据报的源地址转换为其它的值。

4.命令

add、delete、show(或者list)

5.ip rule add -- 插入新的规则

ip rule delete -- 删除规则。

缩写:add、a;delete、del、d

参数

type TYPE(default): 这个规则的类型。有效的类型上一节已经介绍过了。
from PREFIX: 匹配的源地址
iif NAME: 选择数据包进入的设备。如果接口是回环设备,这个规则就只匹配源于本机的数据包。这意味着,你可以为本机发出的数据包和要转发的数据包分别建立路由表,使两者完全隔离。
tos TOS或者dsfield TOS: 选择匹配的TOS值  
fwmark MARK: 选择要匹配的fwmark值  
priority PREFERENCE: 设置这个规则的优先级。每个规则的优先级都应该明确设置为一个唯一的数值。实际上,由于历史的原因,ip roule add命令无需任何优先级的值,也不必是唯一的。如果用户没有在命令中提供优先级的值,内核会自动选择。如果用户提供的优先级值已经存在,内核也不会拒绝这次请求,而是在相同优先级的规则前面插入新的规则。  
table TABLEID: 如果规则选择符匹配,就被查询的路由表识别符。  
realms FROM/TO: 如果规则匹配和路由表查询成功,选择的realms值。  
nat ADDRESS: 设置要进行网络地址转换的IP地址段。ADDRESS或者是进行网络地址转换ip地址段,或者是一个本机地址,甚至可以是0。

警告:使用上面两个命令对路由策略数据库进行的任何修改都不会马上生效。只有使用ip route flush cach命令刷新路由缓存之后才会生效。 
示例

通过路由表inr.ruhep路由来自源地址为192.203.80/24的数据包 
ip ru add from 192.203.80/24 table inr.ruhep prio 220

把源地址为193.233.7.83的数据报的源地址转换为192.203.80.144,并通过表1进行路由 
ip ru add from 193.233.7.83 nat 192.203.80.144 table 1 prio 320

删除无用的缺省规则 
ip ru del prio 32767
注:32767和32766都可以删除,而0是不可以删除的。
8.7.ip rule show -- 列出路由规则

缩写:show、list、sh、ls、l
# ip rule ls
0: from all lookup local 
200: from 192.203.80.0/24 to 193.233.7.0/24 lookup main
210: from 192.203.80.0/24 to 192.203.80.0/24 lookup main
220: from 192.203.80.0/24 lookup inr.ruhep realms inr.ruhep/radio-msu
300: from 193.233.7.83 to 193.233.7.0/24 lookup main
310: from 193.233.7.83 to 192.203.80.0/24 lookup main
320: from 193.233.7.83 lookup inr.ruhep map-to 192.203.80.144
32766: from all lookup main 
#

每行第一部分的数字是规则的优先级,接着是选择符。
关键词lookup后面接着路由表识别符。 
如果规则要进行网络地址转换,还需要一个关键词map-to设置转换以后的地址。 
上面的示例非常简单,192.203.80.0/24和193.233.7.0/24组成内部网络,但是它们向外发送数据包要通过不同的路由。主机193.233.7.83和外界会话时,地址需要转换为192.203.80.144。

linux的路由表与路由策略

ip route 只是基于目的地址的路由选择
ip rule 路由策略,控制路由选择,可根据源地址,源IP等进行路由选择
路由策略由选择符合操作组成
ip rule add   添加策略
ip rule delete  删除策略
ip rule show  显示策略
使用路由策略可以更好的控制路由走向
下面一个例子显示了使用路由策略的优点:
假设有一台双线服务器
有两张网卡,有电信IP和网通IP地址,实现电信IP访问服务器时,服务器响应使用电信网关,网通IP访问服务器时,服务器响应使用网通网关。
假设电信IP为
222.73.121.100/24 网关 222.73.121..1
网通IP
112.80.1.100/24 网关 112.80.1.1
 
方法1(静态路由方法):
A.使用电信网关做默认路由,并添加网通的路由条目,并将条目写到/etc/rc.local或者/etc/sysconfig/network里面,以开机时可以加载
在network里面添加GATEWAY=222.73.121.1
添加路由条目如下
route add –net 58.16.0.0/13 gw 112.80.1.1
B.为每个网卡设置路由:假设eth0为222.73.121.100/24,eth1为112..80.1.100/24,新建以下文件
/etc/sysconfig/network-scripts/route-eth1
按如下格式添加路由条目
58.16.0.0/13 via 112.80.1.100
缺点是需要添加很多条目的路由条目,并且需要更新,如果有一个网通网段未添加,这个网段的IP就不能访问服务器的。
 
方法2(根据用户访问的路径设置静态路由):
1. 先在/etc/sysconfig/network里面添加默认路由GATEWAY=222.73.121.1
2. 设置ip rule 策略
vi /etc/iproute2/rt_tables #添加路由表
[root@lamp iproute2]# cat rt_tables
#
# reserved values
#
255     local
254     main
253     default
0       unspec
252 dianxin   #电信路由表
251 wangtong   #网通路由表
#
# local
3. 添加原路返回路由
ip  route  flush  table dianxin
ip  route  add  default  via 222.73.121.1 dev  eth0  src 222.73.121.100 table dianxin
ip  rule  add  from  222.73.121.100  table  dianxin
ip route flush table wangtong
ip  route  add  default  via 112.80.1.1 dev eth1  src 112.80.1.100 table wangtong
ip  rule  add  from  112.80.1.100  table  wangtong
 
即让从电信IP过来的请求按照电信路由返回,从网通IP过来的请求从网通路由返回
将上述命令添加至/etc/rc.local中,以便重启可以生效
 
[root@lamp ~]# ip rule show
0:      from all lookup 255
32764: from 112.80.1.100 lookup wangtong
32765: from 222.73.121.100 lookup dianxin
32766: from all lookup main
32767: from all lookup default
 
重启网络服务可以看到路由策略生效。

ip rule 路由策略数据库管理命令相关推荐

  1. oracle ip策略,ip rule -- 路由策略数据库管理命令

    ip rule -- 路由策略数据库管理命令 . 8.ip rule -- 路由策略数据库管理命令 8.1.缩写 rule.ru 8.2.对象 路由策略数据库的规则用于控制选择路由的算法. Inter ...

  2. 华为设备路由策略配置命令

    (一)配置过滤器命令 配置地址前缀列表命令 [Huawei]ip ip-prefix a1 permit 10.1.1.0 24 //配置地址前缀列表 [Huawei]ip ip-prefix a2 ...

  3. android+ip+rule+策略路由,策略路由以及使用 ip route , ip rule , iptables 配置策略路由实例...

    route 命令 使用 Route 命令行工具查看并编辑计算机的 IP 路由表.Route 命令和语法如下所示: route [-f] [-p] [Command [Destination] [mas ...

  4. linux ip rule table,Linux 高级路由 ip rule / ip rout

    路由策略数据库的规则用于控制选择路由的算法. Internet上采用的路由算法一般是基于数据包目的地址的.理论上,也可以由TOS域决定,不过这没有实际应用.要了解经典路由算法的详细情况请参考RFC-1 ...

  5. Android进阶——网络通信之ip rule,ip route等策略路由小结

    文章大纲 引言 一.策略路由概述 二.策略路由相关理论知识 1.内核配置的缺省路由表 1.1.`0`#表 1.2.`253`#default表 1.3. `254`#main表 1.4.`255`#l ...

  6. linux 添加路由_linux网络知识:路由策略(ip rule,ip route)

    一,路由策略(使用ip rule命令操作路由策略数据库) 基于策略的路由比传统路由在功能上更强大,使用更灵活,它使网络管理员不仅能够根据目的地址而且能够根据报文大小,应用或IP源地址等属性来选择转发路 ...

  7. ip命令手册: 使用iproute2工具进行路由表管理和路由策略管理

    标题: ip命令手册 发布日期 2013-02-22 原文 http://blog.csdn.net/wan706364166/article/details/8601717 __摘要 __ ip是i ...

  8. 使用ip rule查询路由策略, 使用ip route修改静态路由表

    一.使用ip rule查看路由策略数据库 ip rule list 在 Linux 系统启动时,内核会为路由策略数据库配置三条缺省的规则: rule 0 匹配任何条件 查询路由表local(ID 25 ...

  9. linux网络知识:路由策略(ip rule,ip route)

    目录 一,路由策略(使用ip rule命令操作路由策略数据库) 二,路由表(使用ip route命令操作静态路由表) 三, ip rule,ip route,iptables 三者之间的关系 一,路由 ...

  10. linux系统ip策略筛选器,在Linux下基于路由策略的IP地址控制

    一.背景描述 如图,LINUX是一台网关服务器,内有3块网卡 eth1绑定172.17.0.0/16的IP,该网段IP可以通过172.17.1.1上网 eth0绑定192.168.10.0/24的IP ...

最新文章

  1. LeetCode 1021:Remove Outermost Parentheses
  2. 开源大佬面对面:InsightFace带你打造开箱即用的人脸识别系统
  3. Java API —— BigInteger类
  4. ASP.NET MVC5+EF6+EasyUI 后台管理系统(46)-工作流设计-设计分支
  5. 良好编程习惯的重要性
  6. 通过尾递归避免栈溢出
  7. apache kafka技术分享系列(目录索引)--转载
  8. 查看目录是否为内存盘_Linux buff/cache内存释放
  9. 大智慧 软件 开发语言_中科闻歌中标深圳税务局智慧税务中台软件开发服务项目...
  10. Vue源码:虚拟DOM和diff算法
  11. mac 电脑安装 svn和brew
  12. 计算机excel还原,Excel文件恢复软件(Magic Excel Recovery)
  13. python怎么判断质数和合数_如何快速判断是质数还是合数 - 草稿
  14. Linux系统swap分区扩容,swap分区扩容
  15. 安卓移动办公软件_尚朋高科TeeTek云端移动办公系统,云端软件5G时代的趋势
  16. 高性能网络编程(一)----accept建立连接
  17. 百度首页天气html制作,使用百度天气API实现自己的天气预报
  18. 【HZHE004】黄子涵学习Echarts
  19. 计算机毕业设计asp.net的高校科研项目管理系统(源码+系统+mysql数据库+Lw文档)
  20. Java面试基础篇之集合

热门文章

  1. DA数模转换 DAC0832 笔记
  2. 《Linux内核设计与实现》读书笔记(四)- 进程的调度
  3. BZOJ3993[SDOI2015]星际战争 【最大流+二分答案】
  4. 【论文阅读】A statistical significance of differences in classification accuracy of crop types using 。。。
  5. 宝塔linux怎么安装asp网站,宝塔面板创建网站:宝塔linux面板添加网站详细教程...
  6. python 只取数值_GitHub又放大招,Python版本的植物大战僵尸还能作弊玩!
  7. Anton and currency you all know
  8. android n改铃声,来电铃声自定义,我”响“你快乐!
  9. 运行jar文件,jar程序闪退,cmd命令行黑框一闪而过,无法启动jar文件
  10. Win10设置:输入法快捷键【仅保留中英切换】,其他花里胡哨快捷键全部删除