linux jako SW router (dlouhe)

Leos Bitto bitto na atrey.karlin.mff.cuni.cz
Čtvrtek Únor 26 15:32:36 CET 1998


On Thu, 26 Feb 1998, Petr wrote:

> Hi all,
> 
> dostal jsem se do situace, kdy potrebuji pripojit jedno PC do site LAN.
> Mam k dispozici pevnou (dvoudratovou) linku spojujici mistni LAN s mistem
> kde je PC. Chtel jsem pouzit nasledujici soustavu:
> 
>                     KLIENT     LINUX
>                       PC       ROUTER----MODEM
>                        |         |         |
>                        -----------         |
>                                            |
>                                          PEVNA
>                                          LINKA
>                                            |
>                                            |
>                                          MODEM
>                                            |
>                                          LINUX
>                                          ROUTER
>                                            |
> -----------------------MISTNI-LAN-----------
> 
> Klient PC = Win95
> SW Router = RH 5.0
> Modem = US Robotics Courier
> 
> Nejmensi problem byly modemy, nastavil jsem je na asynchronni komunikaci
> vrazil jsem jim AT&L1, po zapnuti se modemy krasne spoji. 
>

Mozna je potreba jeste nejake doladeni na ceske linky, ale jinak jsou
modemy US Robotics Courier jedny z nejspolehlivejsich na provoz na
asynchronnich pevnych linkach, takze v nich rozhodne problem nebude.

> Horor zacal az s tim, jak zapojit servery. Zkousel jsem PPP, ale nejak se
> mi nevedlo. Nakonec jsem to nejakym zpusobem rozchodil pomoci programu
> slattach. Ten mi vytvoril rozhrani sl0, na ktere se potom mohu odkazovat
> pomoci ifconfig a route. 

SLIP? Brr, to je takovy protokol se kterym je spousta prace a hlavne ten
programek slattach ma takovou nemilou vlastnost, a to ze obcas po
preruseni spojeni ho nedokaze znovu navazat. PPP je obecne pro modemove
spojeni vhodnejsi.

> Bohuzel se vyskytl jiny problem. Spravce site LAN
> nechce zavadel do routovaci tabulky zadne dalsi informace, a tvrdi mi, ze
> to jde zaridit pomoci proxyARP. 

Ma pravdu, to je podstatne jednodussi. ;-)

> Muzete mi nekdo vysvetlit jak funguje proxyARP ?

Tak nejdriv jak funguje ARP: je to zkratka z Address Resolution Protocol a
zajistuje funkci IP protokolu (nejen) na ethernetu. Na urovni ethernetu se
stanice adresuji pomoci MAC adres (6 bajtu) ktere jsou unikatni pro kazdou
sitovou kartu a jsou v ni obvykle napevno nasteveny od vyrobce. Na urovni
IP se stanice adresuji pomoci IP adres (4 bajty), ktere se prideluji
softwarove bud na kazde stanici extra (jako treba v Altecu) nebo nejak
centralne pomoci protokolu k tomu urcenych, napr. BOOTP nebo DHCP. Vyhoda
techto protokolu je v tom ze precislovani cele site je o tom ze se nekdy v
noci upravi konfigurace serveru a rano az se pozapinaji vsechny pocitace
tak maji nove IP adresy, a vse funguje aniz by si nekdo vsiml zmeny.

No a prevod mezi IP adresami a MAC adresami resi protokol ARP. Funguje
tak, ze kdyz chce jakakoliv stanice poslat IP paket jine stanici na stejne
podsiti (nebo na jine podsiti, pak se posila paket prislusne
gatewayi=routeru), posle do site broadcast (v ethernetu ramec s adresatem
FF:FF:FF:FF:FF:FF) kterym se pta "kdo ma tu a tu IP adresu?". A nejvyse
jeden pocitac (v idealnim pripade ;-) ) odpovi "tu mam ja" a to odpovedi
prozradi svou MAC adresu. Puvodni pocitac si do sve ARP cache zapise
prislusnou dvojici IP adresa = MAC adresa a uz vi kam posilat pakety pro
prislusnou IP adresu. To se periodicky opakuje, nebot data v ARP cache po
jsou cas od casu vymazana (aby bylo mozno reagovat na zmeny v siti).

A tod co je to ten proxy ARP: k nejakemu pocitaci na lokalni siti (v nasem
pripade k tomu Linuxu) je nejak pripojen jiny pocitac (v nasem pripade
modemem). S pakety od toho vzdaleneho pocitace problem neni - ty proste
Linux jen posila do lokalni site. Ale jak zajistit aby se IP pakety od
nektereho z pocitacu z lokalni site dostaly k tomu vzdalenemu pocitaci?
Tak, ze na ARP dotazy po IP adrese toho vzdaleneho pocitace odpovi ten
Linux "tu adresu mam ja". Fixluje. Ale jen proto, aby mu ostatni pocitace
z lokalni site posilaly nejen jeho vlastni IP pakety, ale i ty pro ten
vzdaleny pocitac. Ty pak proste posle modemem tam kam patri. A vse funguje
tak jak ma.

> Muzte mi nekdo poslat, jak mam nastavit PPP ?

Coz treba zkusti tento soubor /etc/ppp/options:

ttyS0
115200
lock
modem
crtscts
proxyarp
:89.0.0.123

Ta adresa 10.0.0.123 je adresa ktera bude pridelena tomu vzdalenemu
pocitaci. Musi to byt adresa z lokalni site. Tedy napr. kdyby lokalni
IP adresy byly 10.0.0.0 - 10.255.255.255, je tato adresa v poradku.

Navic do /etc/inittab pripiste tento radek:

m:345:respawn:/usr/sbin/pppd -detach

A ted k nastaveni na druhe strane:

Predne bych tam vyhodil ten Linux, pokud jde o pripojeni jen jednoho PC je
to zbytecny luxus a komplikace. Na adrese
http://www.vt.edu:10021/K/kewells/net/scripts.html je driver na
pripojeni Windows 95 po pevne lince a potom je mozne rozebehnout PPP
spojeni primo mezi Windows 95 a Linuxem. Sice jsem to jeste osobne
nezkousel, ale pry to funguje.

Tim se znacne zjendnodussi i ten problem s proxy ARP. Tento specialni
pripad (tj. pripojeni jednoho pocitace modemem) je totiz natolik bezny, ze
na Linuxu se pouze do soubor /etc/ppp/options napise proxyarp a je to.


Uff koukam ze ten mail vysel trosku delsi. No doufam ze to aspon podle nej
bude fungovat. :-)



Leos Bitto




Další informace o konferenci Linux