Nəzəri əsaslar və memarlıq

BNG şəbəkələrində iki əsas qoşulma modeli var: PPPoE (RFC 2516) və IPoE (IP over Ethernet: PPP olmadan DHCP əsaslı sessiya; tək RFC ilə deyil, Broadband Forum spesifikasiyaları ilə, məsələn TR-101 və TR-146 ilə təsvir olunur). 1. PPPoE CPE ilə BNG arasında PPP sessiyası qurur və iki mərhələdən ibarətdir: Discovery (PADI - müştərinin broadcast axtarışı, PADO - BNG-nin təklifi, PADR - müştərinin sessiya sorğusu, PADS - Session ID ilə təsdiq, PADT - bağlanma) və PPP Session (LCP - kanal parametrləri və MRU 1492, PAP/CHAP - autentifikasiya, IPCP/IPv6CP - ünvanlama). Üstünlükləri: daxili autentifikasiya, tanış sessiya modeli, borclunun asan bloklanması. Çatışmazlıqları: 8 bayt əlavə başlıq (MSS clamping və ya RFC 4638 tələb olunur), control plane-də PPP avtomatı və keepalive, multicast IPTV üçün narahatlıq; müasir BNG-lər data-nı yenə də aparatda ötürür. 2. IPoE DHCP əsaslı tunelsiz qoşulmadır (DHCPv4 Option 82 / DHCPv6 Option 18/37). Access kommutatoru Circuit-ID (port) və Remote-ID (access qovşağı) əlavə edir, BNG xətti bunlara görə müəyyən edir və RADIUS-dan avtorizasiya istəyir, loqin və parol daxil edilmir. Option 82 yalnız xətti identifikasiya edir, autentifikasiya etmir: ona yalnız öz access kommutatorunuz əlavə edib filtr edirsə etibar etmək olar. MTU 1500 olaraq qalır.

PPPoE: iki mərhələ və çərçivə formatı

PPPoE (RFC 2516) PPP-ni Ethernet daxilində daşıyır. Discovery çərçivələri EtherType 0x8863, sessiya çərçivələri isə 0x8864 ilə gedir. PPPoE başlığı (6 bayt): Version=1 (4 bit), Type=1 (4 bit), Code (1 bayt), Session-ID (2 bayt), Length (2 bayt); ardınca 2 baytlıq PPP Protocol gəlir. Cəmi əlavə yük 8 baytdır: Ethernet MTU-su 1500 olduqda IP paketinin maksimumu 1492-dir, ona görə susmaya görə MRU 1492-dir. RFC 4638 (PPP-Max-Payload teqi) yol boyu MTU ən azı 1508 (baby-jumbo) olduqda 1500 razılaşdırmağa imkan verir, lakin bütün CPE-lər bunu dəstəkləmir.

Discovery dörd paket və TLV formatlı teqlərdir:

  • PADI (Code 0x09), broadcast ff:ff:ff:ff:ff:ff, Session-ID 0: müştəri konsentrator axtarır; teqlər Service-Name (0x0101, boş = "istənilən"), Host-Uniq (0x0103).
  • PADO (0x07), unicast: BNG özünü təklif edir; teqlər AC-Name (0x0102) və Service-Name, lazım olduqda PADR seli əleyhinə AC-Cookie (0x0104).
  • PADR (0x19), unicast: müştəri PADO-lardan birini seçir və sessiya tələb edir.
  • PADS (0x65): BNG Session-ID təyin edir (1-65535, müştəri MAC + BNG MAC cütündə unikaldır) və təsdiqləyir.
  • PADT (0xA7): hər iki tərəf sessiyanı bağlayır. Müştəri PADI-ni eksponensial fasilə ilə təkrarlayır; boş cavab service-name-in uyğun gəlmədiyini, VLAN-ın səhv olduğunu və ya sessions per-mac limitinin tükəndiyini bildirir.

PPP: LCP, autentifikasiya, NCP

PADS-dan sonra 0xC021 üzərində PPP (LCP) gəlir: Configure-Request/Ack/Nak/Reject, MRU (1), Authentication-Protocol (3), Magic-Number (5) opsiyaları. Magic-Number dövrəni müəyyən etməyə imkan verir, Echo-Request/Reply isə keepalive-dır (adətən interval 10-30 san, 3-5 itki = qırılma). Autentifikasiya: PAP (0xC023) parolu açıq mətnlə bir dəfə göndərir, müştəri başlayır; CHAP (0xC223, RFC 1994) - BNG təsadüfi challenge göndərir, müştəri MD5(id + secret + challenge) ilə cavab verir, parol xətlə getmir, BNG sessiya zamanı challenge-i təkrarlaya bilər. RADIUS üçün CHAP variantı CHAP-Password və CHAP-Challenge atributları ilə ötürülür, server secret-i açıq və ya geri qaytarıla bilən formada bilməlidir. Sonra NCP: IPCP (0x8021) IP-Address (option 3) və DNS serverləri (129/131, RFC 1877) razılaşdırır; IPv6CP (0x8057) yalnız 64 bitlik Interface-Identifier-i razılaşdırır, prefiks isə PPP-dən kənarda verilir: WAN ünvanı üçün SLAAC (BNG-dən RA), LAN üçün delegasiya olunan prefiks üçün isə DHCPv6 IA_PD (RFC 8415) (adətən /56 və ya /60). IPCP ilə verilən IPv4 /32 point-to-point-dir: BNG sessiyanın virtual interfeysinə /32 marşrut əlavə edir.

IPoE: PPP əvəzinə DHCP

IPoE tunel yaratmır: müştəri DHCPv4 Discover (RFC 2131) paketini birbaşa Ethernet-ə göndərir, BNG isə DHCP serveri və ya relay kimi çıxış edir (giaddr = BNG ünvanı). Sessiya MAC + (S-VLAN, C-VLAN) + option 82 birləşməsidir; BNG onu ayrıca protokolla yox, ilk paketlə (DHCP Discover və ya istənilən təsnif olunmamış IP/MAC paketi) yaradır. Avtorizasiya RADIUS-da gedir: User-Name = MAC və ya option 82-dən Circuit-ID/Remote-ID (sub-option 1 və 2, RFC 3046), ona görə abonent parol daxil etmir və porta bağlıdır. Avtorizasiya olunmamışlar üçün (ilk qoşulma, sıfır balans) BNG walled garden-də "məhdud" sessiya yaradır: DNS və ödəniş portalına HTTP yönləndirmə, məlumat daxil edildikdən sonra billing CoA göndərir və sessiya işçi profilə keçirilir. DHCPv6 IA_NA/IA_PD və option 18/37 (Interface-ID/Remote-ID) istifadə edir. IP sessiyaları üzrə standartlar - Broadband Forum TR-101 və TR-146-dır.

BNG IPoE sessiyasının canlılığını dolayı yolla müəyyən edir: DHCP icarəsi və müştəri ünvanının ARP/ICMP yoxlamaları ilə; cavab olmadıqda sessiya bağlanır və uçot dayanır. Port üzrə ünvan sayı limiti və MAC-IP bağlaması (IP source guard/anti-spoofing) BNG-də DHCP bağlamasına əsaslanaraq icra olunur.

Müqayisə və model seçimi

ParametrPPPoEIPoE
Identifikasiyalogin/parol və ya adda realmMAC, Circuit-ID/Remote-ID
MTU1492 (və ya MTU 1508 olduqda RFC 4638 üzrə 1500)1500
Vəziyyəthər abonent üçün PPP Session-IDDHCP qeydi + IP sessiyası
Multicast IPTVayrıca VLAN/profil lazımdır, IGMP PPP daxilində getmirSTB-dən yerli IGMP
Borclunun söndürülməsiPADT/CoA DisconnectCoA Disconnect, walled garden-ə keçirmə
YükCPE və BNG-də hər çərçivənin PPP inkapsulyasiyasıtəmiz IP

Müasir BNG hər iki trafiki aparatda yönləndirir, ona görə fərq əsasən idarəetmə qatında (PPP avtomatı, CHAP, keepalive) və müştəri avadanlığındadır.

MTU və MSS

PPPoE üzərində IPv4 üçün MSS: 1492 - 20 (IP) - 20 (TCP) = 1452; IPv6 üçün: 1492 - 40 - 20 = 1432. ICMP "fragmentation needed" (type 3 code 4) və ya ICMPv6 Packet Too Big filtrlənərsə, Path MTU Discovery pozulur və böyük cavablı saytlar TCP handshake-dən sonra donur. Çarə BNG-də MSS clamping (ip tcp adjust-mss, tcp-mss/change-tcp-mss) və ICMP-yə icazə verməkdir. IPoE üçün MTU Ethernet ilə eynidir, lakin BNG-yə gedən yolda etiketləri nəzərə alın (hər biri 4 bayt).

VRF-ə bağlama və limitlər

PPPoE sessiyası virtual interfeysdə (Virtual-Access, pp0, dynamic PPP interface) yaradılır, o isə VRF-i şablondan/profildən və ya RADIUS atributundan miras alır. Müştərinin /32 marşrutu redistribute connected/static və ya xüsusi subscriber marşrutları ilə BGP VRF-ə düşür. sessions per-mac və per-vlan limitləri PADI selindən və bütün Session-ID-ləri tutan klonlardan qoruyur.