Traducere: Stanislav Rogin. SWsoft Pte Ltd.
Acest document descrie modul de subrețele folosind protocolul Proxy-ARP (Address Resolution Protocol). Scopul meu - pentru a face rețeaua de mașini vizibile pe o altă subrețea utilizând protocolul IP. (Eu numesc sub-subnetting). Ca urmare, acesta trebuie să arate ca în cazul în subrețeaua locală a mașinii (rețeaua 0) conectată la rețeaua principală (rețea 1).
Acest lucru va funcționa numai dacă toate mașinile conectate prin dispozitive Ethernet compatibile (de exemplu, nu va lucra cu SLIP / PPP / CSLIP, etc ..)
Crearea acestui document, precum și modul meu de utilizare a proxy-ARP, ar fi imposibilă fără ajutorul:
Andrew Tridgell, care a implementat suportul subrețele în ARP pentru Linux - el personal ma ajutat cu setarea totul
Mini-HOWTO "Proxy-ARP" (Al Longyear)
Mini-HOWTO "Mai multe Ethernet-rețele" (Don Becker)
Codul sursă al programului arp (8) om pagini (Fred N. Van Kempen și Bernd Eckenfels)
Configurarea subrețele, în care trebuie să utilizați proxy-ARP, este destul de specific.
Am avut un card de radio-Ethernet-ISA-8bit. Am nevoie pentru a conecta la mai multe mașini simultan. Aș putea folosi pe un Linux-mașină (deși a trebuit să scrie pentru acest driver, dar acesta este un subiect pentru o altă conversație). În general, am fost necesară pentru a instala oa doua carte în Linux-mașină, și într-un fel de a combina cele două subrețele.
În mod normal, am avut de a face următoarele:
Utilizați o adresă IP-Bridge (a se vedea mini-HOWTO :. Bridges) pentru a transmite pachete între interfețe. Din păcate, modul radio-Ethernet-card, nu „promisc“ (nu pot capta toate rețelei de trafic 1). Acest lucru se datorează ratei mici (2 Mbit / s), precum și faptul că nu a trebuit să se ocupe de tot traficul de rețea 1. Mai mult decât atât, podul suficient de bine pentru a porni sistemul!
Pe de altă parte, am putea folosi datele de subrețea și IP de rutare între subrețele (a se vedea mini-HOWTO :. „subrețeaIP“). Această soluție este adecvată numai pentru IP-protocol - Linux kernel-ului se poate ocupa de IP-pachete, dar alte protocoale (de exemplu, AppleTalk) au nevoie de programe suplimentare. Aceasta va necesita, de asemenea, un nou IP-subrețea, nu este întotdeauna posibil.
În acest caz, nu am putut obține o nouă subrețea, așa că a trebuit să se stabilească totul ca și în cazul în care toate mașinile de pe rețea 0 conectat la rețea 1. Aici este locul unde Proxy-ARP. Pentru a lucra cu alte protocoale (non-IP), utilizat de programe relevante - de exemplu, pentru rutarea pachetelor AppleTalk utilizate Netatalk.
De fapt, Proxy-ARP este necesar doar pentru a transmite pachete de la rețea 1 la rețea 0. Pentru a obține pachete înapoi alt mod, standard IP-rutare.
În mod similar (și chiar un pic mai ușor) vine cu pachete de orice mașini pe ambele rețele pentru mașini A.
Rețineți că mașinile B și C (și D) nu are nevoie de nici un IP-înțelept. În cazul meu - a fost un amestec sălbatic de Sun, Macintosh și mașini PC-0 din rețea conectată la restul lumii prin intermediul Linux-auto A.
Am configurat proxy-ARP cu subnetting în kernel-ul Linux versiunea 2.0.30, dar mi sa spus că toate aceste lucrări este încă în momentul kernel 1.2.x.
Primul lucru de reținut: codul ARP poate fi împărțit în două părți: prima parte a miezului - trimite și primește cereri ARP și răspunsuri și actualizează ARP cache-etc;. A doua parte - un arp (8) de comandă, care permite administratorului să schimbe conținutul ARP-cache, și alți utilizatori vizualiza.
Apoi se adaugă o configurație a doua Ethernet-card (după descărcarea tuturor modulelor necesare cu driver-ul):
/ Sbin / ifconfig eth1 (nume pe net 1) broadcast (x.y.z.255) 255.255.255.0 netmask
Acum, adăugați o intrare în tabela de rutare:
/ Sbin / route add -net (x.y.z.0) 255.255.255.0 netmask
Acum este timpul pentru a adăuga proxy-ARP:
/ Sbin / arp eth1 -Ds $ -i eth1 $ netmask pub
bash $ / sbin / arp -an Adresă Flags HWtype HWaddress Masca Iface xyz1 eter 00: 00: 0C: 13: 6F: 17 C * eth1 xyz65 eter 00: 40: 05: 49: 77: 01 C * eth0 xyz67 eter 08: 00: 20: 0B: 79: 47 C * eth0 xyz5 eter 00: 00: 3B: 80: 18: E5 C * eth1 xyz64 eter 00: 40: 96: 20: CD: D2 CMP 255.255.255.240 eth1
# / Bin / netstat -rn Kernel tabel de rutare de destinație Gateway Genmask Flags metric Ref Utilizare Iface xyz64 0.0.0.0 255.255.255.240 U 0 0 71 eth0 xyz0 0.0.0.0 255.255.255.0 U 0 0389 eth1 127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 7 lo 0.0.0.0 xyz1 0.0.0.0 UG 1 0573 eth1
Același tabel veți vedea uitându-vă la fișierul / proc / net / ruta.
Rețineți că prima intrare este un subset al doilea, dar tabela de rutare este sortat în ordinea priorității, astfel încât intrarea eth0 va fi la linia eth1.
Există și alte modalități de a face cu aceste subrețele, cu excepția Proxy-ARP. Unii dintre ei am menționat deja mai sus (poduri si rutare):
Un alt mod - IP-tunel, dar nu este susținută de toate sistemele de operare, așa că am decis să nu-l folosească.
Pentru a utiliza Proxy-ARP fără subnetting. Teoretic este posibil, trebuie doar să aveți în ARP cache-specifica toate subrețele 0 mașini separate, în loc să specificați o referire la întreaga rețea.
Poate că puteți utiliza și IP-aliasing, dar nu m-am gândit la asta.
Un alt exemplu de aplicare a Proxy-ARP cu subretea pot fi găsite aici, la Universitatea Nationala din Australia. Aceasta este aceeași configurație, pentru care Andrew Tridgell a scris Subnetting în Proxy-ARP. Cu toate acestea, Andrew fiabil a spus că, de fapt, în lume există mai multe configurații similare (detalii nu am).
Acesta a fost laboratorul în care elevii sunt învățați cum să configurați TCP / IP pe mașinile, inclusiv configurația gateway-ului. Este o rețea de clasă C, iar Andrew avea nevoie de o „subrețea“ pentru securitatea, controlul traficului și în scopuri educaționale menționate mai sus. El a făcut-o folosind proxy-ARP, și apoi a dat seama că pentru a avea o intrare în ARP cache-este mult mai ușor decât să aibă o intrare pentru fiecare mașină. Și aici. A apărut Proxy-ARP pentru subrețele!
Voce: (+61) 6249 2 4090
Acest document face parte din proiectul HOWTO Linux.