Linux 路由 策略路由

摘要:
在进行路由查询时,内核只使用路由表main。编辑路由表配置文件:/etc/iproute2/rt_tables添加删除修改路由表[root@centos7~]#cat/etc/iproute2/rt_tables##reservedvalues#255local254main253default0unspec##local##1inr.ruhep二、IP策略查看IP策略[root@centos7~]#ipruls0:fromalllookuplocal32766:fromalllookupmain32767:fromalllookupdefault第一列:冒号之前的数字,表示该路由表被匹配的优先顺序,数字越小,越早被匹配。添加IP策略规则在添加规则时,需要先定义好优先级、条件及路由表ID,然后才可以添加规则。
Linux 路由 策略路由
目录

注意:本文中使用;隔开的命令等价

一、路由表

从Linux-2.2开始,内核把路由归纳到许多路由表中,这些表都进行了编号,编号数字的范围是1到255。
可以在路由表配置文件:/etc/iproute2/rt_tables 中为路由表命名。

默认情况下,所有的路由都会被插入到表main(编号254)中。在进行路由查询时,内核只使用路由表main。

编辑路由表配置文件:/etc/iproute2/rt_tables添加删除修改路由表

[root@centos7 ~]# cat /etc/iproute2/rt_tables 
#
# reserved values
#
255	local
254	main
253	default
0	unspec
#
# local
#
#1	inr.ruhep

二、IP策略

查看IP策略

[root@centos7 ~]# ip ru ls
0:	from all lookup local 
32766:	from all lookup main 
32767:	from all lookup default

第一列:冒号之前的数字,表示该路由表被匹配的优先顺序,数字越小,越早被匹配。范围是0~32767。默认0、32766、32767三个优先级别已被占用。如果在添加规则时没有定义优先级别,那么默认的优先级别会从32766开始递减,可以通过prio ID参数在设置路由表时添加优先级。

第二列:from,这里显示的是匹配规则,当前表示的是从哪里来的数据包,还有:
From -- 源地址
To -- 目的地址(这里是选择规则时使用,查找路由表时也使用)
Tos -- IP包头的TOS(type of sevice)域
Dev -- 物理接口
Fwmark -- 防火墙参数

第三段:loacl/main/default, 这些都是路由表名称,表示数据包要从那个路由表送出去。local表包含本机路由及广播信息,main表就是我们route -n看到的内容,default表,默认为空。

添加IP策略规则

在添加规则时,需要先定义好优先级、条件及路由表ID,然后才可以添加规则。

根据源地址决定路由表

ip rule add from 192.168.10.0/24 table 100
ip rule add from 192.168.20.20   table 110

根据目的地址决定路由表

ip rule add to 192.168.30.0/24 table 120
ip rule add to 192.168.40.0/24 table 130

根据网卡设备决定路由表

ip rule add dev eth0 table 140
ip rule add dev eth1 table 150

此外还可以根据其他条件进行设置,例如tos等等

增加一条规则,到 dx 表,所有数据包默认使用源 IP 1.1.1.2 通过 eth1 走网关 1.1.1.1

ip route add default via 1.1.1.1 dev eth1 src 1.1.1.2 dx

增加一条规则,规则匹配的对象是所有的数据包,动作是选用路由表1的路由,这条规则的优先级是32800

ip rule add [from 0/0] table 1 pref 32800

增加一条规则,规则匹配的对象是IP为192.168.3.112, tos等于0x10的包,使用路由表2,这条规则的优先级是1500,动作是丢弃。

ip rule add from 192.168.3.112/32 [tos 0x10] table 2 pref 1500 prohibit

增加一条规则,规则匹配的对象是fwmark 标记3的数据包,使用路由表2

ip rule add fwmark 3  table 3 

需要使用iptables给相应的数据打上标记3

iptables -A PREROUTING -t mangle -i eth0 -s 192.168.0.1 -192.168.0.100 -j MARK --set-mark 3  # 使用iptables给相应的数据打上标记3

删除IP策略规则

ip rule del from 192.168.10.10  # 根据明细条目删除
ip rule del prio 32765          # 根据优先级删除
ip rule del table wt            # 根据表名称来删除

三、永久生效,写入配置文件: /etc/sysconfig/network-scripts/rule-ethX

免责声明:文章转载自《Linux 路由 策略路由》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇android之APNVM安装后没有桥链接协议解决方法下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

linux下使用virtualenv虚拟独立python环境

virtualenv可以搭建虚拟且独立的python环境,可以使每个项目环境与其他项目独立开来,保持环境的干净,解决包冲突问题。 一、安装virtualenv virtualenv实际上是一个python包,所以我们可以用easy_install或者pip安装。下面介绍在CentOS系统上的安装方法。 easy_install安装方式: 1 2...

deepin安装、破解navicat

我首先是跟着资料做的,途中,有很多的地址已经失效了,我换成了经过实践后有效的链接,这篇博客是根据记忆来的,未经实践,如有不对的地方,欢迎指正 新建个目录放要下载的文件 mkdir /data/home/ly-deepin/soft 去官网下载 官网下载地址:http://www.navicat.com.cn/download/navicat-premium...

如何指定GCC的默认头文件路径

如何指定GCC的默认头文件路径 网上偶搜得之,以之为宝:)原地址:http://blog.chinaunix.net/u/28781/showart.php?id=401631===============================================================================在交叉编译的时候我们需要...

Linux上Mysql安装总结

本次安装的是mysql-5.7.10-linux-glibc2.5-x86_64.tar.gz版本 shell> groupadd mysql #增加组shell> useradd -r -g mysql mysql #增加用户,并将用户加入到mysql组中shell> tar zxvf /path/mysql-5.7.10-linux-...

linux下编译GDAL3.x(集成Proj和Geos等)

目录 1、准备工作 2、生成 Makefile 1、报错 "checking for sqlite3_open in -lsqlite3 ... no" 2、 checking for proj_create_from_wkt in -lproj 未通过 3、checking for H5Fopen in -lhdf5... no 4、configu...

linux clamav杀毒软件的安装

一、概述   Linux比其它操作系统更稳定更安全。理论上Linux是有可能被病毒侵害的。但实际上 Linux机器几乎不可能遭受病毒的攻击。所以我这里的问题是为什么要为Linux准备防病毒软件,为了更好理解,我准备了以下理由,Linux平台安装杀毒软件的原因:1、从Linux平台扫描Windows驱动。2、通过网络扫描Windows工作站。3、在Linux...