|
楼主 |
发表于 2012-10-5 11:08:53
|
显示全部楼层
OS菜鸟系列4--简单路由策略实现
本章节是以“ROS菜鸟系列1”为基础,同时也可以应用到系列2,系列3上面,实现功能的完善,
路由策略:可以实现数据传输路径的优化,数据分流,线路备份,变相的实现带宽添加等。
本章节涉及的主要是较为简单的三种路由策略:1)基于端口分流的路由策略,2)基于目标地址3)基于源地址
只有在具备多条外网线路的情况下才涉及到分流,备份及优化的部分,因此假定引进第二条ISP线路:外网IP地址:10.10.10.2/28,网关10.10.10.1
实现第一步:添加IP地址
[admin@MikroTik] > ip address
[admin@MikroTik] /ip address> add address=10.10.10.2/28 interface=wan
[admin@MikroTik] /ip address> print
Flags: X - disabled, I - invalid, D - dynamic
# ADDRESS NETWORK BROADCAST INTERFACE
0 192.168.1.1/24 192.168.1.0 192.168.1.255 lan
1 172.16.0.2/28 172.16.0.0 172.16.0.15 wan
2 10.10.10.2/28 10.10.10.0 10.10.10.15 wan
实现第二步:标记数据包
1)基于端口标记
假定:对所有去访问目标80端口数据进行标记,同时客户可以根据自己的需要对其他端口进行标记,以达到符合的自己要求
[admin@MikroTik] > ip
[admin@MikroTik] /ip>firewall
[admin@MikroTik] /ip firewall>mangle
#添加连接标记规则
[admin@MikroTik] /ip firewall mangle>add chain=prerouting protocol=tcp dst-port=80 action=mark-connection new-connection-mark=web passthrough=yes
#添加路由标记规则
[admin@MikroTik] /ip firewall mangle>add chain=prerouting connection-mark=web action=mark-routing new-routing-mark=80 passthrough=no
[admin@MikroTik] /ip firewall mangle> print
Flags: X - disabled, I - invalid, D - dynamic
0 chain=prerouting action=mark-connection new-connection-mark=web
passthrough=yes protocol=tcp dst-port=80
1 chain=prerouting action=mark-routing new-routing-mark=80 passthrough=no connection-mark=web
以上完成对访问端口的标记,
# 假定所有的80端口数据将从第二条ISP线路走,而其他的数据从第一条ISP线路走
[admin@MikroTik] /ip firewall mangle>/
[admin@MikroTik]ip route
[admin@MikroTik] /ip route>add gateway=10.10.10.2 routing-mark=80 check-gateway=ping
admin@MikroTik] /ip route> print
Flags: X - disabled, A - active, D - dynamic,
C - connect, S - static, r - rip, b - bgp, o - ospf, m - mme,
B - blackhole, U - unreachable, P - prohibit
# DST-ADDRESS PREF-SRC GATEWAY-STATE GATEWAY DISTANCE INTERFACE
0 A S 0.0.0.0/0 reachable 10.10.10.2 1 wan
1 A S 0.0.0.0/0 reachable 172.16.0.1 1 wan
2 ADC 10.10.10.0/28 10.10.10.2 0 wan
3 ADC 172.16.0.0/28 172.16.0.2 0 wan
4 ADC 192.168.1.0/24 192.168.1.1 0 lan
2)基于目标地址分流
假定访问目标地址为58.17.1.234的数据从第二条ISP线路走
第一种方法:此时可以直接在IP-ROUTE里面添加规则
如:
[admin@MikroTik] > ip
[admin@MikroTik] /ip> rout
[admin@MikroTik] /ip route>add dst-address=58.17.1.234 gateway=10.10.10.1 check-gateway=ping
admin@MikroTik] /ip route> print
Flags: X - disabled, A - active, D - dynamic,
C - connect, S - static, r - rip, b - bgp, o - ospf, m - mme,
B - blackhole, U - unreachable, P - prohibit
# DST-ADDRESS PREF-SRC G GATEWAY DISTANCE IN..
0 A S 0.0.0.0/0 r 172.16.0.1 1 wan
1 ADC 10.10.10.0/28 10.10.10.2 0 wan
2 A S 58.17.1.234/32 r 10.10.10.1 1 wan
3ADC 172.16.0.0/28 172.16.0.2 0 wan
4ADC 192.168.1.0/24 192.168.1.1 0
第二种:可以先在IP--route--rule里面添加:
[admin@MikroTik] >ip rou
[admin@MikroTik] /ip route>rule
[admin@MikroTik] /ip route rule>add dst-address=58.17.1.234 Table=static action=lookup
[admin@MikroTik] /ip route rule>print
Flags: X - disabled, I - inactive
0 dst-address=58.17.1.234/32 action=lookup table=static
然后在添加路由:
[admin@MikroTik] /ip route rule>..
[admin@MikroTik] /ip route>add gateway=10.10.10.1 routing-mark=static check-gateway=ping
[admin@MikroTik] /ip route>print
Flags: X - disabled, A - active, D - dynamic,
C - connect, S - static, r - rip, b - bgp, o - ospf, m - mme,
B - blackhole, U - unreachable, P - prohibit
# DST-ADDRESS PREF-SRC G GATEWAY DISTANCE IN..
0 A S 0.0.0.0/0 r 172.16.0.1 1 wan
1 A S 0.0.0.0/0 r 10.10.10.1 1 wan
2 ADC 10.10.10.0/28 10.10.10.2 0 wan
3 ADC 172.16.0.0/28 172.16.0.2 0 wan
4 ADC 192.168.1.0/24 192.168.1.1 0 lan
第三种:可以先在ip---firewall--address-list里面添加地址表
[admin@MikroTik] >ip firewall address-list
[admin@MikroTik] /ip firewall address-list>add list=static address=58.17.1.234
[admin@MikroTik] /ip firewall address-list>print
Flags: X - disabled, D - dynamic
# LIST ADDRESS
0 static 58.17.1.234
对目标地址标记:
[admin@MikroTik] /ip firewall address-list>..
[admin@MikroTik] /ip firewall>mangle
[admin@MikroTik] /ip firewall mangle>add chain=prerouting dst-address-list=static action=mark-routing new-routing-mark=static passthrough=no
[admin@MikroTik] /ip firewall mangle>print
Flags: X - disabled, I - invalid, D - dynamic
0 chain=prerouting action=mark-routing new-routing-mark=static
passthrough=no dst-address-list=static
添加路由标记
[admin@MikroTik] /ip firewall mangle>/
[admin@MikroTik] >ip route
[admin@MikroTik] /ip route>add gateway=10.10.10.1 routing-mark=static check-gateway=ping
[admin@MikroTik] /ip route>print
Flags: X - disabled, A - active, D - dynamic,
C - connect, S - static, r - rip, b - bgp, o - ospf, m - mme,
B - blackhole, U - unreachable, P - prohibit
# DST-ADDRESS PREF-SRC G GATEWAY DISTANCE IN..
0 A S 0.0.0.0/0 r 172.16.0.1 1 wan
1 A S 0.0.0.0/0 r 10.10.10.1 1 wan
2 ADC 10.10.10.0/28 10.10.10.2 0 wan
3 ADC 172.16.0.0/28 172.16.0.2 0 wan
4 ADC 192.168.1.0/24 192.168.1.1 0 lan
使用第一种方法,可以快速简单的添加定义每一条规则,但会使用整个ip-route里面显得很杂乱,不便于管理,第二种方法和第三种方法相对比较复杂些,但会让整个ip-route里面简单明了,便于管理
3)基于源地址策略
第一种:假定内网192.168.1.0/25走第一条ISP出口,内网192.168.1.128/25走第二条ISP出口
#做标记
[admin@MikroTik] >ip firewall mangle
[admin@MikroTik] /ip firewall mangle>add chain=prerouting src-address=192.168.1.0/25 action=mark-routing new-routing-mark=GA
[admin@MikroTik] /ip firewall mangle>add chain=prerouting src-address=192.168.1.128/25 action=mark-routing new-routing-mark=GB
[admin@MikroTik] /ip firewall mangle>print
Flags: X - disabled, I - invalid, D - dynamic
0 chain=prerouting action=mark-routing new-routing-mark=GA passthrough=yes
src-address=192.168.1.0/25
1 chain=prerouting action=mark-routing new-routing-mark=GB passthrough=yes
src-address=192.168.1.128/25
#做路由策略
[admin@MikroTik] /ip firewall mangle>/
[admin@MikroTik] >ip
[admin@MikroTik] /ip>route
[admin@MikroTik] /ip route>add gateway=172.16.0.1 routing-mark=GA check-gateway=ping
[admin@MikroTik] /ip route>add gateway=10.10.10.1 routing-mark=GB check-gateway=ping
[admin@MikroTik] /ip route>print
Flags: X - disabled, A - active, D - dynamic,
C - connect, S - static, r - rip, b - bgp, o - ospf, m - mme,
B - blackhole, U - unreachable, P - prohibit
# DST-ADDRESS PREF-SRC G GATEWAY DISTANCE IN..
0 A S 0.0.0.0/0 R 10.10.10.1 1 wan
1 A S 0.0.0.0/0 r 172.16.0.1 1 wan
2 A S 0.0.0.0/0 R 172.16.0.1 1 wan
3 ADC 10.10.10.0/28 10.10.10.2 0 wan
4 ADC 172.16.0.0/28 172.16.0.2 0 wan
5 ADC 192.168.1.0/24 192.168.1.1 0 lan
这种方法,其实可以只用做192.168.1.128/25的内网IP段的标记即可,因为存在一条默认路由:1 A S 0.0.0.0/0 r 172.16.0.1 1 wan ,当192.168.1.0/25的Ip段,当找不到相应的标记路由时,路由器会最终选择默认路由进行转发出去。
第二种方法:(适用于内网非连续的IP地址段)
如假定:192.168.1.10,192.168.1.20-192.168.1.50,192.168.1.100-110的机器走第二条ISP出口,其他走原第一条ISP出口
添加地址列表:
[admin@MikroTik] > ip
[admin@MikroTik] /ip>firewall address-list
[admin@MikroTik] /ip firewall address-list>add list=static address=192.168.1.10
[admin@MikroTik] /ip firewall address-list>add list=static address=192.168.1.20-192.168.1.50
[admin@MikroTik] /ip firewall address-list>add list=static address=192.168.1.100-192.168.1.110
[admin@MikroTik] /ip firewall address-list>print
Flags: X - disabled, D - dynamic
# LIST ADDRESS
0 static 192.168.1.10
1 static 192.168.1.20-192.168.1.50
2 static 192.168.1.100-192.168.1.110
标记源地址段的IP地址
[admin@MikroTik] /ip firewall address-list>..
[admin@MikroTik] /ip firewall>mangle
[admin@MikroTik] /ip firewall mangle>add chain=prerouting src-address-list=static action=mark-routing new-routing-mark=static
[admin@MikroTik] /ip firewall mangle> print
Flags: X - disabled, I - invalid, D - dynamic
0 chain=prerouting action=mark-routing new-routing-mark=static
passthrough=yes src-address-list=static
添加路由策略标记
[admin@MikroTik] /ip firewall mangle>/
[admin@MikroTik] /ip route>add gateway=10.10.10.1 routing-mark=static check-gateway=ping
[admin@MikroTik] /ip route>print
Flags: X - disabled, A - active, D - dynamic,
C - connect, S - static, r - rip, b - bgp, o - ospf, m - mme,
B - blackhole, U - unreachable, P - prohibit
# DST-ADDRESS PREF-SRC G GATEWAY DISTANCE IN..
0 A S 0.0.0.0/0 R 10.10.10.1 1 wan
1 A S 0.0.0.0/0 r 172.16.0.1 1 wan
2 ADC 10.10.10.0/28 10.10.10.2 0 wan
3 ADC 172.16.0.0/28 172.16.0.2 0 wan
4 ADC 192.168.1.0/24 192.168.1.1 0 lan
解释部分相关的参数:check-gateway:具备有两个选值ping和arp,意思是通过使用ping或者arp的功能对上层网关进行测试,当某条线路探测不通时,路由会把从该线路转发的数据自动跳转至其他备份的线路上面,当探测恢复时,线路会再自动跳转回来,从而实现线路的自动备份。
如果是通过winbox登录ROS时,以上的命令均可在主菜单的“new terminal”里面直接粘贴使用。 |
|