Differences

This shows you the differences between two versions of the page.

Link to this comparison view

rl:labs:12:contents:03 [2014/01/09 09:35]
razvan.deaconescu [03. [20p] Configurare client de PPPoE pe stația red]
rl:labs:12:contents:03 [2024/01/15 07:13] (current)
vlad_iulius.nastase [03. [20p] Configurare iBGP]
Line 1: Line 1:
-==== 03. [20p] Configurare ​client de PPPoE pe stația red ====+====== 03. [20p] Configurare ​iBGP ======
  
-Având pornit serverul de PPPoE, putem acum să configurăm clienții de PPPoE. Clienții, adică stațiile de tip client, se vor autentifica la serverul de PPPoE pornit anterior ​și vor primi o adresă IP.+În cadrul acestui exercițiu vom configura iBGP pe router-ele ''​LOND'' ​și ''​%%PARI%%''​.
  
-Pentru configurarea unui clientcel mai simplu este să folosim utilitarul ''​pppoeconf''​. Acest utilitar prezintă întrebări de configurare utilizatorului și generează informațiile necesare în fișierele de configurare din ''​/etc/ppp/''​. ​Fișierele ​de configurare ce vor fi alterate sunt: +Comenzile sunt similareînsă, de această dată, nu e nevoie să configurăm un ''​%%router-id%%''​. ​De asemenea, vom folosi adresele interfețelor ​de loopback (''​%%lo%%''​) pentru ​a face peering cu router-ele din același AS.
-  * ''​/​etc/​ppp/​pap-secrets''​: configurare pentru autentificare folosind PAP (//Password Authentication Protocol//) +
-  * ''/​etc/​ppp/​chap-secrets'':​ configurare ​pentru ​autentificare folosind CHAP (//​Challenge-Handshake Authentication Protocol//​) +
-  * ''/​etc/​ppp/​peers/​dsl-provider'':​ configurare pentru conectarea la serverul PPPoE +
-  * ''/​etc/​network/​interfaces'':​ configurare persistentă pentru conexiunea PPPoE+
  
-Pentru început vom configura pe stația ''​red''​ un client PPPoE. Vom rula comanda:<code bash+<note tip
-root@red:~# pppoeconf +Dacă vă întrebațcum putem avea conectivitate folosind adresele ​de loopback, acest lucru este posibil datorită faptului că pe routere rulează și protocolul OSPF, care este configurat ​să propage rute către aceste adrese de loopback.
-</​code>​ șvom ține cont de următoarele: +
-  * la username ​și parolă folosim ''​red''​ (le-am ​configurat ​anterior în server) +
-  * la toate celelalte opțiuni lăsăm valorile implicite+
  
-Pentru a valida configurarea corectă, inspectăm mesajele PPPoE folosind comanda ''​plog'':​<​code ​bash+<​code>​ 
-root@red:~plog +PARI_routershow ip ospf route 
-Dec 19 21:11:23 red pppd[670]: Plugin rp-pppoe.so loaded+============ OSPF network routing table ============ 
-Dec 19 21:11:23 red pppd[672]: pppd 2.4.5 started by root, uid +<...> 
-Dec 19 21:11:23 red pppd[672]: PPP session is +N    ​21.151.0.1/​32 ​        [1area0.0.0.0 
-Dec 19 21:11:23 red pppd[672]: Connected ​to 7e:​9e:​4a:​5a:​49:​77 via interface eth0 +                           via 21.0.1.1, port_LOND 
-Dec 19 21:11:23 red pppd[672]: Using interface ppp0 +N    ​21.152.0.1/​32 ​        [0area0.0.0.0 
-Dec 19 21:11:23 red pppd[672]: Connect: ppp0 <--> eth0 +                           ​directly attached ​to lo 
-Dec 19 21:11:26 red pppd[672]: peer from calling number 7E:​9E:​4A:​5A:​49:​77 authorized +N    ​21.153.0.1/​32 ​        [2area0.0.0.0 
-Dec 19 21:11:26 red pppd[672]: local  IP address 192.168.0.2 +                           via 21.0.1.1, port_LOND 
-Dec 19 21:11:26 red pppd[672]: remote IP address 192.168.0.1+                           via 21.0.3.2, port_BUCH 
 +N    ​21.154.0.1/​32 ​        [1area0.0.0.0 
 +                           via 21.0.3.2, port_BUCH 
 +<...>
 </​code>​ </​code>​
-Din output-ul comenzii ''​plog''​ observăm că: +</​note>​ 
-  * stația se conectează la serverul PPPoE prin intermediul interfeței ''​eth0''​ +În general, o sesiune de BGP e stabilită pe interfața ​cea mai apropiată de vecinPentru ca rutele să fie acceptate, va trebui să schimbăinterfața ​sursă către cea de loopback
-  * se creează interfața ​''​pppp0''​ +
-  * se atașează interfeței ''​ppp0''​ adresa ''​192.168.0.2''​ (''​local''​) pe o legătură punct-la-punct cu interfața de pe server (''​192.168.0.1''​).+
  
-Observăm crearea interfeței ​''​ppp0''​ și atașarea adresei ​''​192.168.0.2'':<​code ​bash+Spre exemplu pentru a face peering între router-ele ​''​LOND''​ și ''​PARI'' ​vom da următoarele comenzi: 
-root@red:~ip address show dev ppp0 +<​code>​ 
-13: ppp0: <POINTOPOINT,​MULTICAST,​NOARP,​UP,​LOWER_UPmtu 1492 qdisc pfifo_fast state UNKNOWN qlen 3 +LOND_routerconfigure terminal 
-    link/ppp +LOND_router(config)#​ router bgp <X
-    inet 192.168.0.2 peer 192.168.0.1/32 scope global ppp0+LOND_router(config-router)#​ neighbor <X>.152.0.1 remote-as <X> 
 +LOND_router(config-router)#​ neighbor <X>.152.0.1 update-source lo 
 +LOND_router(config-router)#​
 </​code>​ </​code>​
  
-Verificăm conectivitatea la serverul PPPoE folosind comanda ''​ping'':​<​code ​bash+<​code>​ 
-root@red:~ping 192.168.0.1 +PARI_routerconfigure terminal 
-PING 192.168.0.1 ​(192.168.0.156(84bytes of data. +PARI_router(config)# router bgp <X> 
-64 bytes from 192.168.0.1: icmp_req=1 ttl=64 time=1.63 ms +PARI_router(config-router)# neighbor <X>.151.0.1 remote-as <X> 
-64 bytes from 192.168.0.1: icmp_req=2 ttl=64 time=0.270 ms +PARI_router(config-router)#​ neighbor <X>.151.0.1 update-source lo 
-^C+PARI_router(config-router)#​
 </​code>​ </​code>​
  
-Observăm că pe stația ''​host''​ a apărut de asemenea o interfață ''​ppp0'',​ perechea interfeței create pe stația ''​red'':<​code bash> 
-root@host:​~#​ ip a s 
-32: ppp0: <​POINTOPOINT,​MULTICAST,​NOARP,​UP,​LOWER_UP>​ mtu 1492 qdisc pfifo_fast state UNKNOWN qlen 3 
-    link/​ppp ​ 
-    inet 192.168.0.1 peer 192.168.0.2/​32 scope global ppp0 
-</​code>​ 
-Interfața ''​ppp0''​ de pe stația ''​host''​ are adresa ''​192.168.0.1'',​ adresa aferentă stației host. 
  
-O dată configurată,​ conexiunea PPPoE poate fi pornită folosind comanda ''​pon dsl-provider''​ și oprită folosind ''​poff dsl-provider''​. Comanda ''​pon dsl-provider''​ este în general rulată în momentul configurării (adică în momentul folosirii comenzii ''​pppoeconf''​);​ este ultimul ecran de interogare a utilizatorului furnizat de comanda ''​pppoeconf''​. 
  
-Doar pentru testare, vom opri șvom porni conexiunea PPPoE pe stația ''​red''​:<code bash> +Mai multe informații despre acest mod de configurare găsiț[[https://www.cisco.com/​c/​en/​us/​support/​docs/ip/​border-gateway-protocol-bgp/​13751-23.html#toc-hId--1817872765|aici]].
-root@red:~# ip address show dev ppp0 +
-13: ppp0: <​POINTOPOINT,​MULTICAST,​NOARP,​UP,​LOWER_UP>​ mtu 1492 qdisc pfifo_fast state UNKNOWN qlen 3 +
-    link/ppp +
-    inet 192.168.0.2 peer 192.168.0.1/32 scope global ppp0 +
-root@red:~# poff dsl-provider +
-root@red:​~# ​ip address show dev ppp0 +
-Device "​ppp0"​ does not exist. +
-root@red:~# pon dsl-provider +
-Plugin rp-pppoe.so loaded. +
-root@red:~ip address show dev ppp0 +
-15: ppp0: <​POINTOPOINT,​MULTICAST,​NOARP,​UP,​LOWER_UP>​ mtu 1492 qdisc pfifo_fast state UNKNOWN qlen 3 +
-    link/ppp +
-    inet 192.168.0.3 peer 192.168.0.1/​32 scope global ppp0 +
-</​code>​ +
-Observăm că la a doua rulare am obținut altă adresă IP (''​192.168.0.3''​),​ următoarea din spațiul de adrese expus de serverul de PPPoE. Aceasta se întâmplă pentru că la fiecare conectare la serverul PPPoE se obține următoarea adresă nefolosită. La un număr suficient de mari de rulări ale comenzilor ''​poff dsl-provider''​ și ''​pon dsl-provider''​ se poate reajunge la adresa IP ''​192.168.0.3''​.+
  
-Ca să vedem cum se realizează conectarea între cele două capete consultăm tabela de rutare:<​code bash> +Verificați dacă s-a realizat conexiunea BGP, folosind comanda ''​show bgp summary''​.
-root@red:~# ip route +
-default dev ppp0  scope link +
-192.168.0.1 dev ppp0  proto kernel ​ scope link  src 192.168.0.+
-</​code>​+
  
-Observăm că ruta implicită este specificată folosind doar interfața de ieșire (''​ppp0''​). Acest lucru este suficient întrucât este o conexiune punct-la-punct și nu un mediu multi-acces cum este Ethernet. Legătura este punct la punct motiv pentru care nu avem mască aferentă rutei către ''​192.168.0.1''​. Este vorba de o rută punct la punct. Similar arată tabela de rutare și pe stația ''​host'':<​code bash> 
-root@host:​~#​ ip r s dev ppp0 
-192.168.0.3 ​ proto kernel ​ scope link  src 192.168.0.1 
-</​code>​ 
  
-Să urmărim conținutul mesajelor PPPoE. Vom captura cadrele ''​Ethernet''​ pe stația ''​host''​ folosind comanda ''​tcpdump''​ pe interfața ''​br0'':<​code bash> 
-root@host:​~#​ tcpdump -n -i br0 -e 
-[...] 
-</​code>​ 
-Opțiunea ''​-e''​ a comenzii ''​tcpdump''​ afișează și antetul de nivel 2, adică antetul Ethernet și implicit, antetul PPP. 
- 
-Pe stația red pornim comanda ping către stația ''​host'':<​code bash> 
-root@red:~# ping 192.168.0.1 
-[...] 
-</​code>​ 
- 
-Acum observăm pe stația ''​host''​ rezultatul capturii:<​code bash> 
-[...] 
-23:​29:​20.668204 00:​16:​3e:​8e:​84:​21 (oui Unknown) > 7e:​9e:​4a:​5a:​49:​77 (oui Unknown), ethertype PPPoE S (0x8864), length 106: PPPoE  [ses 0x1] IP (0x0021), length 86: 192.168.0.3 > 192.168.0.1:​ ICMP echo request, id 732, seq 47, length 64 
-[...] 
-</​code>​ 
-În cadrul capturat mai sus observăm următoarele:​ 
-  * adresa MAC sursă este adresa MAC a interfeței ''​eth0''​ a stației ''​red'':​ ''​00:​16:​3e:​8e:​84:​21'';​ 
-  * adresa MAC destinație este adresa MAC a interfeței de tip bridge ''​br0''​ de pe stația ''​host'':​ ''​7e:​9e:​4a:​5a:​49:​77'';​ 
-  * tipul protocolului încapsulat în cadrul Ethernet este PPPoE (''​0x8864''​ -- faza de sesiune); în mod obișnuit ar fi fost IP (''​0x0800''​)((tipurile de protocoale încapsulate într-un cadru Ethernet sunt listate în ''/​etc/​ethertypes''​));​ 
-  * pachetul ''​PPPoE''​ încasulează la rândul său protocolul IP. 
rl/labs/12/contents/03.1389252951.txt.gz · Last modified: 2014/01/09 09:35 by razvan.deaconescu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0