MikroTik use case: switch layer 2

Introduzione

In questo articolo vi mostrerò come sia possibile configurare un
dispositivo che esegue RouterOS affinché si comporti come un
normalissimo switch layer 2 e cioè, per intenderci, come alcuni di
quegli switch “stupidi” (unmanaged, non gestiti) che comprate
al supermercato quando avete bisogno di collegare più apparati all’interno
della stessa LAN. Parliamo in questo caso di collegamento con cavo
Ethernet, tralasciando per ora i client wireless.

L’effetto che vogliamo ottenere è paragonabile a quello di avere un nuovo
switch Cisco Catalyst L2 (ad esempio un classico 2960) senza alcuna
configurazione aggiuntiva, quindi
senza VLAN (fatta eccezione per la VLAN_1) che Cisco tratta come VLAN
nativa (non taggata). Quindi, sempre per ora, non ci preoccupiamo di VLAN
e di tagging dot1Q.

catalyst#show interfaces status

Port      Name               Status       Vlan       Duplex  Speed Type
Fa0/1                        notconnect   1            auto   auto 10/100BaseTX
Fa0/2                        notconnect   1            auto   auto 10/100BaseTX
Fa0/3                        notconnect   1            auto   auto 10/100BaseTX
Fa0/4                        notconnect   1            auto   auto 10/100BaseTX
Fa0/5                        notconnect   1            auto   auto 10/100BaseTX
Fa0/6                        notconnect   1            auto   auto 10/100BaseTX
Fa0/7                        notconnect   1            auto   auto 10/100BaseTX
Fa0/8                        notconnect   1            auto   auto 10/100BaseTX
Fa0/9                        notconnect   1            auto   auto 10/100BaseTX
Fa0/10                       notconnect   1            auto   auto 10/100BaseTX
Fa0/11                       notconnect   1            auto   auto 10/100BaseTX
Fa0/12                       notconnect   1            auto   auto 10/100BaseTX
Fa0/13                       notconnect   1            auto   auto 10/100BaseTX
Fa0/14                       notconnect   1            auto   auto 10/100BaseTX
Fa0/15                       notconnect   1            auto   auto 10/100BaseTX
...
...

Prerequisiti

In questo articolo si assume che il vostro dispositivo RouterOS sia stato resettato e che non contenga nessun tipo di configurazione predefinita, come illustrato in un articolo precedente.

Stato delle interfacce

Nella situazione corrente, con il dispositivo privo di qualsivoglia configurazione, ciascuna delle sue interfacce è utilizzabile singolarmente come interfaccia layer-3, un po’ come avviene su un normale router Cisco, come ad esempio un classico Cisco 1841.

C1841#show ip interface brief
Interface                  IP-Address      OK? Method Status                Protocol
FastEthernet0/0            unassigned      YES unset  administratively down down    
FastEthernet0/1            unassigned      YES unset  administratively down down    

La differenza tra il Cisco e il dispositivo RouterOS è che, per default, il primo ha le interfacce spente/disabilitate mentre il secondo ce le ha accese.

[admin@MikroTik] > /interface print
Flags: D - dynamic, X - disabled, R - running, S - slave
 #     NAME                                TYPE       ACTUAL-MTU L2MTU  MAX-L2MTU
 0     ether1                              ether            1500  1598       2028
 1  R  ether2                              ether            1500  1598       2028
 2     ether3                              ether            1500  1598       2028
 3     ether4                              ether            1500  1598       2028
 4     pwr-line1                           ether            1500  1598       2028
 5  X  wlan1                               wlan             1500  1600       2290

L’interfaccia ether2 è quella alla quale è attualmente connesso il mio PC per poter gestire il dispositivo, ed infatti è in stato running (R).

Bridging

Affinché il dispositivo si comporti da switch, dobbiamo “raggruppare” tutte le interfacce fisiche (o solo alcune, se non ci servono tutte) in un unico broadcast domain. Questo si fa definendo una interfaccia logica di tipo bridge, e stabilendo quali interfacce fisiche devono farne parte.

[admin@MikroTik] > /interface bridge add name="bridge-test" protocol-mode=rstp priority=8000 fast-forward=yes comment="Bridge di esempio"

Abbiamo così creato un bridge, al quale abbiamo dato il nome di “bridge-test”; su questo bridge abbiamo anche abilitato il protocollo RSTP (Rapid Spanning Tree Protocol), assegnando una bridge-priority di 8000H (vale a dire 32768), il valore di default di molti switch commerciali. Del protocollo STP parleremo probabilmente in un articolo dedicato.

Ora dobbiamo però decidere quali interfacce fisiche dovranno fare parte del bridge appena definito.

[admin@MikroTik] /interface bridge port>
[admin@MikroTik] /interface bridge port> add interface=ether1 bridge=bridge-test                      
[admin@MikroTik] /interface bridge port> add interface=ether2 bridge=bridge-test  
[admin@MikroTik] /interface bridge port> add interface=ether3 bridge=bridge-test  
[admin@MikroTik] /interface bridge port> add interface=ether4 bridge=bridge-test  

A questo punto le interfacce ethernet da 1 a 4 sono parte dello stesso bridge, e il nostro dispositivo RouterOS funzionerà come uno switch, permettendo ai client connessi alle diverse interfacce di “vedersi” a layer-2.

[admin@MikroTik] /interface bridge port> print
Flags: X - disabled, I - inactive, D - dynamic, H - hw-offload
 #     INTERFACE        BRIDGE          HW  PVID PRIORITY  PATH-COST INTERNAL-PATH-COST    HORIZON
 0 I H ether1           bridge-test     yes    1     0x80         10                 10       none
 1   H ether2           bridge-test     yes    1     0x80         10                 10       none
 2 I H ether3           bridge-test     yes    1     0x80         10                 10       none
 3 I H ether4           bridge-test     yes    1     0x80         10                 10       none

L’hardware offload è una caratteristica introdotta solo nelle versioni più recenti di RouterOS e consente di ottenere prestazioni migliori rispetto all’implementazione software tradizionale.

Indirizzo IP

Ora che abbiamo un’interfaccia logica alla quale appartengono le diverse
interfacce ethernet del dispositivo, possiamo anche associare un indirizzo
IP a questa interfaccia logica affinché il dispositivo sia raggiungibile
semplicemente connettendo una qualunque delle interfacce che compongono il
bridge. Questa operazione corrisponde, grossomodo, alla configurazione della
SVI (Switch Virtual Interface) sulla VLAN nativa di uno switch Cisco.

[admin@MikroTik] > /ip address add address=10.64.1.201/24 interface=bridge-test comment="Indirizzo management routerboard"

Ora il nostro dispositivo è raggiungibile e gestibile anche a layer-3, ad esempio via telnet, ssh, Webfig o con la stessa WinBox indicando l’indirizzo IP invece del MAC address. Attenzione però al fatto che, in questo momento, non è stata fatta nessuna operazione di messa in sicurezza del dispositivo; in particolare il dispositivo accetta connessioni da chiunque, su tutti i protocolli disponibili, e non ha ancora una password di accesso impostata:

nmap -p22,23,80 10.64.1.201

Starting Nmap 7.60 ( https://nmap.org ) at 2020-05-29 17:04 CEST
Nmap scan report for 10.64.1.201
Host is up (0.00023s latency).

PORT   STATE SERVICE
22/tcp open  ssh
23/tcp open  telnet
80/tcp open  http


telnet 10.64.1.201
Trying 10.64.1.201...
Connected to 10.64.1.201.
Escape character is '^]'.
Login: admin
Password:


  MMM      MMM       KKK                          TTTTTTTTTTT      KKK
  MMMM    MMMM       KKK                          TTTTTTTTTTT      KKK
  MMM MMMM MMM  III  KKK  KKK  RRRRRR     OOOOOO      TTT     III  KKK  KKK
  MMM  MM  MMM  III  KKKKK     RRR  RRR  OOO  OOO     TTT     III  KKKKK
  MMM      MMM  III  KKK KKK   RRRRRR    OOO  OOO     TTT     III  KKK KKK
  MMM      MMM  III  KKK  KKK  RRR  RRR   OOOOOO      TTT     III  KKK  KKK

  MikroTik RouterOS 6.46.6 (c) 1999-2020       http://www.mikrotik.com/

[?]             Gives the list of available commands
command [?]     Gives help on the command and list of arguments

[Tab]           Completes the command/word. If the input is ambiguous,
                a second [Tab] gives possible options

/               Move up to base level
..              Move up one level
/command        Use command at the base level


[admin@MikroTik] >

L’hardening del dispositivo sarà oggetto di un articolo dedicato. Per il momento godetevi il vostro nuovo switch 4 porte 🙂

Leave a Reply

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.