modified on 21 lip 2010 at 09:39 ••• 12 089 views

Omówienie MME

Z MikroTik Wiki

Zobacz również Przegląd poleceń MME

MME nie jest zamiennikiem dla OSPF czy RIP. Jego przeznaczeniem jest działanie w sieciach mesh i jest dopasowany do węzłów bezprzewodowych z jednym logicznym interfejsem. Gdy zostanie użyty w tradycyjnych sieciach, nagłówek protokołu będzie większy niż nagłówek RIP.

Spis treści

Wprowadzenie

MME (Mesh Made Easy) jest Mikrotikowym protokołem routingu przeznaczonym do routingu poziomu IP w bezprzewodowych sieciach kratowych. Oparty jest o pomysły zastosowane w protokole B.A.T.M.A.N Better Approach To Mobile Ad-hoc Networking). Zajrzyj do https://www.open-mesh.net aby uzyskać więcej informacji o B.A.T.M.A.N.

MME okresowo rozsyła tak zwane wiadomości inicjujące (originator messages). Informacja o routingu zawarta w wiadomości składa się z adresu IP swojego twórcy i opcjonalnej lity prefiksów IP - ogłoszenia sieci. Jeśli węzeł odbierze wiadomość inicjującą, której jeszcze nie widział, rozsyła ponownie tą wiadomość. (Są inne przypadki, w których wiadomość będzie rozsyłana ponownie - zobacz niżej).

W przeciwieństwie do OLSR lub innych "tradycyjnych" proaktywnych protokołów routingu, MME nie przechowuje informacji o topologii sieci. Z tego powodu MME nie przechowuje tablicy routingu i nie musi tego robić. Zamiast tego przechowuje trasy odebranych pakietów i ich numery sekwencyjne - aby wiedzieć ile pakietów utracono. W ten sposób, ze statystyki wiadomości utraconych dla wszystkich nadawców wiadomości i bliskich sąsiadów, MME może znaleźć najlepszą bramkę do konkretnego miejsca docelowego.

Taki mechanizm działania MME sprawdza się dobrze w mobilnych sieciach mesh:

  • nie jest możliwe ustalenie dokładnej topologii całej sieci, ponieważ się ciągle zmienia;
  • zmiana topologi powoduje ponowne obliczanie tablicy routingu dla wszystkich węzłów w sieci; dla systemów wbudowanych obliczanie tablicy routingu może być bardzo zasobożerne.

Aby uniknąć tych problemów węzeł MME:

  • zajmuje się tylko wyborem najlepszego najbliższego sąsiada na trasie do konkretnego celu;
  • unika obliczania tablicy routingu

Dodatkowe funkcje protokołu MME to: przenosić informację o bramkach z dostępem do Internetu i dynamicznie konfigurować domyślne trasy. Część MME jest odpowiedzialna za coś nazywane "protokół bramki" (the gateway protocol).

Protokół MEE używa protu UDP 1966 dla ruchu wiadomości inicjujących. Protokół bramki używa portu TCP 1968.

Założono, że podczas normalnych operacji wykonywanych przez protokół, duża ilość tych wiadomości będzie tracona z powodu niskiej jakości łącz. To założenie jest ważne jeśli rozmawiamy o nagłówku protokołu. Teoretycznie ilość ruchu generowanego przez protokół jest przynajmniej tak duża jak RIP i dużo większa niż protokołów routingu typu link state (OSPF, OLSR), chyba że topologia sieci ciągle się zmienia.


Strona techniczna

Podstawowe założenia głównego protokołu

Główne funkcje protokołu MME:

  • automatyczne wykrywanie sąsiedniego routera MME (nazywanego "inicjatorem") (włącznie z sąsiadami oddalonymi dalej niż jeden skok);
  • wiadomość inicjująca inicjatora zalewa każdy interfejs co czas określony przez origination-interval;
  • wiadomości inicjujące przesyłane są ponownie w oparciu o kilka prostych reguł;
  • wybór najlepszej bramki dla każdego inicjatora i trasy do niego są rozgłaszane.

Reguły ponownego rozsyłania wiadomości inicjujących:

  • nie są ponownie rozsyłane wiadomości inicjujące pochodzące go siebie
  • nie są ponownie rozsyłane wiadomości mające flagę unidirectional;
  • rozsyłane są ponownie wiadomości pochodzące od bezpośrednich sąsiadów; ponowne rozsyłanie wiadomości z flagą unidirectional są tylko wtedy gdy:
    • relacja z sąsiadem nie jest dwukierunkowa;
    • LUB sąsiad nie jest dla tego węzła najlepszą bramką (tzn. istnieją lepsze, niebezpośrednie ścieżki prowadzące do tego węzła).
  • rozsyłane są wiadomości, które nie są zduplikowane; wiadomość jest uznawana za zduplikowaną jeśli otrzymano wcześniej wiadomość z tym samym numerem sekwencyjnym;
  • zduplikowane wiadomości są rozsyłane ponownie tylko wtedy gdy:
    • wiadomości przybyły od sąsiada, który jest bramką dla inicjatora;
    • TTL pakietu jest równy ostatniemu TTL dla pary sąsiad-inicjator.

MME podejmuje decyzje o routingu w oparciu o więcej niż 64 wiadomości otrzymane, ale ich ilość może być dużo mniejsza w przypadku dużych strat pakietów. Węzeł jest w stanie zidentyfikować ilość utraconych pakietów w oparciu o ich numery sekwencyjne. Im więcej odbieranych wiadomości inicjujących, tym lepsze statystyki posiada węzeł.

Protokół MME nie stosuje logiki wyboru najlepszej trasy. Jeśli ta sama informacja o sieci jest ustawiona na dwóch różnych węzłach, nie ma możliwości odwiedzenia się, który z nich jest lepszy. Obie trasy zostaną umieszczone w tablicy routingu i jedna z nich zostaje wybrana losowo. Taka konfiguracja węzłów nie jest zalecana.

Podstawowe założenia protokołu bramki

Drugą częścią protokołu MME jest protokół wyboru domyślnej bramki. Routery mogą spełniać jedną z dwóch ról. "Gateway server jest węzłem, który służy jako bramka internetowa dla innych routerów. Zazwyczaj oznacza to, że ma on połączenie ethernetowe lub ma inny sposób na wydostanie się z sieci kratowej.

Gateway client jest węzłem, który używa dynamicznej informacji o bramkach do wyjścia poza sieć mesh. Jeśli osiągalnych jest kilka bramek, klient wybiera najlepszą z nich w oparciu o statystyki pakierów, klasę bramki, i wartości parametrów gateway-selection i preferred-gateway. Po wybraniu najlepszego serwera bramkowego klient zestawia połączenie TCP z serwerem. To połączenie jest używane do okresowego wysyłania wiadomości keep-alive. Po zestawieniu połączenia, klient i serwer tworzą dynamiczny interfejs IPIP. Klient dodaje także domyślną trasę przez ten interfejs.

Jeśli serwer przestanie rozgłaszać możliwość działania jako bramki, staje się nieosiągalny, a połączenie TCP i tunel są zamykane po obu stronach. Klient usuwa także trasę domyślną.

Nie zalecamy posiadania domyślneja trasy (tzn. prefiks 0.0.0.0/0) w konfiguracji rozgłaszania MME w sieci.

Format pakietu

Jedynym typem pakietu używanym w MME jest wiadomość inicjująca (originator message). Wiadomość zawiera:

  • IP inicjatora
  • aktualna wartość ttl;
  • numer sekwencyjny;
  • klasę bramki;
  • ogłoszenia hosta i sieci (0..n w prefiksach IP).

Klienci protokołu bramki i serwery wymieniają między sobą również wiadomości keep-alive, ale nie zawierają one żadnych informacji i maja niezdefiniowany format. W tej chwili, wiadomości keep-alive uznawane są za niepoprawne, jeśli zawierają mniej niż 1 i więcej niż 6 oktetów.

Przykłady konfiguracji

Włączenie protokołu na pojedynczym interfejsie:

[admin@I] > /routing mme interface add interface=wlan1

Aby zmienić niektóry atrybuty tras, uzyskane przez MME możesz użyć filtru routingu mme-in.

Przykład:

[admin@MikroTik] > routing filter add chain=mme-in set-routing-mark=mark1

Jeśli chcesz dystrybuować trasy przez MME, dodaj je do sieci MME.

Przykład:

[admin@MikroTik] /routing mme> network add network=1.2.3.0/24
[admin@MikroTik] /routing mme> network p
Flags: X - disabled
 #   NETWORK
 0   1.2.3.0/24

Użycie protokołu bramki

Konfiguracja serwera bramki:

[admin@I] /routing mme> set gateway-class=11

Konfiguracja klienta bramki:

[admin@MikroTik] /routing mme> set gateway-selection=best-statistic

Obserwuj wyniki (na kliencie). Dynamiczny interfejs IPIP powinien być automatycznie dodany:

[admin@MikroTik] > /interface print
Flags: X - disabled, D - dynamic, R - running
 #    NAME                                                         TYPE             MTU
 0  R ether1                                                       ether            1500
 1  R ether2                                                       ether            1500
 2 DR ipip1                                                        ipip             1480

Domyślna trasa, która przechodzi przez ten tunel powinna być dodana automatycznie:

[admin@MikroTik] > /ip route print
Flags: X - disabled, A - active, D - dynamic,
C - connect, S - static, r - rip, b - bgp, o - ospf, m - mme,
B - blackhole, U - unreachable, P - prohibit
 #      DST-ADDRESS        PREF-SRC        G GATEWAY         DISTANCE INTERFACE
 0 ADm  0.0.0.0/0                          r ipip1           130      ipip1