提醒下:PCC负载均衡在国内,仅适用于相同运营商的多线均衡!

RouterOS v7在路由策略配置方面有所变动,新建路由表,不能直接在ip route rule和mangle下创建,只能通过routing table配置,下面通过一个双线的PCC负载均衡策略事例,介绍下v7的PCC配置方式,网络大致情况如下:

  • 出口线路1地址10.200.15.99/24,网关:10.200.15.1,接口ether1;
  • 出口线路2地址10.200.100.99/24,网关:10.200.100.2,接口ether2;
  • 内网IP地址192.168.100.1/24,接口ether3;

首先配置IP地址

[admin@MikroTik] > ip address/
[admin@MikroTik] /ip/address> add address=10.200.15.99/24 interface=ether1
[admin@MikroTik] /ip/address> add address=10.200.100.99/24 interface=ether2
[admin@MikroTik] /ip/address> add address=192.168.100.1/24 interface=ether3

创建策略路由表,V7最大的改动在于策略路由表,策略路由表只能在routing table下创建,mangle和ip route rule无法在创建策略路由表,:

[admin@MikroTik] /ip/address> /routing/table/
[admin@MikroTik] /routing/table> add name=route1 fib
[admin@MikroTik] /routing/table> add name=route2 fib

进入ip firewall mangle标记

[admin@MikroTik] /routing/table> /ip firewall/mangle/
[admin@MikroTik] /ip/firewall/mangle>

MikroTik官方在新的文档中加入了新的mangle规则,接受从内网口到目标地址是外网IP地址段的通过,就说大家常说的多线端口映射的回流配置,这部分是mangle里面的,但是否成功还要取决于你的nat规则配置,不是这一条就能解决的,但这条从这种方式来说又是必须的,当然mangle里面还有其他方式的配置,RouterOS的灵活就这么可怕!

add action=accept chain=prerouting in-interface=ether3 dst-address=10.200.15.0/24
add action=accept chain=prerouting in-interface=ether3 dst-address=10.200.100.0/24

需要注意上面两条规则必须是在所有规则之前优先处理,也就是在mangle prerouting链表里面的规则序列必须是0和1

创建两组PCC策略,方式和之前v6一样,这里加入了一个参数connection-mark=no-mark,用于标记为被标记的数据流,首先创建第一组PCC策略

add chain=prerouting action=mark-connection connection-mark=no-mark dst-address-type=!local new-connection-mark=pcc1 passthrough=yes \
per-connection-classifier=both-addresses:2/0 src-address=192.168.100.0/24
add chain=prerouting action=mark-routing connection-mark=pcc1 new-routing-mark=route1 passthrough=yes src-address=192.168.100.0/24

 

创建第二组PCC策略

add chain=prerouting action=mark-connection connection-mark=no-mark dst-address-type=!local new-connection-mark=pcc2 passthrough=yes \
per-connection-classifier=both-addresses:2/1 src-address=192.168.100.0/24
add action=mark-routing chain=prerouting connection-mark=pcc2 new-routing-mark=route2 passthrough=yes src-address=192.168.20.0/24

定义IP数据报从那个接口进入,就按原路从那个接口回去,即保证每个外网口的数据能得到正确的路由,这里采用的是prerouting链表,不再使用input链表,有助于多线端口映射的配置。

/ip firewall mangle
add chain=prerouting connection-mark=no-mark in-interface=ether1 action=mark-connection new-connection-mark=pcc1
add chain=prerouting connection-mark=no-mark in-interface=ether2 action=mark-connection new-connection-mark=pcc2

继续在mangle下添加入接口连接的路由标记:

add chain=output connection-mark=pcc1 action=mark-routing new-routing-mark=route1
add chain=output connection-mark=pcc2 action=mark-routing new-routing-mark=route2

进入ip route添加两条出口的策略路由

[admin@MikroTik] /ip/route> add gateway=10.200.15.1 routing-table=route1
[admin@MikroTik] /ip/route> add gateway=10.200.100.1 routing-table=route2

最后配置nat转换规则,进入ip firewall nat中配置action=masquerade,分别对2条线路做伪装:

/ip firewall nat
add action=masquerade chain=srcnat out-interface=ether1
add action=masquerade chain=srcnat out-interface=ether2

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

文章很值,打赏犒劳作者一下