关于公有云:Linux策略路由详解
概述在Linux中,咱们通常应用route命令来做路由信息的治理。然而该命令仅仅只能用于根本路由信息的治理,面对性能更加弱小的基于策略的路由机制,route命令就显得顾此失彼。在传统路由算法中,只能基于目标地址进行路由抉择。然而如果对路由抉择有更简单的要求,比方针对不同源地址、传输层端口甚至是payload进行更粗疏的路由管制,传统的基于目标地址的路由表就无奈满足需要了,须要应用性能更加弱小的路由策略数据库routeing database: RPDB来解决。 命令装置装置很简略,依照如下命令装置即可。 # 查看iproute是否装置# 查看iproute版本]# ip -Vip utility, iproute2-ss170501# 装置yum install iproute -y路由策略数据库(RPDB) RPDB是寄存策略的数据库,被策略匹配的数据包会执行相干的操作,能够通过ip rule来治理。 在系统启动时,内核会配置三条默认策略: # 通过ip rule show能够查看以后RPDB中的规定]# ip rule show0: 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 helpUsage: ip rule { add | del } SELECTOR ACTIONip 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 ]SUPPRESSORSUPPRESSOR := [ suppress_prefixlength NUMBER ][ suppress_ifgroup DEVGROUP ]TABLE_ID := [ local | main | default | NUMBER ]选择器(SELECTOR) ...