Linux策略路由详解

这篇具有很好参考价值的文章主要介绍了Linux策略路由详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

概述

在Linux中,我们通常使用route命令来做路由信息的管理。但是该命令仅仅只能用于基本路由信息的管理,面对功能更加强大的基于策略的路由机制,route命令就显得捉襟见肘。在传统路由算法中,只能基于目的地址进行路由选择。但是如果对路由选择有更复杂的要求,比如针对不同源地址、传输层端口甚至是payload进行更细致的路由控制,传统的基于目的地址的路由表就无法满足需求了,需要使用功能更加强大的路由策略数据库routeing database: RPDB来处理。

命令安装

安装很简单,按照如下命令安装即可。

# 查看iproute是否安装

# 查看iproute版本

]# ip -V

ip utility, iproute2-ss170501



# 安装

yum install iproute -y

路由策略数据库(RPDB)

RPDB是存放策略的数据库,被策略匹配的数据包会执行相关的操作,可以通过ip rule来管理。

在系统启动时,内核会配置三条默认策略:

# 通过ip rule show可以查看当前RPDB中的规则
]# ip rule show
0: from all lookup local # 优先级为0,匹配任意源地址,查询local路由表转发
32766: from all lookup main # 优先级为32766,匹配任意源地址,查询main路由表转发
32767: from all lookup default # 优先级为32767,匹配任意源地址,查询default路由表转发

1. local路由表是一个特殊的路由表,包含本地地址和广播地址的高优先级控制路由, 例如访问127.0.0.1就是参考的这条规则。
2. main路由表是一个通用路由表,正常通过route -n命令操作的就是这个路由表。
3. default路由表默认是一个空表,除非有特别的要求,否则保持为空即可。

每条策略路由的规则由一个选择器和一个动作组成,RPDB按照优先级顺序进行规则匹配,优先级数字越小越优先。被选择器匹配的报文会执行对应的操作,操作如果成功,则根据指定的路由转发数据,之后终止RPDB匹配,如果执行失败,则报错并且终止RPDB匹配。否则RPDB将继续执行下一条规则。

ip rule命令说明

# 执行ip rule help可以查看帮助信息,如果需要更详细的帮助信息,可以执行man ip-rule
]# ip rule help
Usage: ip rule { add | del } SELECTOR ACTION
ip rule { flush | save | restore }
ip rule [ list [ SELECTOR ]]
SELECTOR := [ not ] [ from PREFIX ] [ to PREFIX ] [ tos TOS ] [ fwmark FWMARK[/MASK] ]
[ iif STRING ] [ oif STRING ] [ pref NUMBER ] [ l3mdev ]
[ uidrange NUMBER-NUMBER ]
ACTION := [ table TABLE_ID ]
[ nat ADDRESS ]
[ realms [SRCREALM/]DSTREALM ]
[ goto NUMBER ]
SUPPRESSOR
SUPPRESSOR := [ suppress_prefixlength NUMBER ]
[ suppress_ifgroup DEVGROUP ]
TABLE_ID := [ local | main | default | NUMBER ]

选择器(SELECTOR)

from PREFIX: 根据源地址前缀匹配
to PREFIX: 根据目的地址前缀匹配
tos TOS: 根据ip包头TOS字段的值进行匹配
fwmark FWMARK[/MASK]: 配合iptables -t mangle 打标记,根据标记进行匹配
iif STRING: 选择要匹配的数据包的输入接口。
oif STRING: 选择要匹配的出接口设备。只对来自本地套接字并与设备绑定的报文有效
pref NUMBER: 规则的优先级。这里的pref可以替换成priority或者order,效果是一样的。

动作(ACTION)

table TABLE_ID: 在规则匹配的时候,指定使用的路由表,被匹配的数据包将按照指定的路由表进行路由。此处的table也可以替换为lookup,效果是一样的。
blackhole: 丢弃匹配的数据包。
unreachable: 丢弃匹配的数据包,并生成"Network is unreachable"错误。
prohibit: 丢弃匹配的数据包,并生成"Communication is administratively prohibited"错误。

查看策略

]# ip rule show
0: from all lookup local
32766: from all lookup main
32767: from all lookup default

添加策略

# 来自192.168.22.3的数据包,都参考id为10的路由表进行转发
ip rule add from 192.168.22.3 table 10

# 设置规则的优先级为100,发往192.168.23.0/24的数据包,都参考id为100的路由表进行转发
ip rule add to 192.168.23.0/24 table 20 pref 100

# 给协议是tcp,源地址是192.168.24.0/24,目的端口是80的数据包,在路由前打上1的标记
iptables -t mangle -A PREROUTING -p tcp -m multiport --dports 80 -s 192.168.24.0/24 -j MARK --set-mark 1
# 将标记为1的数据包,参考id为iptables_table的路由表进行转发
ip rule add fwmark 1 table iptables_table

# 来自192.168.25.0/24的数据包都将丢弃
ip rule add from 192.168.25.0/24 blackhole
ip rule add from 192.168.26.0/24 unreachable
ip rule add from 192.168.27.0/24 prohibit

注意,添加动作是table TABLE_ID时,默认情况下,只能添加数字,如果添加的是字符的话,会有如下报错。

]# ip rule add from 192.168.22.3 table iptables_table
Error: argument "iptables_table" is wrong: invalid table ID

这就带来一个问题,如果时间久了,就不知道自己当时添加的这个路由表是啥意思了。所以需要有一个数字和字符的对应关系。这个对应关系,就保存在/etc/iproute2/rt_tables这个文件里。

# 编辑/etc/iproute2/rt_tables,添加iptables_table表的id为100
]# cat /etc/iproute2/rt_tables
#
# reserved values
#
255 local
254 main
253 default
0 unspec
# 自定义路由表
100 iptables_table
#
# local
#
#1 inr.ruhep

添加之后,就可以正常执行ip rule add from 192.168.22.3 table iptables_table了。并且执行ip rule show的时候,路由表也是按照定义的字符显示。

删除策略

# 查看iproute是否安装
# 查看iproute版本
]# ip -V
ip utility, iproute2-ss170501
# 安装
yum install iproute -y

路由表管理

目前看,通过ip rule命令,可以根据不同的规则,选择不同的路由表来转发数据。那么如何对不同的路由表做管理呢? 很简单,只要在正常执行的命令之后,加上table TABLE_ID即可。

查看路由表路由条目

# ip route show等价于ip route show table main,也就是查的是默认的main路由表
ip route show

# 查看指定目标的路由
ip route show 192.168.22.0/24

# 查看指定路由表iptables_table中的路由
ip route show table iptables_table
ip route show table 100

添加路由

# 向iptables_table中添加默认路由
ip route add default via 192.168.22.1 dev eth1 src 192.168.22.3 table iptables_table

]# ip route show table 100
default via 192.168.22.1 dev eth1 src 192.168.22.3

删除路由

# 删除iptables_table路由表中的路由

ip route del default via 192.168.22.1 dev eth1 src 192.168.22.3 table iptables_table

京东云官网最新活动:https://www.jdcloud.com/cn/pages/jinqiucaigou文章来源地址https://www.toymoban.com/news/detail-413005.html

到了这里,关于Linux策略路由详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 什么是路由策略?路由策略和策略路由有什么区别? 如何配置路由策略?

    对于IP网络工程师来说,路由策略的部署随处可见,无论在运营商IP网络还是在企业网中,路由策略的应用都是非常普遍的。同时,在网络规划中,路由策略的规划也是一个核心的内容。为了方便大家更好的掌握和应用路由策略,我们推出了路由策略这个专题,希望这个专题能

    2024年02月06日
    浏览(49)
  • 终极版解决OneNote无法跳转链接:您的组织策略阻止我们为您完成此操作

    虽然我这个是为了解决 OneNote 的问题,查询后似乎 Microsoft outlook、Microsoft office 的问题也能解决~ 看着自己整理的一套清晰明了的OneNote笔记,心情倍儿好,却发现设置的所有链接均无法跳转,还提示我是: 此时的我是:  郁闷归郁闷,经过一波三折,整合了网络上多种解决办

    2024年02月16日
    浏览(52)
  • 路由控制——路由策略与策略路由

    目录 策略路由和路由策略的区别 路由策略——Route Policy Route-Policy的组成 Route-Policy的匹配规则 Route-Policy的判定规则 Route-Policy与Filter-policy对比 策略路由 接口策略路由Traffic-Policy 本地策略Policy-Based-Route 报文路径相关知识  路由策略 策略路由 对路由表中的路由条目进行管理

    2024年02月05日
    浏览(38)
  • 如何防范我们的路由器被恶意攻击

    现在随着黑客技术的不断提升提升和我们其他领域安全意识的提高,无线路由器的安全隐患就与日剧增了,加上生产商更新修复路由器固件的速度很慢,而我们升级固件也不是十分方便,结果导致黑客现在开始盯上了我们的路由器。而且中国国家信息安全漏洞共享平台今年

    2024年02月06日
    浏览(51)
  • 无线路由器蹭网之后,我们能窥探到哪些?

    图片均加万恶马赛克。 记忆中隔壁是一个还算不错的妹子,那天Z来找我的时候恰巧碰到了,进屋后跑到我耳边说:“隔壁那个妹子你能不能要到微信,我觉得挺不错的呢~” 这么三俗的场景竟然发生在我的身边,我说等两天我给你消息。 入口 既然是住在隔壁的年轻人,必然

    2024年02月08日
    浏览(38)
  • Linux与Windows下追踪网络路由:traceroute、tracepath与tracert命令详解

    在进行网络诊断或排查问题时,了解数据包从源主机到目标主机之间的具体传输路径至关重要。Linux系统提供了 traceroute 和 tracepath 工具来实时显示链路路径信息,而Windows则使用了 tracert 命令实现相同的功能。本文将详细介绍这三个命令的用法及其在不同操作系统中的应用。

    2024年02月01日
    浏览(40)
  • 小米路由器与QQ联手出大招 我们的福利又来啦

    昨天晚些时候,小米路由器官方微博发出公告,今天中午12点要宣布一件事情。 从配图上看,似乎是在暗示小米路由器与QQ在一起了,其还特别备注了一句话“手机QQ的新朋友”。 之前小米路由器官方微博表示目前确切的销量已经突破了百万大关,为了庆祝, 其中原价999元的

    2024年02月07日
    浏览(41)
  • 接口策略路由配置(通过流策略技术实现)

    策略路由 :( 先于路由表,且不会生成路由表 ) 策略路由和路由策略都可以影响数据包的转发过程,但他们对数据包的影响方式是不同的。 本地策略路由 :仅对 本机 下发的报文进行处理,对转发的报文不起作用。 接口策略路由 :仅对 转发 的报文起作用,对本地下发的

    2024年02月09日
    浏览(62)
  • 路由概述(直连、静态、动态、默认等)

    路由概述(直连、静态、动态、默认等) 路由 :在网络通信中,路由(router)是一个网络层的术语,作为名词时,其指从某一个网络设备出发去往某个目的地的路径;作为动词时,其指跨越源主机和目的主机之间的网络来转发数据包。 路由表则是若干条路由信息的一个集合

    2024年02月09日
    浏览(39)
  • 0601概述-react路由-react

    1.1 简述 单页面应用和多页面应用是两种不同的 Web 应用程序架构。 单页面应用(SPA)是指在一个 HTML 页面中动态加载和渲染所有的应用程序内容,通过前端 JavaScript 操作来实现页面的变化和交互。SPA 不需要每次请求新的 HTML 页面,因此可以提供更快的响应速度和更好的用户

    2023年04月23日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包