Nəzəri əsaslar və memarlıq
Control plane-in qorunması (Control Plane Policing, CoPP; tədbirlər toplusu RFC 6192-də təsvir olunub) marşrutlaşdırıcının müdafiə sərhədlərindən biridir. CPU protokollara (BGP, OSPF/IS-IS, LDP, BFD) və idarəetməyə (SSH, SNMP) cavabdehdir. Marşrutlaşdırıcının özünə ünvanlanmış istənilən paket, eləcə də TTL=1, ARP/glean və ICMP cavabları olan paketlər məhdud tutumlu kanalla (punt) CPU-ya gedir. Loopback-ə saniyədə on minlərlə paketlik axın BGP keepalive-larını, LDP hello-larını və BFD paketlərini gecikdirə bilər və sessiyalar taymerlə düşər. CoPP CPU-ya gedən trafiki siniflər üzrə polis edir (əksər platformalarda bu aparatda həyata keçirilir; RouterOS-da oxşar qaydaları CPU-nun özü icra edir): 1. ROUTING (BGP, IGP, LDP, BFD): səxavətli polisər, çünki itirilmiş hello sessiyanı düşürür. 2. MGMT (SSH, SNMP, NTP, TACACS+): yalnız idarəetmə şəbəkəsindən, orta polisər. 3. ICMP: aşağı polisər, lakin tam drop deyil, əks halda PMTUD pozulur. 4. DEFAULT: qalan hər şey, minimal polisər və ya drop. CoPP CPU-ya nə qədər trafikin çatacağını məhdudlaşdırır, lakin ACL-i (cihazla kimin danışa biləcəyi), protokol autentifikasiyasını, GTSM və uRPF-i əvəz etmir: tədbirlər bir-birini tamamlayır. Müştəri VRF-i bu təhlükədən qorumur: PE-CE interfeysinin ünvanı müştəri üçün əlçatandır.
Üç qat və punt yolu
Tranzit paketlər ASIC/NPU-da emal olunur (data plane), marşrutlaşdırma və siqnallaşma protokolları marşrutlaşdırıcının CPU-sunda işləyir (control plane), SSH, SNMP, NTP, TACACS+ və syslog isə idarəetmə qatına (management plane) aiddir. Marşrutlaşdırıcının özünə ünvanlanmış istənilən paket (loopback və ya interfeys ünvanı, yaxud multicast 224.0.0.2/5/6), həmçinin TTL=1, IP options, ARP/glean və ICMP cavabları olan paketlər məhdud tutumlu daxili kanal (punt path) üzərindən CPU-ya göndərilir. Bu kanal və prosessor özü ortaq resursdur: PE loopback-inə saniyədə on minlərlə paketlik axın BGP keepalive-larını, LDP hello-larını və BFD paketlərini gecikdirə bilər, bundan sonra sessiyalar taymerlə düşür və yük şəbəkədə kaskad şəklində yayılır. VRF-dəki müştəri də CPU-ya çatır: onun VRF-indəki PE-CE interfeys ünvanı ping-ə cavab verir və TCP qəbul edir, buna görə VRF izolyasiyası bu təhlükədən qorumur.
Dərinlikdə müdafiə (RFC 6192)
RFC 6192 bir-birindən asılı olmayan tədbirlər dəstini təsvir edir: sərhəddə filtrasiya (infrastruktur ACL-ləri), marşrutlaşdırıcının özündə qəbul filtri (Cisco rACL, lo0-da Junos filtri), siniflər üzrə sürət məhdudiyyəti (CoPP), konkret protokolların qorunması (autentifikasiya, GTSM, max-prefix) və monitorinq. Tədbirlər bir-birini tamamlayır: ACL kimin cihazla ümumiyyətlə danışa biləcəyini müəyyən edir, CoPP nə qədər danışa biləcəyini məhdudlaşdırır, autentifikasiya isə danışanın doğru adam olduğunu yoxlayır. Heç bir tədbir digərlərini əvəz etmir.
CoPP sinifləri və başlanğıc siyasətlər
| Sinif | Nə daxildir | Baza siyasəti |
|---|---|---|
| ROUTING | məlum qonşulardan hər iki istiqamətdə BGP (TCP 179), OSPF (protokol 89), LDP (UDP/TCP 646), BFD (UDP 3784, 4784, 3785) | Səxavətli poliser: hello-ların itməsi sessiyanın itməsi deməkdir |
| MGMT | yalnız idarəetmə şəbəkəsindən SSH (TCP 22), SNMP (UDP 161), NTP (UDP 123), TACACS+ cavabları (TCP 49) | Orta poliser, mənbələr ACL ilə məhdudlaşdırılır |
| ICMP | echo, echo-reply, time-exceeded, unreachable (PMTUD üçün frag-needed daxil olmaqla) | Aşağı poliser: tam atmayın, əks halda PMTUD pozulur |
| DEFAULT | marşrutlaşdırıcıya ünvanlanmış qalan hər şey | Minimal poliser və ya drop |
Cədvəldə rəqəmlər qəsdən verilməyib: başlanğıc qiymətlər platformanın baza profilinə görə seçilir (1-2 həftə exceed-action transmit qoyulur, exceeded sayğaclarına baxılır, sonra drop aktiv edilir).
Siniflər üçün ACL-ləri necə qurmaq olar
Klassifikasiya hər iki istiqamətdə ünvan və port üzrə aparılır: bizim tərəfdən başladılmış BGP sessiyası source port 179 olan paketlərlə qayıdır, qonşunun başlatdığı sessiya isə destination port 179 ilə gəlir. Yalnız bir tərəfi təsvir edən ACL-lər marşrut cədvəli dəyişmədiyi müddətdə işləyir, sessiya yenidən başladıqdan sonra cavab paketləri class-default-a düşür və sessiya cədvəli bərpa edə bilmir. IS-IS üçün IP-ACL faydasızdır: IS-IS L2 səviyyəsində (CLNP) işləyir və onu platformanın ayrıca vasitələri qoruyur. CoPP-də IP-ACL yalnız təsnif edir: permit "bu sinifə" deməkdir, "icazə ver" yox, deny isə "başqa sinifə" deməkdir.
CoPP harada tətbiq olunur
- Cisco IOS-XE:
control-planeüzərində MQC siyasəti (aggregate); cihazın özünə ünvanlanmış paketlər üçüncontrol-plane host, həmçinincontrol-plane transitvəcontrol-plane cef-exceptionalt bölmələri var. Poliserpolice cir/police rateilə təyin olunur, sayğaclarashow policy-map control-plane-də baxılır. - Huawei VRP: paket növünə görə CAR (
car packet-type), ACL əsaslı ağ və qara siyahılarlacpu-defend policy; siyasət qlobal və ya konkret platada tətbiq olunur. - Juniper Junos:
lo0.0girişindəfirewall family inet filter(filtr RE-yə gedən hər şeyə tətbiq olunur), üstəlik hər protokol üçün poliserli daxili DDoS qoruması (ddos-protection). Lazımi protokollar üçünacceptterm-ləri və bağlayıcıdiscardiləlo0filtri RE-nin standart qoruma sxemidir. - MikroTik RouterOS: ünvan siyahıları və
limit=ilə/ip/firewall/filter-ininputzənciri; xüsusi CoPP mexanizmi yoxdur, qaydalar CPU-da icra olunur, ona görə erkən drop üçün onları/ip/firewall/raw-a qoyurlar.
Management plane: SSH, VTY, AAA, SNMPv3
- SSH-only: SSHv2, ən azı 2048 bitlik RSA açarı, Telnet və HTTP söndürülüb, xətlərdə
transport input ssh,exec-timeout, giriş cəhdlərinin sayına məhdudiyyət. - VTY-də ACL:
vrf-alsoiləaccess-classgirişə yalnız idarəetmə şəbəkəsindən icazə verir. Bu, CoPP-dən sonra ikinci sərhəddir: CoPP sürəti, VTY ACL isə mənbəni məhdudlaşdırır. - AAA/TACACS+: TACACS+ (RFC 8907) üzərində autentifikasiya, imtiyazlara görə avtorizasiya və komandalar üzrə accounting;
localehtiyatı ilə ki, server itəndə mühəndis cihazdan kənarda qalmasın. Server sirri şifrələnmiş şəkildə saxlanılır, konsol xətti öz metodunu alır. RouterOS TACACS+ dəstəkləmir, yalnız RADIUS. - SNMPv3:
authPrivsəviyyəsi (SHA və AES), istifadəçi qrupa və məhdud view-a bağlanır, mənbələr ACL ilə süzülür. v1/v2c community-ləri söndürülür: sətir açıq mətnlə ötürülür.
TTL, uRPF və GTSM ilə əlaqə
TTL propagation (no mpls ip propagate-ttl) nüvəni traceroute-dan gizlədir, GTSM (RFC 5082) TTL-i həddən aşağı olan BGP sessiya paketlərini atır, uRPF (RFC 3704) isə saxta mənbəli paketləri kəsir. Bu mexanizmlər CoPP-ni tamamlayır, lakin ayrıca konfiqurasiya olunur və PE hardening laboratoriya işində təhlil edilir.
Necə yoxlamaq olar
Əvvəlcə sinif sayğacları (conformed və exceeded) və ACL-də uyğunluqlar, sonra yük: etibarsız mənbədən loopback-ə axın başladılır və exceeded-in DEFAULT/ICMP-də artdığına, BGP/LDP/BFD-nin Established qaldığına və CPU-nun artmadığına əmin olunur. Hər ACL dəyişikliyi qonşu sessiyalarının yalnız sakit vəziyyətdə yox, soft reset ilə clear-dan sonra bərpa olunduğunun yoxlanması ilə müşayiət olunur.