On Thu, Oct 03, 2002 at 10:41:45AM +0300, Adrian Penisoara wrote: [snip] > > > * in /etc/rc.conf: > > > ifconfig_xl0="inet 10.0.0.1 netmask 255.255.255.0 -arp" > > > * in /etc/rc.local: > > > arp -f /etc/mac-list.txt > > > choparp xl0 <MAC_xl0> 10.0.0.1 0xffffffff & > > > Daca mai testeaza cineva solutia as vrea sa aud de rezultate! Asa, am mai testat inca o data de la inceput toata stratagema. Concluzia mea a fost ca choparp pur si simplu se incapatineaza sa functioneze daca in loc de net_addr pui server_addr (man 8 choparp). La inceput imi dadea conflicte dintr-o greseala de a mea. Deci imho, choparp nu merge. Daca cumva ti-a mers tie ady, spune-mi exact ce ai facut si incerc din nou. Am testat pe mai multe sisteme (versiuni != de freebsd).
Totusi am gasit alta solutie (solutii?). Intai vreau sa explic rapid celor care nu au inteles de ce este nevoie de toti pasii... Dupa cum se stie, ARP se foloseste pentru a afla MAC stiind un IP. Acest lucru se realizeaza in modul urmator: - statia X transmite un REQUEST ARP pe retea (broadcast) in care se intreaba "cine e proprietarul IPului y.y.y.y". in header-ul pachetului vor fi trecute adresa IP si MAC a statiei X(x.x.x.x), respectiv adresa IP a statiei Y (y.y.y.y) - toate statiile primesc cererea, o analizeaza, iar statia al carei IP este identic cu cel din cerere (Y la noi) raspunde printr-un REPLY ARP catre statia X, in care statia Y isi transmite adresa MAC. - statia X primeste pachetul, invata adresa MAC a statiei Y, si fiindca pachetul e de tip REPLY ARP, abandoneaza orice alta comunicatie ARP cu statia Y. "handshake"-ul a fost realizat :P Acum, daca o interfata se configureaza cu -arp, atunci interfata respectiva va ignora TOATE pachetele ARP, adica nu va mai adresa nicodata REQUEST-uri ARP pentru statiile ale caror adrese MAC nu le cunoaste, respectiv nu va mai raspunde la REPLY-uri ARP catre statiile care nu-i cunosc adresa MAC. Comanda "arp -f" va incarca o in memoria ARP o tabela statica, citita din fisierul /etc/ethers. De aici inainte serverul va putea comunica cu statiile al caror IP si MAC a fost trecut in ethers, dar.... ... intervine o problema... statiile NU cunosc adresa MAC a serverului. Ele o sa adreseze REQUEST-uri ARP (broadcast) si o sa intrebe "cine are adresa IP a serverului". Dar cum interfata serverului a fost configurata cu -arp, serverul nu va mai raspunde la REPLY-uri ARP, deci statiile nu vor primi adresa MAC a serverului, deci comunicatia nu va fi posibila. De aceea este nevoie de choparp (pasul 3). Bun, acum solutiile: 1) solutia nasoala a) deci interfata serverului sa fie configurata -arp, respectiv sa se incarce in memoria arp tabela din /etc/ethers (arp -f /etc/ethers) b) pe fiecare statie sa fie creat un fisier ethers (\windows\system[32]\drivers\etc parca) in care sa existe o intrare pentru server Astfel toate statiile vor putea comunica cu serverul pentru ca ii vor invata adresa MAC din tabela ethers chiar la bootare. Acest lucru e mai greu de administrat dar cu ceva utilitare gen deep-freeze va merge foarte bine la Internet Caffe-uri. 2) solutia mai "inteligenta" a) exact pasul a) de la 1) b) un server auxiliar sau o statie care sa aiba creat un fisier ethers care sa contina o intrare pentru server cu keyword-ul "PUB" la sfarsit. acest lucru va face ca statia/server-ul respectiv sa PUBLICE pe retea adresa MAC a serverului ori de cate ori statiile fac un REQUEST ARP (adica sa raspunda cu un REPLY ARP ca si cum ar fi serverul itself) pentru MACul serverului. 3) ceva gen choparp pus direct pe server care sa raspunda prin REPLY-uri ARP ori de cate ori o statie are nevoie de adresa MAC a serverului... solutie care nu merge... :( Comentarii please. -- | Radu Bogdan Rusu | [EMAIL PROTECTED] | | Network System Administrator @ campus.utcluj.ro | | Faculty of Automation and Computer Science | | Technical University of Cluj-Napoca, Romania | |-----------------------------------------------------------| __________________________________________________________ Send 'unsubscribe rofug' to [EMAIL PROTECTED] to unsubscribe

