分类: 系统运维
2008-02-29 13:19:34
操作规则
需要功能包: system
软件等级: Level1
操作路径: /ip route, /ip policy-routing
技术标准: IP (RFC 791)
概述
MikroTik RouterOS有下列类型的路由:
动态连接路由 是当在一个网卡上添加了IP,会自动创建一个动态的路由。
静态路由 是用户自定义将数据传输到指定的网络去的路由,这需要指定默认的网关。
当添加一个IP地址后,会自动创建一个动态的路由连接,你不需要手动添加连接路由器的路由配置,除非你使用一些路由协议(RIP 或OSPF)你就需要定义静态路由到指定的网络,或指定默认网关。
ECMP (Equal Cost Multi-Path) 路由
当使用在到一个目标网络多于一个网关时,可以称为“Equal-Cost Multi-Path Routing”即将其作负载均衡。每一对新的源/目标IP会选择一个新的网关。例如,一个FTP仅使用一个连接,但当一个新连接到不同的服务器就会使用其他的连接。
添加多网关的静态路由(格式如:gateway=x.x.x.x,y.y.y.y)路由协议会建立动态的多路路由。
基于策略的路由
根据路由算法将一个数据包选择到期望的一个网关上,在RouterOS中操作过程如下:
标记期望的数据包,设置一个routing-mark
为标记的数据包选择一个网关
路由
操作路径: /ip route
在路由子选项中,你可以配置静态路由、Equal Cost Multi-Path、Policy-Based Routing
注:
你能指定两个或更多的网关在路由中,而且你能重复一些路由的不同类型的参数多次设置到一个网关上。
事例
在一个路由器的两张网卡和两个IP地址中,添加两个静态路由到网络10.1.12.0/24 和 0.0.0.0/0 (默认的目标的地址) :
[admin@MikroTik] ip route> add dst-address=10.1.12.0/24 gateway=192.168.0.253
[admin@MikroTik] ip route> add gateway=10.5.8.1
[admin@MikroTik] ip route> print
Flags: X - disabled, A - active, D - dynamic,
C - connect, S - static, r - rip, b - bgp, o - ospf
# DST-ADDRESS G GATEWAY DISTANCE INTERFACE
0 A S 10.1.12.0/24 r 192.168.0.253 Local
1 ADC 10.5.8.0/24 Public
2 ADC 192.168.0.0/24 Local
3 A S 0.0.0.0/0 r 10.5.8.1 Public
[admin@MikroTik] ip route>
应用事例
静态Equal Cost Multi-Path路由
考虑下面的网络环境,所以的数据都是从一个网络192.168.0.0/24到两个网关10.1.0.1 和10.1.1.1。
注,ISP1给我们的带宽是2Mbps ,ISP2是4Mbps,因此我们想要一个1:2的传输比(1/3从192.168.0.0/24的数据走ISP1,2/3的通过).
路由器的IP地址:
[admin@ECMP-Router] ip address> print
Flags: X - disabled, I - invalid, D - dynamic
# ADDRESS NETWORK BROADCAST INTERFACE
0 192.168.0.254/24 192.168.0.0 192.168.0.255 Local
1 10.1.0.2/28 10.1.0.0 10.1.0.15 Public1
2 10.1.1.2/28 10.1.1.0 10.1.1.15 Public2
[admin@ECMP-Router] ip address>
添加默认路由,一个ISP1和两个ISP2,这样我们得到了1:3的比例:
[admin@ECMP-Router] ip route> add gateway=10.1.0.1,10.1.1.1,10.1.1.1
[admin@ECMP-Router] ip route> print
Flags: X - disabled, A - active, D - dynamic,
C - connect, S - static, r - rip, b - bgp, o - ospf
# DST-ADDRESS G GATEWAY DISTANCE INTERFACE
0 ADC 10.1.0.0/28 Public1
1 ADC 10.1.1.0/28 Public2
2 ADC 192.168.0.0/24 Local
3 A S 0.0.0.0/0 r 10.1.0.1 Public1
r 10.1.1.1 Public2
r 10.1.1.1 Public2
[admin@ECMP-Router] ip route>
Policy-Based路由
这个事例将介绍如何定义数据包的路由,策略设置如下:从192.168.0.0/24的数据包通过网关10.0.0.2,从192.168.1.0/24的数据包通过网关10.0.0.3,如果GW_1没有应答ping的检测,192.168.0.0/24使用GW_Backup ,如果GW_2没有应答ping的检测,同样使用GW_Backup 替换192.168.1.0/24GW_2网关。
IP地址配置:
[admin@PB-Router] ip address> print
Flags: X - disabled, I - invalid, D - dynamic
# ADDRESS NETWORK BROADCAST INTERFACE
0 192.168.0.1/24 192.168.0.0 192.168.0.255 Local1
1 192.168.1.1/24 192.168.1.0 192.168.1.255 Local2
2 10.0.0.7/24 10.0.0.0 10.0.0.255 Public
[admin@PB-Router] ip address>
标记从192.168.0.0/24网段的数据包为new-routing-mark=net1,和从192.168.1.0/24网段的数据包为 new-routing-mark=net2:
[admin@PB-Router] ip firewall mangle> add src-address=192.168.0.0/24 \
\... action=mark-routing new-routing-mark=net1 chain=prerouting
[admin@PB-Router] ip firewall mangle> add src-address=192.168.1.0/24 \
\... action=mark-routing new-routing-mark=net2 chain=prerouting
[admin@PB-Router] ip firewall mangle> print
Flags: X - disabled, I - invalid, D - dynamic
0 chain=prerouting src-address=192.168.0.0/24 action=mark-routing
new-routing-mark=net1
1 chain=prerouting src-address=192.168.1.0/24 action=mark-routing
new-routing-mark=net2
[admin@PB-Router] ip firewall mangle>
从192.168.0.0/24网段的数据包指给网关GW_1 (10.0.0.2), 数据包从网络 192.168.1.0/24指给网关GW_2 (10.0.0.3), 并使用相应的数据包标记。如果 GW_1或GW_2 连接失败fails (没有回应ping), 路由会把各自的数据包给GW_Backup (10.0.0.1):
[admin@PB-Router] ip route> add gateway=10.0.0.2 routing-mark=net1 \
\... check-gateway=ping
[admin@PB-Router] ip route> add gateway=10.0.0.3 routing-mark=net2 \
\... check-gateway=ping
[admin@PB-Router] ip route> add gateway=10.0.0.1
[admin@PB-Router] ip route> print
Flags: X - disabled, A - active, D - dynamic,
C - connect, S - static, r - rip, b - bgp, o - ospf
# DST-ADDRESS PREFSRC G GATEWAY DISTANCE INTERFACE
0 ADC 10.0.0.0/24 10.0.0.7 Public
1 ADC 192.168.0.0/24 192.168.0.1 Local1
2 ADC 192.168.1.0/24 192.168.1.1 Local2
3 A S 0.0.0.0/0 r 10.0.0.2 Public
4 A S 0.0.0.0/0 r 10.0.0.3 Public
5 A S 0.0.0.0/0 r 10.0.0.1 Public