modified on 26 lip 2010 at 11:43 ••• 15 944 views

Możliwości Chipów Switchowych

Z MikroTik Wiki

Spis treści

Wstęp

W tym zagadnieniu opisano właściwości chipów switchowych wbudowanych w RouterOS’y (kompletny zestaw wszystkich właściwości zawierają wersje od 4.0).

Obecnie używa się różnych typów chipów switchowych w Routerboard’ach, które mają różne zestawy cech/właściwości. Większość z nich ma tylko podstawową właściwość Komutacji Portów ("Port Switching"), jednak istnieje kilka posiadających dodatkowe funkcje.

Możliwości chipów switchowych:


CechaAtheros8316Atheros7240ICPlus175DInne
Port Switchingtaktaktaktak
Port Mirroringtaktaktaknie
Host table2k wpisów2k wpisównienie
Vlan table4096 wpisów16 wpisównienie
Rule table32 regułynienienie


Atheros8316 jest obecny w RB450G i RB750G.

Atheros7240 jest obecny w RB750.

ICPlus175D jest obecny w niektórych wersjach RB450 i niektórych RB433.

Wiersz z komendą konfiguracji znajduje się w menu /interface ethernet switch. To menu zawiera listę wszystkich chipów switchowych obecnych w systemie, podobnie jak uwzględniają je niektóre pod-menu. Zagadnienie na liście w menu/interface ethernet switch pokazuje chip’a switchowego w systemie:

[admin@MikroTik] /interface ethernet switch> print
Flags: I - invalid
 #   NAME     TYPE         MIRROR-SOURCE   MIRROR-TARGET
 0   switch1  Atheros-8316 ether2          none

W zależności od typu switch’a, niektóre możliwości konfiguracji są dostępne lub nie.

Właściwości

Port Switching

Właściwości Switching umożliwiają przewodową szybkość ruchu przebiegającego wśród grupy portów, podobnie, jak gdyby porty należały do typowego switch’a ethernetowego. Możesz skonfigurować tę cechę przez ustawienie właściwości "master-port" (portu głównego) dla jednego lub więcej portów w menu /interface ethernet. Port 'master' będzie portem, poprzez który RouterOS będzie komunikował się ze wszystkimi portami w grupie. Interfejsy, które mają określony port główny, staja się nieaktywne – ani nie dochodzi do nich ruch, ani żaden ruch nie może zostać wysłany na zewnątrz.

Rozważając przykład router’a z 5 interfejsami ethernetowymi:

[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:3E:5D:BB enabled
 1    ether2    1500  00:0C:42:3E:5D:BC enabled    none             switch1
 2    ether3    1500  00:0C:42:3E:5D:BD enabled    none             switch1
 3    ether4    1500  00:0C:42:3E:5D:BE enabled    none             switch1
 4 R  ether5    1500  00:0C:42:3E:5D:BF enabled    none             switch1

Konfigurujesz switch zawierający 3 porty: ether3, ether4 i ether5:

[admin@MikroTik] /interface ethernet> set ether4,ether5 master-port=ether3
[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:3E:5D:BB enabled
 1    ether2    1500  00:0C:42:3E:5D:BC enabled    none             switch1
 2 R  ether3    1500  00:0C:42:3E:5D:BD enabled    none             switch1
 3  S ether4    1500  00:0C:42:3E:5D:BE enabled    ether3           switch1
 4 RS ether5    1500  00:0C:42:3E:5D:BF enabled    ether3           switch1

ether3 jest teraz portem głównym grupy. Uwaga: możesz zaobserwować, że poprzednio był wykrywany link tylko na ether5, a teraz, kiedy ether3 ma status 'master', flaga ‘running’ jest propagowana w kierunku portu głównego.

Generalnie, uzyskujesz taką samą konfigurację jak wówczas, gdybyś miał RouterBoard’a z 3 interfejsami ethernetowymi, gdzie ether3 jest podłączony do switch’a ethernetowego, który ma 4 porty:

Image:switch2.png

Ogólny schemat RouterBoard’a z chipem switch’owym, posiadającym 5-portowy chip:

Plik:Switch3.png

Tutaj możesz zauważyć, że pakiet, który jest uzyskiwany przez jeden z portów, zawsze przechodzi najpierw przez switch logiczny. Switch logiczny decyduje, do którego portu powinien trafić pakiet. Przesyłając pakiet wyżej ('up') lub przekazując go do RouterOS’a, mówimy, że wysyłamy go do portu 'cpu' chip’a switch’owego. To oznacza, że w tym miejscu switch przekazuje dalej pakiet do portu cpu, gdzie pakiet ten zaczyna być przetwarzany przez RouterOS jako pakiet przychodzący z typowych interfejsów. Kiedy pakiet nie musi iść do portu cpu, jest całkowicie utrzymywany przez switch logiczny, dzięki czemu nie wymaga żadnych cyklów cpu i przetwarzany jest z szybkością przewodową dla jakiegokolwiek rozmiaru ramki.

Port Ether1 w RB450G posiada cechę, która pozwala na usuwanie /dodawanie do grupy switch’ów domyślnych. Domyślnie, ether1 zostanie dołączony do grupy switch’ów. Konfiguracja ta, może być zmieniona za pomocą:

  • all-port-switch=yes/no -

"yes" oznacza, ze port ether1 jest częścią switch’a i wspiera grupowanie switch’owe, oraz wszystkie inne zaawansowane właściwości Atheros8316, łącznie z rozszerzonymi statystykami. (/interface ethernet print stats).

"no" oznacza, ze ether1 nie jest częścią switch’a, skutecznie czyniąc go samodzielnym portem ethernetowym. Sposób ten, zwiększa jego przepustowość do innych portów w trybie mostkowym (‘bridged’) i trasowanym (‘routed’) , ale uniemożliwia switching tego portu.

Plik:Switch4.png

Port Mirroring

Port mirroring pomaga switch’owi 'wyczuwać’ (‘sniff’) cały ruch, jaki dochodzi i wychodzi z wybranego portu (mirror-source), oraz wysyła kopię tych pakietów do innego portu docelowego (mirror-target). Właściwość ta może być stosowana do prostego tworzenia urządzenia nasłuchującego, które przyjmuje cały ruch, który wchodzi i wychodzi z danego portu. Zauważ, że porty mirror-source i mirror-target muszą należeć do tego samego switch’a. (Zobacz, który port należy do którego switch’a korzystając z menu: /interface ethernet switch port). Również mirror-target może posiadać specjalną wartość 'cpu', która oznacza, że 'wyczuwane' pakiety powinny zostać wysłane z portu cpu chipa switchowego. Port mirroring działa niezależnie od grup switchingu, które zostały zainstalowane lub nie.

Host Table

Tablica reprezentuje wewnętrzny adres mac chipów switchowych służący do mapowania portu. Może zawierać dwa rodzaje wejść: dynamiczne i statyczne. Dynamiczne wejścia są dodawane automatycznie, co nazywa się także procesem uczenia: kiedy chip switchowy otrzymuje pakiet z pewnego portu, dodaje adres MAC „X” źródła pakietu, a port otrzymany pakiet przekazuje do tablicy host, więc kiedy pakiet przychodzi do przeznaczonego mu adresu mac X to wiemy, do którego portu powinien skierować się pakiet. Jeśli przeznaczonego adresu mac nie ma w tablicy host, wówczas przekazuje pakiet do wszystkich portów grupy. Dynamiczne wejścia zabierają około 5 minut czasu by wyjść. Funkcja uczenia jest udostępniona tylko w portach, które są skonfigurowane jako część grupy switch’owej. Nie możesz więc obserwować dynamicznych wejść, jeśli nie określiłeś 'master-portów'. Możesz także dodawać statyczne wejścia, które przejmują dynamikę, jeśli istnieje wpis dynamiczny z tym samym adresem mac. Poprzez dodanie statycznego wejścia, możesz uzyskać dostęp do kilku innych funkcji, kontrolowanych przez następujące parametry:

  • copy-to-cpu=yes/no - pakiet może być skopiowany i wysłany do portu cpu
  • redirect-to-cpu=yes/no - pakiet może być przekierowany do portu cpu
  • mirror=yes/no - pakiet może zostać skopiowany i wysłany do portu mirror-target konfigurowanego w "/interface ethernet switch"
  • drop=yes/no - pakiet wraz z danym adresem mac, pochodzącym z pewnych portów, może zostać porzucony

możliwości copy-to-cpu, redirect-to-cpu, mirror actions są dostepne dla pakietów, których jest taki sam jak adres mac zapisany w tablicy hostów. Akcja porzucania (‘drop’) wykonywana jest na pakietach, których źródłowy adres mac pokrywa się z adresem mac zapisanym w tablicy hostów.

Inną możliwością zastosowania statycznych wpisów jest możliwość mapowania adresów mac do więcej niż jednego portu, łącznie z portem 'cpu'.

Vlan Table

Tablice Vlan precyzują pewne reguły przekazywania pakietów posiadających specyficzny znacznik 802.1q. Te reguły mają wyższy priorytet niż grupy switchowe, konfigurowane z użyciem właściwości 'master-port'. Zwykle tablica zawiera wpisy, które mapują specyficzne identyfikatory vlan tag do grupy jednego lub więcej portów. Pakiety z tagami vlan opuszczają chip switchowy przez 1 lub więcej portów, które są zainstalowane w odpowiednim wpisie tablicy. Układ logiczny, który kontroluje, jak pakiety z tagami vlan są traktowane, jest kontrolowany przez parameter vlan-mode, który można zmieniać dla każdego portu switchowego oddzielnie, w menu /interface ethernet switch port . Tryb vlan (vlan-mode) może przyjmować następujące wartości:

  • disabled - ignoruje tablicę vlan, traktuje pakiet z tagami vlan, jak gdyby nie zawierały taga vlan.
  • fallback - tryb domyślny –traktuje pakiety posiadające tag vlan ale nie posiadające wpisu w tablicy vlan, tak jak pakiety nie posiadające tagu vlan. Pakiety z tagami vlan, posiadające wpisy w tablicy, ale ich port źródłowy nie pokrywa się z portem z tablicy vlan, NIE są porzucane.
  • check - porzuca pakiety z tagiem vlan który nie jest obecny tabelce vlan. Pakiety z tagami vlan, posiadające wpisy w tablicy, ale ich port źródłowy nie pokrywa się z portem z tablicy vlan, NIE są porzucane.
  • secure - porzuca pakiety z tagiem vlan który nie jest obecny w tabelce vlan. Pakiety z tagami vlan, posiadające wpisy w tablicy, ale ich port źródłowy nie pokrywa się z portem z tablicy vlan, SĄ porzucane.

ID Vlan tag bazujący na forwardingu, bierze także pod uwagę adresy mac nauczone lub dodane ręcznie do tablicy hostów.

Pakiety bez taga vlan są traktowane jak gdyby miały identyfikator tag vlan id = 0. To oznacza, że jeśli „vlan-mode” przyjmuje wartości „check lub secure”, to przekazywane będą pakiety bez ustawionego tagu vlan. W takim przypadku musisz dodać specjalny wpis do tablicy vlan z identyfikatorem vlan id, ustawionym na 0.

Rule Table

Tablica reguły jest potężnym narzędziem pozwalającym na filtrowanie pakietu z szybkością z jaką pakiety są transmitowane przez przewody, przesyłanie, tagowanie vlan, bazując na procedurze dopasowywania pól nagłówków ramek warstw L2,L3,L4.

Każda reguła zawiera część dopasowującą i część akcji (‘action’). Część akcji jest kontrolowana przez następujące parametry:

  • copy-to-cpu=yes/no - kopiuje (klonuje) dopasowane pakiety i wysyła do portu cpu;
  • redirect-to-cpu=yes/no - przekierowuje dopasowane pakiety do portu cpu;
  • mirror=yes/no - kopiuje dopasowane pakiety i wysyła je do portu mirror-target;
  • new-dst-ports - jeśli ten parametr jest ustawiony, to wymusza ściśle określony port przeznaczenia, liczne porty są dozwolone, łącznie z portem cpu. Nieoczywistą cechą tego parametru jest przekazywanie pustej listy portów w celu zrzucania dopasowanych pakietów;
  • new-vlan-id - jeśli sprecyzowany, zmienia identyfikator vlan tag id, lub dodaje nowy tag vlan, pakiet wcześniej nie posiadał tagu vlan;
  • new-vlan-priority - jeśli sprecyzowany, zmienia priorytet bitów taga vlan;

Dopasowana część jest kontrolowana przez resztę następujących parametrów:

  • ports - dobiera port, z którego pakiet przyszedł (możliwe jest użycie wielu portów);
  • Dopasowania warstwy mac (‘mac layer matchers’)
    • dst-mac-address - dopasowuje docelowy adres mac i maskę;
    • src-mac-address - dopasowuje źródłowy adres mac i maskę;
    • vlan-header - dopasowuje przez obecność nagłówka vlan;
    • vlan-id - dopasowuje przez identyfikator taga vlan;
    • vlan-priority - dopasowuje przez priorytet w tagu vlan;
    • mac-protocol - dopasowuje przez protokół mac (pomija tagi vlan, jeśli są obecne jakiekolwiek);
  • Dopasowania IP (‘ip matchers’)
    • dst-address - dopasowuje przez docelowy IP i maskę;
    • src-address - dopasowuje przez źródłowy IP i maskę;
    • dscp - dopasowuje przez pole IP dscp;
    • protocol - dopasowuje przez protokół IP;
  • Dopasowania IPv6 (‘Ipv6 matchers’)
    • dst-address6 - dopasowuje przez docelowy ip i maskę;
    • src-address6 - dopasowuje przez źródłowy ip i maskę;
    • flow-label - dopasowuje przez ipv6 etykietę przepływu;
    • traffic-class - dopasowuje przez ipv6 klasę ruchu;
    • protocol - dopasowuje przez protokół ip;
  • Dopasowania L4 (‘L4 matchers’)
    • src-port - dopasowuje przez zakres portu źródłowego tcp/udp;
    • dst-port - dopasowuje przez zakres portu przeznaczenia tcp/udp;

Specyficzne elementy dopasowujące IPv4 i IPv6 nie mogą być obecne w tych samych regułach. Menu zawiera uporządkowaną listę reguł tak jak w /ip firewall filter. W związku z faktem, że tablica reguł jest całkowicie przetwarzana w hardware chipów switchowych, istnieje ograniczenie odnośnie ilości reguł, jakie możesz posiadać. Zależnie od ilości elementów dopasowujących, których używasz w twoich regułach, ilość aktywnych reguł może różnić się od 8 do 32 dla chipa switchowego Atheros8316. Możesz zawsze wykonać: /interface ethernet switch rule print po zmodyfikowaniu twojego zestawu reguł, by zobaczyć, że żadna reguła na końcu listy nie jest 'invalid', co oznacza, że reguły te nie zmieściły się w chipie switch’a.