RouterOS 2.9.6 脚本详解

2006年9月15日星期五
四种变量
global - 定义全局变量, 可以要所有的脚本中调用共享
local - 定义本地变量,只能在其所要的脚本下调用,不能被其它脚本共享
loop index variables - 定义在for或foreach里的索引号变量
monitor variables - 监视变量

ROS算术操作
- 负号;相减。
! 逻辑非。
/ 相除。
. 连接。两个符串的连接,添加元素到列表
^ 异或(XOR)
~ 取反
* 相剩
& 与(AND)
&& 逻辑与
+ 相加
< 小于
<< 向左位移
<= 小于等于
> 大于
>= 大于等于
>> 向右位移

逻辑或

ROS说明书里的例子:

计算顺序
[admin@MikroTik]> :put (10+1-6*2=11-12=2+(-3)=-1)
false
[admin@MikroTik]> :put (10+1-6*2=11-12=(2+(-3)=-1))
true

逻辑非
[admin@MikroTik]> :put (!true)
false
[admin@MikroTik]> :put (!(2>3))
true

数位取反
[admin@MikroTik]> :put (~255.255.0.0)
0.0.255.255

加法
[admin@MikroTik]> :put (3ms + 5s)
00:00:05.003
[admin@MikroTik]> :put (10.0.0.15 + 0.0.10.0)
cannot add ip address to ip address
[admin@MikroTik]> :put (10.0.0.15 + 10)
10.0.0.25

减法
[admin@MikroTik]> :put (15 - 10)
5
[admin@MikroTik]> :put (10.0.0.15 - 10.0.0.3)
12
[admin@MikroTik]> :put (10.0.0.15 - 12)
10.0.0.3
[admin@MikroTik]> :put (15h - 2s)
14:59:58

乘法
[admin@MikroTik]> :put (12s * 4)
00:00:48
[admin@MikroTik]> :put (-5 * -2)
10

除法
[admin@MikroTik]> :put (10s / 3)
00:00:03.333
[admin@MikroTik]> :put (5 / 2)
2
[admin@MikroTik]> :put (0:0.10 / 3)
00:00:02

比较
[admin@MikroTik]> :put (10.0.2.3<=2.0.3.10)
false
[admin@MikroTik]> :put (100000s>27h)
true
[admin@MikroTik]> :put (60s,1d!=1m,3600s)
true
[admin@MikroTik]> :put (bridge=routing)
false
[admin@MikroTik]> :put (yes=false)
false
[admin@MikroTik]> :put (true=aye)
false

逻辑与 AND, 逻辑或 OR
[admin@MikroTik]> :put ((yes && yes) (yes && no))
true
[admin@MikroTik]> :put ((no no) && (no yes))
false

数位与AND, 或OR, 异或XOR
[admin@MikroTik]> :put (10.16.0.134 & ~255.255.255.0)
0.0.0.134

位移操作
[admin@MikroTik]> :put (~((0.0.0.1 << 7) - 1))
255.255.255.128

连接操作
[admin@MikroTik]> :put (1 . 3)
13
[admin@MikroTik]> :put (1,2 . 3)
1,2,3
[admin@MikroTik]> :put (1 . 3,4)
13,4
[admin@MikroTik]> :put (1,2 . 3,4)
1,2,3,4
[admin@MikroTik]> :put ((1 . 3) + 1)
14
[admin@MikroTik]> :set a "It's "
[admin@MikroTik]> :put ($a . OK)
It's OK

ROS脚本保留字
beep execute global list pick time toip typeof
delay find if local put toarray tonum while
do for led log resolve tobool tostr
environment foreach len nothing set toid totime

:beep length=2s frequency=10000
产生2秒10kHz的音频
length缺省值为100ms
frequency缺省值为1000Hz

:set a "/int dis lan\n/int dis wan"
:execute $a
执行多条命令,例子里执行了两条命令。\n是换行

:global
定义全局变量

:list interface
显示相关命令。显示当前目录及子目录下有关interface的命令

:pick
取字符串或数组的某一断。字符串(数组)的第一个为0。
[admin@MikroTik]>:put [:pick "I love you" 2 6]
love

:time
执行命令所需的时间
[admin@MikroTik]> :put [:time [:resole www.sina.com.cn>
00:00:00.006
执行解析www.sina.com.cn这个域名所需的时间

toip toarray tonum tobool tostr toid totime
转换值类型

:delay 3
延时3秒,缺省为1秒

:find
查找字符串或数组中第一个出现查找内容的位置
[admin@MikroTik]>:put [:find abcdcba cd]
2
[admin@MikroTik]>:put [:find "1,2,3,4,3,2,1" 2]
1

:put
输出到屏幕上,上面就很多例子了。

:if
条件选择
[admin@MikroTik]>:if(1<2) do={:put true}
true
如果条件为真,执行do={}里面的命令
[admin@MikroTik]>:if(1>2) do={:put true} else={:put flase}
flase
如果条件为真,执行do={}里面的命令,否则执行else={}里有命令

:local
定义本地变量

:while
条件为真时循环执行do={}里的脚本命令
[admin@MikroTik]>:set i 0;:while($i<5) do={:put $i;:set i ($i+1)}
0
1
2
3
4
5

:for
循环执行do={}里的脚本命令
:for i from=1 to=100 step=30 do={:put $i}
1
31
61
91

:foreach
在集合(数组)里循环执行do={}里的脚本命令
:foreach i in=[/interface find type=ether] do={:put [/interface get $i name]}
ether1
ether2
ether3
ether4
在[/interface find type=ether]的集合(类型为ether的interface ID)循环输出

interface的名称。我这时有四张网卡

:log 日志类型 日志内容
写文本到日志(script log)
类型在/system logging里可以找到
:log info "系统信息"
到LOG里查查运行结果吧

:resolve
解析域名的IP地址
[admin@MikroTik] > :put [:resolve www.sina.com.cn]
61.172.201.240

:environment print
显示所有变量及其值

:len
字符串或数组的长度
[admin@MikroTik] > :put [:len hello]
5
[admin@MikroTik] > :put [:len "1,2,23,65,54,6"]
6

:nothing
空值。nothing不等0,不等于空字符""
:find abc a的结果是0
:find abc d的结果是nothing

:set
赋值
[admin@MikroTik] > :set a test
将abc字符赋给变量a
[admin@MikroTik] > :put $a
test
[admin@MikroTik] > :put a
a
引用变量的值要在变量前面加$

网管好帮手 最常用的网络命令精萃

2006年9月13日星期三
一,ping   
  它是用来检查网络是否通畅或者网络连接速度的命令。
  作为一个生活在网络上的管理员或者黑客来说,ping命令是第一个必须掌握的DOS命令,它所利用的原理是这样的:网络上的机器都有唯一确定的IP地址,我们给目标IP地址发送一个数据包,对方就要返回一个同样大小的数据包,根据返回的数据包我们可以确定目标主机的存在,可以初步判断目标主机的操作系统等。下面就来看看它的一些常用的操作。先看看帮助吧,在DOS窗口中键入:ping /? 回车,出现如图1。所示的帮助画面。在此,我们只掌握一些基本的很有用的参数就可以了(下同)。   
  -t 表示将不间断向目标IP发送数据包,直到我们强迫其停止。试想,如果你使用100M的宽带接入,而目标IP是56K的小猫,那么要不了多久,目标IP就因为承受不了这么多的数据而掉线,呵呵,一次攻击就这么简单的实现了。   
  -l 定义发送数据包的大小,默认为32字节,我们利用它可以最大定义到65500字节。结合上面介绍的-t参数一起使用,会有更好的效果哦。   
  -n 定义向目标IP发送数据包的次数,默认为3次。如果网络速度比较慢,3次对我们来说也浪费了不少时间,因为现在我们的目的仅仅是判断目标IP是否存在,那么就定义为一次吧。   
  说明一下,如果-t 参数和 -n参数一起使用,ping命令就以放在后面的参数为标准,比如“ping IP -t -n 3”,虽然使用了-t参数,但并不是一直ping下去,而是只ping 3次。另外,ping命令不一定非得ping IP,也可以直接ping主机域名,这样就可以得到主机的IP。   
  下面我们举个例子来说明一下具体用法。   
  这里time=2表示从发出数据包到接受到返回数据包所用的时间是2秒,从这里可以判断网络连接速度的大小 。从TTL的返回值可以初步判断被ping主机的操作系统,之所以说“初步判断”是因为这个值是可以修改的。这里TTL=32表示操作系统可能是win98。
  (小知识:如果TTL=128,则表示目标主机可能是Win2000;如果TTL=250,则目标主机可能是Unix)
  至于利用ping命令可以快速查找局域网故障,可以快速搜索最快的QQ服务器,可以对别人进行ping攻击……这些就靠大家自己发挥了。

二,nbtstat   
  该命令使用TCP/IP上的NetBIOS显示协议统计和当前TCP/IP连接,使用这个命令你可以得到远程主机的NETBIOS信息,比如用户名、所属的工作组、网卡的MAC地址等。在此我们就有必要了解几个基本的参数。   
  -a 使用这个参数,只要你知道了远程主机的机器名称,就可以得到它的NETBIOS信息如图3(下同)。   
  -A 这个参数也可以得到远程主机的NETBIOS信息,但需要你知道它的IP。
  -n 列出本地机器的NETBIOS信息。   
  当得到了对方的IP或者机器名的时候,就可以使用nbtstat命令来进一步得到对方的信息了,这又增加了我们入侵的保险系数。  
 
三,netstat
  这是一个用来查看网络状态的命令,操作简便功能强大。   
  -a 查看本地机器的所有开放端口,可以有效发现和预防木马,可以知道机器所开的服务等信息,如图4。   
  这里可以看出本地机器开放有FTP服务、Telnet服务、邮件服务、WEB服务等。用法:netstat -a IP。
  -r 列出当前的路由信息,告诉我们本地机器的网关、子网掩码等信息。用法:netstat -r IP。

四,tracert
  跟踪路由信息,使用此命令可以查出数据从本地机器传输到目标主机所经过的所有途径,这对我们了解网络布局和结构很有帮助。   
  这里说明数据从本地机器传输到192.168.0.1的机器上,中间没有经过任何中转,说明这两台机器是在同一段局域网内。用法:tracert IP 。

五,net   
  这个命令是网络命令中最重要的一个,必须透彻掌握它的每一个子命令的用法,因为它的功能实在是太强大了,这简直就是微软为我们提供的最好的入侵工具。首先让我们来看一看它都有那些子命令,键入net /?回车。   
  在这里,我们重点掌握几个入侵常用的子命令。   
  net view   
  使用此命令查看远程主机的所以共享资源。命令格式为net view \IP。   
  net use
  把远程主机的某个共享资源影射为本地盘符,图形界面方便使用,呵呵。命令格式为net use x: \IPsharename。上面一个表示把192.168.0.5IP的共享名为magic的目录影射为本地的Z盘。下面表示和192.168.0.7建立IPC$连接(net use \IPIPC$ "password" /user:"name" )。   
  建立了IPC$连接后,呵呵,就可以上传文件了:copy nc.exe \192.168.0.7admin$,表示把本地目录下的nc.exe传到远程主机,结合后面要介绍到的其他DOS命令就可以实现入侵了。   
  net start
  使用它来启动远程主机上的服务。当你和远程主机建立连接后,如果发现它的什么服务没有启动,而你又想利用此服务怎么办?就使用这个命令来启动吧。用法:net start servername,如图9,成功启动了telnet服务。   
  net stop
  入侵后发现远程主机的某个服务碍手碍脚,怎么办?利用这个命令停掉就ok了,用法和net start同。   
  net user
  查看和帐户有关的情况,包括新建帐户、删除帐户、查看特定帐户、激活帐户、帐户禁用等。这对我们入侵是很有利的,最重要的,它为我们克隆帐户提供了前提。键入不带参数的net user,可以查看所有用户,包括已经禁用的。下面分别讲解。
  1,net user abcd 1234 /add,新建一个用户名为abcd,密码为1234的帐户,默认为user组成员。
  2,net user abcd /del,将用户名为abcd的用户删除。
  3,net user abcd /active:no,将用户名为abcd的用户禁用。
  4,net user abcd /active:yes,激活用户名为abcd的用户。
  5,net user abcd,查看用户名为abcd的用户的情况。   
  net localgroup
  查看所有和用户组有关的信息和进行相关操作。键入不带参数的net localgroup即列出当前所有的用户组。在入侵过程中,我们一般利用它来把某个帐户提升为administrator组帐户,这样我们利用这个帐户就可以控制整个远程主机了。用法:net localgroup groupname sername /add。   
  现在我们把刚才新建的用户abcd加到administrator组里去了,这时候abcd用户已经是超级管理员了,呵呵,你可以再使用net user abcd来查看他的状态,和图10进行比较就可以看出来。但这样太明显了,网管一看用户情况就能漏出破绽,所以这种方法只能对付菜鸟网管,但我们还得知道。现在的手段都是利用其他工具和手段克隆一个让网管看不出来的超级管理员,这是后话。有兴趣的朋友可以参照《黑客防线》第30期上的《由浅入深解析隆帐户》一文。   
  net time
  这个命令可以查看远程主机当前的时间。如果你的目标只是进入到远程主机里面,那么也许就用不到这个命令了。但简单的入侵成功了,难道只是看看吗?我们需要进一步渗透。这就连远程主机当前的时间都需要知道,因为利用时间和其他手段(后面会讲到)可以实现某个命令和程序的定时启动,为我们进一步入侵打好基础。用法:net time \IP。

六,at   
  这个命令的作用是安排在特定日期或时间执行某个特定的命令和程序(知道net time的重要了吧?)。当我们知道了远程主机的当前时间,就可以利用此命令让其在以后的某个时间(比如2分钟后)执行某个程序和命令。用法:at time command \computer。   
  表示在6点55分时,让名称为a-01的计算机开启telnet服务(这里net start telnet即为开启telnet服务的命令)。
  
七,ftp   
  大家对这个命令应该比较熟悉了吧?网络上开放的ftp的主机很多,其中很大一部分是匿名的,也就是说任何人都可以登陆上去。现在如果你扫到了一台开放ftp服务的主机(一般都是开了21端口的机器),如果你还不会使用ftp的命令怎么办?下面就给出基本的ftp命令使用方法。
  首先在命令行键入ftp回车,出现ftp的提示符,这时候可以键入“help”来查看帮助(任何DOS命令都可以使用此方法查看其帮助)。  
 
  大家可能看到了,这么多命令该怎么用?其实也用不到那么多,掌握几个基本的就够了。  
  首先是登陆过程,这就要用到open了,直接在ftp的提示符下输入“open 主机IP ftp端口”回车即可,一般端口默认都是21,可以不写。
接着就是输入合法的用户名和密码进行登陆了,这里以匿名ftp为例介绍。   
  用户名和密码都是ftp,密码是不显示的。当提示**** logged in时,就说明登陆成功。这里因为是匿名登陆,所以用户显示为Anonymous。
  接下来就要介绍具体命令的使用方法了。   
  dir 跟DOS命令一样,用于查看服务器的文件,直接敲上dir回车,就可以看到此ftp服务器上的文件。
  cd 进入某个文件夹。
  get 下载文件到本地机器。
  put 上传文件到远程服务器。这就要看远程ftp服务器是否给了你可写的权限了,如果可以,呵呵,该怎么 利用就不多说了,大家就自由发挥去吧。
  delete 删除远程ftp服务器上的文件。这也必须保证你有可写的权限。
  bye 退出当前连接。
  quit 同上。   

八,telnet
  功能强大的远程登陆命令,几乎所有的入侵者都喜欢用它,屡试不爽。为什么?它操作简单,如同使用自己的机器一样,只要你熟悉DOS命令,在成功以administrator身份连接了远程机器后,就可以用它来干你想干的一切了。下面介绍一下使用方法,首先键入telnet回车,再键入
help查看其帮助信息。   
  然后在提示符下键入open IP回车,这时就出现了登陆窗口,让你输入合法的用户名和密码,这里输入任何密码都是不显示的。   
  当输入用户名和密码都正确后就成功建立了telnet连接,这时候你就在远程主机上具有了和此用户一样的权限,利用DOS命令就可以实现你想干的事情了,如图19。这里我使用的超级管理员权限登陆的。   
  到这里为止,网络DOS命令的介绍就告一段落了,这里介绍的目的只是给菜鸟网管一个印象,让其知道熟悉和掌握网络DOS命令的重要性。其实和网络有关的DOS命令还远不止这些,这里只是抛砖引玉,希望能对广大菜鸟网管有所帮助。学好DOS对当好网管有很大的帮助,特别的熟练掌握了一些网络的DOS命令。
  另外大家应该清楚,任何人要想进入系统,必须得有一个合法的用户名和密码(输入法漏洞差不多绝迹了吧),哪怕你拿到帐户的只有一个很小的权限,你也可以利用它来达到最后的目的。所以坚决消灭空口令,给自己的帐户加上一个强壮的密码,是最好的防御弱口令入侵的方法。
  最后,由衷的说一句,培养良好的安全意识才是最重要的。




(转自中国IT实验室 )

Ping高级命令

2006年9月11日星期一
ping命令结合dos批处理能做很多事,对我等懒惰的系统管理员们尤其有用。
一.基础级:局域网ping命令用法
1.改变ping的基本设置 ping命令缺省要重复4次,等待时间也比较长,这用于广域网比较合适,在局域网判断一个ip是
否存在,一般只要ping 1次足够,而且timeout时间完全可以在100ms以内。
我在自己的PC上建立一个批处理pin.bat代替缺省的ping设置:
@rem pin.bat Createdby Bankin @
这命令比缺省的ping快很多,后面加%1等是为了接受命令行参数,这是为了下面的扩展用法准备
的。
2.单个网段内的懒人ping 如果你象我一样懒,可以把自己局域网的网络号也写死在批处理文件p.bat里:
@rem p.bat Createdby Bankin call pin 192.168.1.%1 %2 %3 %4 %5
比如你的mail服务器是192.168.1.2,那么只要输 p 2 即可。 如果你有多个网段,可以在dos环境变量里设一下子网号。
3.游戏玩家的终极懒人ping
如果你的internet 网络连接需要经常检查,可以做一个批处理文件,再把它的快捷方式放在桌
面上,定义一个快捷键。这样你在做任何工作时,随时可以看一下网络是否通,只要敲一个组合
键,而不是要打开dos窗口,输好几条命令,再关掉此窗口。(当你打网络游戏中突然网络断掉
,这时候你需要最快速度确定网关是否能ping到)
这里要用一个技巧,就是dos命令返回值 %ERRORLEVEL%,当dos命令执行成功时,一般来说环境
变量%ERRORLEVEL%会赋值0,失败则为1,我们利用这个方法,让脚本自己逐级查找网络连接问题

@rem pinggw.bat Createdby Bankin @echo off
ping -n 1 192.168.1.1 find "Reply" rem 如果这一步成功说明到本地网关的连接没有问题。 if %ERRORLEVEL%==1 goto end
ping -n 1 202.96.199.133 find "Reply" rem 这是上海电信局的DNS,如果这一步成功说明到本地ISP的连接没有问题。 if %ERRORLEVEL%==1 goto end
ping -n 1 www.163.com find "Reply" rem 如果这一步成功说明本地ISP和internet连接没有问题,而且DNS没有问题。
:end rem pause sleep 2 exit
sleep 2 停下2秒钟让你看清楚,然后自己exit退出,不要麻烦你关窗口。 注意:sleep是windows2000 资源包的扩展命令,如果没有装就用pause代替吧。
二. 网络管理员常用ping命令技巧 1.入门级:网络连接监视日志 我在一个项目里碰到交换机连接不稳定的情况,每天会随机中断几分钟, 为了捕捉这个问题,做一个带时间显示的批处理文件pingtime.bat:
@rem pingtime.bat Createdby Bankin @echo off echo "Begin ----------------------------" rem time >pingtime.log goto begin
2.中级:搜索当前网段内的所有活动ip
缺乏良好管理的网络(我们大多数人的实际环境),网管经常搞不清有多少机器在运行,或者已
经有多少个ip正在使用。 如何在5分钟内拿到一个列表?只要一条dos命令即可:
@rem pingall.bat Createdby Bankin @for /L %%A in (1,1,254) do pin 192.168.1.%%A find "Reply">> pingall.log
顺便说一句,windows2000的dos命令做了很多扩展,虽然比unix shell还差 很多,可是已经能做一些复杂的脚本,而且在网络方面还有netsh命令集,值得好好研究。
3.变态用法:搜索当前网段内所有的ip地址/mac对照表
首先我们做一个批处理,ping 1个ip地址,如果有reply,就调用arp -a命令,查看当前arp缓存
里的ip-mac列表,并且再用dos筛选命令find找出当前目标ip地址。
@rem arplist.bat Createdby Bankin @echo off call pin %1 find "Reply">nul if %ERRORLEVEL%==0 goto arplist goto end :arplist arp -a find "%1" :end
然后用类似上一节的方法做一个子网ip地址循环脚本来调用arplist.bat。
@rem arpall.bat Createdby Bankin @for /L %%A in (1,1,254) do arplist 192.168.1.%%A >> arpall.log
注意:这个脚本不太完善,比如用192.168.1.1过滤arp表时,192.168.1.1**都会输出,而且不
能处理本机ip,所以做好后要手工修改一下。 Ping高级用法:懒网管们的福音 ping命令结合dos批处理能做很多事,对我等懒惰的系统管理员们尤其有用。
一.基础级:局域网ping命令用法
1.改变ping的基本设置 ping命令缺省要重复4次,等待时间也比较长,这用于广域网比较合适,在局域网判断一个ip是
否存在,一般只要ping 1次足够,而且timeout时间完全可以在100ms以内。
我在自己的PC上建立一个批处理pin.bat代替缺省的ping设置:
@rem pin.bat Createdby Bankin @ping -n 1 -l 16 -w 100 %1 %2 %3 %4 %5
这命令比缺省的ping快很多,后面加%1等是为了接受命令行参数,这是为了下面的扩展用法准备
的。
2.单个网段内的懒人ping 如果你象我一样懒,可以把自己局域网的网络号也写死在批处理文件p.bat里:
@rem p.bat Createdby Bankin call pin 192.168.1.%1 %2 %3 %4 %5
比如你的mail服务器是192.168.1.2,那么只要输 p 2 即可。 如果你有多个网段,可以在dos环境变量里设一下子网号。
3.游戏玩家的终极懒人ping
如果你的internet 网络连接需要经常检查,可以做一个批处理文件,再把它的快捷方式放在桌
面上,定义一个快捷键。这样你在做任何工作时,随时可以看一下网络是否通,只要敲一个组合
键,而不是要打开dos窗口,输好几条命令,再关掉此窗口。(当你打网络游戏中突然网络断掉
,这时候你需要最快速度确定网关是否能ping到)
这里要用一个技巧,就是dos命令返回值 %ERRORLEVEL%,当dos命令执行成功时,一般来说环境
变量%ERRORLEVEL%会赋值0,失败则为1,我们利用这个方法,让脚本自己逐级查找网络连接问题

@rem pinggw.bat Createdby Bankin @echo off
ping -n 1 192.168.1.1 find "Reply" rem 如果这一步成功说明到本地网关的连接没有问题。 if %ERRORLEVEL%==1 goto end
ping -n 1 202.96.199.133 find "Reply" rem 这是上海电信局的DNS,如果这一步成功说明到本地ISP的连接没有问题。 if %ERRORLEVEL%==1 goto end
ping -n 1 www.163.com find "Reply" rem 如果这一步成功说明本地ISP和internet连接没有问题,而且DNS没有问题。
:end rem pause sleep 2 exit
sleep 2 停下2秒钟让你看清楚,然后自己exit退出,不要麻烦你关窗口。 注意:sleep是windows2000 资源包的扩展命令,如果没有装就用pause代替吧。
二. 网络管理员常用ping命令技巧 1.入门级:网络连接监视日志 我在一个项目里碰到交换机连接不稳定的情况,每天会随机中断几分钟, 为了捕捉这个问题,做一个带时间显示的批处理文件pingtime.bat:
@rem pingtime.bat Createdby Bankin @echo off echo "Begin ----------------------------" rem time >pingtime.log goto begin
2.中级:搜索当前网段内的所有活动ip
缺乏良好管理的网络(我们大多数人的实际环境),网管经常搞不清有多少机器在运行,或者已
经有多少个ip正在使用。 如何在5分钟内拿到一个列表?只要一条dos命令即可:
@rem pingall.bat Createdby Bankin @for /L %%A in (1,1,254) do pin 192.168.1.%%A find "Reply">> pingall.log
顺便说一句,windows2000的dos命令做了很多扩展,虽然比unix shell还差很多,可是已经能做
一些复杂的脚本,而且在网络方面还有netsh命令集,值得好好研究。
3.变态用法:搜索当前网段内所有的ip地址/mac对照表
首先我们做一个批处理,ping 1个ip地址,如果有reply,就调用arp -a命令,查看当前arp缓存
里的ip-mac列表,并且再用dos筛选命令find找出当前目标ip地址。
@rem arplist.bat Createdby Bankin @echo off call pin %1 find "Reply">nul if %ERRORLEVEL%==0 goto arplist goto end :arplist arp -a find "%1" :end
然后用类似上一节的方法做一个子网ip地址循环脚本来调用arplist.bat。
@rem arpall.bat Createdby Bankin @for /L %%A in (1,1,254) do arplist 192.168.1.%%A >> arpall.log
注意:这个脚本不太完善,比如用192.168.1.1过滤arp表时,192.168.1.1**都会输出,而且不
能处理本机ip,所以做好后要手工修改一下。

网吧频繁掉线(ARP)与快速解决方法

2006年9月8日星期五
  现在频繁掉线的网吧很多。但为何掉线。许多网管朋友。不是很清楚。网吧掉线的原因很多。现在我给大家讲一下现在很流行的一种木马。<传奇网吧杀手>.基本上东北地区的网吧都被这一木马弄的身心疲惫。但是现在有解决的方法了。
  中病毒特征
   网吧不定时的掉线。(重启路由后正常),网吧局域网内有个别机器掉线。
  木马分析 :
  传奇杀手木马,是通过ARP欺骗,来或取局域网内发往外网的数据。从而截获局域内一些网游的用户名和密码。
  木马解析
  中木马的机器能虚拟出一个路由器的MAC地址和路由器的IP.当病毒发作时,局域网内就会多出一个路由器的MAC地址。内网在发往外网的数据时,误认为中木马的机器是路由器,从而把这些数据发给了虚拟的路由器。真正路由器的MAC地址被占用。内网的数据发出不去。所以就掉线了。
  解决办法
  首先你下载一个网络执法官,他可以监控局域网内所有机器的MAC地址和局域网内的IP地址。在设置网络执法官时。你必须将网络执法官的IP段设置和你内网的IP段一样。比如说:你的内网IP是192.168.1.1——192.168.1.254你的设置时也要设置192.168.1.1——192.168.1.254.设置完后,你就会看到你的内网中的MAC地址和IP地址。从而可以看出哪台机器中了木马。(在多出的路由器MAC地址和IP地址和内网机器的IP地址,MAC地址一样的说明中了传奇网吧杀手)要是不知道路由器的MAC地址,在路由器的设置界面可以看到。发现木马后。你还要下载瑞星2006最新版的杀病毒软件(3月15日之后的病毒库)。在下载完之后必须在安全模式下查杀(这是瑞星反病毒专家的见意)反复查杀(一般在四次就可以了)注意查完后杀病毒软件不要卸载掉。观查几天(这是我个人的经验。在卸后第三天病毒还会死灰复燃,我想可能是注册表里还有他的隐藏文件。在观查几天后正常就可以卸载掉了。
  注:还原精灵和冰点对网吧传奇杀手木马不起做用。(传奇杀手木马不会感染局域网。不要用硬盘对克,对克跟本不起任何做用。而且还会感染到母盘上。切记!)
  最好主机安装上网络执法官,这样可以时时监控局域网内的动态,发现木马后可以及时做出对策)
  面是传奇网吧杀手木马的文件:
  文件名: 文件路径: 病毒名:
a.exe>>b.exe c:\windows\system32 Trojan.psw.lmir.jbg
235780.dll c:\windows\ Trojan.psw.lmir.aji
kb2357801.log c:\windows\ Trojan.psw.lmir.jhe
Q98882.log c:\windows\ Trojan.psw.lmir.jhe
kb2357802.log c:\windows\ Trojan.psw.lmir.jbg
Q90979.log c:\windows\ Trojan.psw.lmir.jhe
Q99418.log c:\windows\ Trojan.psw.lmir.jbg
ZT.exe c:\windows\program Files\浩方对战平台 病毒名:Trojan.dL.agent.eqv
a[1].exe>>b.exec:\documents and sttings\sicent\local settings\Temporary Internet Files\content.IE5\Q5g5g3uj
  病毒名:Trojan.psw.lmir.jbg
  有需要瑞星2006 18.18.22(3月15日的版本)和网络执法官2.75注册版的软件请把邮箱留下。
  (各位朋友。瑞星杀毒软件文件过大邮箱发送不了。请大家下载瑞星个人18.18.20版杀毒软件我现在给大家提供注册码。希望大家原谅。)
SN=P5V6EH-61FHJK-9G0SS7-C4D200
ID=5B3C5BJ4Y125
  (网络执法官可以批量MAC捆绑,到执法官的局域网MAC界面,全选后单击右键会出现批量MAC捆绑。做完捆绑以后,ARP要是在次攻击时他会报警,出现的假MAC是为非法。网络执法官会终止他的一切操作。)这样可以解决ARP在次攻击。

(转自中国IT实验室 )

软件路由器使用经典十问

2006年9月7日星期四
【简 介】
  一般认为用普通PC安装一套专用的路由器程序组成的系统称为软件路由器. 486电脑+免费的软件=专业的软件路由器。

  一、什么是软件路由器?
  一般认为用普通PC安装一套专用的路由器程序组成的系统称为软件路由器. 486电脑+免费的软件=专业的软件路由器。
  二 、软件路由器技术复杂吗?
  不复杂,非常简单,会用普通操作PC就可以安装软件路由器。
  三、常见的软件路由器有那些?
  根据使用的操作不同可以分为基于windows平台和基于Linux/bsd平台开发的软件路由器,基于Windows平台的软件防火墙比较常见的有ISA Server、Winroute Firewall等,这些软件都是商业化的,通常根据授权用户数不同收费而不同,购买正版的软件防火墙的费用对许多中小型企业来说无疑是一笔不小的开支。有而基于Unix/Linux平台的软件防火墙大家一般接触较少,受益于开放源码运行,目前基于Unix/Linux平台的软件防火墙如雨后春笋般不断推出,这些软件防火墙大多是免费的,常见的有RouterOS、m0n0Wall、SmoothWall、Ipcop、CoyoteLinux等,这些系统共有的特点是一般对硬件要求较低,甚至只需要一台486电脑,一张软盘,两块网卡就可以安装出一台非常专业的软件防火墙,这对很多有淘汰下来的低档电脑的朋友来说,意味着拿一台淘汰的电脑,安装一套免费的防火墙软件,不花一分钱就DIY出一台专业的防火墙,而且这些系统自身也包含了NAT功能,同时可以实现宽带共享,这意味着这台免费的防火墙其实也是一台出色的宽带路由器,这是多么令人激动的事情。
  四、软件路由器功能如何?
  不同的软件路由器功能不一样,绝大部分基于Linux/bsd的免费软件路由器功能并不比商业的差,而且比商业的功能还要强大。
  五、软件路由器的性能和稳定性如何?
  目前常见的硬件宽带路由器,绝大部分都是用软件来实现的,跟软件路由器是一样的,而且软件路由器一般硬件配置要比硬件的宽带路由器配置高,所以某些情况下速度比几千上万元的硬件路由器稳定还要快。至于软件路由器的稳定性,受益于稳定的Linux和BSD内核,软件路由器的稳定性非常好,我见过最长时间不用重启的软件路由器,已经有一年多了。
  六、制作软件路由器需要什么配件?
  一台486以上,8M内存以上的普通PC,再加两块网卡就可以了,有些软件路由器如CoyoteLinux只需一张软盘就可以了,对于网卡没有特殊的要求,常见的Rtl8139 和530tx,3COM905B-TX,Intel82559 服务器网卡等都可以,不过根据我们的经验,一台工作良好的软件路由器,网卡一定要好,所以我们会推荐你使用iNTEL或3COM品牌的网卡,特别是Intel82559效果非常不错。如果经验条件许可,购买一个电子硬盘或CF-IDE转接卡再配上CF存储卡,是不错的选择,这样做出来的软件路由器,可以跟硬件的路由器相比了。
  七、软件路由器会淘汰硬件路由器吗?
  不会,但会软件路由器会逐渐占领更多的硬件路市场,软件路由器还不能淘汰硬件路由器,它们的市场定位不同,而且在高端只有硬件路由器才能胜任,但对于一般的应用象网吧、学校、机关等用软件路由器可以获得更高的经济效益。
  八、哪里可以下载到软件路由器?
  1、老牌的中文软路由bbiagent,全中文,但需要注册购买http://www.bbiagent.net/gb/index.html
  2、Coyote北美土狼,方便好用,负载能力强,一张软盘即可。免费 http://www.coyotelinux.com/
  3、FreeSCO看名字就知道她的能力了,免费的类cisco路由软件。http://www.freesco.info/
  4、Floppyfw最早的linux LRP项目之一的产物 http://www.zelow.no/floppyfw
  5、SmoothWall和IPCOP之所以要放在一起,因为他们是用一个内核开发的,功能也不相上下 http://www.smoothwall.org http://www.ipcop.org
  6、RouterOS这个软件有点争议,号称ISP级软路由,支持多路由协议,实际效果并不如意http://www.mikrotik.com/
  7、Fli4l德国的一个软路由,对ADSL支持非常好 http://www.fli4l.de/
  8、Clarkconnect偶的最爱,呵呵!功能无比强大。就是体积大了点,象个大胖子
  9、http://www.clarkconnect.org/
  10、http://www.netboz.net/
  11、http://people.freebsd.org/~picobsd/
  12、http://www.docum.org/docum.org/
  13、http://m0n0.ch/wall/
  九、到那里可以学会软件路由器技术?
  目前比较流行的软件路由器都是国外的,国外软件路由器开发商的官方网站不错的学习地方。国内大家可以到以下网址学习: 中国路由网 http://www.router.net.cn/ 中国路由器论坛www.RouterBBS.COM
  十、使用软件路由器违法吗?
  大部分软件路由器都是开放源码或是软件的,所以学会软件路由器后我们可以给别人安装收取一定的费用,只要心不要太黑就行,另外要心中常挂念教你会的网友,当然象RouteOS/SMOOthwall商业版是收费软件,D版的建议大家不要用,当然要用也可以,最好是自己用就行了,否则出问题后果自负了。
  谨以此文献给初学软件路由器的朋友,希望大家一路走好。

(来源:中国路由网)

RouterOS作透明代理

2006年9月6日星期三
首先我们来看一下什么是透明代理?
我如何才能使得用户的浏览器不需要任何代理设置就能使用RouterOS的代理服务器上网呢?,此时你就需要使用透明代理。透明代理让你的客户端不需设置任何代理,当包经过透时代理服务器时实际上被复位向到squid代理服务器的代理端口(如3128),即由本地代理服务器向外请求所需数据然后拷贝给客户端。
透明代理设置
1.代理的设定
命令模式:
[admin@MikroTik] ip web-proxy> print
enabled:yes
address: 0.0.0.0:3128
hostname: "proxy"
transparent-proxy: yes
parent-proxy: 0.0.0.0:0
cache-administrator: "webmaster"
max-object-size: 4096 kB
max-cache-size: unlimited
status: running
reserved-for-cache: 10240 kB
winbox模式
进入winbox,进入IP---Web proxy----settings
定义hostname:proxy
将透明代理开启
点击Enable---OK.
2.端口复位向
我们要将所有访问网页的数据包重新转到代理端口3128上去。因此在这里要做一个DNAT。好了,现在我们开始!

命令模式:

新增一条策略:
src-address=192.168.0.0/24:0-65535 in-interface=ether2 dst-address=0.0.0.0/0:80 protocol=tcp icmp-options=any:any flow="" connection="" content="" src-mac-address=00:00:00:00:00:00 limit-count=0 limit-burst=0 limit-time=0s action=redirect to-dst-address=192.168.0.1 to-dst-port=3128
  winbox模式:
进入IP----Firewall------destination NAT
新增一条策略:

3.大功告成。
现在只要将网内的计算机的网关指向RouterOS, 不用再做任何代理的设定,所有的计算机将都可以上网了。这样既有NAT的简单设置又有了代理的缓存,可谓两全其美

关于MSS 和MTU

[背景知识]
  MTU: Maxitum Transmission Unit 最大传输单元
  MSS: Maxitum Segment Size 最大分段大小
  PPPoE: PPP Over Ethernet(在以太网上承载PPP协议)

[分析过程]
  先说说这MTU最大传输单元,这个最大传输单元实际上和链路层协议有着密切的关系,让我们先仔细回忆一下EthernetII帧的结构DMAC+SMAC+Type+Data+CRC由于以太网传输电气方面的限制,每个以太网帧都有最小的大小64bytes最大不能超过1518bytes,对于小于或者大于这个限制的以太网帧我们都可以视之为错误的数据帧,一般的以太网转发设备会丢弃这些数据帧。(注:小于64Bytes的数据帧一般是由于以太网冲突产生的“碎片”或者线路干扰或者坏的以太网接口产生的,对于大于1518Bytes的数据帧我们一般把它叫做Giant帧,这种一般是由于线路干扰或者坏的以太网口产生)
  由于以太网EthernetII最大的数据帧是1518Bytes这样,刨去以太网帧的帧头(DMAC目的MAC地址48bit=6Bytes+SMAC源MAC地址48bit=6Bytes+Type域2bytes)14Bytes和帧尾CRC校验部分4Bytes(这个部门有时候大家也把它叫做FCS),那么剩下承载上层协议的地方也就是Data域最大就只能有1500Bytes这个值我们就把它称之为MTU。这个就是网络层协议非常关心的地方,因为网络层协议比如IP协议会根据这个值来决定是否把上层传下来的数据进行分片。就好比一个盒子没法装下一大块面包,我们需要把面包切成片,装在多个盒子里面一样的道理。
  当两台远程PC互联的时候,它们的数据需要穿过很多的路由器和各种各样的网络媒介才能到达对端,网络中不同媒介的MTU各不相同,就好比一长段的水管,由不同粗细的水管组成(MTU不同 :))通过这段水管最大水量就要由中间最细的水管决定。
  对于网络层的上层协议而言(我们以TCP/IP协议族为例)它们对水管粗细不在意它们认为这个是网络层的事情。网络层IP协议会检查每个从上层协议下来的数据包的大小,并根据本机MTU的大小决定是否作“分片”处理。分片最大的坏处就是降低了传输性能,本来一次可以搞定的事情,分成多次搞定,所以在网络层更高一层(就是传输层)的实现中往往会对此加以注意!有些高层因为某些原因就会要求我这个面包不能切片,我要完整地面包,所以会在IP数据包包头里面加上一个标签:DF(Donot Fragment)。这样当这个IP数据包在一大段网络(水管里面)传输的时候,如果遇到MTU小于IP数据包的情况,转发设备就会根据要求丢弃这个数据包。然后返回一个错误信息给发送者。这样往往会造成某些通讯上的问题,不过幸运的是大部分网络链路都是MTU1500或者大于1500。
  对于UDP协议而言,这个协议本身是无连接的协议,对数据包的到达顺序以及是否正确到达不甚关心,所以一般UDP应用对分片没有特殊要求。
  对于TCP协议而言就不一样了,这个协议是面向连接的协议,对于TCP协议而言它非常在意数据包的到达顺序以及是否传输中有错误发生。所以有些TCP应用对分片有要求---不能分片(DF)。
  花开两朵,各表一枝,说完MTU的故事我们该讲讲今天的第二个猪脚---PPPoE所谓PPPoE就是在以太网上面跑PPP协议,有人奇怪了,PPP协议和Ethernet不都是链路层协议吗?怎么一个链路层跑到另外一个链路层上面去了,难道升级成网络层协议了不成。其实这是个误区:就是某层协议只能承载更上一层协议。为什么会产生这种奇怪的需求呢?这是因为随着宽带接入(这种宽带接入一般为Cable Modem或者xDSL或者以太网的接入)由于以太网缺乏认证计费机制而传统运营商是通过PPP协议来对拨号等接入服务进行认证计费的,所以就出了这么一个怪胎:PPPoE。(有关PPPoE的详细介绍参见V大以及本站其他成员的一些介绍文章,我就不啰里啰唆的了)
  PPPoE带来了好处,也带来了一些坏处,比如:二次封装耗费资源,降低了传输效能等等,这些坏处俺也不多说了,最大的坏处就是PPPoE导致MTU变小了以太网的MTU是1500,再减去PPP的包头包尾的开销(8Bytes),就变成1492。
  如果两台主机之间的某段网络使用了PPPoE那么就会导致某些不能分片的应用无法通讯。
这个时候就需要我们调整一下主机的MTU,通过降低主机的MTU,这样我们就能够顺利地进行通讯了。
  当然对于TCP应用而言还有另外的解决方案。马上请出今天第三位猪脚:MSS。MSS最大传输大小的缩写,是TCP协议里面的一个概念。MSS就是TCP数据包每次能够传输的最大数据分段。为了达到最佳的传输效能TCP协议在建立连接的时候通常要协商双方的MSS值,这个值TCP协议在实现的时候往往用MTU值代替(需要减去IP数据包包头的大小20Bytes和TCP数据段的包头20Bytes)所以往往MSS为1460。通讯双方会根据双方提供的MSS值得最小值确定为这次连接的最大MSS值。
  介绍完这三位猪脚s我们回过头来看前言里面的那个问题,我们试想一下,如果我们在中间路由器上把每次TCP连接的最大MSS进行调整这样使得通过PPPoE链路的最大MSS值加上数据包头包尾不会超过PPPoE的MTU大小1492这样就不会造成无法通讯的问题
  所以上面的问题可以通过ip tcp adjust-mss 1452来解决。
  当然问题也可以通过修改PC机的MTU来解决。

  [后记]Cisco在IOS 12.2(4)T及以后的版本支持修改MSS大小的特性
Cisco的TCP Adjust MSS Feature:
The TCP MSS Adjustment feature enables the configuration of the maximum segment size (MSS) for transient packets that traverse a router, specifically TCP segments in the SYN bit set, when Point to Point Protocol over Ethernet (PPPoE) is being used in the network. PPPoE truncates the Ethernet maximum transmission unit (MTU) 1492, and if the effective MTU on the hosts (PCs) is not changed, the router in between the host and the server can terminate the TCP sessions. The ip tcp adjust-mss command specifies the MSS value on the intermediate router of the SYN packets to avoid truncation.

解决ROS小包(网络游戏数据包)转发性能差的问题

以下只给有ROS基础的人看,2.9.7以上版本支持,2.9.26上调试通过
ROS终端界面直接输入即可
HTB QOS 流量质量控制
/ ip firewall mangle
add chain=forward p2p=all-p2p action=mark-connection new-connection-mark=p2p_conn passthrough=yes comment="" disabled=no
add chain=forward connection-mark=p2p_conn action=mark-packet new-packet-mark=p2p passthrough=yes comment="" disabled=no
add chain=forward connection-mark=!p2p_conn action=mark-packet new-packet-mark=general passthrough=yes comment="" disabled=no
add chain=forward packet-size=32-512 action=mark-packet new-packet-mark=small
passthrough=yes comment="" disabled=no
add chain=forward packet-size=512-1200 action=mark-packet new-packet-mark=big
passthrough=yes comment="" disabled=no

/ queue tree
add name="p2p1" parent=TEL packet-mark=p2p limit-at=2000000 queue=default
priority=8 max-limit=6000000 burst-limit=0 burst-threshold=0 burst-time=0s
disabled=no
add name="p2p2" parent=LAN packet-mark=p2p limit-at=2000000 queue=default
priority=8 max-limit=6000000 burst-limit=0 burst-threshold=0 burst-time=0s
disabled=no
add name="ClassA" parent=LAN packet-mark="" limit-at=0 queue=default priority=8
max-limit=100000000 burst-limit=0 burst-threshold=0 burst-time=0s disabled=no
add name="ClassB" parent=ClassA packet-mark="" limit-at=0 queue=default
priority=8 max-limit=0 burst-limit=0 burst-threshold=0 burst-time=0s disabled=no
add name="Leaf1" parent=ClassA packet-mark=general limit-at=0 queue=default
priority=7 max-limit=0 burst-limit=0 burst-threshold=0 burst-time=0s disabled=no
add name="Leaf2" parent=ClassB packet-mark=small limit-at=0 queue=default
priority=5 max-limit=0 burst-limit=0 burst-threshold=0 burst-time=0s disabled=no
add name="Leaf3" parent=ClassB packet-mark=big limit-at=0 queue=default
priority=6 max-limit=0 burst-limit=0 burst-threshold=0 burst-time=0s disabled=no

1-8级优先级控制,数字越小优先级越高
LAN内网接口TEL 外网接口SMALL 小包 32-512字节 5级优先级BIG 大包 512-1200字节 6级优先级general 其它包 1200-1500字节 7级优先级P2P类 8级优先,全局限速 600KB/S下载

Leaf 子类
http://www.mikrotik.com/docs/ros/2.9/graphics:queue_demo-4.jpg

RouterOS安装配置(转)

2006年9月5日星期二
  RouterOS安装配置菜单,用方向键控制光标,用空格键选择或者放弃选项,按I确定安装。光纤接入我们一般只需要基本的system,如果是adsl或者modem拨号就需要选择ppp,dhcp这些我就不用说啦,hotspot就是那种小区上网,连接外网的时候需要在网页页面输入帐号密码才能上网的组件,isdn是另一种拨号方式,lcd是那种小液晶显示,ntp是时间服务器和客户端,routing是一些正统路由协议,telephony是H232,和语音视频有关的协议,如果发现视频连接有问题,可以考虑安装这个选件,web-proxy网页代理,注意这个除非非常需要,否则不建议网吧安装,很多网页不适合缓存(例如那些密码页),其他的对网吧没什么有价值(arlan,gps等和无线有关,ups这些不用解释吧?)个人建议安装system,advanced-tools(高级菜单),你可以考虑备选hcp,telphony,其他的看实际需要吧。
  我一般选择这几项: system. ppp advanced-tools security web-proxy
  为了方便学习.你可以全部都装上..呵
  按I开始再按两次y
  选择完安装组件后按“I”,就进入安装界面,这里系统会问你两个(Y/N),关于是否清理硬盘之类的,全“Y”就可以了。
  安装完成后会叫你REBOOT。回车就搞定了.
  默认帐号:admin,没有密码
  破解的2.96重启时按y呵呵就破解了.我们来看看
输入
system“回车”
license“回车”
print“回车”
你就能看到上面的注册信息了,哦,level 6,ISP级别,非常好。
RouterOS的FileSystem不公开,你只能使用限制的几个指令,任何时候你不知道可以做什么,你
都可以输入“?”显示,而“/”则雷同与dos的“cd”。上面的指令,有点类似于“进入system
目录,然后再进入license目录,然后执行print指令”。
现在我们来配置网卡
输入“setup”,其实RouterOS任何指令你都可以缩写成头三个字母,例如你只需要输入“set”
就可以了。
setup的菜单很简单,
r - reset
l - load驱动
a - 配置网卡
d - 配置DHCP客户端
s - 配置DHCP服务端
p - 配置pppoe
t - 配置pptp
x - 退出菜单
如果你发现你配置错了,最简单的推平办法就是 set - r,或者直接“reset”也可以。
自己多看看..
嗯,我们现在选择“a”来配置网卡
这里又有一个菜单
a - 增加地址
g - 配置默认网关
x - 退出菜单
选择“a”之后,他会问你要配置那张网卡,他默认会先load出etner2,你要退一格,把2改成1
,这里注意,如果他完全没有显示ether2,而是直接进入下一个界面,那就是他只认出一张网卡
.....
输入内网ip和掩码,
255.255.255.255 = 11111111.11111111.11111111.11111111(这里有32个1,就是32了)
255.255.255.0 = 11111111.11111111.11111111.00000000(这就是24了)
注:关于子网掩码算法请参阅:http://bbs.34320.com/viewthread.php?tid=1021&extra=page%3D1
所以输入192.168.0.X/24
我就设为192.168.0.254/24吧
好了.按xx
现在你可以用在你的Internet Explorer里输入你刚才设的地址我设的是192.168.0.254呵点点击下载winbox打开Connect To :输入你刚才设的IP.我的是192.168.0.254Login: 输入用户.我的是admin 刚才没改Password:密码 空的.刚才也没设
点击Connect
打开winbox
点击Interfaces启用第二块网卡。
点击IP-Address设置第二块网卡的IP 也就是外网IP比如我的是假如外网IP是192.168.1.250假如外网掩码是:255.255.255.0我就这样设Address:192.168.1.250/24(掩码算法看http://bbs.34320.com/viewthread.php?tid=1021&extra=page%3D1)Network: 192.168.1.0 Broadcast:192.168.1.255后面的就不用说了吧.
窗口模式的.应该都会了吧.很简单.看着视频教程操作
再次点去Ip-Route设置路由表.很简单点击+号Destination这个如果用0.0.0.0/0就表示路由所有ip段其他不懂就不要设了.Gateway:这里就是设网关的输入你的外网网关比如我的外网网关为192.168.0.230
点击IP-Firewall设置共享上网
选Nat点+
选第一项General
Chain:srcnat
选第四项Action
设置Action:masquerade
选Mangle
点+选第一项General设置:Chain:prostroutingProtocol:6(tcp)
选第二项Advanced设置:TCP Flags:syn
选第四项ActionAction:change MSSNew TCP MSS:1400
这样设置就可以共享上网了.

RouterOS断流问题(转)

  所谓断流: 在这里我定义断流为打网络游戏不断,但是看网页断断续续,甚至根本打不开的现象。
  问题分析:nat的原理即为将源地址转换为公网IP地址出去,对于TCP应用来说,在转换源IP地址的同时还将转换PORT.即一条TCP连接的地址转换关系为ip+port.router一般会建立一张NAT连接对应关系表.以便于数据报文回来的时候及时的将这条报文转换给当初发出TCP请求的机器..但是一般router在实现nat的时候会隐含两个条件,1)NAT很消耗资源,所以一般会对nat连接数进行限制.否则碰到有用户带病毒的胡乱建连接两下路由器就瘫痪了.2) nat对tcp udp icmp这类协议的nat转换对应关系表有一定的老化时间,时间一到对方没有数据回来该条连接就从对应关系表中删除.
  接着对问题进行分析,网络游戏不断说明接口没问题.而网页断断续续则是因为没有多余的连接条数了.为什么网络游戏能不断呢?因为网络游戏就那几条TCP连接.数据报文一直在发送,能保持NAT转换表项一直被刷新,把有限的连接条数占的很稳,当然不会断了。同理如果用FTP下载应该也是不会断的。
  问题解决:在做nat配置的时候,多做一条对于tcp协议的规则,在Extra中定义connection- limit的连接数更大一些.默认应该只是100条而已. 在这里我不确定connection-limit是针对一个IP地址100条NAT连接还是所有的IP地址最多只能建立100条NAT连接.这个需要机器多的朋友做下实验.但是我认为更改这个值,断流问题会得到解决。
  ps:connection-limit不建议配置过大,因为如果有病毒攻击可能会搞瘫痪router.建议针对每个client的ip地址配置nat的connection-limit数量为100.这样的解决方案比较完美一些.

不掉线的路由器!网吧路由特殊技术分析

2006年9月4日星期一
【导读】大家经过长期对网吧网络应用环境的研究分析,开发出一系列针对复杂应用环境下网络应用的优化措施和高级功能,下面我们就来看看网吧路由器上面都采用了哪些特别的技术可以防止掉线:
  目前,网吧用户基于网络的应用已经从简单的网页浏览,扩展到视频QQ聊天、VOD点播、网络游戏、教育培训、IP电话等更为广泛的领域,这些应用的增多对网络的速度和稳定性提出了越来越高的要求,因此现在网吧对路由器的性能要求也在相应提高:首先,越来越多的功能要求以硬件方式来实现;其次,要求路由器采用分布式处理技术,以提高路由处理能力和速度;第三,逐渐抛弃易造成拥塞的共享式总线,采用交换式路由技术,保障网络的稳定性。
  正是由于网吧应用的复杂化,使得网络资源变得更加紧张,在这样的环境下,网吧电脑掉线现象成为困扰网吧业主和网吧管理员的心病,而为了避免出现掉线,各大网络设备生产商也在网吧路由器产品上面下了不少功夫,大家经过长期对网吧网络应用环境的研究分析,开发出一系列针对复杂应用环境下网络应用的优化措施和高级功能,下面我们就来看看网吧路由器上面都采用了哪些特别的技术可以防止掉线:

  一.内部PC基于IP地址限速
  现在网络应用众多,BT、电驴、迅雷、FTP、在线视频等,都是非常占用带宽,以一个200台规模的网吧为例,出口带宽为10M,每台内部PC的平均带宽为50K左右,如果有几个人在疯狂的下载,把带宽都占用了,就会影响其他人的网络速度了,另外,下载的都是大文件,IP报文最大可以达到1518个BYTE,也就是1.5k,下载应用都是大报文,在网络传输中,一般都是以数据包为单位进行传输,如果几个人在同时下载,占用大量带宽,如果这时有人在玩网络游戏,就可能会出现卡的现象。
  一个基于IP地址限速的功能,可以给整个网吧内部的所有PC进行速度限制,可以分别限制上传和下载速度,既可以统一限制内部所有PC的速度,也可以分别设置内部某台指定PC的速度。速度限制在多少比较合适呢?和具体的出口带宽和网吧规模有关系,不过最低不要小于40K的带宽,可以设置在100-400K比较合适。

  二:内部PC限制NAT的链接数量
  NAT功能是在网吧中应用最广的功能,由于IP地址不足的原因,运营商提供给网吧的一般就是1个IP地址,而网吧内部有大量的PC,这么多的PC都要通过这唯一的一个IP地址进行上网,如何做到这点呢?
  答案就是NAT(网络IP地址转换)。内部PC访问外网的时候,在路由器内部建立一个对应列表,列表中包含内部PCIP地址、访问的外部IP地址,内部的IP端口,访问目的IP端口等信息,所以每次的ping、QQ、下载、WEB访问,都有在路由器上建立对应关系列表,如果该列表对应的网络链接有数据通讯,这些列表会一直保留在路由器中,如果没有数据通讯了,也需要20-150秒才会消失掉。(对于RG-NBR系列路由器来说,这些时间都是可以设置的)
  现在有几种网络病毒,会在很短时间内,发出数以万计连续的针对不同IP的链接请求,这样路由器内部便要为这台PC建立万个以上的NAT的链接。
  由于路由器上的NAT的链接是有限的,如果都被这些病毒给占用了,其他人访问网络,由于没有NAT链接的资源了,就会无法访问网络了,造成断线的现象,其实这是被网络病毒把所有的NAT资源给占用了。
  针对这种情况,不少网吧路由器提供了可以设置内部PC的最大的NAT链接数量的功能,可以统一的对内部的PC进行设置最大的NAT的链接数量设置,也可以给每台PC进行单独限制。
  同时,这些路由器还可以查看所有的NAT链接的内容,看看到底哪台PC占用的NAT链接数量最多,同时网络病毒也有一些特殊的端口,可以通过查看NAT链接具体内容,把到底哪台PC中毒了给揪出来。

  三:ACL防网络病毒
  网络病毒层出不穷,但是道高一尺,魔高一丈,所有的网络病毒都是通过网络传输的,网络病毒的数据报文也一定遵循TCP/IP协议,一定有源IP地址,目的IP地址,源TCP/IP端口,目的TCP/IP端口,同一种网络病毒,一般目的IP端口是相同的,比如冲击波病毒的端口是135,震荡波病毒的端口是445,只要把这些端口在路由器上给限制了,那么外部的病毒就无法通过路由器这个唯一的入口进入到内部网了,内部的网络病毒发起的报文,由于在路由器上作了限制,路由器不加以处理,则可以降低病毒报文占据大量的网络带宽。
  优秀的网吧路由器应该提供功能强大的ACL功能,可以在内部网接口上限制网络报文,也可以在外部王接口上限制病毒网络报文,既可以现在出去的报文,也可以限制进来的网络报文。

  四:WAN口防ping功能

  以前有一个帖子,为了搞跨某个网站,只要有大量的人去ping这个网站,这个网站就会跨了,这个就是所谓的拒绝服务的攻击,用大量的无用的数据请求,让他无暇顾及正常的网络请求。
  网络上的黑客在发起攻击前,都要对网络上的各个IP地址进行扫描,其中一个常见的扫描方法就是ping,如果有应答,则说明这个ip地址是活动的,就是可以攻击的,这样就会暴露了目标,同时如果在外部也有大量的报文对RG-NBR系列路由器发起Ping请求,也会把网吧的RG-NBR系列路由器拖跨掉。
  现在多数网吧路由器都设计了一个WAN口防止ping的功能,可以简单方便的开启,所有外面过来的ping的数据报文请求,都装聋作哑,这样既不会暴露自己的目标,同时对于外部的ping攻击也是一个防范。

  五:防ARP地址欺骗功能

  大家都知道,内部PC要上网,则要设置PC的IP地址,还有网关地址,这里的网关地址就是NBR路由器的内部网接口IP地址,内部PC是如何访问外部网络呢?就是把访问外部网的报文发送给NBR的内部网,由NBR路由器进行NAT地址转发后,再把报文发送到外部网络上,同时又把外部回来的报文,去查询路由器内部的NAT链接,回送给相关的内部PC,完成一次网络的访问。
在网络上,存在两个地址,一个是IP地址,一个是MAC地址,MAC地址就是网络物理地址,内部PC要把报文发送到网关上,首先根据网关的IP地址,通过ARP去查询NBR的MAC地址,然后把报文发送到该MAC地址上,MAC地址是物理层的地址,所有报文要发送,最终都是发送到相关的MAC地址上的。
  所以在每台PC上,都有ARP的对应关系,就是IP地址和MAC地址的对应表,这些对应关系就是通过ARP和RARP报文进行更新的。
  目前在网络上有一种病毒,会发送假冒的ARP报文,比如发送网关IP地址的ARP报文,把网关的IP对应到自己的MAC上,或者一个不存在的MAC地址上去,同时把这假冒的ARP报文在网络中广播,所有的内部PC就会更新了这个IP和MAC的对应表,下次上网的时候,就会把本来发送给网关的MAC的报文,发送到一个不存在或者错误的MAC地址上去,这样就会造成断线了。
这就是ARM地址欺骗,这就是造成内部PC和外部网的断线,该病毒在前一段时间特别的猖獗。针对这种情况,防ARP地址欺骗的功能也相继出现在一些专业路由器产品上。

  六:负载均衡和线路备份

  举例来说,如锐捷RG-NBR系列路由器全部支持VRRP热备份协议,最多可以设定2-255台的NBR路由器,同时链接2-255条宽带线路,这些NBR和宽带线路之间,实现负载均衡和线路备份,万一线路断线或者网络设备损坏,可以自动实现的备份,在线路和网络设备都正常的情况下,便可以实现负载均衡。该功能在锐捷的所有的路由器上都支持。
  而RG-NBR系列路由器中的RG-NBR1000E,更是提供了2个WAN口,如果有需要,还有一个模块扩展插槽,可以插上电口或者光接口模块,同时链接3条宽带线路,这3条宽带线路之间,可以实现负载均衡和线路备份,可以基于带宽的负载均衡,也可以对内部PC进行分组的负载均衡,还可以设置访问网通资源走网通线路,访问电信资源走电信线路的负载均衡。

  七:综合性能

  网吧路由器承担的任务非常繁杂,所以单是某方面突出是不行的,还需要性能、功能、安全性等各个方面的全面发展才能良好的发挥其优势,简述为“多、快、好、省、稳、简、静、强”,8条腿走路,四平八稳,上万条NAT并发链接,线速下载的性能,简单的配置方式,安静的使用特点,对于恶劣使用环境的适应性,可以对内部进行限速功能,电信级的网络操作系统,在要求苛刻的环境的稳定应用等等,这些强大综合性能,才能成就一款出色的网吧路由器。
现在做网吧路由器的厂商都在不断改善自己的软件设计以适应网吧应用的发展变化,我们今天为大家介绍的这些功能当然是非常实用的,不过同时还是需要网吧管理和技术人员也更多的了解网吧路由器的新功能新技术,提高自己的能力,对网络进行更为科学合理的管理设置,这样才能借助一款不掉线的网吧路由器合力打造一个不掉线的网吧。