Trükkök a route-tal, IP számokkal (masq, NAT) és hasonlók.:
Hogy route-oljak egy gateway-en keresztül úgy hogy a bejövô routerem errôl nem tud? (proxy_arp)
Ez az úgynevezett "sulinet-probléma", amikor a router egy analfabéta rendszergazda kezében van, és így a linuxos rendszergazda ehhez nem fér hozzá, viszont szeretne egy linuxos routert használni. Ehhez a routeren be kellene állítani egy gateway-t a linuxos router mögötti tartományra, de per definitionem a router setupja számunkra kôbe vésett.

A linuxos rendszergazda nem esik kétségbe hanem vadul elkezd proxy_arpolni, ami a fekete mágia egyik része.
Tegyük fel hogy az alábbi gépeink vannak:

 router  10.1.1.1
 linux   10.1.1.2
 quake   10.1.1.13
Ezek így helyezkednek el logikailag:
 --->internet>--- router ---(eth0) linux (eth1)--- quake
Tegyük fel hogy a linux netmaskja 255.255.255.240, vagyis 16 darab ip-vel garázdálkodhatunk. Nem véletlen, hogy az ip-ket úgy adtam, hogy a linux és az eth0 netje az elsô nyolcba essen, míg az eth1 része a második nyolcba, így egyszerűen ketté lehet majd ôket késôbb választani.

Elôször is be kell az interface-eket állítani a linuxon:

 ifconfig eth0 10.1.1.2 netmask 255.255.255.240
 ifconfig eth1 192.168.0.1 netmask 255.255.255.0
Mivel az eth1 amúgy is masquerade-t fog csinálni elôbb utóbb, ha ilyen kevés az IPnk :-) ezért adtam neki ilyen szép IP-t. Ettôl kissé több munkánk lesz viszont kevesebb IP fog elfogyni.
Ezután kell a routing:
 route add default gw 10.1.1.1         
(ez eddig is így volt)
 route add -net 10.1.1.0 netmask 255.255.255.248 eth0
(ez azért kell hogy az eth0-n levô egyéb gépeket elérjük)
 route add -net 10.1.1.8 netmask 255.255.255.248 eth1
(ez pedig az eth1 mögött levô rész lesz)

Eddig jó, de még nem az igazi. A linuxunk már jól tudja hogy ki hol van, de még sem a quake sem a router nem sejti mi az igazság. Nézzük elôször a quake nevű gépet.
Szüksége lesz egy IP-re, ez ugye a 13. Kell neki egy gateway. Normális esetben ez a linux-eth1 címe lenne, de mi olyan baromi takarékosak voltunk hogy annak egy nem valódi címet adtunk. Így hát mondjuk azt a quake gépnek hogy a gw a router, vagyis a 10.1.1.1.

És most mindenkit becsapunk. A linuxon állítsuk be az alábbiakat:

 arp -i eth0 -Ds 10.1.1.8 eth0 netmask 255.255.255.248 pub
(ezzel azt hazudjuk mindenkinek aki az eth0-n van, így a routernek is, hogy mindent ami a 10.1.1.8 subnetbe szól azt a linuxnak küldje)
 arp -i eth1 -Ds 10.1.1.1 eth1 pub
(itt pedig mindenkinek aki az eth1-en él azt hazudjuk hogy MI VAGYUNK a router! Így azok amikor gateway-nek a routert adták meg valójában a linuxhoz fognak beszélni, aki aztán tudja hogy a csomagokat hogy adja tovább a valódi routernek.)

Ha mindent jól csináltál, és én sem írtam el semmit, akkor ezen a ponton a netrôl látszódik a quake nevű gép és vice versa, és a routeren nem kellett semmit állítani. Ha te szúrtad el, akkor ne bámulj, hanem javítsd ki. ha én szúrtam el, akkor pedig ott az email címem, írd meg hogy hol írtam el és kijavítom, hogy a következô próbálkozónak már szerencséje legyen.



Linux 2.2.xx+ alatt kicsit egyszerűsödött a dolgunk, mert a proxy-arp-t a kernel megcsinálja helyettünk akkor, ha minden más jól van beállítva.

A feladat tehát az interface-ek és a route-ok helyes beállítása, majd az alábbi módon az automatikus proxy_arp bekapcsolása:

 echo 1 > /proc/sys/net/ipv4/conf/all/proxy_arp
Ezután - hacsak a route vagy a tűzfal beállításokat nem szúrtad el - működnie kell a dolognak.


grin@tolna.net


Previous: Hogy csináljak valódi IP-ket a masquerading mögé?
Next: Hol találok haladó információkat a Masqerade-ról? This document is: http://localhost/var/www/cgi-bin/fom?file=4

[Search] [Appearance] [Show Edit Commands]
The Faq-O-Matic is by Jon Howell.