Skip to content
Aug 5 / Greg

Mikrotik RB250GS – 5 Port Gigabit Switch

This little Mikrotik has the same form factor as the 750/750G. It is a 5 porter that I was able to get your standard gigabit speeds through…nothing remarkable there. So why should I buy one?

First, they are shipped to your door for around $40. Not a bad price for a small managed gig switch.

Second it has some interesting features 😉 It runs a new OS called Switch OS, SwOS(here’s the wiki on it). SwOS is only accessible via a web browser. My switch came shipped with OS v1.0. I went ahead and installed 1.1. When upgrading from 1.0 you upload the new OS, then hard reboot the switch. When it comes back up it will be running the new version.

On the system setting there is no entry for subnet mask or default gateway. The switch will simply respond to whatever IP contacts it. What this tells me is that the switch can’t dump any messages out…I really wanted syslog messages out of this guy. It is, however, accessible via SNMP.

Link Screen:

Enable/disable, interface settings etc.


It doesn’t appear as if you can manipulate the MTU on the switch, which probably means no jumbo frame support(*This will be added in version 1.2 with MTU up to 9000*)…which is something I’ve come to expect from a managable gig switch. As a side note, when pinging the switch a max MTU into the CPU of the switch is 1272…not important, but interesting.

Statistics Screen:

Very decent status section


The status screen covers standard errors, counters on broadcast and unicast, but has some additional entries not commonly seen. It keeps counters on packets of varying sizes as well as fragments.

Forwarding Screen:

The forwarding section allows you to limit which ports can communicate with other ports. Somewhat like Cisco’s private VLANs.

Port lock prevents MACs from being learned on a port (you would need to do manual entries). Lock on first option allows the switch to only learn the first mac that shows up on the port. This would only be useful for users without IP phones.

Standard mirroring.

Bandwidth limit…I LIKE THIS FEATURE! Hardware rate limiting is missing from a lot of low end manageable switches. The values are expressed in bps.

Storm control, both broadcast and unicast. This is represented as about 20 options ranging from 1k to 1 million.

VLANs Screen:

Setting what vlans are on the trunk ports


This screen basically creates the vlan database. The ports you check on this screen send the tagged packets down these ports…you are telling the switch which ports are trunked and what vlans traverse these trunks. These are tagged ports. You don’t need to set a tag on ports that will only be access.

VLAN Screen:

vlan powers activate!


This page is where you configure ports to trunk or be access.
Vlan modes vary. You can accept tagged packets. You can drop untagged packets. You can remark all packets with different vlan tag. You can accept untagged packets into the native vlan. Pretty robust feature set.

To have a trunk port first define the vlans in the vlans section, then here on the vlan screen set the port to enable or some derivative.

If you want a standard access port set the default vlan to the vlan you want the traffic to head to, set the mode to strict, then set the vlan header to “add if missing”.

Hosts Screen:

Your standard mac address table

ACL Screen:

This is a filter table. You can get pretty crazy with this thing. You set specific ports that macs/ip addresses are allowed to be sourced from or travel to. If you want to drop a source mac, specify the mac address, then hit the redirect check box, but don’t specify an interface. Another interesting thing to note is the fact that there is the option to on the fly set or reset the VLAN ID of a frame to whatever you want…pretty wacky. If you could also specify a port you could do some DHCP filtering…which would be NICE. Some DHCP rogue mitigation would be nice.

This would make for a decent little switch with gig speeds. It has some interesting features, though I would like to see some spanning tree and syslog exporting. I also like how it shows up in Mikrotik neighbors.

What features would you guys like to see/what would you guys like to use this for?

Thanks to Balticnetworks for supplying the review sample.

10 Comments

leave a comment
  1. JJ / Aug 5 2010

    Good review. Do you see this as a product they scale way up in the future?

  2. JJ / Aug 5 2010

    Its a good thing that it is “Smarter than Smart” according to Baltic hehehe

  3. Greg / Aug 5 2010

    Better than bad, it’s good?

  4. Greg / Aug 5 2010

    Who knows? I know they have some sorely needed updates, but it seems they are working on it.

  5. Justin / Aug 5 2010

    great review

  6. Greg / Aug 5 2010

    Thanks sir.

  7. Jacob / Aug 6 2010

    This looks good, and I love Mikrotik stuff, but a 5-port switch? Hopefully, MT is working on 12- and 24-port models. That would really pique my interest.

  8. Greg / Aug 6 2010

    Jacob,

    I think that’s pretty much the consensus. 🙂

    Though they need to cleanup the trunked Vs access port configuration. It is somewhat confusing and there really isn’t solid documentation on it. As I mentioned above, version 1.2 is on its way and hopefully they will address the issues in the new release.

  9. Rob / Aug 6 2010

    Is SNMP read only on these things? These would solve a NAC problem we have if we could set VLAN id’s based on MAC learned.

  10. Greg / Aug 6 2010

    I believe that it is read only at the moment…yep, I just tested. You can only read.

    This is what a walk provides:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    
    SNMPv2-MIB::sysDescr.0 = STRING: RB250G
    SNMPv2-MIB::sysObjectID.0 = OID: SNMPv2-SMI::enterprises.14988.2
    DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (12943) 0:02:09.43
    SNMPv2-MIB::sysContact.1 = STRING: 
    SNMPv2-MIB::sysName.1 = STRING: MikroTik
    SNMPv2-MIB::sysLocation.1 = STRING: 
    SNMPv2-MIB::sysServices.0 = INTEGER: 2
    IF-MIB::ifNumber.0 = INTEGER: 5
    IF-MIB::ifIndex.1 = INTEGER: 1
    IF-MIB::ifIndex.2 = INTEGER: 2
    IF-MIB::ifIndex.3 = INTEGER: 3
    IF-MIB::ifIndex.4 = INTEGER: 4
    IF-MIB::ifIndex.5 = INTEGER: 5
    IF-MIB::ifDescr.1 = STRING: Port1
    IF-MIB::ifDescr.2 = STRING: Port2
    IF-MIB::ifDescr.3 = STRING: Port3
    IF-MIB::ifDescr.4 = STRING: Port4
    IF-MIB::ifDescr.5 = STRING: Port5
    IF-MIB::ifType.1 = INTEGER: ethernetCsmacd(6)
    IF-MIB::ifType.2 = INTEGER: ethernetCsmacd(6)
    IF-MIB::ifType.3 = INTEGER: ethernetCsmacd(6)
    IF-MIB::ifType.4 = INTEGER: ethernetCsmacd(6)
    IF-MIB::ifType.5 = INTEGER: ethernetCsmacd(6)
    IF-MIB::ifMtu.1 = INTEGER: 1500
    IF-MIB::ifMtu.2 = INTEGER: 1500
    IF-MIB::ifMtu.3 = INTEGER: 1500
    IF-MIB::ifMtu.4 = INTEGER: 1500
    IF-MIB::ifMtu.5 = INTEGER: 1500
    IF-MIB::ifSpeed.1 = Gauge32: 0
    IF-MIB::ifSpeed.2 = Gauge32: 0
    IF-MIB::ifSpeed.3 = Gauge32: 0
    IF-MIB::ifSpeed.4 = Gauge32: 150
    IF-MIB::ifSpeed.5 = Gauge32: 0
    IF-MIB::ifPhysAddress.1 = STRING: 0:c:42:4a:cb:92
    IF-MIB::ifPhysAddress.2 = STRING: 0:c:42:4a:cb:92
    IF-MIB::ifPhysAddress.3 = STRING: 0:c:42:4a:cb:92
    IF-MIB::ifPhysAddress.4 = STRING: 0:c:42:4a:cb:92
    IF-MIB::ifPhysAddress.5 = STRING: 0:c:42:4a:cb:92
    IF-MIB::ifAdminStatus.1 = INTEGER: up(1)
    IF-MIB::ifAdminStatus.2 = INTEGER: up(1)
    IF-MIB::ifAdminStatus.3 = INTEGER: up(1)
    IF-MIB::ifAdminStatus.4 = INTEGER: up(1)
    IF-MIB::ifAdminStatus.5 = INTEGER: up(1)
    IF-MIB::ifOperStatus.1 = INTEGER: down(2)
    IF-MIB::ifOperStatus.2 = INTEGER: down(2)
    IF-MIB::ifOperStatus.3 = INTEGER: down(2)
    IF-MIB::ifOperStatus.4 = INTEGER: up(1)
    IF-MIB::ifOperStatus.5 = INTEGER: down(2)
    IF-MIB::ifLastChange.1 = Timeticks: (0) 0:00:00.00
    IF-MIB::ifLastChange.2 = Timeticks: (0) 0:00:00.00
    IF-MIB::ifLastChange.3 = Timeticks: (0) 0:00:00.00
    IF-MIB::ifLastChange.4 = Timeticks: (4607) 0:00:46.07
    IF-MIB::ifLastChange.5 = Timeticks: (4445) 0:00:44.45
    IF-MIB::ifInOctets.1 = Counter32: 0
    IF-MIB::ifInOctets.2 = Counter32: 0
    IF-MIB::ifInOctets.3 = Counter32: 0
    IF-MIB::ifInOctets.4 = Counter32: 13108
    IF-MIB::ifInOctets.5 = Counter32: 3183
    IF-MIB::ifInUcastPkts.1 = Counter32: 0
    IF-MIB::ifInUcastPkts.2 = Counter32: 0
    IF-MIB::ifInUcastPkts.3 = Counter32: 0
    IF-MIB::ifInUcastPkts.4 = Counter32: 70
    IF-MIB::ifInUcastPkts.5 = Counter32: 0
    IF-MIB::ifInNUcastPkts.1 = Counter32: 0
    IF-MIB::ifInNUcastPkts.2 = Counter32: 0
    IF-MIB::ifInNUcastPkts.3 = Counter32: 0
    IF-MIB::ifInNUcastPkts.4 = Counter32: 34
    IF-MIB::ifInNUcastPkts.5 = Counter32: 18
    IF-MIB::ifInDiscards.1 = Counter32: 0
    IF-MIB::ifInDiscards.2 = Counter32: 0
    IF-MIB::ifInDiscards.3 = Counter32: 0
    IF-MIB::ifInDiscards.4 = Counter32: 0
    IF-MIB::ifInDiscards.5 = Counter32: 0
    IF-MIB::ifInErrors.1 = Counter32: 0
    IF-MIB::ifInErrors.2 = Counter32: 0
    IF-MIB::ifInErrors.3 = Counter32: 0
    IF-MIB::ifInErrors.4 = Counter32: 0
    IF-MIB::ifInErrors.5 = Counter32: 0
    IF-MIB::ifInUnknownProtos.1 = Counter32: 0
    IF-MIB::ifInUnknownProtos.2 = Counter32: 0
    IF-MIB::ifInUnknownProtos.3 = Counter32: 0
    IF-MIB::ifInUnknownProtos.4 = Counter32: 0
    IF-MIB::ifInUnknownProtos.5 = Counter32: 0
    IF-MIB::ifOutOctets.1 = Counter32: 0
    IF-MIB::ifOutOctets.2 = Counter32: 0
    IF-MIB::ifOutOctets.3 = Counter32: 0
    IF-MIB::ifOutOctets.4 = Counter32: 41441
    IF-MIB::ifOutOctets.5 = Counter32: 117
    IF-MIB::ifOutUcastPkts.1 = Counter32: 0
    IF-MIB::ifOutUcastPkts.2 = Counter32: 0
    IF-MIB::ifOutUcastPkts.3 = Counter32: 0
    IF-MIB::ifOutUcastPkts.4 = Counter32: 109
    IF-MIB::ifOutUcastPkts.5 = Counter32: 0
    IF-MIB::ifOutNUcastPkts.1 = Counter32: 0
    IF-MIB::ifOutNUcastPkts.2 = Counter32: 0
    IF-MIB::ifOutNUcastPkts.3 = Counter32: 0
    IF-MIB::ifOutNUcastPkts.4 = Counter32: 2
    IF-MIB::ifOutNUcastPkts.5 = Counter32: 1
    IF-MIB::ifOutDiscards.1 = Counter32: 0
    IF-MIB::ifOutDiscards.2 = Counter32: 0
    IF-MIB::ifOutDiscards.3 = Counter32: 0
    IF-MIB::ifOutDiscards.4 = Counter32: 0
    IF-MIB::ifOutDiscards.5 = Counter32: 0
    IF-MIB::ifOutErrors.1 = Counter32: 0
    IF-MIB::ifOutErrors.2 = Counter32: 0
    IF-MIB::ifOutErrors.3 = Counter32: 0
    IF-MIB::ifOutErrors.4 = Counter32: 0
    IF-MIB::ifOutErrors.5 = Counter32: 0
    End of MIB
Leave a Comment

 

*