Konfiguracja ARP w routerach MikroTik

Tablica ARP to w dużym skrócie powiązanie adresu IP urządzenia z jego adresem MAC. Wykorzystywana to transmisji pomiędzy urządzeniami w jednej sieci np. LAN. MikroTik pozwala nam ustawić kilka trybów pracy tego protokołu.


Artykuł został przygotowany przy użyciu systemu RouterOS w wersji 6.42.1 (current).

Co to jest ARP ?

No ale od początku czym tak naprawdę jest ARP, czy jest nam potrzebny i po co go konfigurować ?

Wyobraźmy sobie że mamy 2 komputery i udostępniamy pliki na jednym z nich. Komputer 1 ma adres 192.168.1.8 a drugi ma adres 192.168.1.36. Miasta jest 24-bitowa (255.255.255.0) więc komputery są w tej samej sieci. Gdy na pierwszym wpiszemy IP drugiego komputer nie może po prostu wysłać pakietu do niego musi znać jego adres fizyczny (MAC). Ponieważ w sieciach ethernet urządzenia wysyłają do siebie ramki gdzie adresem źródła i celu jest MAC. A dopiero w tej ramce jest pakiet IP z źródłowym i docelowym IP. Tylko jak komputer 1 ma znać MAC’a drugie i vice versa ? Otóż wyła on do wszystkich hostów w sieci (adresem broadcast’owym jest FF:FF:FF:FF:FF:FF ) zapytanie „who has” i podaje IP dla którego chce poznać MAC’a. Host docelowy odpowiada mu swoim adresem MAC i rozpoczyna się transmisja. Powiązania IP z MAC tworzą tablicę ARP (Address Resolution Protocol).

A co w przypadku gdy korzystamy z Internetu ? Przecież komunikacja na adresach MAC działa tylko w obrębie jednej sieci a Internet to już inna sieć. Otóż odpowiedź jest prosta (pokaże ją na przykładzie sieci domowej) nasz komputer wie że do wszystkich sieci oprócz tej w której się znajduje prowadzi jakaś brama. W najprostszej i najczęstszej konfiguracji mamy jedną bramę i jest to interfejs LAN naszego routera. Nasz komputer przy pierwszej próbie wysłania czegoś do Internetu wysyła „who has” z adresem LAN routera i docelowo wysyła ramki na adres MAC LAN’u routera. Router gdy obrobi ten pakiet znowu wysyła go w ramce gdzie docelowym adresem MAC jest adres kolejnego urządzenia w sieci ISP i tak dalej.


ARP w RouterOS

Na routerze MikroTik wchodząc w menu IP->ARP mamy tabelę wszystkich powiązań które zna nasz router.

Natomiast to w jaki sposób router uczy się tych adresów i jak je wykorzystuje konfigurujemy wchodząc w dany interface (bridge, ethernet, vlan, itp).

Pamiętajmy że dodając interfejs do bridge parametr ARP dla interfejsu jest dziedziczony z bridge. Więc w takiej sytuacji konfigurujemy go tylko globalnie na bridge’u.

Mamy do wyboru 5 trybów pracy ARP na danym interfejsie:

  • disable – przy tej konfiguracji MikroTik nie będzie uczył się adresów MAC hostów dostępnych przez dany interfejs. Nie będzie też odpowiadał na zapytania przychodzące z tego interfejsu. Wtedy na każdym urządzeniu podłączonym do MikroTik’a musieli byśmy skonfigurować osobny wpis ARP łączący IP LAN routera z jego adresem MAC. Dobrym zastosowaniem tej opcji tez gdy np. chcemy zrobić najprostszego switcha w bridge’u i nie ma potrzeby aby router analizował co się tam dzieje.
  • enable – jest do domyśle ustawienie każdego nowego interfejsu. Gdy mamy je wybrane router automatycznie będzie uczył się powiązań hostów w sieci i odpowiadał na zapytania „who has”.
  • local-proxy-arp – jest to tryb gdzie router będzie odpowiadał na wszystkie zapytania z sieci swoim adresem MAC. Przykładowo jeśli router ma adres IP z końcówką 1, pierwszy komputer ma z końcówką 2 a trzeci z końcówką 3. To komputery 2 i 3 komunikują się między sobą bezpośrednio. Ponieważ router przy takiej komunikacji nie jest „stroną”. Natomiast po włączeniu local-proxy-arp ramki będą przychodzić przez router (z końcówką 1). Można to wykorzystać do np. filtrowania ruchu.
  • proxy-arp – w tym przypadku nasz router będzie pośrednikiem protokołu ARP. Mówiąc na przykładzie wyobraźmy sobie że mamy sieć lokalną 192.168.100.0/24. LAN routera ma końcówkę 254, serwer DHCP dzieli adresami 1-200. Dodatkowo konfigurujemy serwer VPN i chcemy do tego wykorzystać pozostałe adresy. Tunel nam się spina mamy Internet przez tunel ale nie potrafimy skomunikować się hostami w LAN będąc w tunelu i odwrotnie (przyjmijmy że na remote host w VPN ma adres z końcówką 210). Dzieje się tak ponieważ gdy np. chcemy z komputera w LAN’ie puścić ping do hosta w tunelu nasz komputer wysyła pakiet „who has” z adresem IP .210 ale nikt nie odpowiada. Dlaczego? Ponieważ tunel jest już za naszym MikroTik’iem a rozgłoszenia warstwy drugiej już tam nie dochodzą. I własnie tutaj z pomocą przychodzi nam proxy-arp. Przy tym ustawieniu gdy komputer zapyta o MAC urządzenia w tunelu na to zapytanie odpowie mu MikroTik do którego finalnie wyśle tą ramkę. MikroTik z kolei prześle ją dalej – w tunel.
  • reply-only – ta opcja spodoba się chyba głównie tym którzy lubią mieć porządek w swojej sieci i dokładnie wiedzieć co w niej lata. Otóż to ustawienie powoduje że MikroTik na danym interfejsie odpowiada jedynie na zapytania do którym ma zdefiniowane pary w IP->ARP, nie tworzy nowych dynamicznie. Ciekawym przykładem zastosowania tej opcji jest wymuszenie na klientach routera aby pobierali adresy z DHCP zamiast ustawiali je statyczne. Robimy to zmieniając opcję ARP na reply-only oraz w konfiguracji serwera DHCP zaznaczyć „add arp fo leases”. Wtedy wpis do tablicy ARP powstanie po pobraniu przez komputer adresu IP i wygaśnie automatycznie gdy skończy się dzierżawa adresu na serwerze DHCP.