这个脚本是根据 ·Owen wang
· 的route3.sh
脚本进行编写,在tests文件夹中有该脚本,有兴趣的可以看看。在使用route3.sh
脚本时,感觉不够灵活。需要在脚本中对网关,子网号,接口等信息进行修改;也不支持线上更新表项。所以就使用python重下了一下该功能。
- 路由表的操作功能
- 路由表添加,在路由表中没有路由的情况下使用添加功能可以给路由表添加路由。
- 路由表更新,在路由表中有路由情况下使用更新。该动作会删除原先的直连和默认路由,再次添加。该动作可能会造成中断,但实际我在测试时PING没有丢包,只有一个包增加了2ms。
- 电信缩写CTL,路由表号:5;联通缩写CUC,路由表号:10;移动缩写CMB,路由表号:15
- 规则表的操作功能
- 规则表删除,这个功能比较暴力,从优先级10一直删到32765.当有两条相同优先级的时候只能删除一条.麻烦多少执行两边吧。以后可能会修改该功能。保留前10个防止中断。
- 规则表更新,在这个功能中对运营商优先级和表号都是有规范的。如果觉得规范和实际有出入请到脚本中修改全局变量。
- 规则表对于运营商规范
- 表中0-32767,可使用1-32765。10001-10000为更新路由规则区域。
- 如果要改此pref范围,需要在setRuler()中删除部分也做修改!!
- 1-1000:保留为指定客户目的IP,初步为手动维护。
- 1001-4000:匹配电信明细地址,11001-14000电信更新区域
- 4001-7000:匹配联通明细地址,14001-17000联通更新区域
- 7001-10000:匹配移动明细地址,17001-19000移动更新区域
- 1-5:匹配源地址选择路由策略,6-10源地址更新区域
- 其他规定
- 脚本日志,报错均放在/var/log/pbr.log中。
- 刷脚本的时候先用本地的,本地没有才会下载。也可以更改以下链接地址。本地默认/tmp/中,默认连接在github上,可修改。
- 没有匹配的直接走main路由,也就是主线路由。
- 整个脚本只依赖docopt,使用前请安装该功能包。
yum install epel-release -y
yum install python-pip -y
pip install -r requirements.txt
- 该脚本只能再python2.X环境中使用
- 经测试python2.6.6和2.7.6均正常使用
- 发现在rule表中没有匹配源地址的rule。所以将route和rule的类合并,使用网关地址寻找源地址从而添加策略。
在使用中有任何问题,欢迎反馈给我,可以用以下联系方式跟我交流
- QQ: 441632790