
RouterOS v7在路由策略配置方面有所变动,与之前版本在路由表的配置不同在于创建新路由表,之前的版本创建新路由表(路由标记) 可以在ip route、ip route rules和 ip firewall mangle 三处位置,而v7只能在routing -> table 下创建,如果路由表需要推送给FIB,需设置fib参数。所以导致PCC负载均衡的配置与之前版本有些不同。
本文主要讲RouterOS V7多线PCC负载均衡(老版本教程请参考《RouterOS通过VRRP实现单线多拨以及PCC负载均衡》)
1、环境介绍
1.1 RouterOS V7.20.4
1.2 3条电信宽带(同运营商的宽带做PCC负载均衡最佳,不能运营商分流会比较好)

基于VPS使用DD命令安装RouterOS chr版本并自动开启容器Container(无需拔掉电源重启设备)。
本文以Debian安装chr-7.16.1为例
1、RouterOS chr安装
1.1 使用一键脚本安装RouterOS CHR并自动重启开启容器Container。如果主系统有重要文件请备份,安装chr系统会自动格式化掉主系统
# 官网版本,支持UEFI和BIOS双模式,无授权,支持官网任意版本(默认Longterm最新版本) wget -O chr.sh https://pan.77bx.com/ros/chr.sh && bash chr.sh # MikroTikPatch破解版本,支持UEFI和BIOS双模式,PU授权,支持MikroTikPatch任意版本(默认Longterm最新版本) wget -O chr.sh https://pan.77bx.com/ros/chrpj.sh && bash chr.sh
1.2 脚本运行到Enter admin password:,请输入admin的密码(如123123),之后会自动重启。
本文主要讲解如何借助DNSPOD的新版API接口来实现RouterOS的DDNS动态解析。
看到DNSPOD官网有即将下架老版本API的提示,所以使用新版本的API来写了一个更新接口。
一、创建Token添加域名
首先域名要在DNSPOD解析,然后在腾讯云后台开启的API Token。
详细开通API Token教程:https://console.cloud.tencent.com/cam/capi
二、PHP制作DNSPOD API动态解析接口
以下是我制作好的php解析接口,支持SSL
解析接口
http://api.77bx.com/dnspod/dnspod.php https://api.77bx.com/dnspod/dnspod.php
HTTP请求方式
POST/GET
请求参数
参数名称 必选 类型 描述 id 是 String 腾讯云API密钥SecretId key 是 String 腾讯云API密钥SecretKey domain 是 String 域名。如77bx.com record 否 String 主机记录。如不传默认为@ type 否 String 记录类型。如不传默认为A记录 ip 否 String IP地址。如不传默认为来源IPv4地址
请求事例
curl -X POST http://api.77bx.com/dnspod/dnspod.php -d "id=SecretId&key=SecretKey&domain=77bx.com&record=op&ip=1.1.1.1&type=A"
请求输出
返回提示 描述 0 表示更新成功(当前IP地址和域名IP地址相同也返回0) 1 参数错误 2 域名或API密钥错误 3 更新或API密钥错误
安全说明
1、本接口未记录所有的解析token和解析记录,但是服务器的访问日志会有链接记录(按照政策要求需保存6个月的日志)。虽然有日志但是本接口不提供任何查询。
2、建议使用独立的DNSPOD账号来使用本接口,重要的域名请自建PHP服务器用来解析。由于使用本接口出现的任何安全问题,本人概不负责。这边只能保证本人不会去做任何后门行为。这边建议如果使用了本接口请勤换token(token可以管理账号下的所有域名)。
源代码
暂时不提供
RouterOS脚本
#PPPoE :local pppoe "pppoe-out1" #DNSPOD Token :local secretid "secretid" :local secretkey "secretkey" #DNSPOD域名 :local record "op1" :local domain "77bx.com" #以下非专业人士请勿修改 :global ipold :local ipnew [/ip address get [/ip address find interface=$pppoe] address] :set ipnew [:pick $ipnew 0 ([len $ipnew] -3)] :if ($ipnew != $ipold ) do={ :local postdata "id=$secretid&key=$secretkey&domain=$domain&record=$record&ip=$ipnew" :local response [/tool fetch http-method="post" url=http://api.77bx.com/dnspod/dnspod.php http-data=$postdata as-value output=user] :if ($response->"data" = "0") do={ :log info "DDNS: changed $ipold to $ipnew" :set ipold $ipnew } }
以上脚本需要修改pppoe(宽带拨号的名称),secretid,secretkey,record和domain
注意:ROS可以设置定时1分钟执行一次脚本,脚本中带有ip是否相同判断,相同就不执行;然后是我做的API接口后台中也有ip是否相同的判断,一般不会引起DNSPOD锁域名的情况。






