主要特征
TCP/IP协议组:
- Firewall和NAT – 包状态过滤;P2P协议过滤;源和目标NAT;对源MAC、IP地址、端口、IP协议、协议(ICMP、TCP、MSS等)、接口、对内部的数据包和连接作标记、ToS 字节、内容过滤、顺序优先与数据频繁和时间控制、包长度控制...
- 路由 – 静态路由;多线路平衡路由;基于策略的路由(在防火墙中分类); RIP v1 / v2, OSPF v2, BGP v4
- 数据流控制 – 能对每个IP、协议、子网、端口、防火墙标记做流量控制;支持PCQ, RED, SFQ, FIFO对列; Peer-to-Peer协议限制
- HotSpot – HotSpot认证网关支持RADIUS验证和记录;用户可用即插即用访问网络;流量控制功能;具备防火墙功能;实时信息状态显示;自定义HTML登录页;支持iPass;支持SSL安全验证;支持广告功能。
- 点对点隧道协议 – 支持PPTP, PPPoE和L2TP访问控制和客户端; 支持PAP, CHAP, MSCHAPv1和MSCHAPv2 验证协议; 支持RADIUS验证和记录;MPPE加密;PPPoE压缩;数据流控制;具备防火墙功能;支持PPPoE按需拨号。
- 简单隧道 – IPIP隧道、EoIP隧道 (Ethernet over IP)
- IPsec – 支持IP安全加密AH和ESP协议;
- Proxy – 支持FTP和HTTP缓存服务器;支持HTTPS代理;支持透明代理 ; 支持SOCKS协议; DNS static entries; 支持独立的缓存驱动器;访问控制列表;支持父系代理。
- DHCP – DHCP服务器;DHCP接力;DHCP客户端; 多DHCP网络;静态和动态DHCP租约;支持RADIUS。
- VRRP – 高效率的VRRP协议(虚拟路由冗余协议)
- UPnP – 支持即插即用
- NTP – 网络对时协议服务器和客户端;同步GPS系统
- Monitoring/Accounting – IP传输日志记录;防火墙活动记录;静态HTTP图形资源管理。
- SNMP – 只读访问
- M3P – MikroTik分包协议,支持无线连接和以太网。
- MNDP – MikroTik邻近探测协议;同样支持思科的CDP。
- Tools - ping; traceroute; bandwidth test; ping flood; telnet; SSH; packet sniffer; DDNS。
二层链接
- Wireless - IEEE802.11a/b/g wireless client和访问节点(AP);Nsetreme和 Nstreme2 协议;无线分布系统(WDS);虚拟AP功能;40和104 bit WEP; WPA pre-shared key加密; 访问控制列表;RADIUS服务器验证;漫游功能(wireless客户端); 接入点桥接功能。
- Bridge – 支持生成树协议(STP);多桥接口;桥防火墙;MAC NAT功能。
- VLAN - IEEE802.1q Virtual LAN,支持以太网和无线连接;多VLAN支持;VLAN桥接。
- Synchronous - V.35, V.24, E1/T1, X.21, DS3 (T3)媒体类型; sync-PPP, Cisco HDLC, 帧中继协议; ANSI-617d (ANDI or annex D)和Q933a (CCITT or annex A) 帧中继LMI类型
- Asynchronous – 串型PPP dial-in / dial-out;PAP, CHAP, MSCHAPv1和MSCHAPv2 验证协议;RADIUS验证和记录;支持串口;modem池支持128个端口。
- ISDN - ISDN dial-in / dial-out; PAP, CHAP, MSCHAPv1和MSCHAPv2 验证协议;RADIUS验证和记录;Cisco HDLC, x75i, x75ui, x75bui 队列支持。
- CPU和主板 – 核心频率在100MHz或更高的单核心i386处理器,以及与兼容的主板。
- RAM – 最小32 MiB, 最大1 GiB; 推荐64 MiB或更高。
- ROM – 标准ATA/IDE接口(SCSI和USB控制器不支持;RAID控制器驱动不支持; SATA仅支持老的访问模式) 最小需要64 Mb空间; Flash和一些微型驱动器使用ATA接口能连接使用。
MIPS
硬件要求
- 支持系统 - RouterBOARD series (532、153、112)
- RAM – 最小 16 MiB
- ROM – 板载NAND驱动,最小64Mb
配置
RouterOS提供了强大的命令配置接口。你同样可以通过简易的Windows远程图形软件WinBox管理路由器。Web 配置提供了多数常用的功能上。 主要特征:
- 完全一至的用户接口
- 运行时配置和监控
- 支持多个连接访问
- 用户策略配置
- 活动历史记录,undo/redo操作
- 安全模式操作
- Scripts能事先安排执行时间和执行内容,脚本支持所有的命令操作。
路由器可用通过下面的接口进行管理:
- 本地teminal console - PS/2或USB键盘和VGA显示卡进行控制
- Serial console – 任何 (默认使用COM1) RS232异步串口,串口默认设置为9600bit/s, 8 data bits, 1 stop bit, no parity, hardware (RTS/CTS) flow control。
- Telnet – telnet服务默认运行在TCP端口23
- SSH - SSH (安全shell) 服务默认运行在TCP端口22
- MAC Telnet - MikroTik MAC Telnet协议被默认启用在所以类以太网卡接口上。
- Winbox – Winbox是RouterOS的一个Windows远程图形管理软件,使用TCP端口8291(限2.9版本的winbox),同样也可用通过MAC地址连接。
基本设置向导
MikroTik RouterOS内能通过远程配置各种参数,包括
Telnet,
SSH,
WinBox
和
Webbox。在这里我们将着重介绍怎样使用
WinBox
:
MAC-telnet是在路由器没有IP地址的情况下或者配置防火墙参数后无法连接,通过路由器网卡MAC地址登录的方式远程连接到路由器。MAC-telnet仅能使用在来自同一个广播域中(因此在网络中不能有路由的存在),且路由器的网卡应该被启用。注:在Winbox中嵌入了通过MAC地址连接路由器的功能,并内置了探测工具。 这样在管理员忘记或复位了路由器后,同样可以通过MAC登陆到RouterOS上,进行图形界面操作。
Winbox控制台是用于MikroTik RouterOS的管理和配置,使用图形管理接口(GUI)。通过连接到MikroTik路由器的HTTP(TCP 80端口)欢迎界面下载Winbox.exe可执行文件 ,下载并保存在你的Windows中,之后直接在你Windows电脑上运行Winbox.exe文件
下面是对相应的功能键做介绍:
搜索和显示MNDP (MikroTik Neighbor Discovery Protocol) 或CDP (Cisco Discovery Protocol) 设备。可以通过该功能键搜索同一子网内MikroTik和Cisco设备。并能通过MAC地址登陆到MikroTik RouterOS进行操作。
通过指定的IP地址(默认端口为80,不许特别指定,如果你修改了端口需要对具体访问端口做自定)或MAC地址(如果路由器在同一子网内)登陆路由器。
保存当前连接列表(当需要运行它们时,只需双击)
删除从列表中选择的项目
删除所有列表中的项目,清除在本地的缓存,从wbx文件导入地址或导出为wbx文件
- Secure Mode(安全模式)
提供保密并在winbox和RouterOS之间使用TLS(Transport Layer Security)协议
- Keep Password(保存密码)
保存密码到本地磁盘的文本文件中
路由器的winbox控制台:
Winbox控制台使用TCP8291端口,在登陆到路由器后可以通过Winbox控制台操作MikroTik路由器的配置并执行与本地控制台同样的任务。
命令功能概述
下面是对Winbox控制台的操作建议:
图标
功能
图标
功能
添加一条项目
定义或编辑一个注释
删除一条存在项目
刷新当前窗口
启用一个项目
撤销操作
禁用一条项目
恢复操作
故障分析
- 我能在Linux上运行Winbox?
能,使用Wine图形接口,可以运行Winbox并连接到RouterOS。
- 我不能打开Winbox控制台
检查路由器上
/ip service print的
www服务端口和地址是否正确,确定地址是你能连接到的指定网络,确定端口为你指定的端口。如果你的服务端口和访问地址被修改,你可以通过下面的命令设置回默认值
/ip service set www port=80 address=0.0.0.0/0 。Winbox控制台使用TCP8291端口在防火墙中是否做了访问限制。
同样也能用任何PC通过标准的DB9模式串口线连接到路由器,串口连接的默认设置为每秒位数:9600 bits/s (RouterBOARD 500 串口是115200 bits/s),使用终端仿真程序(如在windows中的超级终端或SecureCRT,UNIX/Linux的minicom)连接到路由器。超级终端的具体参数设置如下:
在路由器启动完成后,会发出连续两声短触“嘀嘀”的明鸣音,之后在显示屏上,出现登录的提示,如果在终端显示中,没有提示任何信息,需要检查一下网线或是串口线是否连接好。
当登录到终端控制台后,会出现RouterOS的登录提示,第一次登录的时候用户名为“admin”密码为空,直接敲回车键进入,如下面的所示:
MikroTik v2.9
Login: admin
Password:
修改密码可以使用
/password命令
[admin@MikroTik] > password
old password:
new password: ************
retype new password: ************
[admin@MikroTik] >
添加软件功能包
基本安装仅有
system功能能包,包括基本的IP路由和路由管理功能。可用通过添加功能包如:IP Telephony,OSPF,wireless等,增加路由器的功能。你需要下载软件功能包,并上传到路由器
添加软件功能包,应该和当前的系统版本相同,如果不是相同的版本,功能包将不会被安装,上传功能包是通过FTP的方式,将功能包,放到路由器的FTP空间中,上传完后重启路由器,路由器将自动安装功能包。
终端控制向导
欢迎界面和命令提示
在登录后路由器后将会看到RouterOS™ 欢迎界面和命令提示:
MikroTik RouterOS 2.9 (c) 1999-2004 http://www.mikrotik.com.cn/
Terminal xterm detected, using multiline input mode
[admin@MikroTik] >
命令提示显示路由器的身份名称和当前的操作路径,如下:
[admin@MikroTik] >
[admin@MikroTik] interface>
[admin@MikroTik] ip address>
命令
在任何操作目录使用‘?’都可用获取在当前目录中的命令信息。
[admin@MikroTik] >
log/ -- 系统日志
quit – 退出控制台
radius/ -- Radius客户端设置
certificate/ -- 授权管理
special-login/ -- 特殊登录用户
redo – 返回以前执行的操作
driver/ -- 驱动管理
ping – ping命令
setup – 做基本的系统设置
interface/ -- 接口配置
password – 修改密码
undo – 撤销以前的操作
port/ -- 串口控制
import – 运行导入的配置脚本
snmp/ -- SNMP设置
user/ -- 用户管理
file/ -- 路由器本地文件存储
system/ -- 系统信息和应用程序
queue/ -- 带宽管理
ip/ -- IP 选项
tool/ -- 诊断工具
ppp/ -- 点对点协议
routing/ -- 各种路由协议设置
export -- 导出脚本
[admin@MikroTik] >
[admin@MikroTik] ip>
.. – 回到根目录
service/ -- IP服务
socks/ -- SOCKS 4代理
arp/ -- ARP项目管理
upnp/ -- UPNP管理
dns/ -- DNS设置
address/ -- 地址管理
accounting/ -- 传输记录
the-proxy/ --
vrrp/ -- 虚拟路由冗余协议
pool/ -- IP地址池
packing/ -- 数据包封装设置
neighbor/ -- 邻居
route/ -- 路由管理
firewall/ -- 防火墙管理
dhcp-client/ -- DHCP客户端设置
dhcp-relay/ -- DHCP中继设置
dhcp-server/ -- DHCP服务设置
hotspot/ -- HotSpot 管理
ipsec/ -- IP安全设置
web-proxy/ -- HTTP代理
export --
[admin@MikroTik] ip>
上面是对可用命令和目录的简短描述,在下面的例子中,你可用通过输入目录名称移动到不同的目录中去。
[admin@MikroTik] > | 根目录
[admin@MikroTik] > driver | 输入'driver'进入到驱动管理目录中 [admin@MikroTik] driver> / | 输入'/'从任何目录中回到根目录
[admin@MikroTik] > interface | 输入'interface'进入接口管理目录中 [admin@MikroTik] interface> /ip | 输入'/ip'从任何目录进入IP管理目录 [admin@MikroTik] ip> |
一个指令或一个变量参数不需要完整的输入,如果是含糊不清的指令或变量参数需要完整的输入。如输入
interface时,你只要输入
in或
int,需要显示完整的指令可以使用
[Tab]键
通过指令的组合,可以在当前的目录执行在不同目录操作,如:
[admin@MikroTik] ip route> print 打印路由表
[admin@MikroTik] ip route> .. address print 打印IP地址列表
[admin@MikroTik] ip route> /ip address print 打印IP地址列表
指令执行概述
Command
指令
command [Enter]
执行指令
[?]
显示该目录中的所有指令列表
command [?]
显示指令的帮助和变量列表
command argument [?]
显示指令的变量帮助
[Tab]
使指令/字段完整, 如果输入的内容含糊不清,第二次键入 [Tab]就会给出存在的选项
/
移动到根目录
/command
执行根目录中的指令
..
移动到上一级目录
""
指定一个空字符串
"word1 word2"
Specifies a string of 2 words that contain a space
在配置IP地址中,配置'address'和'netmask'参数时,在许多事例中你可以将IP地址和子网掩码一起定义,也可以将子网掩码单独定义,这两种方式是相同的,例如下面的两个输入是等价的:
/ip address add address 10.0.0.1/24 interface ether1
/ip address add address 10.0.0.1 netmask 255.255.255.0 interface ether1
基本配置
接口管理(
Interface Management
)
在配置IP地址和路由前,如果你有即插即用卡安装到路由器中,请检查
/interface 中的接口列表,多数情况下设备驱动会自动安装,并且相关的接口信息会显示在
/interface print列表中,例如:
[admin@MikroTik] interface> print
Flags: X - disabled, D - dynamic, R - running
# NAME TYPE RX-RATE TX-RATE MTU
0 R ether1 ether 0 0 1500
1 R ether2 ether 0 0 1500
2 X wavelan1 wavelan 0 0 1500
3 X prism1 wlan 0 0 1500
[admin@MikroTik] interface>
如果你想使用这些设备,一般都需要启用,使用
/interface enable name指令给出接口名称或标号启用,例如:
[admin@MikroTik] interface> print
Flags: X - disabled, D - dynamic, R - running
# NAME TYPE RX-RATE TX-RATE MTU
0 X ether1 ether 0 0 1500
1 X ether2 ether 0 0 1500
[admin@MikroTik] interface> enable 0
[admin@MikroTik] interface> enable ether2
[admin@MikroTik] interface> print
Flags: X - disabled, D - dynamic, R - running
# NAME TYPE RX-RATE TX-RATE MTU
0 R ether1 ether 0 0 1500
1 R ether2 ether 0 0 1500
[admin@MikroTik] interface>
接口的名称能通过
/interface set指令来改变其描述:
[admin@MikroTik] interface> set 0 name=Local; set 1 name=Public
[admin@MikroTik] interface> print
Flags: X - disabled, D - dynamic, R - running
# NAME TYPE RX-RATE TX-RATE MTU
0 R Local ether 0 0 1500
1 R Public ether 0 0 1500
[admin@MikroTik] interface>
Setup
指令
当初始化路由器时,通过使用
/setup指令设置下列配置内容:
- 重新设置路由器配置
- 载入接口驱动
- 配置IP地址和网关
- 设置DHCP客户端
- 设置DHCP服务端
- 设置pppoe客户端
- 设置pptp客户端
使用
Setup
指令,在路由器上配置
IP
地址。
执行
/setup指令行:
[admin@MikroTik] > setup
Setup uses Safe Mode. It means that all changes that are made during setup
are reverted in case of error, or if Ctrl-C is used to abort setup. To keep
changes exit setup using the 'x' key.
[Safe Mode taken]
Choose options by pressing one of the letters in the left column, before
dash. Pressing 'x' will exit current menu, pressing Enter key will select the
entry that is marked by an '*'. You can abort setup at any time by pressing
Ctrl-C.
Entries marked by '+' are already configured.
Entries marked by '-' cannot be used yet.
Entries marked by 'X' cannot be used without installing additional packages.
r - reset all router configuration
+ l - load interface driver
* a - configure ip address and gateway
d - setup dhcp client
s - setup dhcp server
p - setup pppoe client
t - setup pptp client
x - exit menu
your choice [press Enter to configure ip address and gateway]: a
配置IP地址和网关,输入
a或[Enter]
* a - add ip address
- g - setup default gateway
x - exit menu
your choice [press Enter to add ip address]: a
选择
a添加一个IP地址,首先,设置程序将要询问你选择那一个接口添加IP地址,如果设置程序没有指定出,合适的接口,可以通过键入[Tab]两次,查看可选的接口。 在接口选择后,分配IP地址和子网淹码:
your choice: a
enable interface:
ether1 ether2 wlan1
enable interface: ether1
ip address/netmask: 10.1.0.66/24
#Enabling interface
/interface enable ether1
#Adding IP address
/ip address add address=10.1.0.66/24 interface=ether1 comment="added by setup"
+ a - add ip address
* g - setup default gateway
x - exit menu
your choice: x
基本事例
配置一个RouteroS分为三个步骤:
第一步:检查Interface上的网卡是否正确安装,然后在ip address中配置IP地址;
第二步:在配置好IP地址后,在ip routes中配置默认网关,配置完后检查是否到外网默认网关正常;
第三步:在ip firewall nat中配置NAT伪装,隐藏内部网络。
例如:
假如你需要通过MikroTik router配置下面的网络:
在当前的事例中我们使用到两个网络(公网和本地网络):
- 本地网络使用地址为:192.168.0.0子网淹码24-bit(255.255.255.0)。路由器的地址在这个网络中为192.168.0.254
- ISP的网络为10.0.0.0 子网淹码24-bit(255.255.255.0)。路由器的地址是在网络中为10.0.0.217
通过下面的指令添加地址:
[admin@MikroTik] ip address> add address 10.0.0.217/24 interface Public
[admin@MikroTik] ip address> add address 192.168.0.254/24 interface Local
[admin@MikroTik] ip address> print
Flags: X - disabled, I - invalid, D - dynamic
# ADDRESS NETWORK BROADCAST INTERFACE
0 10.0.0.217/24 10.0.0.217 10.0.0.255 Public
1 192.168.0.254/24 192.168.0.0 192.168.0.255 Local
[admin@MikroTik] ip address>
这里,子网淹码在address变量中指定,或者也可以通过在netmask变量中设置255.255.255.0。网段和广播地址在输入时没有指定,这些可以由RouterOS自动计算出来。
请注意:在IP地址被分配到路由器的不同网卡上时,应属于不同的网络,下面是winbox中的设置情况:
查看路由
你可以看到两个带有动态dynamic (D)和连接connected (C)的路由,当地址添加后会在路由中自动添加动态路由:
[admin@MikroTik] 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 DC 192.168.0.0/24 r 0.0.0.0 0 Local
1 DC 10.0.0.0/24 r 0.0.0.0 0 Public
[admin@MikroTik] ip route> print detail
Flags: X - disabled, I - invalid, D - dynamic, J - rejected,
C - connect, S - static, R - rip, O - ospf, B - bgp
0 DC dst-address=192.168.0.0/24 preferred-source=192.168.0.254
gateway=0.0.0.0 gateway-state=reachable distance=0 interface=Local
1 DC dst-address=10.0.0.0/24 preferred-source=10.0.0.217 gateway=0.0.0.0
gateway-state=reachable distance=0 interface=Public
[admin@MikroTik] ip route>
添加默认路由
在下面的事例中将添加默认路由(destination 0.0.0.0 (any), netmask 0.0.0.0 (any)) 。在这个事例中ISP的网关是10.0.0.1,通过
Public接口
[admin@MikroTik] ip route> add gateway=10.0.0.1
[admin@MikroTik] 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 0.0.0.0/0 r 10.0.0.1 1 Public
1 DC 192.168.0.0/24 r 0.0.0.0 0 Local
2 DC 10.0.0.0/24 r 0.0.0.0 0 Public
[admin@MikroTik] ip route>
这里,默认路由被列入标号#0,同样我们看到,网关10.0.0.1能在接口'Public'通过。如果网关没有被正确的指定,'interface'变量值将会无法确定(unknown)。Winbox添加后情况如下:
测试网络连接
从现在起,
/ping 指令可以用来测试网络连接情况。
[admin@MikroTik] ip route> /ping 10.0.0.4
10.0.0.4 64 byte ping: ttl=255 time=7 ms
10.0.0.4 64 byte ping: ttl=255 time=5 ms
10.0.0.4 64 byte ping: ttl=255 time=5 ms
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 5/5.6/7 ms
[admin@MikroTik] ip route>
[admin@MikroTik] ip route> /ping 192.168.0.1
192.168.0.1 64 byte ping: ttl=255 time=1 ms
192.168.0.1 64 byte ping: ttl=255 time=1 ms
192.168.0.1 64 byte ping: ttl=255 time=1 ms
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 1/1.0/1 ms
[admin@MikroTik] ip route>
如果路由器的地址192.168.0.254在windows工作站的TCP/IP协议中配置为默认网关,这时你就能
ping通路由器
C:\>ping 192.168.0.254
Reply from 192.168.0.254: bytes=32 time=10ms TTL=253
Reply from 192.168.0.254: bytes=32 time<10ms TTL=253
Reply from 192.168.0.254: bytes=32 time<10ms TTL=253
C:\>ping 10.0.0.217
Reply from 10.0.0.217: bytes=32 time=10ms TTL=253
Reply from 10.0.0.217: bytes=32 time<10ms TTL=253
Reply from 10.0.0.217: bytes=32 time<10ms TTL=253
C:\>ping 10.0.0.4
Request timed out.
Request timed out.
Request timed out.
注: 你不能访问超过路由器的任何网络(10.0.0.0/24的网络和Internet),你需要作下面的设置:
- 使用源地址翻译 (masquerading),通过MikroTik路由隐藏你的私有网络192.168.0.0/24 (查看下面的信息)
- 在ISP的网关10.0.0.1上添加静态路由,指明到目标地址192.168.0.0/24通过10.0.0.217的主机,这时所有在ISP上的网络主机,包括服务器,将能连接到你的私有网络。
在设置路由时,你需要了解一些配置TCP/IP的网络知识,当你遇到配置网络安装困难时,我们建议你获取更多的网络技术知识。
下面我将讨论隐藏'hiding'私有的LAN192.168.0.0/24在ISP给的10.0.0.217的背后。
伪装的应用事例(
Masquerading
)
如果你想隐藏'hiding'私有的LAN192.168.0.0/24在ISP给的10.0.0.217的背后,你需要使用RouterOS的源地址翻译。伪装将改变源IP地址和数据包端口,即将192.168.0.0/24改为10.0.0.217去回应ISP的网络。
使用伪装时添加一条NAT规则在防火墙配置中,执行'masquerade',如下面:
[admin@MikroTik] ip firewall nat> add chain=srcnat action=masquerade out-interface=Public
[admin@MikroTik] ip firewall nat> print
Flags: X - disabled, I - invalid, D - dynamic
0 chain=srcnat out-interface=Public action=masquerade
Winbox添加后如下
注:如果需要了解很多的NAT信息,建议参阅NAT说明文档。
以上是如何配置一个简单RouterOS网络的应用实例。
带宽管理事例
假设你想要限制所以的LAN内主机的下行带宽为128kbps和上行带宽为64kbps:
[admin@MikroTik] queue simple> add max-limit=64000/128000 interface=Local
[admin@MikroTik] queue simple> print
Flags: X - disabled, I - invalid, D - dynamic
0 name="queue1" target-address=0.0.0.0/0 dst-address=0.0.0.0/0
interface=Local queue=default priority=8 limit-at=0/0
max-limit=64000/128000
[admin@MikroTik] queue simple>
NAT
端口映射事例
假如我们将以前的服务器从公网移动到私网中去,并想让其他的公网来访问我们的服务器,这时就需要用到NAT:
现在服务器的地址是192.168.0.4,并且我们在服务器上运行80端口监听web服务,我们想通过公网地址10.0.0.217:80端口访问该服务器,即我们就需要在MikroTik路由器上作静态的网络地址翻译(NAT) ,这样通过公网地址10.0.0.217端口80将数据传输到本地网络的192.168.0.4:80,在目标地址上配置目标地址和端口:
[admin@MikroTik] ip firewall nat> add chain=dstnat action=dst-nat protocol=tcp dst-address=10.0.0.217/32 dst-port=80 to-addresses=192.168.0.4
[admin@MikroTik] ip firewall nat> pr
Flags: X - disabled, I - invalid, D - dynamic
0 chain=dstnat dst-address=10.0.0.217/32 protocol=tcp dst-port=80
action=dst-nat to-addresses=192.168.0.4 to-ports=0-65535
系统管理
现在指导你是如何使用指令执行下面的功能:
- 系统备份
- 系统通过备份文件还原
- 导出配置
- 导入配置
- 系统复位
MikroTik RouterOS将配置备份为二进制文件,通过FTP 访问路由器下载备份文件,并可以通过备份文件还原路由器设置。 T
MikroTik RouterOS通过导出配置可用打印出配置信息到终端控制的屏幕上或生成文本文件(脚本),同样使用FTP下载文件,导入配置则将脚本文本文件导入路由器。
系统复位是将所有的配置信息全部删除掉,在做此操作前,最好先将路由器的配置备份一次。
注
! 为了保证备份不会失败,请在将备份的文件恢复到同样的电脑和同样的硬件配置上去
系统备份
操纵路径:
/system backup
Save指令是保存当前配置到一个备份文件中,显示文件在
/file目录中。 在
/system reset复位系统后,上传备份文件到RouterOS中,并通过
/system backup中的
load指令载入配置在还原系统配置
指令描述
load name=[filename] – 载入备份文件的配置
save name=[filename] – 保存当前的配置到文件中
例如:
将当前的配置保存到文件
test
:
[admin@MikroTik] system backup> save name=test
Configuration backup saved
[admin@MikroTik] system backup>
在路由器中查看保存的文件:
[admin@MikroTik] > file print
# NAME TYPE SIZE CREATION-TIME
0 test.backup backup 12567 aug/12/2002 21:07:50
[admin@MikroTik] >
导入备份文件
test:
[admin@MikroTik] system backup> load name=test
Restore and reboot? [y/N]: y
...
导出指令(
Export
)
指令名称:
export
Export指令用于导出脚本配置信息,这个命令可以在任何目录被激活。
export a同样也可以通过
file生成脚本配置文件,可用FTP下载下来。
指令描述
from=[number] – 指定需要导出的项目编号
file=[filename] – 保存的文件名称。
例如:
[admin@MikroTik] > ip address print
Flags: X - disabled, I - invalid, D - dynamic
# ADDRESS NETWORK BROADCAST INTERFACE
0 10.1.0.172/24 10.1.0.0 10.1.0.255 bridge1
1 10.5.1.1/24 10.5.1.0 10.5.1.255 ether1
[admin@MikroTik] >
制作一个导出文件:
[admin@MikroTik] ip address> export file=address
[admin@MikroTik] ip address>
制作一个仅一个项目的导出文件:
[admin@MikroTik] ip address> export file=address1 from=1
[admin@MikroTik] ip address>
在路由器中查看导出的文件:
[admin@MikroTik] > file print
# NAME TYPE SIZE CREATION-TIME
0 address.rsc script 315 dec/23/2003 13:21:48
1 address1.rsc script 201 dec/23/2003 13:22:57
[admin@MikroTik] >
在不创建导出文件名,使用同样的指令导出显示出配置内容:
[admin@MikroTik] ip address> export from=0,1
# dec/23/2003 13:25:30 by RouterOS 2.8beta12
# software id = MGJ4-MAN
#
/ ip address
add address=10.1.0.172/24 network=10.1.0.0 broadcast=10.1.0.255 \
interface=bridge1 comment="" disabled=no
add address=10.5.1.1/24 network=10.5.1.0 broadcast=10.5.1.255 \
interface=ether1 comment="" disabled=no
[admin@MikroTik] ip address>
导入指令
操作路径:
/import
在根目录使用
/import file_name指令还原指定的导出文件。这种还原是用于部分的配置丢失。
注:导入指令不可能导入收有的路由器配置只能导入部分的配置如, firewall rules中的策略
指令描述
file=[filename] – 载入需要导入的路由器配置文件
例如:
使用下面的指令操作载入保存的配置文件:
[admin@MikroTik] > import address.rsc
Opening script file address.rsc
Script file loaded successfully
[admin@MikroTik] >
复位
操作路径:
/system
这个指令将会清除掉路由器的所有配置,包括登陆的账号和密码(恢复为“admin“和空密码)IP地址和其他配置将会被抹去,接口将会被禁用,在
reset指令执行后路由器将会重起。
例如:
[admin@MikroTik] > system reset
Dangerous! Reset anyway? [y/N]: n
action cancelled
[admin@MikroTik] >
ADSL
拨号上网事例
ADSL用户名: user@169
密码: 1234
Service Name: CHN-Telecom
1:添加PPPOE Clients
[admin@Router] interface pppoe-client>
[admin@Router] interface pppoe-client> add interface=ether1 mtu=1492 mru=1492 service-name=CHN-Telecom user= user@169 password=1234 add-default-route=yesuse-peer-dns=yes
[admin@ROUTER] interface pppoe-client> print
Flags: X - disabled, R - running
0 X name="pppoe-out1" mtu=1492 mru=1492 interface=ether1 user=user@169
password=1234 profile=default service-name=CHN-Telecom ac-name=""
add-default-route=yes dial-on-demand=no use-peer-dns=yes
PPPOE 拨号已经配置好,接下来将ADSL MODEM的网线连接好进行以下操作就可以连同了。
[admin@Router] interface pppoe-client>enable 0
[admin@Router] interface pppoe-client> monitor pppoe-out1
status: "connected"
uptime: 10s
encoding: "none"
service-name: "CHN-Telecom"
ac-name: ""
ac-mac: 00:C0:DF:07:5E:E6
之后还需在ip firewall mangle中添加一条规则:
[admin@Router] ip firewall mangle> add chain=forward protocol=tcp tcp-flags=syn action=change-mss new-mss=1440
[admin@Router] ip firewall mangle> print
Flags: X - disabled, I – invalid
0 chain=forward protocol=tcp tcp-flags=syn action=change-mss
new-mss=1440
最后不要忘了设置IP伪装。
双线应用案例
这是一个典型的通过一个路由器并使用两条ISP线路接入的环境(比如都是两条电线的ADSL或者LAN接入):
当然,你可以选择负载均衡!这里有多种方法可以选择,只是根据你的环境,选择最适合你解决方案。
如果你有很多的主机地址,你可以通过IP地址将他们分组。这时,指定源IP地址,发送的传输通过ISP1或者ISP2的网关出去。让我们假设终端电脑的网络地址段为192.168.100.0/24,IP分配如下:
· 192.168.100.1-127分配到A组
· 192.168.100.128-253 分配到B组
· 192.168.100.254路由器本地IP地址(即内网的网关)
现在,我们通过子网划分的方式,将终端电脑进行分组:
· A组为192.168.100.0/25,地址范围:192.168.100.0-127
· B组为192.168.100.128/25,地址范围:192.168.100.128-255
如果你不能理解,请你查阅TCP/IP的相关教材或通过网上查找相关的子网划分资料!我们需要添加两个ip firewall mangle的规则,标记来至A组和B组终端电脑的数据包。
定义A组:
链表为chain=prerouting,源地址:src-address=192.168.100.0/25
操作为Action=mark routing并定义新的路由标记GroupA.
最好做一个注释,以便以后便于你自己或者别人查看和处理。
定义B组:
链表为chain=prerouting,源地址:src-address=192.168.100.128/25
操作为Action=mark routing并定义新的路由标记GroupB
所有来至终端电脑的IP传输都通过路由标记为
GroupA或者
GroupB。这样我们可以标记到路由表中(routing table)。
下面,我们需要定义两个默认路给相应的路由标记和网关:
到这里,如果你没有对路由器做NAT的伪装,请在
/ip firewall nat里添加src- Address=
192.168.100.0/24 action=
masquerade,在终端电脑上测试一下跟踪路由是否正确定义两个分组的默认路由:
A组测试如下情况:
C:\>tracert -d 8.8.8.8
Tracing route to 8.8.8.8 over a maximum of 30 hops
1 2 ms 2 ms 2 ms 192.168.100.254
2 10 ms 4 ms 3 ms 10.1.0.1
...
B组测试如下情况:
C:\>tracert -d 8.8.8.8
Tracing route to 8.8.8.8 over a maximum of 30 hops
1 2 ms 2 ms 2 ms 192.168.100.254
2 10 ms 4 ms 3 ms 10.5.8.1
...
防火墙规则
下面是三条预先设置好了的chains,他们是不被能删除的:
- input – 用于处理进入路由器的数据包,即数据包目标IP地址是到达路由器一个接口的IP地址,经过路由器的数据包不会在input-chains处理。
- forward – 用于处理通过路由器的数据包
- output – 用于处理源于路由器并从其中一个接口出去的数据包。
他们具体的区别如下:
当处理一个chain(数据链),策略是从chain列表的顶部从上而下执行的。如果一个数据包满足策略的条件,这时会执行该操作。
我们来看看防火墙过滤原则:
现在我来看事例中的防火墙规则:
我先从input链表开始,这里是对所有访问路由的数据进行过滤和处理:
从input链表的第一条开始执行,这里一共有三条规则:
0 ;;; 接受你信任的IP地址访问(src-address=填写信任IP,默认允许任何地址)
chain=input src-address=192.168.100.2 action=accept
1 ;;; 丢弃非法连接
chain=input connection-state=invalid action=drop
2 ;;; 丢弃任何访问数据
chain=input action=drop
下面是forward链表
forward链表,一共有7条规则,包括两个跳转到自定义链表ICMP和virus链表:
0 ;;; 接受已建立连接的数据
chain=forward connection-state=established action=accept
1 ;;; 接受相关数据
chain=forward connection-state=related action=accept
2 ;;; 丢弃非法数据包
chain=forward connection-state=invalid action=drop
3 ;;; 限制每个主机TCP连接数为80条
chain=forward protocol=tcp connection-limit=80,32 action=drop
4 ;;; 丢弃掉所有非单播数据
chain=forward src-address-type=!unicast action=drop
5 ;;; 跳转到ICMP链表
chain=forward protocol=icmp action=jump jump-target=ICMP
6 ;;; 跳转到病毒链表
chain=forward action=jump jump-target=virus
forward工作过程如下:
在自定义链表ICMP中,是定义所有ICMP(Internet控制报文协议),ICMP经常被认为是IP层的一个组成部分。它传递差错报文以及其他需要注意的信息。ICMP报文通常被IP层或更高层协议(TCP或UDP)使用。例如:ping、traceroute、trace TTL等。我们通过ICMP链表来过滤所有的ICMP协议:
ICMP链表操作过程:
0 ;;; Ping应答限制为每秒5个包
chain=ICMP protocol=icmp icmp-options=0:0-255 limit=5,5 action=accept
1 ;;; Traceroute限制为每秒5个包
chain=ICMP protocol=icmp icmp-options=3:3 limit=5,5 action=accept
2 ;;; MTU线路探测限制为每秒5个包
chain=ICMP protocol=icmp icmp-options=3:4 limit=5,5 action=accept
3 ;;; Ping请求限制为每秒5个包
chain=ICMP protocol=icmp icmp-options=8:0-255 limit=5,5 action=accept
4 ;;; Trace TTL限制为每秒5个包
chain=ICMP protocol=icmp icmp-options=11:0-255 limit=5,5 action=accept
5 ;;; 丢弃掉任何ICMP数据
chain=ICMP protocol=icmp action=drop
在virus链表中过滤常见的病毒,我可以根据需要在该链表中添加新的病毒对他们做过滤:
转载于:https://blog.51cto.com/356320/787064