ip rule 策略路由
1. 工具安装
yum install iproute
查看工具是否安装
ip -V
2. ip rule 和 ip route
ip命令中和策略路由相关的OBJECT有 rule 和 route。
查看所有的 rule
ip rule show
优先级 判断条件 动作 表ID
0: from all lookup local // 任何源地址的包,都查询,local表
32766: from all lookup main
32767: from all lookup default
local:路由表local包含本机路由及广播信息。
例如,在本机上执行ssh 127.0.0.1时,就会参考这份路由表的内容,
在正常情况下,只要配置好网卡的网络设置,
就会自动生成local路由表的内容,我们应该也不必修改其内容。
main:使用传统命令route -n所看到的路由表就是main的内容。
Linux系统在默认情况下使用这份路由表的内容来传输数据包,
因此,其内容极为重要,在正常情况下,只要配置好网卡的网络设置,
就会自动生成main路由表的内容。
default:最后是default路由表,这个路由表在默认情况下内容为空;
除非有特别的要求,否则保持其内容为空即可。
查看route
ip route show table main // 显示 表main 的 route
default via 172.17.0.1 dev eth0 // 其他包,发给 172.17.0.1 主机,通过 设备 eth0
169.254.0.0/16 dev eth0 scope link metric 1002 // 目的地址为 169.254.0.0/16 网段的包,使用 eth0 设备发出
172.17.0.0/20 dev eth0 proto kernel scope link src 172.17.0.12 // 目的地址为 172.17.0.0/20 网段的包,通过 eth0 发出。发出的源接口的IP地址是 172.17.0.12
一个包,先查看策略 rule,根据优先级 和 判断条件 找到 路由表,再按照 路由表的路由规则,获得下一跳 IP地址和输出接口,又通过ARP表,获得目的MAC地址和源MAC地址,发包
3. rule 的添加与删除
3.1 添加规则
判断条件 表ID 优先级
ip rule add from 192.168.3.1 table 10 prio 199 // 添加规则,源地址为192.168.3.1的包,使用表10
如果不显示添加优先级,默认优先级数字从32766 (也就是main table) 依次递减,即优先级越来越高。
其他添加示例
ip rule add to 168.95.1.1 table 10 // 目的地址是 168.95.1.1 使用 table 10
ip rule add dev eth2 table 1 // dev eth2 输入的数据,使用 table 1
ip rule add dev eth3 table 3 // dev eth3 输入的数据,使用 table 3
fwmark 和 iptables
iptables -t mangle -A FORWARD -i eth3 -p tcp --dport 80 -j MARK --set-mark 1 // eth3输入的HTTP协议数据,标记为 mark 1
iptables -t mangle -A FORWARD -i eth3 -p tcp --dport 25 -j MARK --set-mark 2 // eth3 输入的SMTP协议数据,标记为 mark 2
iptables -t mangle -A FORWARD -i eth3 -p tcp --dport 110 -j MARK --set-mark 2 // eth3 输入的POP协议数据,标记为 mark 2
iptables -t mangle -A FORWARD -i eth3 -j MARK --set-mark 3 // eth3 输入的其他数据,标记为 mark 3
ip rule add fwmark 1 table 1 // fwmark 1 的数据,使用 table 1
ip rule add fwmark 2 table 2
ip rule add fwmark 3 table 3
3.2 删除规则
ip rule del prio 10
ip rule del from 192.168.1.0/24
ip rule del table 1
ip rule del from 192.168.1.0/24 table 1 prio 10
删除规则,可以使用 优先级,源地址,目的地址,路由表 等信息作为判断条件。
4.1 添加表
ip route add 192.168.1.0/24 dev eth1 table 10 // 任意添加一条路由,以创建表 10. 新建的表10里的路由条目为空
4.2 添加路由
ip route add 192.168.2.0/24 via 10.10.15.50 table main // 添加,目的地址为 192.168.2.0/24网段的包,网关为 10.10.15.50。添加到表 main
添加路由前,必须保证表已经存在,否则只是创建表。
4.3 删除路由
ip route del default table 10
ip route del 192.168.1.0/24 table 10 // 在表10中,删除目的地址为 192.168.1.0/24 网段的路由
ip rule 策略路由的更多相关文章
- Linux系列—策略路由、ip rule、ip route
早期在管理Linux系统的网络时,常使用ifconfig及route之类的命令,不过如果你准备开始使用Linux强大的基于策略的路由机制,那么,就请不要使用这类工具了,因为这类工具根本无法用于功能强大 ...
- Linux下ip route、ip rule、iptables的关系(转)
1.基础知识 1.1 路由 (Routing) 1.1.1 路由策略 (使用 ip rule 命令操作路由策略数据库) 基于策略的路由比传统路由在功能上更强大,使用更灵活,它使网络管理员不仅能够根据目 ...
- ip route,ip rule, iptables和docker的端口映射
iptables 默认5个表, 不可增加其他表 raw 用于配置数据包,raw 中的数据包不会被系统跟踪. filter 是用于存放所有与防火墙相关操作的默认表. nat 用于 网络地址转换(例如:端 ...
- ip rule实现源IP路由,实现一个主机多IP(或多网段)同时通(外部看是完全两个独立IP)
利用ip rule实现基于源地址区分路由表,实现一个主机多IP网段同时通.(外部的一个主机无论访问哪个网段都可以访问通)实际应用:创建路由表table200ip route add 192.168.1 ...
- TCP/IP卷一没提到的策略路由
策略路由 tcp/ip书上介绍了选路和动态路由,没有提及策略路由,应该是因为那个年代还不存在策略路由吧,但是这是个很有用的东西. 背景 昨天领导做了一个虚拟机,里面配了两个网络172.16.50.33 ...
- ip route rule 路由策略 高级路由 捆绑 网桥
http://lwfs.net/2005/11/28/10/ #!/bin/bash IP0= IP1= GW0= GW1= NET0= NET1= DEV0=eth0 DEV1=eth1 # com ...
- ip策略路由
ip route 只是基于目的地址的路由选择 ip rule 路由策略,控制路由选择,可根据源地址,源IP等进行路由选择 路由策略由选择符合操作组成 ip rule add 添加策略 ip r ...
- 路由知识之ip route 命令中的疑惑
1.基础知识 1.1 路由 (Routing) 1.1.1 路由策略 (使用 ip rule 命令操作路由策略数据库) 基于策略的路由比传统路由在功能上更强大,使用更灵活,它使网络管理员不仅能够根据目 ...
- Linux 双线策略路由的三种实现方式总结+端口映射
Linux 双线策略路由的三种实现方式总结+端口映射 Linux 双线策略路由的三种实现方式总结+端口映射 网络环境 服务器(网关): eth0 为LAN口,IP为 LAN_IP = 192.168. ...
随机推荐
- 如何解决Win7,win8无法使用DOS的Debug:
如何解决Win7,win8无法使用DOS的Debug: 安装dosbox 将含有程序link,masm,edit,debug的文件夹masm放到d盘根目录 打开dosbox,输入mount c d:\ ...
- 从源码的角度解析Mybatis的会话机制
坐在我旁边的钟同学听说我精通Mybatis源码(我就想不通,是谁透漏了风声),就顺带问了我一个问题:在同一个方法中,Mybatis多次请求数据库,是否要创建多个SqlSession会话? 可能最近撸多 ...
- JS关闭chorme页面
百度到的很多答案都失效了,这是收集一位博主的(https://www.jianshu.com/p/9dc2752194b8),目前可以使用. 代价是打开一个空白页面,能实现无提示关闭当前页面.不需要是 ...
- Springboot配置excludePathPatterns不生效
Springboot添加拦截器配置excludePathPatterns不生效 code: @Configurationpublic class ServiceConfig implements We ...
- 【学习笔记】扩展卢卡斯定理 exLucas
引子 求 \[C_n^m\ \text{mod}\ p \] 不保证 \(p\) 是质数. 正文 对于传统的 Lucas 定理,必须要求 \(p\) 是质数才行.若 \(p\) 不一定是质数,则需要扩 ...
- asp.net web 定时执行任务 定时器 Global.asax
web网站里面,需要每隔1分钟,执行一个任务,并且一直保持这个定时执行状态,可以用如下一个方法: 以下代码是 Global.asax.cs 的全部代码. using System; using Sys ...
- 正式班D14
2020.10.23星期五 正式班D14 9.5 文件处理三剑客(支持|) 9.5.1 sed流式编辑器 事先制定好编辑文件的指令,让sed自动完成对文件的整体编辑(同一时间内存中只有文件中一条) # ...
- CTF:sctf_2019_easy_heap
这个题目当时比赛的时候靶机据说是ubuntu16.04,但是迁移到buu上就变成了ubuntu18.04,下面针对两个平台给出不同的解法,先写一下18.04下的 先来逆一下,关键点有一下几个 mmap ...
- ubuntu20.04 编译安装ckermit
ubuntu20.04编译安装ckermit 我呢之前一直使用的是ubuntu18.04,最近在安装了某个软件之后,再加上自己的操作不当最终导致ubuntu系统卡死无法进入桌面环境,早就想更新20.0 ...
- Java学习的第十八天
1abstract 综合实例 2.不知道为什么综合实例中的Scanner报错 3.明天解决问题并学习第六章初步知识