2年前买了个RB493G,它是MikroTik当年出品的一款高性能企业级无线路由器,一直闲置着,落了不少灰。最近恰好要将大量数据从笔记本备份至ZFS存储,实在忍受不了LinkSYS WRT54G的无线速率,于是这两天把RB493G翻出来好好地玩了一把。

interface

RouterBOARD中的接口类型挺丰富,之前用得最多的就是千兆口和无线网卡,最近新出的RouterBOARD也带有SFP口了。当然,在RouterOS中接触最多的概念则是物理口和逻辑口。

PPPoE client

逻辑口,也就是拨号上网。注意哦,平时经常说ADSL拨号上网,实际上是两个概念,ADSL是物理层链路,拨号上网是通过PPPoE协议实现拨号、认证和计费。现在我用的是中国移动的家庭宽带,入户的直接就是一根网线,已经不再需要ADSL modern。

我将入户网线插入到RB493G的ether1中。Oracle的两根网线分别插入ether2和ether3,另外一根ether7置空,留作测试只用。

[admin@MikroTik] > interface pppoe-client print
Flags: X - disabled, R - running
 0  R name="pppoe-out1" max-mtu=1480 max-mru=1480 mrru=disabled
      interface=ether1 user="15904701233" password="123123"
      profile=pppoe-client-default service-name="" ac-name=""
      add-default-route=yes dial-on-demand=no use-peer-dns=yes
      allow=pap,chap,mschap1,mschap2

ethernet

物理口

[admin@MikroTik] > interface ethernet print
Flags: X - disabled, R - running, S - slave
 #    NAME        MTU MAC-ADDRESS       ARP        MASTER-PORT     SWITCH
 0 R  ether1     1500 00:0C:42:A9:AB:87 enabled    none            switch1
 1 RS ether2     1500 00:05:5D:72:A5:0D enabled    none            switch2
 2 RS ether3     1500 00:0C:42:A9:AB:89 enabled    none            switch2
 3    ether4     1500 00:0C:42:A9:AB:8A enabled    none            switch2
 4    ether5     1500 00:0C:42:A9:AB:8B enabled    none            switch2
 5    ether6     1500 00:0C:42:A9:AB:8C enabled    none            switch1
 6 R  ether7     1500 00:0C:42:A9:AB:8D enabled    none            switch1
 7    ether8     1500 00:0C:42:A9:AB:8E enabled    none            switch1
 8    ether9     1500 00:0C:42:A9:AB:8F enabled    none            switch1

比较特别的地方是ether2和ether3均有一个S的标识,这是由于创建了一个bonding逻辑接口,下属口就是ether2和ether3。

bonding

逻辑口,包含了ether2和ether3,这两个口通过两根网线与solaris 11的两个网口相连,构建Link Aggregation。

[admin@MikroTik] > interface bonding print
Flags: X - disabled, R - running
 0  R name="bonding1" mtu=1500 mac-address=00:05:5D:72:A5:0D arp=enabled
      slaves=ether2,ether3 mode=802.3ad primary=none link-monitoring=none
      arp-interval=100ms arp-ip-targets=192.168.172.20 mii-interval=100ms
      down-delay=0ms up-delay=0ms lacp-rate=30secs
      transmit-hash-policy=layer-2-and-3

RouterOS中对802.3ad的实现并不完整,尚未兼容layer-3-and-4这种策略,因此对端也只能设置成L2,L3或L2+L3。

wireless

物理口。此处用的无线网卡是R52n,可以实现2.4G和5G的802.11n。关键在于笔记本的无线网卡,很多仅支持2.4G的802.11n。

[admin@MikroTik] /interface> wireless print
Flags: X - disabled, R - running
 0  R name="wlan1" mtu=1500 mac-address=00:0C:42:66:45:56 arp=enabled
      interface-type=Atheros 11N mode=ap-bridge ssid="RB493G"
      frequency=2412 band=2ghz-b/g/n channel-width=20mhz scan-list=default
      wireless-protocol=802.11 wds-mode=disabled wds-default-bridge=none
      wds-ignore-ssid=no bridge-mode=enabled default-authentication=yes
      default-forwarding=yes default-ap-tx-limit=0
      default-client-tx-limit=0 hide-ssid=no security-profile=default
      compression=no

配置很复杂,还是通过winbox方便一些。即便是再忠诚的命令行拥护者也不能阻挡GUI的诱惑。

IP address

[admin@MikroTik] /ip> address print
Flags: X - disabled, I - invalid, D - dynamic
 #   ADDRESS            NETWORK         INTERFACE
 0   192.168.22.254/24  192.168.22.0    wlan1
 1   192.168.172.254/24 192.168.172.0   bonding1
 2 D 183.254.43.236/32  183.254.0.1     pppoe-out1
 3   192.168.44.254/24  192.168.44.0    ether7

RouterOS跟其它的网络设备配置有些区别,IP地址跟物理口的设置分别在两个不同的菜单中,最终在IP地址菜单中实现两者的捆绑。

DHCP server

此处仅针对wireless提供DHCP服务。

[admin@MikroTik] /ip> dhcp-server print
Flags: X - disabled, I - invalid
 #   NAME        INTERFACE     RELAY     ADDRESS-POOL        LEASE-TIME ADD-ARP
 0   dhcpServer   wlan1                     dhcp                  3d
[admin@MikroTik] /ip> pool print
 # NAME         RANGES
 0 dhcp         192.168.22.1-192.168.22.10

NAT

显然,需要为RouterOS中所有网段提供NAT才能正常访问互联网。

[admin@MikroTik] /ip firewall> nat print
Flags: X - disabled, I - invalid, D - dynamic
 0   chain=srcnat action=masquerade to-addresses=0.0.0.0 out-interface=pppoe-out1

NAT配置位于firewall菜单中,其的选项也很复杂,此处的关键是out-interface需要选择`pppoe-out1`。

Oracle的文档非常详尽,MikroTik的RouterOS也很简单,因此创建Link Aggregation倒是很容易。

然而,两者通过两根网线连接后,死活ping不通,我尝试着更换了各种组合,譬如solaris侧分别设置了Policy: L2、L3和L2/L3,LACPactivity: active、passive和off等各种组合,RouterOS中的link monitor也尝试了arp、mii-1等,均未成功。实在没办法,于是只能采用终极大法:升级固件。

升级之后,终于实现Link Aggregation。手工模拟故障,先在RouterOS上ping solaris11的IP地址,拔掉任意一条网线均不影响两者之间的互联,顶多掉一个包。问题得到解决,solaris 11.1最终设置成了:

# dladm show-aggr aggr0

固件升级

我所买的RB493G的license是Level5,因此可以升级到后续的两个大版本号,比如说现在的RouterOS是V4.16,则最高可以升级到V6。

RouterBOARD的升级非常简单,在winbox界面中,打开file,然后将最新的firmware拖进winbox中,最后在terminal中system reboot重启即可。

自从将Linksys WRT54G换成了RB493G后,一个明显的感觉就是,笔记本通过无线浏览网页的速度比以前快多了,难道是心理作用?