团贷网近期新闻:ROS菜鸟系列4--简单路由策略实现

来源:百度文库 编辑:中财网 时间:2024/04/28 04:24:25
本章节是以“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”里面直接粘贴使用。