[ LUGOS ] ip masquerading

Metod Kozelj metod.kozelj na rzs-hm.si
Ned Dec 7 11:15:38 CET 1997


Howdy!

On Fri, 5 Dec 1997, Marko Mlakar wrote:

> Zelim, da bi preko ip masqueradinga DRUGI_HOST dostopal na internet kot
> ALIAS. 
> 
> 
> Legenda:
> MOJ_HOST    - hostname, ki je prikljucen na internet. (194.249.229.27)
> ALIAS       - alias MOJ_HOST-a, ki je prikl. na internet. (194.249.229.250)
> DRUGI_HOST  - Drugi hostname, prikjlucen je na intranet. MOJ_HOST je prav
>               tako na intranetu, device eth1.

Kar precej debate je bilo na tole temo. Se mojih 5 stotinov:

zakaj ne uporabis proxy-arpa?

Ce klices z enim hostom preko PPP-ja na drugega, potem naceloma cel
internet vidi tudi tvojo masino, ki je preko PPP vkljucena na internet.
pppd sam po sebi naredi proxy-arp, razen ce mu ne reces drugace.

Kako deluje?

Ko recimo router (isto je pravzaprav za vse ostale naprave na ethernetu)
dobi paketek, ki ga mora poslati naprej, pogleda, ce ve, keteri ethernet
kartici ga mora poslati. V ta namen si dinamicno dela arp-tabelo (na
linux masinah lahko vsebino pogledas z `cat /proc/net/arp`). Ce HW naslova
(vsaka ethernet kartica ima unique HW naslov) ne ve, poslje v mrezo
BROADCAST paketek z pozivom, da naj se oglasi kartica s tem in tem IP
naslovom. Temu se rece ARP (Address Resolution Protocol). Ko dobi odziv,
iz ETHERNET headerja ugotovi, s katerega naslova na prisel odgovor. Potem
paketek z vsebino (tistega, ki ga je ze v zacetku zelel poslati) poslje
kot UNICAST paketek za ciljno ethernet kartico.

Kaj pocne proxy-arp? Doloceni Linux masini lahko dopoves, naj za vec IP
naslovov sporoca HW naslov svoje ethernet kartice. Torej poleg paketkov za
svoja lastni IP naslov sprejema se paketke za PPP 'odjemalce'. Seveda
moras imetu v tem primeru v kernel vkljuceno tudi 'IP
forwarding/gatewaying' ali pa poganjat kaksne sorte firewall SW (kar je,
glede na tvoj opis, cisti overkill).
Torej, ko se router zadere 'Hej, katera eternetka sprejme paketke za
ta-in-ta-IP-naslov?', se eternetka tvojega 'internetsko osvescenega' hosta
zadere 'Jaz, jaz, jaz!!!'. Ptem ji ga router srecno dostavi. IP layer
tvojega hosta ugotovi, da si nima z njim nic pomagati in ga poslje naprej
(pac glede na routing tabele).

Kaj moras torej storiti?

Na masini MOJ_HOST se moras pozabavati s programom 'arp' (man arp ....)
tako, da bo na device eth0 sprejemal tudi paketke za DRUGI_HOST. Prav tako
moras narediti staticno routo (DRUGI_HOST na eth1). Na masini DRUGI_HOST
nastavis default gateway na MOJ_HOST. In bi moralo delati.

Vse skupaj seveda velja, ce ima DRUGI_HOST v resnici IP stevilko, kakrsna
je dovoljena na internetu. Sicer pa mu naredis IP alias. Ampak to je stvar
konfiguracije masine DRUGI_HOST, MOJ_HOST samo forwarda ...

Peace!
  Mkx




Dodatne informacije o seznamu Starilist