View this PageEdit this Page (locked)Uploads to this PageHistory of this PageHomeRecent ChangesSearchHelp Guide

ARP Proxy - HOWTO

ARP Proxy je sikovne nastaveni Linuxu, ktere spojuje vyhody bridge a routeru. Vyborne se hodi pro pripojovani mensich domacich siti pomoci WiFi. Vysvetlim na modelovem prikladu:

Mame klienta, ktery ma doma vice PC a/nebo ktery nevidi z okna na AP. Musi tedy nainstalovat na pudu PC se dvema kartama: ethernet pro domaci sit, wifi v klient modu pro pripojeni do CZFree. V tomto pripade nemuze pouzit bridge (ten jede jenom na AP nebo WDS) a musi si tedy nechat naroutovat nejakou malou sit, nebo pouzit maskaradu.

Obe reseni maji nevyhody. Maskarada dela potize s nekterymi protokoly (FTP, IRC, ICQ, VoIP,...) a take komplikuje poskytovani sluzeb z domacich pocitacu. Routovani spousty malinkych siti je zase zatez na spravce nodu a instalace Zebry je slozita a v tomto pripde snad i zbytecna.

Zde prichazi do hry ARP Proxy. ARP je protokol pomoci nejz se zjistuje jaka MAC adresa prislusi dane IP adrese, a pouziva se pri komunikaci stroju v ramci jedne LAN. Odpovedi se po urcitou dobu pamatuji v ARP tabulce, na Linuxu ulozene v /proc/net/arp. ARP Proxy je router ktery odpovida na ARP dotazy urcene pro pocitace ke kterym zna cestu, ale prichazejici odjinud nez kam ta cesta vede. Predvedu na konkretni konfiguraci:

Mame AP (wlan0=10.136.10.1), ktere je zaroven default gateway. Ma pridelenou sit 10.136.10.0/24 (C) a ma ji celou naroutovanou na wlan0.
Pro klienty vyhradime sit 10.136.10.0/26 (t.j. 0-63), zbytek rozsekame na male domaci site. Mejme domaci router (wlan0=10.136.10.10, eth0=10.136.10.65) a domaci sit 10.136.10.64/28 (t.j. 64-79). Na wlan0 domaciho routeru se zapne ARP proxy. Domaci sit se nevyskytuje v zadnych routovacich tabulkach. (Samozrejme je v routovacich tabulkach domacich pocitacu protoze jsou do te site pripojeni primo.)

            \|/                    \|/
+----+       |                      |     +--------+           ~~~~~
+ AP +-------+                      +-----| Home   |----------< Hub >
+----+ wlan0 (Master)     wlan0 (Managed) | Router | eth0      ~~~~~
       10.136.10.1           10.136.10.10 +--------+ 10.136.10.65
       255.255.255.0        255.255.255.0            255.255.255.240

Cele to funguje tak, ze vsechny pocitace v siti 10.136.10.0/24 si mysli ze jsou primo propojene (pres AP) a pokud si chcou poslat data pouziji ARP na zjisteni MAC adresy prijemce. Rekneme ze AP (10.136.10.1) chce poslat data na 10.136.10.70 (ktery je v domaci siti). Posle broadcast ARP dotaz, ktery se ale k cilove stanici nedostane protoze je mezi nimi router (10.136.10.10). Router ale sam odpovi na tento dotaz, protoze routu k 10.136.10.70 zna a je na jinem interface (eth0) nez odkud prisel ARP dotaz (wlan0). Data se tedy poslou na MAC adresu routeru, a ten je pak normalne routuje dal.

Opacnym smerem neni ARP Proxy potreba, staci vsem domacim pocitacum nastavit default gw na 10.136.10.65. Domaci stanice lze konfigurovat:
a) rucne natvrdo
b) DHCP serverem na domacim routeru
c) DHCP serverem jinde, pokud na domacim routeru bezi DHCP relay, ale o tom az priste.

To ze ARP Proxy je normalni router znamena taky to ze lze zcela normalne nakonfigurovat firewall a shaper.

No a na zaver ten veledulezity prikaz zapinajici ARP Proxy:
 echo 1 > /proc/sys/net/ipv4/conf/wlan0/proxy_arp

Vladki