Linux 路由 策略路由
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 路由 策略路由的更多相关文章
- Linux 双线策略路由的三种实现方式总结+端口映射
Linux 双线策略路由的三种实现方式总结+端口映射 Linux 双线策略路由的三种实现方式总结+端口映射 网络环境 服务器(网关): eth0 为LAN口,IP为 LAN_IP = 192.168. ...
- 总结linux路由技术
Linux系统的route命令用于显示和操作IP路由表,要实现两个不同的网段之间的通信,需要一台连接两个网络的路由器,或者同时连接位于两个网络的网关来实现. 在Linux系统中,设置路由通常是为了解决 ...
- linux路由
https://www.cnblogs.com/luckyall/p/6418965.html https://www.cnblogs.com/dapaitou2006/p/6564622.html一 ...
- 一个非典型的Linux路由配置方案
上周帮人解决了一个问题,这个问题绝对是非典型性的,采用了非常规的方法.虽然最终的方案非常不符合常规,非常不通用,充满了各种藏得很深的技巧或者说是trick,但是这个问题却是一个学习Linux路由的绝好 ...
- Linux路由:CentOS6的多种玩法
将一台Linux主机作路由器使用,这本是件很容易的事情,利用Linux主机强大的网络功能,很轻松就实现了.这里在虚拟机环境下设定一台CentOS主机通过另一台CentOS主机路由接入Internet网 ...
- Linux 路由 静态路由
Linux 路由 静态路由 目录 Linux 路由 静态路由 一.临时生效,使用命令route A.添加到主机的路由 B.添加到网络的路由 C.添加默认路由 D.删除路由 E.查看所有路由信息 二.临 ...
- Linux系列—策略路由、ip rule、ip route
早期在管理Linux系统的网络时,常使用ifconfig及route之类的命令,不过如果你准备开始使用Linux强大的基于策略的路由机制,那么,就请不要使用这类工具了,因为这类工具根本无法用于功能强大 ...
- 利用systemtap学习Linux路由代码
http://bbs.chinaunix.net/thread-4090162-1-1.html 一.为什么要这样做读kernel route子系统代码,当我弄懂了数据结构之间的关系以及控制流程后,心 ...
- 基于嵌入式linux路由转发功能的实现
环境 arm7开发板, uclinux系统,kernel version: linux-2.4.x arm芯片的单网卡双网口设备,eth0 WAN口 ipaddr 192.168.9.61 eth0: ...
随机推荐
- 喜欢 Dapper 的朋友看过来,送一份厚礼
写在开头 众所周知 Dapper 是 .NET 下最轻最快的 ORM,它是喜欢写 SQL 码农的福音,相对于 SqlHelper 它更加方便,据统计 10个 .NETer 有 9个 用过 Dapper ...
- Python中函数是否能使用全局变量?
Python函数中的变量,既可以使用局部变量(本地名字空间的变量),也可以使用全局变量(全局名字空间的变量),函数在执行查找变量只读时,先在局部变量中查找,找不到再查到全局变量中查找.因此当局部变量和 ...
- VirtualBox安装Centos出现E_FAIL (0x80004005)的解决方法
问题描述:UUID已经存在 Cannot register the hard disk 'F:\hadoop\VirtualBox-centos\centos6.4\centos6.4.vdi' {0 ...
- pandas LabelEncoder 测试集出现了训练集中未出现过的值怎么解决(y contains previously unseen labels 解决方法)
for i in categorical_ix: le = joblib.load(f"./LabelEncoder/{i}_LabelEncoder.model") #由于tes ...
- qtp学习入门
qtp的学习,初始入门是简单的,推荐田艳琴的<QTP从实践到精通>这边书,看过后,一周就可以入门,并能够自行编写脚本,但是想要进入更深一层,则需要更广阔的知识!这条路任重道远,你我共勉
- Nodepad++ 没有TextFX Characters插件
Nodepad++ 没有TextFX Characters插件 原因:从6.5以上的某个版本开始,就没有了默认的这个插件. 我试了最新的版本下载插件也不行,只好下载一个6.4.5的版本,再更新插件管理 ...
- 【题解】HDU4625 JZPTREE
题目链接 题意 给定一棵 n 点的树,定义 \(dis(u,v)\) 为树上路径长度.对于每个点,定义 \(E_u=\sum_{v=1}^n dis(u,v)^k\) ,其中 k 为给定数. 求每个 ...
- [python学习手册-笔记]004.动态类型
004.动态类型 ❝ 本系列文章是我个人学习<python学习手册(第五版)>的学习笔记,其中大部分内容为该书的总结和个人理解,小部分内容为相关知识点的扩展. 非商业用途转载请注明作者和出 ...
- 四、testNG.xml 简单介绍
TestNG定义了一套非常具体的术语描述测试. testng.xml testng.xml是一个以XML记录所有测试的文件.可以利用这个文件,跑同一个类或者多个不同类里面的测试用例. testng.x ...
- 2020-2021-1 20209307 《Linux内核原理与分析》第二周作业
1.寻址方式和常用汇编指令 寄存器寻址:movl %eax,%edx 相当于edx=eax 立即寻址:movl $0x123,%edx 相当于edx=0x123 直接寻址:movl 0x123, ...