安装了一条电信光纤 ADSL,一条移动的光纤 ADSL,想让电信IP走电信线路,移动IP走移动线路,同时移动的ip从电信线路过来的也正常。

1. 首先从https://ip.cn/chnroutes.html 下载移动的路由表

wget  http://f.ip.cn/rt/isproutes-cmcc.txt   -o > /etc/misc/isproutes/isproutes-cmcc.txt

2. 把这个表转成ipset


#!/bin/bashrulefile="/tmp/ipset_cmcc.rule"
rm -rf $rulefile
echo "" > $rulefile
isExit=`ipset list cmcc | grep 'Name: cmcc' | wc -l`
if [  "$isExit" == "1" ]; thenecho "flush cmcc " >>$rulefile
elseecho "create cmcc hash:net family inet hashsize 4096 maxelem 65536" >>$rulefile
fiip_tmp_file='/etc/misc/isproutes/isproutes-cmcc.txt'
cat $ip_tmp_file | grep -v "#" | while read line
doecho  "add cmcc $line"  >>$rulefile
done
ipset restore <$rulefile

3. iptable 的mangle 表加上以下规则

*mangle
#来自电信的线路的要新建的连接打个mark成200,
iptables -t mangle -I  PREROUTING -i ppp0 -p tcp   -m state --state NEW  -j MARK --set-xmark 0xc8/0xfffff
# 同时把这个mark保存到连接中,
-A PREROUTING -p tcp -m mark --mark 0xc8 -j CONNMARK --save-mark --nfmask 0xffffffff --ctmask 0xffffffff
#把mark从连接上恢复到每一个连接包中
-A PREROUTING -p tcp -m connmark --mark 0xc8 -j CONNMARK --restore-mark --nfmask 0xffffffff --ctmask 0xffffffff
-A PREROUTING -p tcp -m mark --mark 0xc8 -j CONNMARK --save-mark --nfmask 0xffffffff --ctmask 0xffffffff#没有打过Mark才进行根据地址来打Mark, 防止访问电信的线路的服务返回时走了移动的线路
-A PREROUTING -m set --match-set cmcc dst -m mark --mark 0x0 -j MARK --set-xmark 0x64/0xffffffff
-A OUTPUT -m set --match-set cmcc dst -m mark --mark 0x0 -j MARK --set-xmark 0x64/0xffffffffCOMMIT

4.增加路由表

echo "100 ctc" >> /etc/iproute2/rt_tables
echo "200 cmcc" >> /etc/iproute2/rt_tables

5. 增加策略路由


inetip=`ifconfig ppp1 | grep inet | awk '{print $2}'`
if [ "$inetip" == "" -o "${inetip:0:3}" != "172" ]; then echo "it not cmcc ppp"exit
fiinetgw=`ifconfig ppp1 | grep inet | awk '{print $6}'`if [ "$inetgw" == "" ]; then exit
fiip route flush table cmcc
ip route replace default scope global dev ppp0ip rule del lookup cmcc
ip rule del lookup cmccip rule add from $inetip lookup cmcc
ip rule add fwmark 100 lookup cmccip route add default via $inetgw  dev ppp1 proto static table cmcc
ip route flush cach
sysctl net.ipv4.conf.ppp1.rp_filter=2

6. 在/etc/sysconfig/network-scripts/ifup-post, 文件结束前,增加几行,以拔号后自动加上策略路由

if [ "ppp1" == "${DEVICE}" ]; thennet_log " ${DEVICE}  is UP need add customized route for cmcc"/etc/misc/add_rule_to_cmcc.sh >  /var/log/add_route_to_cmcc.log 2>&1fi

Linux Centos 7移动电信双线 策略路由相关推荐

  1. 做双线策略路由用的网通ip段

    标签:双线 策略路由 网通ip [推送到技术圈] 版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任. http://10888.blog ...

  2. mysql linux centos 安装_Linux centos 下在线安装mysql

    1,查看是否有安装过mysql: #rpm -qa | grep mysql 如果无结果返回,说明没有安装Mysql,可以全新安装. 2,查看在线服务器提供的Mysql相关的安装包有哪些: #yum ...

  3. Linux / CentOs 7搭建DHCP服务

    在前面介绍了怎么在Windows server 2016中搭建DHCP服务, 我们今天介绍如何在Linux / CentOS 7操作系统中搭建DHCP服务? 跟在Windows server 2016 ...

  4. Linux/CentOS优化配置 汇总

    [强烈要求做的]CentOS启用sudo,禁用root远程登录 修改Linux的 SSH 远程连接 端口 技巧 Linux命令行修改IP.网关.DNS.主机名 的方法 Linux/CentOS服务器 ...

  5. Linux(CentOS)安装分区方案

    为什么80%的码农都做不了架构师?>>>    Linux(CentOS)安装分区方案 /boot(不是必须的):/boot分区用于引导系统,它包含了操作系统的内核和在启动系统过程中 ...

  6. linux/centos 解决Tomcat内存溢出,centostomcat

    2019独角兽企业重金招聘Python工程师标准>>> linux/centos 解决Tomcat内存溢出,centostomcat Tomcat本身不能直接在计算机上运行,需要依赖 ...

  7. Linux CentOS 7上安装极点五笔

    2019独角兽企业重金招聘Python工程师标准>>> 话说几天前在新买的惠普笔记本上成功地安装了Linux CentOS 7操作系统.Nvidia Quandro P600驱动程序 ...

  8. Linux centos下项目环境搭建及版本部署

    1.JDK环境的安装 安装之前确认Linux centos操作系统是32位还是64位(uname -a) 然后windows中去官网下载对应的JDK源码包,通过xftp或者winscp连接linux, ...

  9. Linux(Centos)之安装Redis及注意事项

    Linux(Centos)之安装Redis及注意事项 转:http://www.cnblogs.com/hanyinglong/p/5036558.html  阅读目录 1.redis简单说明 2.准 ...

  10. linux centos 7 安装中文字体

    前言 报表中发现有中文乱码和中文字体不整齐(重叠)的情况,首先考虑的就是操作系统是否有中文字体,在CentOS 7中发现输入命令查看字体列表是提示命令无效: 如上图可以看出,不仅没有中文字体,连字体库 ...

最新文章

  1. deepLink iOS 应用到自己APP 记录
  2. python 读取图片成为一维数组_python+opencv 图像的数组和矩阵操作
  3. 用幻方编码中文nlp任务
  4. python点的作用-python中三引号的作用(逗号的两点总结)
  5. 《生活随笔》相关内容将转移到个人微信公众号,本博客专注技术内容。
  6. zookeeper的设计猜想-阶段一:提交事务请求(投票)
  7. Spring Boot入门系列(十六)整合pagehelper,一秒实现分页功能!
  8. 测试开发之测试方法第二篇
  9. git add 撤销_Git系列——Git添加提交(add)和查看状态(status)
  10. 爱荷华大选 App 投票酿闹剧的反思:为什么我们在软件工程方面如此糟糕?
  11. C++中传递数组参数
  12. cmake安装及下载
  13. 将json文件格式转化成Excel表格形式
  14. 金税盘计算机USB无法识别,金税盘无法识别怎么办
  15. 计算机新手必学基础知识,5分钟带你全面了解电脑,新手入门必备知识,值得收藏!...
  16. Region Proposal by Guided Anchoring 笔记
  17. iOS读懂崩溃日志,解析崩溃日志
  18. 计算机e的指数怎么计算方法,e^x的基本算法——剥离大指数法
  19. 三类6种地图可视化软件测评,最好用的工具居然是它
  20. flowable6.4 并行网关 驳回 跳转 回退 多实例加签减签

热门文章

  1. 用diiv实现多个方块居中嵌套--margin
  2. 加油站(贪心)【LeetCode】
  3. Ruijie(RGOS 11.X)忘记登录密码console口恢复密码
  4. CPN:Cascaded Pyramid Network for Multi-Person Pose Estimation_及CPN实现
  5. code3:使用set判断数组中是否有重复值
  6. 如何免费自动将邮件发送到多个邮件地址 - 自动邮件发送器使用教程
  7. 35、T5L 迪文屏C51开发之音频播放
  8. vscode的工作区的问题
  9. 程序员的奋斗史(三十三)——人在囧途之应聘篇(三)
  10. cpu和显卡瓶颈测试软件,CPU与GPU瓶颈的详述