Trafik mübadiləsi nöqtəsi: başlanğıclardan öz IX-in yaradılmasına

Trafik mübadiləsi nöqtəsi: başlanğıclardan öz IX-in yaradılmasına

«Biz SRI ilə aramızda telefon əlaqəsi qurdurmuşduq...», Kleinrock... bir müsahibədə dedi:
«Biz L hərfini yazdıq və telefonda soruşduq, „L-i görürsünüz?"
«Bəli, L-i görürük,» cavabı gəldi.
«O hərfini yazdıq və soruşduq, „O-nu görsəniz?"
«Bəli, O-nu görürük.»
«Sonra G hərfini yazdıq və sistem çökdü...»

Ancaq bir inqilab başlamışdı...

İnternetin başlanğıcı.


Hər kəsə salam!

Mənim adım Aleksandr, mən Linxdatacenter-də şəbəkə mühəndisiyəm. Bu günkü məqalədə trafik mübadiləsi nöqtələri (Internet Exchange Point, IXP) haqqında danışacağam: onların yaranmasından öncə, həll etdiyi məsələlər və necə qurulduqları. Həmçinin bu məqalədə EVE-NG platforması və BIRD proqram yönləndiricisi vasitəsilə IXP-nin fəaliyyət prinsipini nümayiş etdirəcəyəm ki, bunun necə işlədiyi «kapotun altında» başa düşülsün.

Bir az tarix

Əgər baxsaq buraya, 1993-cü ildən etibarən trafik mübadiləsi nöqtələrinin sayında sürətli artımın başlandığını görmək olar. Bu, o dövrdə mövcud olan telekommunikasiya operatorlarının əksər trafikinin ABŞ-ın backbone şəbəkəsi vasitəsilə keçməsi ilə bağlıdır. Məsələn, Fransadan Almaniyadakı operatora trafik gedərkən, əvvəlcə ABŞ-a çatır, yalnız oradan Almaniyaya göndərilirdi. Bu halda, backbone şəbəkəsi Fransa ilə Almaniya arasında tranzit rolunu oynayırdı. Həmçinin, bir ölkə daxilində trafik tez-tez birbaşa keçmək əvəzinə, ABŞ-ın operatorlarının əsas şəbəkələri vasitəsilə keçirdi.

Bu vəziyyət yalnız tranzit trafikinin çatdırılma qiymətinə deyil, həm də kanalların keyfiyyətinə və gecikməyə təsir edirdi. İnteqret istifadəçi sayı artırdı, yeni operatorlar meydana çıxdı, trafik həcmi böyüdü, internet inkişaf etdi. Dünyadakı operatorlar daha səmərəli bir yanaşmaya ehtiyac duyduqlarını başa düşdü. «Niyə mən, operator A, qonşu küçədə yerləşən operator B-yə trafik çatdırmaq üçün başqa bir ölkə ilə tranzitə pul ödəməliyəm?» Bu cür suallar o vaxtdan bəri telekommunikasiya operatorlarının ruhunda idi. Beləliklə, dünyanın müxtəlif bölgələrində operatorların toplandığı nöqtələrdə trafik mübadiləsi nöqtələri meydana gəldi:

  • 1994 – Londondakı LINX,
  • 1995 – Frankfurt şəhərində DE-CIX,
  • 1995 – Moskva şəhərində MSK-IX və s.

İnternet və bizim dövrümüz

Müasir internetin arxitekturası, bir çox müstəqil sistemlərin (autonomous system, AS) və onların arasında fiziki və məntiqli əlaqələrin birləşməsindən ibarətdir ki, bu da bir AS-dən digərinə trafik keçidini müəyyən edir.

AS olaraq adətən telekommunikasiya operatorları, internet provayderləri, CDN, məlumat mərkəzləri, iri müəssisə seqmentində olan şirkətlər çıxış edir. AS-lar aralarında adətən BGP protokolunun vasitəsilə məntiqli əlaqələr (peering) təşkil edirlər.

Avtonom sistemlərin bu əlaqələri necə təşkil etməsi bir sıra amillərlə müəyyən edilir:

  • coğrafi,
  • iqtisadi,
  • siyasi,
  • AS sahibləri arasında razılaşmalar və ortaq maraqlar,
  • və s.

Şübhəsiz ki, bu sxemdə müəyyən bir struktur və ierarxiya mövcuddur. Belə ki, operatorlar tier-1, tier-2 və tier-3 olaraq bölünür və əgər yerli internet provayderinin (tier-3) müştəriləri adətən adi istifadəçilərdirsə, tier-1 operatorların müştəriləri isə başqa operatorlardır. Tier-3 operatorları abunəçilərinin trafiki toplayır, tier-2 telekommunikasiya operatorları, öz növbəsində, tier-3 operatorlarının trafikini toplayır, tier-1 isə bütün internet trafikini toplayır.

Bunu aşağıdakı kimi təsvir etmək olar:

Trafik mübadiləsi nöqtəsi: başlanğıclardan öz IX-in yaradılmasına
Bu şəkildə görünür ki, trafik aşağıdan yuxarıya yığılır, yəni son istifadəçilərdən tier-1 operatorlarına. Ayrıca, bənzər AS-lar arasında üfüqi trafik mübadiləsi də baş verir.

Bu sxemin ayrılmaz bir hissəsi və eyni zamanda çatışmazlığı, son istifadəçiyə daha yaxın olan müstəqil sistemlər arasında bağlantılarda müəyyən bir qarışıqlığın olmasıdır. Aşağıdakı şəkilə baxaq:

Trafik mübadiləsi nöqtəsi: başlanğıclardan öz IX-in yaradılmasına

Təsəvvür edək ki, iri bir şəhərdə 5 telekommunikasiya operatoru var, aralarında bir-birinə peering etmə səbəbləri ilə əlaqələr yuxarıda göstərildiyi kimi təşkil olunub.

Əgər istifadəçi Peta, Go internet provayderinə qoşulubsa və ASM provayderinə bağlı bir serverə giriş əldə etmək istəyirsə, o zaman trafik 5 müstəqil sistemdən keçməyə məcbur olacaq. Bu, gecikməni artırır, çünki trafik keçəcək şəbəkə avadanlıqlarının sayı artır, eyni zamanda Go ilə ASM arasındakı müstəqil sistemlər üzərindən keçən tranzit trafikinin həcmi artır.

Trafikin keçməsi məcbur olduğu tranzit AS-ların sayını necə azaltmaq olar? Düzdür - trafik mübadilə nöqtəsi.

Bu gün IXP-lərin yaranması 90-cı illərin və 2000-ci illərin əvvəllərindəki eyni ehtiyaclarla bağlıdır, yalnız daha kiçik miqyasda, artan rabitə operatorları, istifadəçilər və trafik, CDN şəbəkələri və məlumat mərkəzləri tərəfindən yaradılan artan məzmunun cavabı olaraq.

Trafik mübadiləsi nöqtəsi nədir?

Trafik mübadiləsi nöqtəsi, qarşılıqlı trafik mübadiləsi ilə maraqlanan iştirakçıların qarşılıqlı piring təşkil etdiyi xüsusi şəbəkə infrastrukturu olan yerdir. Trafik mübadiləsi nöqtələrinin əsas iştirakçıları: rabitə operatorları, internet provayderləri, məzmun provayderləri və məlumat mərkəzləridir. Trafik mübadiləsi nöqtələrində iştirakçılar birbaşa bir-biri ilə əlaqə qururlar. Bu, aşağıdakı məsələləri həll etməyə imkan verir:

  • gecikməni azaltmaq,
  • daşınma trafikinin miqdarını azaltmaq,
  • AS-lar arasında yönləndirməni optimallaşdırmaq.

Dünya miqyasında bir çox böyük şəhərlərdə IXP-lərin olması internet şəbəkəsinə də müsbət təsir göstərir.

Yuxarıda təsvir edilən vəziyyəti Petya ilə IXP-də necə həll etmək olar, demək olar ki, belə olacaq:

Trafik mübadiləsi nöqtəsi: başlanğıclardan öz IX-in yaradılmasına

Trafik mübadiləsi nöqtəsi necə qurulub?

Adətən, IXP özünəməxsus bir AS-dir və özünə məxsus açıq IPv4/IPv6 ünvan blokuna malikdir.

IXP şəbəkəsi əksər hallarda tam bir L2 domenidir. Bəzən bu, IXP-nin bütün müştərilərinin yerləşdiyi sadəcə vlan ola bilər. Daha böyük, coğrafi cəhətdən yayılmış IXP-lər haqqında danışıldıqda, L2 domeninin təşkil olunması üçün MPLS, VXLAN və s. kimi texnologiyalardan istifadə oluna bilər.

IXP elementləri

  • SKS. Burada qeyri-adi heç nə yoxdur: şkaflar, optik keçidlər, bağlantı panelləri.
  • Switchlər IXP-nin əsasını təşkil edir. Switch-in portu IXP şəbəkəsinə giriş nöqtəsidir. Həmçinin, switch-lar IXP şəbəkəsində olmaması lazım olan zibil trafikini filtrə etməklə təhlükəsizlik funksiyalarının bir hissəsini yerinə yetirir. Adətən, switch-lar funksional tələblərə əsasən seçilir – etibarlılıq, portların dəstəklədiyi sürət, təhlükəsizlik funksiyaları, sFlow dəstəyi və s.
  • Route server (RS) – müasir trafik mübadiləsi nöqtələrinin ayrılmaz və zəruri bir hissəsidir. İş prinsipi baxımından iBGP-dəki route reflector və ya OSPF-dəki designated router-i çox xatırladır və eyni problemləri həll edir. Trafik mübadiləsi nöqtəsinin iştirakçılarının sayı artdıqca, hər bir iştirakçının saxlaması gərəkən BGP sessiyalarının sayı artır ki, bu da klassik full-mesh topologiyasını iBGP-də xatırladır. RS problemi aşağıdakı şəkildə həll edir: IXP-də maraqlı olan hər iştirakçı ilə BGP sessiyası qurur və o, RS-nin müştərisi olur. Müştərilərindən birindən BGP güncəlləməsini qəbul edən RS, bu güncəlləməni digər müştərilərinə paylayır, əlbəttə ki, güncəlləmənin alındığı müştəridən başqa. Beləliklə, RS, IXP iştirakçıları arasında full-mesh qurmağı tələb etmədən problemə eyni zamanda elegant bir şəkildə həll edir. Qeyd etmək lazımdır ki, marşrut serveri marşrutları bir AS-dən digərinə dəyişiklik etmədən şərh edir, məsələn, AS-path-də öz AS-in nömrəsini əlavə etmir. Həmçinin, RS-da marşrutların əsas filtrasyonu baş verir: məsələn, RS, martians networks və IXP-nin öz prefiqslərini qəbul etmir.

    Route server olaraq tez-tez BIRD (bird internet routing daemon) adlı açıq mənbə proqramı yönləndiricisindən istifadə olunur. O, pulsuz olması, əksər Linux dağıtımlarında sürətlə quraşdırılması, marşrutlaşdırma/filter siyasətləri üçün çevik konfiqurasiya mexanizminə malik olması və hesablama resurslarına tələb edə biləcəyindən asılı olaraq yaxşıdır. Eyni zamanda, RS olaraq Cisco, Juniper və s. avadanlıq/virtual yönləndirici də seçilə bilər.

  • Təhlükəsizlik. IXP şəbəkəsi çox sayıda AS-in toplanmasını təmsil etdiyindən, bütün iştirakçıların riayət etməli olduğu təhlükəsizlik siyasəti də yaxşı hazırlanmalıdır. Adətən, IXP-dən kənarda iki ayrı BGP-pir arasındakı BGP qonşuluğunu qurarkən tətbiq olunan bütün eyni mexanizmlər burada da tətbiq edilir, eləcə də bəzi əlavə mühafizə vasitələri istifadə olunur.

    Məsələn, IXP iştirakçısının əvvəlcədən razılaşdırılmış müəyyən bir mac ünvanından trafikin keçirilməsi yaxşı praktikadır. 0x0800 (IPv4), 0x08dd (IPv6), 0x0806 (ARP) ilə fərqlənən ethertype sahələri ilə trafikin qadağan edilməsi; bu, BGP piringində yer olmayan trafiki filtreləmək məqsədilə edilir. Həmçinin GTSM, RPKI və s. kimi mexanizmlər tətbiq oluna bilər.

Şübhəsiz ki, yuxarıda sadalananlar hər hansı bir IXP-nin əsas tərkib hissələridir, ölçüdən asılı olmayaraq. Əlbəttə ki, iri IXP-lərdə əlavə texnologiyalar və həllər tətbiq oluna bilər.
Bəzən IXP iştirakçılarına əlavə xidmətlər təqdim edir:

  • IXP TLD DNS serverlərini yerləşdirir,
  • t iştirakçılara dəqiq vaxtı sinxronizasiya etməyə imkan verən hardware NTP serverləri quraşdırır,
  • DDoS hücumlarından müdafiə təqdim edir və s.

İş prinsipi

Bir trafikin mübadiləsi nöqtəsinin iş prinsiplərini sadə IXP nümunəsi ilə dərs edək ki, bu da EVE-NG vasitəsilə modelləşdirilmişdir, sonra BIRD proqram marşrutlaşdırıcısının əsas konfiqurasiyasını nəzərdən keçirəcəyik. Cədvəli sadələşdirmək üçün biz rezervasiya və etibarlılıq kimi vacib məqamları atlayacağıq.

Şəbəkə topologiyası aşağıdakı şəkildə təqdim olunub.

Trafik mübadiləsi nöqtəsi: başlanğıclardan öz IX-in yaradılmasına

Gəlin, kiçik bir trafik mübadiləsi nöqtəsini idarə etdiyimizi və aşağıdakı piring variantlarını təqdim etdiyimizi təxmin edək:

  • ictimai piring,
  • özəl piring,
  • route server vasitəsilə piring.

AS nömrəmiz - 555, IPv4 ünvanları bloku - 50.50.50.0/24-ı əlimizdədir, bu blokdan şəbəkəmizə qoşulmaq istəyənlərə IP ünvanları təqdim edirik.

50.50.50.254 – route server’in interfeysində konfiqurasiya edilmiş IP ünvanıdır, bu IP vasitəsilə müştərilər RS vasitəsilə piring zamanı BGP sessiyasını qura biləcəklər.

Eyni zamanda, RS vasitəsilə piring üçün iştirakçılara hansı yolları göndərmək lazım olduğunu tənzimləməyə imkan verən BGP community əsasında sadə bir marşrutlaşdırma siyasəti hazırlamışıq:

BGP community
Təsvir

LOCAL_AS:PEER_AS
PREFIKSLƏRİ YALNIZ PEER_AS-A PÖHRATMAQ

LOCAL_AS:IXP_AS
PREFIKSLƏRİ BÜTÜN IXP İştirakçılarına PÖHRATMAQ

Bizim IXP-ə qoşulmaq və trafiki mübadilə etmək istəyən 3 müştəri var; gəlin, bunların internet provayderləri olduğunu qəbul edək. Hamısı route server vasitəsilə piring təşkil etmək istəyir. Aşağıda müştərilərin qoşulma parametrləri ilə sxem təqdim olunur:

Müştəri
Müştərinin AS nömrəsi
Müştəri tərəfindən elan olunan prefikslər
IXP-yə qoşulma üçün müştəriyə verilmiş IP ünvanı

ISP #1
AS 100
1.1.0.0/16
50.50.50.10/24

ISP #2
AS 200
2.2.0.0/16
50.50.50.20/24

ISP #3
AS 300
3.3.0.0/16
50.50.50.30/24

Müştərinin marşrutlaşdırıcısında BGP-nin əsas konfiqurasiyası:

router bgp 100
 no bgp enforce-first-as
 bgp log-neighbor-changes
 neighbor 50.50.50.254 remote-as 555
address-family ipv4
  network 1.1.0.0 mask 255.255.0.0
  neighbor 50.50.50.254 activate
  neighbor 50.50.50.254 send-community both
  neighbor 50.50.50.254 soft-reconfiguration inbound
  neighbor 50.50.50.254 route-map ixp-out out
 exit-address-family

ip prefix-list as100-prefixes seq 5 permit 1.1.0.0/16
route-map bgp-out permit 10
 match ip address prefix-list as100-prefixes
 set community 555:555

Burada no bgp enforce-first-as konfigürasyonunu belirtmek önemlidir. Varsayılan olarak, BGP, alınan BGP güncellemesinin as-path'inde, güncellemenin alındığı BGP eşinin as numarasının bulunmasını gerektirir. Ancak, route sunucu as-path'i değiştirmediği için, bu numara as-path'de bulunmayacak ve güncelleme reddedilecektir. Bu konfigürasyon, yönlendiricinin bu kuralı göz ardı etmesini sağlamak için uygulanır.

Ayrıca, müşteri bu ön ek için bgp community 555:555 belirledi, bu da politikamız gereği müşterinin bu ön eki diğer tüm katılımcılara duyurmak istediği anlamına geliyor.

Diğer müşterilerin yönlendiricileri için konfigürasyon benzer olacaktır, yalnızca onların benzersiz parametreleri farklı olacaktır.

BIRD konfigürasyon örneği:

define ixp_as = 555;
define ixp_prefixes = [ 50.50.50.0/24+ ];

template bgp RS_CLIENT {
  local as ixp_as;
  rs client;
}

İleride martians ön eklerini ve IXP'nin kendi ön eklerini kabul etmeyen bir filtre açıklanmaktadır:

function catch_martians_and_ixp()
prefix set martians;
prefix set ixp_prefixes;
{
  martians = [ 
  0.0.0.0/8+,
  10.0.0.0/8+,
  100.64.0.0/10+,
  127.0.0.0/8+,
  169.254.0.0/16+,
  172.16.0.0/12+,
  192.0.0.0/24+,
  192.0.2.0/24+,
  192.168.0.0/16+,
  198.18.0.0/15+,
  198.51.100.0/24+,
  203.0.113.0/24+,
  224.0.0.0/4+,
  240.0.0.0/4+ ];

  if net ~ martians || net ~ ixp_prefixes then return false;

  return true;
}

Bu fonksiyon daha önce tanımladığımız yönlendirme politikasını gerçekleştirir.

function bgp_ixp_policy(int peer_as)
{
  if (ixp_as, ixp_as) ~ bgp_community then return true;
  if (ixp_as, peer_as) ~ bgp_community then return true;

  return false;
}

filter reject_martians_and_ixp
{
  if catch_martians_and_ixp() then reject;
  if ( net ~ [0.0.0.0/0{25,32} ] ) then {
    reject;
  }
  accept;


}

Peering ayarlıyoruz, ilgili filtreler ve politikaları uyguluyoruz.

protocol as_100 from RS_CLIENT {
  neighbor 50.50.50.10 as 100;
  ipv4 {
    export where bgp_ixp_policy(100);
    import filter reject_martians_and_ixp;
  }
}

protocol as_200 from RS_CLIENT {
  neighbor 50.50.50.20 as 200;
  ipv4 {
    export where bgp_ixp_policy(200);
    import filter reject_martians_and_ixp;
  }
}

protocol as_300 from RS_CLIENT {
  neighbor 50.50.50.30 as 300;
  ipv4 {
    export where bgp_ixp_policy(300);
    import filter reject_martians_and_ixp;
  }
}

Route sunucusunda, farklı pirlərden gelen yolların farklı RIB'lerde toplanmasının iyi bir davranış olduğunu belirtmek gerekir. BIRD bunu mümkün kılar. Örneğimizde, basitlik için, tüm müşterilerden alınan tüm güncellemeler tek bir genel RIB'de toplanmıştır.

Beləliklə, nə əldə etdiyimizi yoxlayaq.

Route serverində görürük ki, bütün üç müştəri ilə BGP sessiyası yaradılıb:

Trafik mübadiləsi nöqtəsi: başlanğıclardan öz IX-in yaradılmasına

Görürük ki, bütün müştərilərdən prefiks alırıq:

Trafik mübadiləsi nöqtəsi: başlanğıclardan öz IX-in yaradılmasına

AS 100 routerində görürük ki, yalnız bir BGP sessiyası ilə route serverilə, həm AS 200-dən, həm də AS 300-dən prefiks alırıq və BGP atributları dəyişməyib, sanki müştərilər arasında birbaşa interlinkinq olub:

Trafik mübadiləsi nöqtəsi: başlanğıclardan öz IX-in yaradılmasına

Beləliklə, route serverinin mövcudluğu IXP-də interlinkinqin təşkilini əhəmiyyətli dərəcədə asanlaşdırır.

Ümid edirəm ki, bu nümayiş sizin trafik mübadilə nöqtələrinin necə qurulduğunu və IXP-də route serverinin fəaliyyətinin necə həyata keçirildiyini daha yaxşı anlamanıza kömək etdi.

Linxdatacenter IX

Linxdatacenter-də öz müstəqil IXP-ni 2 switch və 2 route server əsasında yaratmışıq. Hal-hazırda, IXP-nin test rejimində işləyir və hamını Linxdatacenter IX-ə qoşulmağa və testdə iştirak etməyə dəvət edirik. Qoşulduğunuz zaman, sizə 1 Gbit/s sürətə malik bir port, route serverlərimiz vasitəsilə interlinkinq imkanı və ix portalına, ünvanı olan personal bölgüsünə çıxış veriləcək ix.linxdatacenter.com.

Testdə iştirak üçün giriş əldə etmək üçün şərhlərdə və ya şəxsi mesajlarda yazın.

Çıktı

Trafik mübadilə nöqtələri internetin başlanğıcında, rabitə operatorları arasında trafik keçidinin optimallaşdırılması məsələsini həll etmək üçün yaranıb. İndi yeni qlobal xidmətlərin və CDN trafikinin artması ilə trafik mübadilə nöqtələri hələ də qlobal şəbəkənin işini optimallaşdırmağa davam edir. Dünyada IXP-lərin sayının artması həm xidmət son istifadəçiləri, həm də rabitə operatorları, məzmun operatorları və s. üçün müsbət nəticə verir. IXP iştirakçıları üçün fayda, xarici interlinklər üçün xərclərin azaldılması, yüksək səviyyəli operatorlara ödəmək lazım olan trafik həcminin azaldılması, marşrutlaşdırmanın optimallaşdırılması, məzmun operatorları ilə birbaşa bağlanma imkanında ifadə olunur.

Faydalı bağlantılar

Mənbə: habr.com

DDoS qoruması olan saytlara etibarlı hosting satın alın, VPS VDS serverlər 🔥 DDoS qoruması olan saytlara etibarlı hosting satın alın, VPS VDS serverlər | ProHoster