龙空技术网

SRE干货知识:静态路由、动态路由和策略路由

智慧谷星球 239

前言:

目前各位老铁们对“静态路由和默认路由有何区别两者哪 个执行速度更快”都比较珍视,小伙伴们都想要学习一些“静态路由和默认路由有何区别两者哪 个执行速度更快”的相关资讯。那么小编同时在网络上搜集了一些有关“静态路由和默认路由有何区别两者哪 个执行速度更快””的相关知识,希望看官们能喜欢,同学们一起来学习一下吧!

#程序员# #sre# #Linux# #运维# #路由#

我是一个在北京互联网厂子里996的程序员,一边学习追赶新技术,怕被潮流甩下掉队,一边学习投资理财方法,让自己的薪水滚雪球。我相信,越努力越幸运,虽然刚开始雪球滚起来很慢,但是只要坚持下去,它就会越滚越快,自己的养老就靠它了。在财富自由的道路上,我与你共勉。欢迎来评论区与我交流心得和干货,这样我们就可以收获更多。

今天稍微了解了一下Linux下的策略路由,给大家分享一下。

首先我们看一下什么是静态路由和动态路由,然后,策略路由是属于静态路由的一种。

静态路由

首先,静态路由就是由SA手动通过命令或者编辑系统配置文件添加的路由,当一个新的IP包过来的时候,Linux内核就会去匹配IP路由规则,如果匹配到了,就会执行这条转发规则,如果没有匹配到,就会执行默认路由规则。当系统规模较小的时候,路由规则较容易的时候,静态路由的数量也比较少,足够用了。

动态路由

而在大型复杂的网络环境中,有几十条甚至几百条路由都要SA手工配置的话,那工作量就太大了,而且还非常容易出错,于是人们就发明了动态路由。动态路由策略可以使得Linux路由器向邻居主动学习得到路由表,并且通过动态路由协议来自动寻找最佳路由,其中比较常用的动态路由协议有OSPF,RIP等等。Linux上的动态路由软件有quagga,这个我们以后在单独的专题里再展开说。

策略路由

明显,策略路由就是由管理员设定好一些路由策略。以前我们设定路由规则的时候只能通过来源IP、目的IP来设定规则,而通过策略路由,我们可以实现 通过网段选择路由,通过IP包的TOS域来选择路由,通过应用层协议(如HTTP协议)来选择路由,等等。而使得策略路由能够在Linux上实现的基础是Linux kernel 2.2加入了Advanced Routing功能,这使得Linux的路由功能甚至超越了一些商用的路由器。而Advanced Routing引入的两项重大技术就是 多路由表和规则 这2个东西。

多路由表

Linux系统可以总共具有0~255这256张路由表,而且每张表都是独立的。过来一个IP包时是按照优先级顺序挨个检查路由策略数据库(RPDB)中的每个路由表进行匹配并执行操作的。

具体的优先级是通过 /etc/iproute2/rt_tables 这个文件确定的,

## reserved values#255    local254    main253    default0    unspec
表 255 本地路由表(Local table) 本地接口地址,广播地址,NAT 地址都放在这个表。该路由表由系统自动维护,管理员不能直接修改。 表 254 主路由表(Main table) 如果没有指明路由所属的表,所有的路由都默认都放在这个表里,一般来说,旧的路由工具(如 route命令)所添加的路由都会加到这个表,一般是普通的路由。 表 253 默认路由表 (Default table) 一般来说默认的路由都放在这张表。 表 0 保留。路由规则

路由规则是通过iprouter2这个软件包中的指令来操作的。里面包括最常用的命令ip route和ip rule。

比如,查看路由表,这里有3张路由表。

$ ip rule show0:	from all lookup local32766:	from all lookup main32767:	from all lookup default

查看路由规则

$ ip route show table main  10.10.15.0/25 dev eth0 proto kernel scope link src 10.10.15.46 192.168.1.0/24 dev eth1 proto kernel scope link src 192.168.1.10   default via 10.10.15.1 dev eth0  

指令方面,有非常多,大家可以看一下手册,更加详细的操作方法我们下篇文章再聊。

好了,今天的分享就到这里。 如果大家觉得我的分享对你有用,还请点一点关注,在评论区跟我交流,我会持续分享一些有用的知识点和心得。

标签: #静态路由和默认路由有何区别两者哪 个执行速度更快