RouterOS基础安装配置
安装
光盘安装
载入光盘,按"A"全选按"I"进行安装,然后提示不否用旧的配置,按"N"全新安装,警告时按"Y"确定
安装完后重启进入系统!
配置
命令行用"admin"登陆,
查看网卡信息
interface print
显示修改网卡1名称信息LAN与网卡2名称信息WAN
/interface
set ether1 name=lan;set ether2 name=wan
修改LAN网卡的IP地址(进入IP目录的地址目录)
/ip address
add address=192.168.2.1/24 interface=lan
按TAB查看相关命令!
设置完成后,再使用winbox界面进行相关设置!
winbox配置
设置接口
先设置各接口的信息
多lan口用网桥把所有lna接口全合并一个网桥内
然后在IP-地址设定网桥的IP段
设置DHCP
先设定IP池,注意网关不要加入到池内如:192.168.1.4-192.168.1.254
使用向导模设置DHCP这样简单一点
设置外网
- 在IP-地址内设置外网的IP地址信息:ip为外网给的IP,广播设为网关或是当前IP段的/24(如:192.168.1.0/24)
- 设置ip-路由-添加新路由 目标地址0.0.0.0/0 网关设置为外网给的IP网关
- 设置ip-防火墙-NAT 添加 srcnat 动作 masquerade
- 测试,点工具-ping,测试是否通外网
设置NAT端口转发
在IP-NAT里添加dsnat 目标IP为外网的IP,协议6(TCP) 目标端口号:80或其它
设置动作DST-NAT 至地址 内网服务器地址IP 端口内网服务器端口
关于NAT回流官方说明
回流要求服务器发出的数据必须要经过路由才生效,可以在服务器上设置静态路由,把同网段的下一跳转到路由的IP上去
这里如果有域名建议使用DNS解决
设置可上网与不可上网的规则
规则的顺序是允许,然后再禁上网的
- 添加所有允许的规则 FORWARD -动作accept (其它设置请按自己的要求设置)
- 添加DNS协议的规则 FORWARD -动作accept 协议17(udp) 目标端口53 (注意如果不添加DNS协议允许,内网用户则无法查询DNS来解释域名,也就无法得到IP,域名也用不了!)
- 添加禁上网的规则 FORWARD -动作drop 接入口:内网接口如:lan1或是bridge1
- 关于drop后网络连接图标显示无网络时应添加"www.msftconnecttest.com"为允许.如果还是不行应添加www.msftconnect.com为允许
多线路时,设置外网访问题路由
- 添加防火墙 标记器 指定OUTPUT 指定源IP地址(路由器) 目标地址:(!内网地址) 协议tcp 端口 22 动作mark routing到新的路由中。同理其它端口也一样
关于数据标记的注意事项
-
INPUT——进来的数据包应用此规则链中的策略
-
OUTPUT——外出的数据包应用此规则链中的策略
-
FORWARD——转发数据包时应用此规则链中的策略
-
PREROUTING——对数据包作路由选择前应用此链中的规则(记住!所有的数据包进来的时侯都先由这个链处理)(一般标记用这个标记)
-
POSTROUTING——对数据包作路由选择后应用此链中的规则(所有的数据包出来的时侯都先由这个链处理)
-
filter表——三个链:INPUT、FORWARD、OUTPUT 作用:过滤数据包 内核模块:iptables_filter.
-
Nat表——三个链:PREROUTING、POSTROUTING、OUTPUT作用:用于网络地址转换(IP、端口) 内核模块:iptable_nat
-
Mangle表——五个链:PREROUTING、POSTROUTING、INPUT、OUTPUT、FORWARD 作用:修改数据包的服务类型、TTL、并且可以配置路由实现QOS内核模块:iptable_mangle(别看这个表这么麻烦,咱们设置策略时几乎都不会用到它)
-
Raw表——两个链:OUTPUT、PREROUTING 作用:决定数据包是否被状态跟踪机制处理 内核模块:iptable_raw(这个是REHL4没有的,不过不用怕,用的不多)
关于组策略精准流控标记
-
在Windows组策略>计算机配置>windows设置>基于策略的QoS,在里对下载软件的数据包打上 DSCP,我这里加了 UT 和迅雷这2个,迅雷因为一直有2个主进程,懒得去查哪个才是负责数据流量的进程,所以就把2个一起加了进去。协议自然是 TCP/UDP,DSCP 值可以自己选1-63之间,数字越大优先级越高,我这里用9。
因为是 Windows 上的策略,不需要管目标IP的情况,只要是指定进程发出的数据包都无一例外的被标记,准确度完全保证。 -
add chain=prerouting DSCP=9 action=mark-connection new-connection-mark=P2P passthrough=yes
根据 DSCP,打上 connection-mark 标记,connection mark 的特点是可以覆盖整个链接里的所有数据包,就一次性的把上下行数据包统统标记出来了。chain=prerouting 保证数据包在进入 ros 时就被最先标记,避免遗漏。
接下来只需要将本地 IP 做一个 address list,通过源地址/目标地址就能简单区分上行数据包和下行数据包,分别打上各自的 packet mark。
上行
add chain=forward connection-mark=P2P src-address-list=All_Lan_IP action=mark-packet new-packet-mark=P2P_Upload passthrough=no
下行
add chain=forward connection-mark=P2P dst-address-list=All_Lan_IP action=mark-packet new-packet-mark=P2P_Download passthrough=no
脚本
转换域名为IP列表
:local a [:resolve superhub.hk]
:local b 0
:foreach i in=[/ip firewall address-list find list=superhub] do={
:if ($a = [/ip firewall address-list get $i address ]) do={:set b 1} else={set b 0}
}
:if ($b = 0) do={/ip firewall address-list add list=superhub address=$a}
为静态的ARP添加到DHCP服务里
:local boolfind 0
:foreach i in=[/ip arp find dynamic=no] do={
:set boolfind 0
:foreach n in=[/ip dhcp-server lease find address=[/ip arp get $i address]] do={:set boolfind 1}
:if ($boolfind = 0) do={/ip dhcp-server lease add address=[/ip arp get $i address] mac-address=[/ip arp get $i mac-address]}
}
然后使用调度-脚本名称add_superhub_ip
:execute add_superhub_ip
双线pppoe更新脚本到防火墙路由标记
#获取pppoe1拨号ip
:local ipaddr1 [/ip address get [/ip address find interface="pppoe-out1"] address]
:set ipaddr1 [:pick $ipaddr1 0 ([len $ipaddr1] -3)]
[/ip firewall mangle set [find comment=relink1 ] dst-address=$ipaddr1];
#获取pppoe2拨号ip
:local ipaddr2 [/ip address get [/ip address find interface="pppoe-out2"] address]
:set ipaddr2 [:pick $ipaddr2 0 ([len $ipaddr2] -3)]
[/ip firewall mangle set [find comment=relink2 ] dst-address=$ipaddr2];