ot Rosen Antonov(3-04-2004)

reiting (70)   [ dobre ]  [ zle ]

Printer Friendly Variant za otpechatvane

Tova e oshte edna statiia, koiato opisva kak da konfigurirate PPPoE klient pod Linuks. Sushto taka, tuk shte budat zasegnati vuprosi otnasiashti se do spodelianeto na internet dostup ot dostavchik, koito polzva PPPoE.

1.1 SHTo e to PPPoE?

PPPoE (Point to Point Protocol over Ethernet) e protokol. Izpolzva se aktivno v strani, kudeto kabelnite i DSL modemi sa mnogo silno razprostraneni. Nakratko v edna standartna LAN mrezha hostovete komunikirat chrez protokoli kato TCP/IP, koito ot svoia strana direktno stupvat vurhu ethernet protokola. Pri edna PPPoE komunikatsiia mezhdu TCP/IP i ethernet se namestva PPPoE protokolut. Po tozi nachin PPPoE paketite enkapsulirat v sebe si TCP/IP paketite. Ot tova sledvat reditsa predimstva i nedostatutsi. Kato kraen rezultat mezhdu klienta i survura se realizira Point to Point vruzka (sushto kakto pri telefonnite modemi), koiato polzva ethernet mrezhata kato prenosna sreda.

1.2 Predimstva:

- Internet dostavchikut mozhe da otchita izpolzvaniia internet dostup po vreme.
- Osven zashtita po MAC adres se vuvezhda i zashtita s potrebitelsko ime i parola.
- Klientut mozhe da zabrani poddruzhkata na TCP/IP priako. Po tozi nachin toi shte e svurzan kum mrezhata na dostavchika, no shte e nevidim za drugite klienti. Taka veroiatnostta za zaraziavane s virusi i nezhelano pronikvane se namaliava s 50%. Poddruzhkata na TCP/IP pri ustanoviavane na konektsiia mezhdu nego i PPPoE survura ostava, no tia e enkapsulirana v PPPoE paketite i e nerazbiraema za drugite.

1.3 Nedostatutsi:

- Niama vgradeni PPPoE klienti v povecheto versii na Windows. Makar tuk da govorim za Linuks, tazi "malka" podrobnost ne e za propuskane. Windows potrebitelite sa prinudeni da polzvat dopulnitelni softuerni produkti, povecheto ot koito se zaplashtat. Tova dopulnitelno uvelichava purvonachalnite razhodi. CHast ot dostavchitsite, koito polzvat PPPoE, instalirat na nezapoznatite novi potrebiteli nelegalni kopiia na takiva softuerni produkti, bez dori da gi popitat.
- Protsesite, koito upravliavat PPPoE vruzkata zaemat znachitelno protsesorno vreme. Tova e mnogo otnositelno, no ako iskate da vpregnete starata 486-tsa kato ruter v domashnata si mrezha, sled dulgi probi mozhe da zabelezhite, che nikoga ne uspiavate da vdignete poveche ot 4Mbits/sec.


2. Ustanoviavane na vruzkata

Za tselta imame nuzhda ot raboteshta Linuks mashina, na koiato sa instalirani  paketite ppp i rp-pppoe. Po podrazbirane povecheto distributsii pokrivat iziskvaniiata. Ako vse pak neshtata pri vas ne sa kakto triabva, mozhe da probvate s Knoppix. Vsichko v statiiata po-dolu e izprobvano pod Knoppix 3.2 (ot 15.april.2003), Slackware 9.1, RedHat 9.
Za primerite po-dolu priemame slednoto:
- Vashiiat vunshen interfeis e eth0.
- Potrebitelskoto vi ime e smalluser.
- Parolata vi e smallpass.
- DNS survurite na dostavchika sa XXX.XXX.XXX.YYY i XXX.XXX.XXX.ZZZ.
- Service-name parameturut vi ima stoinost abc.

Purvo triabva da proverim dali vunshniiat vi interfeis e "up" (vdignat). Izpulniavame:

ifconfig

Primeren rezultat:

eth0   Link encap:Ethernet  HWaddr 00:00:23:0E:84:5A
         UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
         RX packets:1721052 errors:0 dropped:0 overruns:0 frame:1665
         TX packets:1153395 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:100
         RX bytes:2454820747 (2.2 GiB)  TX bytes:78621860 (74.9 MiB)
         Interrupt:9 Base address:0xc000

lo       Link encap:Local Loopback
         inet addr:127.0.0.1  Mask:255.0.0.0
         UP LOOPBACK RUNNING  MTU:16436  Metric:1
         RX packets:6622 errors:0 dropped:0 overruns:0 frame:0
         TX packets:6622 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:0
         RX bytes:266932 (260.6 KiB)  TX bytes:266932 (260.6 KiB)

SHTom vizhdame informatsiiata za eth0, znachi interfeisut e vdignat. Ako vizhdate informatsiia samo za lo, to triabva ruchno da vdignete eth0 s komandata:

ifconfig eth0 up

Sled tova proverete otnovo dali vizhdate eth0. Ako ne, to nai-veroiatno imate problem s mrezhovata karta. Niama smisul da produlzhavate sus sledvashtite stupki ako eth0 ne e vdignat.

Vnimanie! Ako izpulnite komandata:

ifconfig eth0

to vie shte poluchite informatsiia za vuprosniia interfeis dori i da ne e vdignat.

Izpulniavame komandata:

pppoe -I eth0 -A

Tia pretursva mrezhata na dostavchika (chrez izprashtane na PADI freimove) za nalichni kontsentratori i servizi. Tova sa tezi logicheski tochki, kum koito vie triabva da se vklyuchite. Eto edin primeren rezultat:

Access-Concentrator: cc-12
      Service-Name: c1
      Service-Name: c2
      Service-Name: c3
AC-Ethernet-Address: 00:06:a3:9a:aa:2b
--------------------------------------------------

Tuk triabva da vidite tozi Service-Name, kum koito dostavchikut vi e kazal, che triabva da se vklyuchite. Ako komandata dade rezultat:

pppoe: Timeout waiting for PADO packets

to vie niamate vruzka kum vhodnite tochki na dostavchika. Proverete vsichko dobre i opitaite pak! Niama smisul da produlzhavate po-nadolu ako ne vidite vashiia Service-name.

Nastroivame DNS survurite na dostavchika:

echo "nameserver XXX.XXX.XXX.YYY"  >  /etc/resolv.conf
echo "nameserver XXX.XXX.XXX.ZZZ"  >>  /etc/resolv.conf

Oburnete vnimanie na slednoto:
- Purvata komanda shte iztrie vsichko vuv vashiia fail resolv.conf.
- Vtorata komanda naistina ima dva znaka ">".

Dobaviame potrebitelskoto si ime i parola vuv faila pap-secrets, taka che te da se vzemat i izpolzvat pri ustanoviavane na vruzkata.

echo "smalluser * smallpass" >> /etc/ppp/pap-secrets

Sega veche sme gotovi za nai-vazhnata chast - ustanoviavane na vruzkata!

pppd pty 'pppoe -I eth0 -S abc'  noipdefault defaultroute hide-password passive persist name smalluser

S optsiiata "-S" se zadava parameturut Service-name, taka che zamenete abc s vashiia. S optsiiata "name" se zadava potrebitelskoto ime. Zamenete smalluser s vasheto.
Zabelezhka: nali pravite razlika mezhdu tezi dva simvola: ' i ` ?

Sega mozhe da izpulnim otnovo komandata:

ifconfig

koiato osven informatsiia za lo i eth0 triabva da dade i informatsiia za ppp0 ot vida:

ppp0 Link encap:Point-to-Point Protocol
         inet addr:XXX.XXX.XXX.XYZ  P-t-P:XXX.XXX.ZYX  Mask:255.255.255.255
         UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
         RX packets:2172615 errors:0 dropped:0 overruns:0 frame:0
         TX packets:1466232 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:3
         RX bytes:3087662461 (2.8 GiB)  TX bytes:65777364 (62.7 MiB)

Ako takava informatsiia niama, izchakaite malko, sled koeto pak povtorete "ifconfig". Poniakoga e nuzhno poveche vreme, za da se ustanovi vruzkata. ppp0 prestavliava standarten Point to Point interfeis.

3. Spodeliane na vruzkata

Ima dostatuchno dokumentatsiia po tozi vupros. Tuk shte spomenem samo nai-vazhnoto i niakoi ot osobenostite, kasaeshti PPPoE protokola.

3.1 MTU parameturut pokazva maksimalna golemina na paket, koito mozhe da bude izpraten ot nashiia interfeis. Standartnata mu stoinost e 1500 baita. Za nas ne e problem da izprashtame paketi po-golemi ot 1500 baita. Vuprosut e dali tezi nestandartni paketi shte preminat do otsreshtnata strana i dali tia shte gi prieme.
Pri spodelianeto na vruzka v nashiia sluchai hostovete v lokalnata ni mrezha izprashtat kum Internet paketi s maksimalna golemina 1500 baita. Za da se izpratiat kum dostavchika tezi paketi preturpiavat PPPoE enkapsulatsiiata. Taka kum tiah se dobaviat dopulnitelni baitove i paketite stavat nestandartni. CHesto te bivat othvurleni. Rezultatut e lipsa na internet na klientskite mashini vuv vutreshna mrezha.
Problemut se reshava po niakolko nachina. Purvo mozhem da nakarame klientskite mashini da izprashtat po-malki paketi. Vtoro - mozhem da nakarame nashata Linuks mashina da deli golemite paketi na chasti predi protsesa na enkapsulatsiia. Tazi ekstra otnema znachitelno protsesorno vreme. Za neia be spomenato v tochka 1.3. Za da ia izpolzvate zamenete gornata komanda sus slednata:

pppd pty 'pppoe -I eth0 -S abc -m 1412'  noipdefault defaultroute hide-password passive persist name smalluser

Razlikata e v parametura "-m". Negovata stoinost e opitno ustanovena. Preporuchva se da ne eksperimentirate s neia osven ako niamate problemi.

3.2 Sushtinskoto spodeliane na vruzkata stava s komandite:

iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward

3.3 Vseki paket ima pole, v koeto se zapisva stoinostta na TTL parametura mu. Pri preminavane na paket prez daden ruter stoinostta na tova pole se namaliava s 1. Kogato po putia ot iztochnika kum tselta stoinostta na TTL poleto stane 0 paketut biva othvurlen. Ideiata e, pri vuznikvane na problem, daden paket da ne "bluzhdae" v Internet bezkraino.
V standartnata situatsiia edin "novoroden" paket ot vutreshnata mrezha ima TTL stoinost, koiato e ot vida (2^n). Kogato takuv paket premine prez vashata Linuks mashina negovata TTL stoinost dobiva vida (2^n-1). CHesto puti paketi ot vtoriia vid sushto bivat othvurleni. Reshenieto na problema ne e tsel na tazi statiia. Za povete informatsiia mozhe da poglednete tuk:

http://netfilter.org/patch-o-matic/pom-base.html#pom-base-TTL

4. Zaklyuchenie

Napisanoto do tuk ima za tsel da hvurli luch svetlina v problemite s PPPoE i da predlozhi na potrebitelite zavurshena posledovatelnost ot stupki, koiato da donese nuzhniia rezultat - vruzka kum Internet. Mozhete da izpolzvate, tsitirate, promeniate i publikuvate tozi material, kato edinstvenoto uslovie e da spomenete avtora na originala i negoviia e-mail adres.

Ochakvam komentari za razshiriavane na statiiata i popraviane na greshki i netochnosti.

Rosen Antonov
rossenantonov@hotmail.com
Posledna promiana: 04.april.2004


<< Instalirane i nastroika na “prozrachna zashtitna stena” | FreeSco deistvie vtoro >>