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 策略路由的更多相关文章

  1. Linux系列—策略路由、ip rule、ip route

    早期在管理Linux系统的网络时,常使用ifconfig及route之类的命令,不过如果你准备开始使用Linux强大的基于策略的路由机制,那么,就请不要使用这类工具了,因为这类工具根本无法用于功能强大 ...

  2. Linux下ip route、ip rule、iptables的关系(转)

    1.基础知识 1.1 路由 (Routing) 1.1.1 路由策略 (使用 ip rule 命令操作路由策略数据库) 基于策略的路由比传统路由在功能上更强大,使用更灵活,它使网络管理员不仅能够根据目 ...

  3. ip route,ip rule, iptables和docker的端口映射

    iptables 默认5个表, 不可增加其他表 raw 用于配置数据包,raw 中的数据包不会被系统跟踪. filter 是用于存放所有与防火墙相关操作的默认表. nat 用于 网络地址转换(例如:端 ...

  4. ip rule实现源IP路由,实现一个主机多IP(或多网段)同时通(外部看是完全两个独立IP)

    利用ip rule实现基于源地址区分路由表,实现一个主机多IP网段同时通.(外部的一个主机无论访问哪个网段都可以访问通)实际应用:创建路由表table200ip route add 192.168.1 ...

  5. TCP/IP卷一没提到的策略路由

    策略路由 tcp/ip书上介绍了选路和动态路由,没有提及策略路由,应该是因为那个年代还不存在策略路由吧,但是这是个很有用的东西. 背景 昨天领导做了一个虚拟机,里面配了两个网络172.16.50.33 ...

  6. ip route rule 路由策略 高级路由 捆绑 网桥

    http://lwfs.net/2005/11/28/10/ #!/bin/bash IP0= IP1= GW0= GW1= NET0= NET1= DEV0=eth0 DEV1=eth1 # com ...

  7. ip策略路由

    ip route 只是基于目的地址的路由选择 ip rule 路由策略,控制路由选择,可根据源地址,源IP等进行路由选择   路由策略由选择符合操作组成 ip rule add   添加策略 ip r ...

  8. 路由知识之ip route 命令中的疑惑

    1.基础知识 1.1 路由 (Routing) 1.1.1 路由策略 (使用 ip rule 命令操作路由策略数据库) 基于策略的路由比传统路由在功能上更强大,使用更灵活,它使网络管理员不仅能够根据目 ...

  9. Linux 双线策略路由的三种实现方式总结+端口映射

    Linux 双线策略路由的三种实现方式总结+端口映射 Linux 双线策略路由的三种实现方式总结+端口映射 网络环境 服务器(网关): eth0 为LAN口,IP为 LAN_IP = 192.168. ...

随机推荐

  1. sop服务治理

    一,为什么需要服务治理: 我们最先接触的单体架构, 整个系统就只有一个工程, 打包往往是打成了 war 包, 然后部署到单一 tomcat 上面, 这种就是单体架构, 如图: 假如系统按照功能划分了, ...

  2. Mybatis老手复习文档

    Mybatis学习笔记 再次学习Mybatis,日后,有时间会把这个文档更新,改的越来越好,然后,改成新手老手通用的文档 1.我的认识 Mybatis 是一个持久层框架,(之前 我虽然学了这个myba ...

  3. MeteoInfoLab脚本示例:地图投影

    在用axesm函数创建地图坐标系的时候可以指定地图投影(设置projinfo参数),地图投影可以通过projinfo函数来创建,里面的参数依据proj4投影字符串,可以参考此网页:http://rem ...

  4. 发布MeteoInfo 1.2.4

    在JLaTeXMath库(http://forge.scilab.org/index.php/p/jlatexmath/)的支持下,实现了利用LaTeX语法显示特殊符号和数学公式的功能.需要在字符串首 ...

  5. es 讲义

    链接: https://pan.baidu.com/s/193jObXs85OZcvAHDycUXlw 提取码: ewbp

  6. laravel设置excel高度

    <?php use App\Services\UploadService; use Maatwebsite\Excel\Facades\Excel; class ExcelTest extend ...

  7. centos8平台安装redis6.0.1

    一,redis的官网: https://redis.io/ redis6于5月3日正式发布,它的新增功能: acl 多线程io cluster proxy resp3协议 本文演示redis6.0.1 ...

  8. python 爬取简书评论

    import json import requests from lxml import etree from time import sleep url = "https://www.ji ...

  9. 通过命令行上传ipa到appstore

    搞持续集成自动化打包上传到appstore遇到这个问题,记录一下. 其实主要就一条到命令: xcrun altool --upload-app -f xxxx.ipa -u "yanqizh ...

  10. VMware Workstatition启动虚拟机电脑蓝屏

    电脑出了点问题,重装了系统,结果安装VMware之后,一启动虚拟机电脑就蓝屏重启. 系统是win10 19041 开始用的原来下载的vmware15.0,创建虚拟机蓝屏,重启之后可以创建.创建完以后启 ...