国家劳动局IT培训咨询与技术指南
当前位置:首页>RouterOS
今天是:
Mar 10

Ver2.9.x 策略路由功能说明书

发布时间:2010-3-10 12:49:56 | 发布:administrator | 分类:RouterOS | 评论:0 | 引用:0 | 浏览:

 

操作规则

需要功能包: 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

[admin@PB-Router] ip route>

Mar 10

IPIP 隧道

发布时间:2010-3-10 12:42:15 | 发布:administrator | 分类:RouterOS | 评论:0 | 引用:0 | 浏览:

 

 

IPIP 隧道
Document revision: 1.1 (Fri Mar 05 08:25:43 GMT 2004)
Applies to: MikroTik RouterOS V2.9
基本信息
IPIP隧道是使用在两个路由器间对IP数据包进行封装的简单协议,IPIP隧道接口会像一个物理接口出现在接口列表中,许多路由器,包括Cisco和基于Linux基本支持该协议。这个协议使多个网络分布成为可能。
IP隧道协议可用到下面的网络情况 :
• 通过在Internet上隧道建立企业网
• 使用源路由的反向
快速设置向导
通过一个IPIP隧道在两个MikroTik路由器之间连接,路由器的IP地址为10.5.8.104和 10.1.0.172, 使用IPIP隧道的地址为10.0.0.1和10.0.0.2,设置如下:
• 在IP地址为10.5.8.104的路由器上配置:
1. 添加一个IPIP接口 (默认的名称为ipip1):
[admin@10.5.8.104] interface ipip> add local-address=10.5.8.104 \remote-address=10.1.0.172 disabled=no
2. 添加一个IP地址在ipip1 接口上:
[admin@10.5.8.104] ip address> add address=10.0.0.1/24 interface=ipip1
• 在IP地址为10.1.0.172的路由器上配置:
1. 添加一个IPIP接口(默认名称为ipip1):
[admin@10.1.0.172] interface ipip> add local-address=10.1.0.172 \remote-address=10.5.8.104 disabled=no
2. 添加一个IP地址在ipip1接口上:
[admin@10.1.0.172] ip address> add address=10.0.0.2/24 interface=ipip1
• Packages required: system
IPIP设置
操作路径: /interface ipip
IPIP隧道可以运行在任何IP传输的连接中。每一个IPIP隧道接口只能连接一个远程符合配置的接口。一个路由器可以添加无限个IPIP隧道 。
属性描述
name (名称; 默认: ipipN) – 接口参考名
mtu (整数; 默认: 1480) – 最大传输单元。设置为1480bytes是为避免数据包冲突。设置为1500bytes可能会出现网络异常。
local-address (IP 地址) – 在路由器上的本地地址,通过IPIP传输到远程的主机。
remote-address (IP 地址) – 已经配置了相应协议的远程路由器的IP地址。

使用 /ip address add 命令给IPIP接口分配一个IP地址。
在这个接口上没有验证或是静态情况,接口的带宽占用可用通过monitor 命令在interface目录可用监视。
MikroTik RouterOS IPIP隧道已经和Cisco 1005测试通过。Cisco 1005配置样本如下:
interface Tunnel0
ip address 10.3.0.1 255.255.255.0
tunnel source 10.0.0.171
tunnel destination 10.0.0.204
tunnel mode ipip
应用实例
假设我们想在路由器R1和R2之间建立一个IPIP隧道。
首先,我们需要配置IPIP接口和添加IP地址。
路由器R1配置如下:
[admin@MikroTik] interface ipip> add
local-address: 10.0.0.1
remote-address: 22.63.11.6
[admin@MikroTik] interface ipip> print
Flags: X - disabled, R - running
# NAME MTU LOCAL-ADDRESS REMOTE-ADDRESS
0 X ipip1 1480 10.0.0.1 22.63.11.6
[admin@MikroTik] interface ipip> en 0
[admin@MikroTik] interface ipip> /ip address add address 1.1.1.1/24 interface=ipip1
R2配置如下:
[admin@MikroTik] interface ipip> add local-address=22.63.11.6 remote-address=10.
0.0.1
[admin@MikroTik] interface ipip> print
Flags: X - disabled, R - running
# NAME MTU LOCAL-ADDRESS REMOTE-ADDRESS
0 X ipip1 1480 22.63.11.6 10.0.0.1
[admin@MikroTik] interface ipip> enable 0
[admin@MikroTik] interface ipip> /ip address add address 1.1.1.2/24 interface=ipip1
现在两个路由器可用互相ping通对方:
[admin@MikroTik] interface ipip> /ping 1.1.1.2
1.1.1.2 64 byte ping: ttl=64 time=24 ms
1.1.1.2 64 byte ping: ttl=64 time=19 ms
1.1.1.2 64 byte ping: ttl=64 time=20 ms
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 19/21.0/24 ms
[admin@MikroTik] interface ipip>

Mar 10

ROS VLAN设置实例

发布时间:2010-3-10 12:41:29 | 发布:administrator | 分类:RouterOS | 评论:0 | 引用:0 | 浏览:

 

以下是ROS VLAN的设置通用法则,其他交换机可以采用类似的思路是一样的,并且在华为和SSR等名牌设备上都做通了

1、设置交换机:

1、1 添加相应VLAN

set vlan 111 name office type ethernet mtu 1500 said 100111 state active
set vlan 112 name factory type ethernet mtu 1500 said 100112 state active
set vlan 113 name school type ethernet mtu 1500 said 100113 state active
set vlan 114 name cnc type ethernet mtu 1500 said 100114 state active
//以上是设置了111-114 VLAN的名字等参数。

1、2 将111-114的VLAN分配各个相应端口

set vlan 111 2/7
set vlan 112 2/9
set vlan 113 2/11
set vlan 114 2/13
//接网线:111(2/7)接办公楼;112(2/9)接集团工厂车间;113(2/11)接集团子弟学校;114(2/13)接网通出口
//好象没有ROS什么事呀?先别急,等一会再说

1、3 配置VLAN干线

clear trunk 2/5 2-110,115-1005
//以上也许可以省略,目的是将其他与ROS无关的VLAN抛开

set trunk 2/5 on dot1q 1,111-114
//将2/5设置为TRUNK口,vlan的封装类型一定要用dot1q,因为ROS仅支持标准802.1q的vlan,因此采购其他的交换机也要支持802.1q的交换机,有些市面交换机只支持私有的VLAN协议
//同样,如果选CISCO的交换机,也要注意不能配置成ISL的VLAN,如果MIKROTIK购买CISCO的协议,ROS就不会那么便宜了!
//这个口子就插ROS的ether1
//ether1是外口还是内口?都是!
//晕了?继续向下看--->

2、设置ROS

其实很简单:
2、1 创建VLAN并加入到ether1

/ interface vlan
add name="office" mtu=1500 arp=enabled vlan-id=111 interface=ether1 disabled=no
add name="factory" mtu=1500 arp=enabled vlan-id=112 interface=ether1 disabled=no
add name="school" mtu=1500 arp=enabled vlan-id=113 interface=ether1 disabled=no
add name="cnc" mtu=1500 arp=enabled vlan-id=114 interface=ether1 disabled=no
//虽然语法和CISCO不一样,但道理是一样的
//注意要点,这里的VLAN ID与前面交换机的要一一对应,VLAN名称有些交换机可以不对应,但有些交换机要求较严格,不对应不通

2、2 使用VLAN,VLAN的使用非常简单,把它们象普通网卡那样对待就可以了

/ ip address
add address=192.168.0.1/24 network=192.168.0.0 broadcast=192.168.0.255 interface=office comment="" disabled=no
add address=192.168.1.1/30 network=192.168.1.0 broadcast=192.168.1.255 interface=factory comment="" disabled=no
add address=192.168.2.1/24 network=192.168.2.0 broadcast=192.168.2.255 interface=school comment="" disabled=no
add address=221.38.156.42/30 network=221.38.156.40 broadcast=221.38.156.43 interface=cnc comment="" disabled=no
//以上是给各个vlan设置地址

2、3 做其他必要设置
/ ip route
add dst-address=0.0.0.0/0 preferred-source=0.0.0.0 gateway=221.38.156.41 distance=1 comment="added by setup" disabled=no
//添加缺省路由

/ ip firewall src-nat
add src-address=192.168.0.0/16 out-interface=cnc action=masquerade comment="" disabled=yes
//配置NAT转发
//好了,现在可以上网了,ROS只用了单网卡,并且各个VLAN间可以互访了

3、一句话总结:

Mar 10

对于节点超过500以上的网络共享上网的话建议使用ROS(做NAT)+3层交换机的方式

发布时间:2010-3-10 12:39:10 | 发布:administrator | 分类:RouterOS | 评论:0 | 引用:0 | 浏览:

 

下面就详细讲ROS 和3层交换机上如何配制

假设500台机器划分为5段,每段机100台,分别的网段是192.168.1.X----192.168.5.X
ROS的内网地址就设置为192.168.0.1 三层交换机的WAN口地址设置为192.168.0.2

ROS 配置

  ROS内网地址
1   192.168.0.1/24     192.168.0.0     192.168.0.255   LAN

  ROS 做地址隐藏要将全部节点的IP都要包括进去,所以就来来个
src-address=192.168.0.0/16 action=masquerade 

  给ROS指回头路由到三成交换机
ip route add dst-address=192.168.1.0/24 gateway=192.168.0.2
ip route add dst-address=192.168.2.0/24 gateway=192.168.0.2
ip route add dst-address=192.168.3.0/24 gateway=192.168.0.2
ip route add dst-address=192.168.4.0/24 gateway=192.168.0.2
ip route add dst-address=192.168.5.0/24 gateway=192.168.0.2

三层交换机配置

由于三层交换机各厂家配制命令不一样,下面只说大致配制步骤

先给三层交换机配制WAN口地址 192.168.0.2
静态网关 0.0.0.0 0.0.0.0 192.168.0.1
然后新建立5个VLAN,分别是 VLAN100  VLAN101 VLAN102 VLAN103 VLAN104,其个VLAN的IP地址分别为192.168.1.1 ,192.168.2.1,192.168.3.1,192.168.4.1,192.168.5.1
然后根据需要分配每个VLAN分配的端口

如果是网吧,为了降低成本,可以用ROS直接添加多个网卡直接分段,效果也很不错

Mar 10

RouteOS光纤和ADSL双线备份的实现

发布时间:2010-3-10 12:38:26 | 发布:administrator | 分类:RouterOS | 评论:0 | 引用:0 | 浏览:


基本情况:用户有两条INTERNET线路,一条是使用中国电信光纤10M,另一条是使用中国电信4MADSL.使用IP伪装使一个有200个终端局域网共享 上网。 RouteOS共有3块网卡,ether1用于ADSL,ether2用于光纤,ether3用于连接终端。 目的:实现负载平衡,并且在其中一条线路断掉后自动切换为单线路,线路恢复后,继续使用负载平衡。

1、配置光纤线路 在/ip address中为光纤线路配置IP地址,子网掩码。
/ip address add address 61.139.77.77 mask 24 interface ether2

2、配置ADSL线路
/interface pppoe-client 

配置ADSL拨号信息。
/interface pppoe-client add name pppoe-line1 service CHN-telecom/ user  mailtrh999@169rh999   password kkjjh interface ether1 use-peer-dns yes mtu 1942 mru 1942 

3、配置IP伪装
/ip firewall src-nat add action masquerade        
/ip firewall mangle add protocol tcp tcp-options syn-only tcp-mss 1448 

4、配置路由
/ip route add dst 0.0.0.0/0 gat 61.139.77.1,218.88.32.1 (注:61.139.77.1为光纤的网关,218.88.32.1则为ADSL的网关)      
/ip route add dst 61.139.88.105/32 get 218.88.32.1(注:如果ADSL连通后PING不通网关的话,才加这条,如果PING得通则不须要。) 

5、配置自动切换脚本
/system script add name="downadsl" source="/in pppoe-client dis [/in pppoe-client find name pppoe-lin owner="admin" policy=reboot,read,write,policy,test      
/system script add name="upf" source="/ip route set[/ip route find dst 0.0.0.0] gateway 61.139.73.1,218.88.32.1" owner="admin" policy=reboot,read,write,policy,test      
/system script add name="downf" source="/ip route set[/ip route find dst 0.0.0.0] gateway 218.88.32.1 owner="admin" policy=reboot,read,write,policy,test      
/system script add name="upadsl" source="/ip route set[/ip route find dst 0.0.0.0] gateway 61.139.73.1,218.88.32.1" owner="admin" policy=reboot,read,write,policy,test 

6、配置NETWATCH用于监视网络的通断情况。
/tool netwatch add host=61.157.88.105 timeout=1s interval=5s up-script=upadsl down-script=downadsl (注:61.157.88.105是监视ADSL是否通的IP,也可以是ADSL的网关。)    
/tool netwatch add host=61.139.73.1 timeout=1s interval=5s up-script=upf down-script=downf

Mar 10

routeros在网通、电信双线路的应用实例

发布时间:2010-3-10 12:37:36 | 发布:administrator | 分类:RouterOS | 评论:0 | 引用:0 | 浏览:


这里只说我觉得有价值的部分,省略了firewall等部分内容,需要的可以自己在论坛的帖子中自己查找。

首先定义了4个网络接口,分别连接
cnc--连接中国网通的线路
ctc--连接中国电信的线路
lan--连接局域网
server--连接服务器

[admin@MikroTik] interface> pr
Flags: X - disabled, D - dynamic, R - running
# NAME TYPE RX-RATE TX-RATE MTU
0 R server ether 0 0 1500
1 R ctc ether 0 0 1500
2 R cnc ether 0 0 1500
3 R lan ether 0 0 1500

然后为这些端口指定ip,网通分到了两个ip:a.a.a.1,a.a.a.2;电信分到了3个ip:b.b.b.1,b.b.b.2,b.b.b.3
局域网使用192.168.0.0/24,lan口ip定义为192.168.0.100,server口使用192.168.100.0/24,ip为192.168.100.1

[admin@MikroTik] ip address> pr
Flags: X - disabled, I - invalid, D - dynamic
# ADDRESS NETWORK BROADCAST INTERFACE
0 192.168.0.100/24 192.168.0.0 192.168.0.255 lan
1 a.a.a.1/29 cnc
2 b.b.b.1/25 ctc
3 192.168.100.1/24 192.168.100.0 192.168.100.255 server
4 a.a.a.2/29 cnc
5 b.b.b.2/25 ctc
6 b.b.b.3/25 ctc

网通和电信存在互联互通的问题,所以这里默认使用电信的线路,在访问网通的线路时,使用网通的线路。全部的路由表论坛的帖子里有

[admin@MikroTik] ip route> pr
Flags: X - disabled, I - invalid, D - dynamic, J - rejected,
C - connect, S - static, r - rip, o - ospf, b - bgp
# DST-ADDRESS G GATEWAY DISTANCE INTERFACE
0 S 0.0.0.0/0 r 电信的网关 1 ctc
1 S 60.0.0.0/13 r 网通的网关 1 cnc
2 S 60.8.0.0/15 r 网通的网关 1 cnc
3 S 60.10.0.0/16 r 网通的网关 1 cnc
下面略.....

建立1个DNS缓存,分别设置一个电信、网通的DNS ,内网的机器dns设置为ros的ip

192.168.0.0/24访问internet上的网通线路用a.a.a.1,访问internet上的电信线路和为指定用b.b.b.1
192.168.100.0/24访问internet上的网通线路用a.a.a.2,访问internet上的电信线路和为指定用b.b.b.2

[admin@MikroTik] ip firewall src-nat> pr
Flags: X - disabled, I - invalid, D - dynamic
0 src-address=192.168.100.0/24 out-interface=cnc action=nat to-src-address=a.a.a.2

1 src-address=192.168.100.0/24 out-interface=ctc action=nat to-src-address=b.b.b.2

2 src-address=192.168.0.0/24 out-interface=ctc action=nat to-src-address=b.b.b.1

3 src-address=192.168.0.0/24 out-interface=cnc action=nat to-src-address=a.a.a.1

这里192.168.100.0/24基本上都是用来做服务器的,然后映射到外网。

[admin@MikroTik] ip firewall dst-nat> pr
Flags: X - disabled, I - invalid, D - dynamic
0 ;;; ftp @ web server
dst-address=a.a.a.2/32:2121 protocol=tcp action=nat to-dst-address=192.168.100.2 to-dst-port=2121

1 ;;; web server
dst-address=a.a.a.2/32:80 protocol=tcp action=nat to-dst-address=192.168.100.2 to-dst-port=80

2 ;;; radmin
in-interface=cnc dst-address=a.a.a.2/32:xxxx protocol=tcp action=nat to-dst-address=192.168.100.2
to-dst-port=3389

3 ;;; cs 1.5 server
in-interface=ctc dst-address=b.b.b.1/32:27015 protocol=udp action=nat
to-dst-address=192.168.0.195 to-dst-port=27015

4 in-interface=cnc dst-address=a.a.a.1/32:27015 protocol=udp action=nat to-dst-address=192.168.0.195
to-dst-port=27015

下面略.....

本人在家用网通,单位用电信,有时因互联的问题确实很不方便。这里既然能够实现网通、电信的互联互通,我就要给自己留个方便了:设置了pptp-server,留下了几个ppp账号,在需要的时候,可以连上来用用,确实很不错。

Mar 10

ros官网“带宽控制”资料片段

发布时间:2010-3-10 12:36:26 | 发布:administrator | 分类:RouterOS | 评论:0 | 引用:0 | 浏览:


应用例子:
效仿(模拟?)一个上传64kbps,下载128kbps线路的例子:
假想,我们希望给网络192.168.0.0/24,模拟一条上传64kbps,下载128kbps的出口线路。
网络192.168.0.0/24的服务由ros的本地接口穿过.

解决这个问题,我们将使用simple queues(简单队列?)
ros里的ip地址列表:
[admin@MikroTik] 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.5.8.104/24      10.5.8.0        10.5.8.255      Public
[admin@MikroTik] ip address>
和路由列表:
[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 ADC 10.5.8.0/24                                   Public
1 ADC 192.168.0.0/24                                Local
2 A S 0.0.0.0/0          r 10.5.8.1                 Public
[admin@MikroTik] ip route>
添加一个 simple queue规则,那个将被限制下载128kbps,上传64kbps的客户网络是192.168.0.0/24,服务通过本地接口
[admin@MikroTik] queue simple> add name=Limit-Local interface=Local \
\... target-address=192.168.0.0/24 max-limit=65536/131072
[admin@MikroTik] queue simple> print
Flags: X - disabled, I - invalid, D - dynamic
0    name="Limit-Local" target-addresses=192.168.0.0/24 dst-address=0.0.0.0/0
      interface=Local parent=none priority=8 queue=default/default
      limit-at=0/0 max-limit=65536/131072 total-queue=default
[admin@MikroTik] queue simple>
max-limit参数设定下载的最大带宽。
从用户的观点看,值65536/131072,意味着他们将得到的最大数是131072bps下载,65536bps上传。target-addresses参数定义目标网络(或用逗号隔开的多个网络)。
现在看流量负荷:
[admin@MikroTik] interface> monitor-traffic Local
  received-packets-per-second: 7
       received-bits-per-second: 68kbps
        sent-packets-per-second: 13
           sent-bits-per-second: 135kbps
[admin@MikroTik] interface>
大概,你想将服务器排除在限制之外,如果这样,添加一个没有任何限制的队列给它(max-limit=0/0 表示没有限制),并把它移到列表的最前端。
[admin@MikroTik] queue simple> add name=Server target-addresses=192.168.0.1/32 \
\... interface=Local
[admin@MikroTik] queue simple> print
Flags: X - disabled, I - invalid, D - dynamic
0    name="Limit-Local" target-addresses=192.168.0.0/24 dst-address=0.0.0.0/0
      interface=Local parent=none priority=8 queue=default/default
      limit-at=0/0 max-limit=65536/131072 total-queue=default
1    name="Server" target-addresses=192.168.0.1/32 dst-address=0.0.0.0/0
      interface=Local parent=none priority=8 queue=default/default
      limit-at=0/0 max-limit=0/0 total-queue=default
[admin@MikroTik] queue simple> mo 1 0
[admin@MikroTik] queue simple> print
Flags: X - disabled, I - invalid, D - dynamic
0    name="Server" target-addresses=192.168.0.1/32 dst-address=0.0.0.0/0
      interface=Local parent=none priority=8 queue=default/default
      limit-at=0/0 max-limit=0/0 total-queue=default
1    name="Limit-Local" target-addresses=192.168.0.0/24 dst-address=0.0.0.0/0
      interface=Local parent=none priority=8 queue=default/default
      limit-at=0/0 max-limit=65536/131072 total-queue=default
[admin@MikroTik] queue simple>
使用Masquerading的queue tree(队列树?)例子:
前一个例子,我们为本地网络模拟一个下载128kbps和上传64kbps的流量。
在这个例子,我们将保证给本地网络设备256kbps下载(128kbps给服务器,64kbps给工作站,64kbps给笔记本)128kbps上传(分别给64/32/32)。
如果那里有空闲的带宽,就把它共享给每一个用户。在这个例子,如果我们关闭笔记本,服务器和工作站会共享它的64kbps下载和32kbps上传带宽。
使用masquerading,你用new-connection-mark标记外出连接,动作(action)是mark-connection,当这个完成时,你能用new-packet-mark标记所有数据包中那些属于这个连接的数据包,动作是mark-packet。
1.首先,标记服务器的下载和上传数据流。地一条规则我们将标记外出连接,第二条标记所有的数据包中,那些属于这个连接。
[admin@MikroTik] ip firewall mangle> add src-address=192.168.0.1/32 \
\... action=mark-connection new-connection-mark=server-con chain=prerouting
[admin@MikroTik] ip firewall mangle> add connection-mark=server-con \
\... action=mark-packet new-packet-mark=server chain=prerouting
[admin@MikroTik] ip firewall mangle> print
Flags: X - disabled, I - invalid, D - dynamic
0   chain=prerouting src-address=192.168.0.1 action=mark-connection
     new-connection-mark=server-con
1   chain=prerouting connection-mark=server-con action=mark-packet
     new-packet-mark=server
[admin@MikroTik] ip firewall mangle>
2.笔记本和工作站也一样:
[admin@MikroTik] ip firewall mangle> add src-address=192.168.0.2 \
\... action=mark-connection new-connection-mark=lap_works-con chain=prerouting
[admin@MikroTik] ip firewall mangle> add src-address=192.168.0.3 \
\... action=mark-connection new-connection-mark=lap_works-con chain=prerouting
[admin@MikroTik] ip firewall mangle> add connection-mark=lap_works-con \
\... action=mark-packet new-packet-mark=lap_work chain=prerouting
[admin@MikroTik] ip firewall mangle> print
Flags: X - disabled, I - invalid, D - dynamic
0   chain=prerouting src-address=192.168.0.1 action=mark-connection
     new-connection-mark=server-con
1   chain=prerouting connection-mark=server-con action=mark-packet
     new-packet-mark=server
2   chain=prerouting src-address=192.168.0.2 action=mark-connection
     new-connection-mark=lap_works-con
3   chain=prerouting src-address=192.168.0.3 action=mark-connection
     new-connection-mark=lap_works-con
4   chain=prerouting connection-mark=lap_works-con action=mark-packet
     new-packet-mark=lap_work
[admin@MikroTik] ip firewall mangle>
你可以看到,我们给笔记本和工作站的数据流同样的标记。
3.在 /queue tree里添加规则,限制服务器的下载荷上传。
[admin@MikroTik] queue tree> add name=Server-Download parent=Local \
\... limit-at=131072 packet-mark=server max-limit=262144
[admin@MikroTik] queue tree> add name=Server-Upload parent=Public \
\... limit-at=65536 packet-mark=server max-limit=131072
[admin@MikroTik] queue tree> print
Flags: X - disabled, I - invalid
0   name="Server-Download" parent=Local packet-mark=server limit-at=131072
     queue=default priority=8 max-limit=262144 burst-limit=0
     burst-threshold=0 burst-time=0s
1   name="Server-Upload" parent=Public packet-mark=server limit-at=65536
     queue=default priority=8 max-limit=131072 burst-limit=0
     burst-threshold=0 burst-time=0s
[admin@MikroTik] queue tree>
类似地分配流量给笔记本和工作站:
[admin@MikroTik] queue tree> add name=Laptop-Wkst-Down parent=Local \
\... packet-mark=lap_work limit-at=65535 max-limit=262144
[admin@MikroTik] queue tree> add name=Laptop-Wkst-Up parent=Public \
\... packet-mark=lap_work limit-at=32768 max-limit=131072
[admin@MikroTik] queue tree> print
Flags: X - disabled, I - invalid
0   name="Server-Download" parent=Local packet-mark=server limit-at=131072
     queue=default priority=8 max-limit=262144 burst-limit=0
     burst-threshold=0 burst-time=0s
1   name="Server-Upload" parent=Public packet-mark=server limit-at=65536
     queue=default priority=8 max-limit=131072 burst-limit=0
     burst-threshold=0 burst-time=0s
2   name="Laptop-Wkst-Down" parent=Local packet-mark=lap_work limit-at=65535
     queue=default priority=8 max-limit=262144 burst-limit=0
     burst-threshold=0 burst-time=0s
3   name="Laptop-Wkst-Up" parent=Public packet-mark=lap_work limit-at=32768
     queue=default priority=8 max-limit=131072 burst-limit=0
     burst-threshold=0 burst-time=0s
[admin@MikroTik] queue tree>
用户平分带宽例子(pcq?):
这个例子示范了如何将10mbps下载2mbps上传,均分给网络192.168.0.0/24中的活动的用户。
如果主机A下载2Mbps,主机B就只能获得8mbps,反之亦然。
有这样一种情况,他们都想获得最大带宽(10mbps),他们将各自获得5mbps,上传也一样。这个设置同样是用于更多用户的情形。
首先,所有来自本地网络192.168.0.0/24的流,标记 一个用户标记。
/ip firewall mangle add chain=forward src-address=192.168.0.0/24 \
   action=mark-connection new-connection-mark=users-con
/ip firewall mangle add connection-mark=users-con action=mark-packet \
   new-packet-mark=users chain=forward
现在我们将添加两个新的PCQ类型。第一个命名pcq-download,将依据目的地址聚合所有流。我们将给本地接口使用这个queue type。它将为那些目的地址是网络192.168.0.0/24的下载,创建一个动态队列。
第二个命名为pcq-upload,将依据源地址聚合所有流。我们将给公网接口使用,所以它将为来自本地网络192.168.0.0/24到internet的上传,创建以一个动态队列。
/queue type add name=pcq-download kind=pcq pcq-classifier=dst-address
/queue type add name=pcq-upload kind=pcq pcq-classifier=src-address
最后,给下载流创建一个queue tree。
/queue tree add name=Download parent=Local max-limit=10240000
/queue tree add parent=Download queue=pcq-download packet-mark=users
给上传流的:
/queue tree add name=Upload parent=Public max-limit=2048000
/queue tree add parent=Upload queue=pcq-upload packet-mark=users
注意:如果你的ISP不能提供一个固定的流量,你可以在上传QUEUE规则和下载QUEUE规则中,直接在接口上使用QUEUE。
/queue tree add parent=Local queue=pcq-download packet-mark=users
/queue tree add parent=Public queue=pcq-upload packet-mark=users

Mar 10

RouterOS实现负载均衡和策略路由的方法

发布时间:2010-3-10 12:35:23 | 发布:administrator | 分类:RouterOS | 评论:0 | 引用:0 | 浏览:

 

•  如何实现路由器的负载均衡

通过在 /ip route 使用逗号“,”间隔添加多个网关就可以实现负载均衡功能,如:由两个网关 192.168.1.1 和 192.168.2.1 ,在路由器中设置为 /ip route add gateway 192.168.1.1,192.168.2.1 这即可实现负载均衡。
•  如何实现路由器的策略路由

RouterOS 允许管理多个路由表,当你在使用多条 ISP 线路实,通过多个路由表可以为内网用户分配访问不同外网的线路,同时也可以指定访问端口的线路。策略路由设置具体如下:

Main 表总是存在的,这个表是不能被删除和更改名称的。 Main 表管理着 /ip route 目录选项:

[admin@MikroTik] ip policy-routing> table main

[admin@MikroTik] ip policy-routing table main> print

Flags: X - disabled, I - invalid, D - dynamic, R - rejected

#
TYPE
DST-ADDRESS
G
GATEWAY
DISTANCE
INTERFACE

0
static
192.168.1.0/24
r
192.168.0.50
1
Local

1
static
0.0.0 .0/0
r
10.0.0.1
1
Public

2 D
connect
192.168.0.0/24
r
0.0.0 .0
0
Local

3 D
connect
10.0.0 .0/24
r
0.0.0 .0
0
Public

[admin@MikroTik] ip policy-routing table main>

[admin@MikroTik] ip policy-routing table main> /ip route print

Flags: X - disabled, I - invalid, D - dynamic, J - rejected,

C - connect, S - static, R - rip, O - ospf, B - bgp

#
DST-ADDRESS

G

GATEWAY

DISTANCE

INTERFACE

0 S
192.168.1.0/24

r

192.168.0.50

1

Local

1 S
0.0.0 .0/0

r

10.0.0.1

1

Public

2 DC
192.168.0.0/24

r

0.0.0 .0

0

Local

3 DC
10.0.0 .0/24

r

0.0.0 .0

0

Public

[admin@MikroTik] ip policy-routing table main>

添加一个新的路由表,命名为 mt

[admin@MikroTik] ip policy-routing> add name=mt

[admin@MikroTik] ip policy-routing> print

Flags: D - dynamic

Flags: X - disabled, I - invalid, D - dynamic, R - rejected

#

NAME

0
mt

1    D       main

[admin@MikroTik] ip policy-routing>

在 mt 表中添加路由访问 10.5.5 .0/24 的网络,经过的网关 10.0.0.22

[admin@MikroTik] ip policy-routing> table mt

[admin@MikroTik] ip policy-routing table mt> add dst-address= 10.5.5 .0/24 \

\... gateway= 10.0.0 .22

[admin@MikroTik] ip policy-routing table mt> print

Flags: X - disabled, I - invalid, D - dynamic, R - rejected

#

TYPE

DST-ADDRESS
G
GATEWAY
DISTANCE
INTERFACE

0
static
10.5.5 .0/24
r
10.0.0.22
1
Public

[admin@MikroTik] ip policy-routing table mt>

•  定义策略路由的规则

如添加一条指定源地址为 10.0.0 .144 主机的所有数据进入 mt 的路由表中查询路由:

[admin@MikroTik] ip policy-routing rule> add src-address= 10.0.0 .144/32 \

\... table=mt action=lookup

[admin@MikroTik] ip policy-routing rule> print

Flags: X - disabled, I - invalid

#
SRC-ADDRESS
DST-ADDRESS
INTE...
FLOW
ACTION
TABLE

0
0.0.0 .0/0
0.0.0 .0/0
all
lookup
main

1
10.0.0 .144/32
0.0.0 .0/0
all
lookup
mt

[admin@MikroTik] ip policy-routing rule>

当添加完后,要把添加的策略移动到默认路由规则(即在下面表中看到的第 0 条规则,此规则不能删除)之上,才能有效。

[admin@MikroTik] ip policy-routing rule> add flow=CQ action=lookup

[admin@MikroTik] ip policy-routing rule> print

Flags: X - disabled, I - invalid

#
SRC-ADDRESS
DST-ADDRESS
INTE...
FLOW
ACTION
TABLE

0
10.0.0 .144/32
0.0.0 .0/0
all
lookup
mt

1
0.0.0 .0/0
0.0.0 .0/0
all
lookup
main

[admin@MikroTik] ip policy-routing rule>

•  如何定义游戏端口通过策略路由选择线路

假定传奇端口是 7000 ,先在 /ip firewall manlge 中定义一个 flow 名为 CQ ,然后在设定 dst-port 的端口为 7000 。具体如: /ip firewall manlge add dst-port=7000 flow-mark=CQ ,当定义完端口进入路由表,指定线路传奇的线路在 mt 表中查询。

[admin@MikroTik] ip policy-routing rule> add flow=CQ action=lookup

[admin@MikroTik] ip policy-routing rule> print

Flags: X - disabled, I - invalid

#
SRC-ADDRESS
DST-ADDRESS
INTE...
FLOW
ACTION
TABLE

0
0.0.0 .0/0
0.0.0 .0/0
all
lookup
main

1
0.0.0 .0/0
0.0.0 .0/0
all
CQ
lookup
mt

[admin@MikroTik] ip policy-routing rule>

同样如上面所诉,要将该规则移动到 main 规则上:

[admin@MikroTik] ip policy-routing rule> add flow=CQ action=lookup

[admin@MikroTik] ip policy-routing rule> print

Flags: X - disabled, I - invalid

#
SRC-ADDRESS
DST-ADDRESS
INTE...
FLOW
ACTION
TABLE

0
0.0.0 .0/0
0.0.0 .0/0
all
CQ
lookup
mt

1
0.0.0 .0/0
0.0.0 .0/0
all
lookup
main

[admin@MikroTik] ip policy-routing rule>

Mar 10

ROS动态IP以及静态IP端口映射的终极设置

发布时间:2010-3-10 12:33:11 | 发布:administrator | 分类:RouterOS | 评论:0 | 引用:0 | 浏览:

routeOS设置端口映射
设置端口映射 :
ip->Firewall-> Destination NAT -> +
General 页
Src. address 0.0.0.0/0
src. port
interfalce 外网
Dst.address 0.0.0.0/32(区别于其他曾经发过的设置)
Dst.port 映射端口
protocol tcp
ACTION 页:
Action nat
to Dst.address 内网映射IP -内网映射IP
to Dst.port 映射端口

Mar 10

adsl上网用RouterOS架设DHCP服务器

发布时间:2010-3-10 12:32:7 | 发布:administrator | 分类:RouterOS | 评论:0 | 引用:0 | 浏览:


实例:网卡8139C连接局域网,NE2000 ISA(IO300 IRQ10)连接ADSL Modem,路由器地址192.168.0.1,接入宽带ADSL(下载2m上传512K),网内一PC地址192.168.0.8(限制下载256K上传64K),开启Upnp,开启DHCP服务。
RouteOS安装好后设置8139C地址为192.168.0.1,然后用winbox设置。
1.Drivers---“+”---选NE2000 IO=300 IRQ=5
2.Interfaces---点灰色的NE2000网卡---点“勾”启用
PPPoe:
3.Interfaces---“+”---PPPoe Client---
name=ADSL MTU=1492 MRU=1492 Interface=NE2000 Service=ADSL User=xxxxxxxx Password=xxxxxxxx UsePeerDns=yes
在查看status页中查看ADSL有没有连上
4.IP---Firewall---Source NAT---"+"
Action=masquerade
5.IP---Firewall---Mangle---"+"
Protocol=TCP TcpOptions=sync Actions accept=TCP MSS=1448
DNS cache:
6.IP---DNS cache Settings
PrimaryDnsServer=202.96.209.6 Enabled=yes
DHCP Server:
7.IP---pool---"+"
name=123 Addresser=192.168.0.2-192.168.0.99
8.IP---DhcpServer---"+"
name="" Interface=8139C Addpool=123 netmask=24 gatway=192.168.0.1 DnsServer=192.168.0.1
Upnp:
9.IP---Upnp---"+"
Interface=8139C Type=internal
10.IP---Upnp---"+"
Interface=ADSL Type=external Enabled=yes
11.Terminal---键入 ip upnp interface (enter)
enable 0,1 (enter)
.. set enabled=yes (enter)
Queues:
12.下载带宽 IP---Simple Queues---"+"
Name=down SrcAddress=0.0.0.0/0 DstAddress=192.168.0.8/32 terface=8139C Maxlimit=256000
13.上传带宽 IP---Firewall---Mangle---"+"
SrcAddress=192.168.0.8/32 InInterface=8139C DstAddress=0.0.0.0/0 Protocol=all Action=accept FlowMark=UP
14.Queues---QueuesTree---"+"
Name=UP Parent=ADSL Flow=UP MaxLimit=64000

Mar 10

syn攻击在ROS下的简单防御

发布时间:2010-3-10 12:31:17 | 发布:administrator | 分类:RouterOS | 评论:0 | 引用:0 | 浏览:

修改SYN值的办法:
IP>FIREWALL>CONNECTIONS>TRACKING

SYN SENT TIMEOUT 值从2分钟降到50秒

SYN RECEIVER TIMEOUT 值降低为30秒

Mar 9

MetaRouter

发布时间:2010-3-9 16:17:32 | 发布:administrator | 分类:RouterOS | 评论:0 | 引用:0 | 浏览:

    一种将Internet或企业网上的路由器串接在一起的新方法可以为各公司节省资金,减少传输拥塞。这种在伽罗瓦(Galois)网络上使用的方法与那种将价格昂贵的高端路由器在长无尽头的路径上链接起来的作法不同。 相反,伽罗瓦网络中使用的是路由器阵列,或者被称作元路由器(metarouter)。 它是由廉价现成的路由器连接在一起组成的集群。 这些元路由器的工作方式与将

More...

分页:« 首页...«1[2][3]»...尾页 »