Titik pertukaran lalu lintas: dari asal hingga pembuatan IX Anda sendiri

Titik pertukaran lalu lintas: dari asal hingga pembuatan IX Anda sendiri

“Kami membuat sambungan telepon antara kami dan orang-orang di SRI…”, Kleinrock… berkata dalam sebuah wawancara:
“Kami mengetik huruf L dan kami bertanya di telepon, “Apakah Anda melihat huruf L?”
“Ya, kami melihat huruf L,” jawabnya.
“Kami mengetik O, dan kami bertanya, “Apakah Anda melihat O.””
"Ya, kami melihat huruf O."
“Kemudian kami mengetik G, dan sistemnya crash”...

Namun revolusi telah dimulai…

Awal mula internet.


Hello!

Nama saya Alexander, saya seorang insinyur jaringan di Linxdatacenter. Dalam artikel hari ini kita akan berbicara tentang titik pertukaran lalu lintas (Internet Exchange Points, IXP): apa yang mendahului kemunculannya, tugas apa yang mereka selesaikan, dan bagaimana cara membangunnya. Juga dalam artikel ini saya akan mendemonstrasikan prinsip pengoperasian IXP menggunakan platform EVE-NG dan router perangkat lunak BIRD, sehingga Anda memiliki pemahaman tentang cara kerjanya “di balik terpal”.

Sedikit sejarah

Jika kamu melihat di sini, maka Anda dapat melihat bahwa pertumbuhan pesat jumlah titik pertukaran lalu lintas dimulai pada tahun 1993. Pasalnya, sebagian besar trafik operator telekomunikasi yang ada saat itu melewati jaringan backbone AS. Jadi, misalnya, ketika lalu lintas berpindah dari operator di Prancis ke operator di Jerman, lalu lintas pertama-tama berpindah dari Prancis ke AS, dan baru kemudian dari AS ke Jerman. Jaringan tulang punggung dalam hal ini berperan sebagai transit antara Perancis dan Jerman. Bahkan lalu lintas dalam satu negara seringkali tidak lewat secara langsung, melainkan melalui jaringan tulang punggung operator Amerika.

Keadaan ini tidak hanya mempengaruhi biaya pengiriman lalu lintas transit, tetapi juga kualitas saluran dan penundaan. Jumlah pengguna Internet meningkat, operator baru bermunculan, volume lalu lintas meningkat, dan Internet semakin matang. Operator di seluruh dunia mulai menyadari bahwa diperlukan pendekatan yang lebih rasional dalam mengatur interaksi antar operator. “Mengapa saya, operator A, harus membayar transit melalui negara lain untuk mengantarkan lalu lintas ke operator B, yang terletak di jalan berikutnya?” Ini kira-kira merupakan pertanyaan yang diajukan oleh operator telekomunikasi pada saat itu. Dengan demikian, titik pertukaran lalu lintas mulai bermunculan di berbagai belahan dunia pada titik konsentrasi operator:

  • 1994 – LINX di London,
  • 1995 – DE-CIX di Frankfurt,
  • 1995 – MSK-IX, di Moskow, dll.

Internet dan hari-hari kita

Secara konseptual, arsitektur Internet modern terdiri dari banyak sistem otonom (AS) dan banyak koneksi di antara mereka, baik fisik maupun logis, yang menentukan jalur lalu lintas dari satu AS ke AS lainnya.

AS biasanya merupakan operator telekomunikasi, penyedia Internet, CDN, pusat data, dan perusahaan segmen perusahaan. AS mengatur koneksi logis (peering) di antara mereka sendiri, biasanya menggunakan protokol BGP.

Cara sistem otonom mengatur koneksi ini ditentukan oleh sejumlah faktor:

  • geografis,
  • ekonomis,
  • politik,
  • perjanjian dan kepentingan bersama antara pemilik AS,
  • dan lain-lain

Tentu saja skema ini memiliki struktur dan hierarki tertentu. Dengan demikian, operator dibagi menjadi tingkat-1, tingkat-2 dan tingkat-3, dan jika klien untuk penyedia Internet lokal (tingkat-3), biasanya adalah pengguna biasa, maka, misalnya, untuk tingkat-1 operator tingkat klien adalah operator lain. Operator tingkat-3 mengumpulkan lalu lintas pelanggan mereka, operator telekomunikasi tingkat-2, pada gilirannya, mengumpulkan lalu lintas dari operator tingkat-3, dan tingkat-1 – semua lalu lintas Internet.

Secara skematis dapat direpresentasikan seperti ini:

Titik pertukaran lalu lintas: dari asal hingga pembuatan IX Anda sendiri
Gambar ini menunjukkan bahwa lalu lintas dikumpulkan dari bawah ke atas, yaitu. dari pengguna akhir hingga operator tingkat-1. Ada juga pertukaran lalu lintas horizontal antar AS yang kira-kira setara satu sama lain.

Bagian integral dan sekaligus kelemahan skema ini adalah kebingungan hubungan antara sistem otonom yang terletak lebih dekat dengan pengguna akhir, dalam suatu wilayah geografis. Perhatikan gambar di bawah ini:

Titik pertukaran lalu lintas: dari asal hingga pembuatan IX Anda sendiri

Misalkan di sebuah kota besar terdapat 5 operator telekomunikasi, yang peering di antara mereka, karena satu dan lain hal, diatur seperti yang ditunjukkan di atas.

Jika pengguna Petya yang terhubung ke ISP Go ingin mengakses server yang terhubung ke penyedia ASM, maka lalu lintas di antara mereka akan dipaksa melewati 5 sistem otonom. Hal ini meningkatkan penundaan karena jumlah perangkat jaringan yang dilalui lalu lintas meningkat, serta volume lalu lintas transit pada sistem otonom antara Go dan ASM.

Bagaimana cara mengurangi jumlah AS transit yang terpaksa dilalui lalu lintas? Itu benar - titik pertukaran lalu lintas.

Saat ini, kemunculan IXP baru didorong oleh kebutuhan yang sama seperti di awal tahun 90an-2000an, hanya saja dalam skala yang lebih kecil, sebagai respons terhadap meningkatnya jumlah operator telekomunikasi, pengguna dan lalu lintas, meningkatnya jumlah konten yang dihasilkan oleh jaringan CDN. dan pusat data.

Apa itu titik pertukaran?

Titik pertukaran lalu lintas adalah tempat dengan infrastruktur jaringan khusus di mana para peserta yang tertarik pada pertukaran lalu lintas bersama mengatur saling mengintip. Peserta utama dalam titik pertukaran lalu lintas: operator telekomunikasi, penyedia Internet, penyedia konten, dan pusat data. Di titik pertukaran lalu lintas, peserta terhubung langsung satu sama lain. Hal ini memungkinkan Anda untuk memecahkan masalah berikut:

  • mengurangi latensi,
  • mengurangi jumlah lalu lintas transit,
  • mengoptimalkan perutean antar AS.

Mengingat IXP hadir di banyak kota besar di seluruh dunia, hal ini berdampak menguntungkan pada Internet secara keseluruhan.

Jika situasi di atas dengan Petya diselesaikan menggunakan IXP, hasilnya akan seperti ini:

Titik pertukaran lalu lintas: dari asal hingga pembuatan IX Anda sendiri

Bagaimana cara kerja titik pertukaran lalu lintas?

Sebagai aturan, IXP adalah AS terpisah dengan blok alamat IPv4/IPv6 publiknya sendiri.

Jaringan IXP paling sering terdiri dari domain L2 berkelanjutan. Terkadang ini hanyalah sebuah VLAN yang menampung semua klien IXP. Jika menyangkut IXP yang lebih besar dan terdistribusi secara geografis, teknologi seperti MPLS, VXLAN, dll. dapat digunakan untuk mengatur domain L2.

elemen IXP

  • SKS. Tidak ada yang aneh di sini: rak, sambungan silang optik, panel tempel.
  • Sakelar – dasar IXP. Port switch adalah titik masuk ke jaringan IXP. Sakelar juga menjalankan sebagian fungsi keamanan - sakelar menyaring lalu lintas sampah yang tidak boleh ada di jaringan IXP. Biasanya, sakelar dipilih berdasarkan persyaratan fungsional - keandalan, kecepatan port yang didukung, fitur keamanan, dukungan sFlow, dll.
  • Server rute (RS) – merupakan bagian integral dan penting dari setiap titik pertukaran lalu lintas modern. Prinsip operasinya sangat mirip dengan reflektor rute di iBGP atau router yang ditunjuk di OSPF dan menyelesaikan masalah yang sama. Seiring bertambahnya jumlah peserta di titik pertukaran lalu lintas, jumlah sesi BGP yang dibutuhkan setiap peserta untuk didukung juga meningkat, yaitu. ini mengingatkan pada topologi full-mesh klasik di iBGP. RS memecahkan masalah dengan cara berikut: RS membuat sesi BGP dengan setiap peserta IXP yang berminat, dan peserta tersebut menjadi klien RS. Menerima pembaruan BGP dari salah satu kliennya, RS mengirimkan pembaruan ini ke semua klien lainnya, tentu saja, kecuali klien tempat pembaruan ini diterima. Dengan demikian, RS menghilangkan kebutuhan untuk membangun jaringan penuh antara semua anggota IXP dan memecahkan masalah skalabilitas dengan elegan. Perlu dicatat bahwa server rute secara transparan mentransmisikan rute dari satu AS ke AS lainnya tanpa membuat perubahan pada atribut yang dikirimkan oleh BGP, misalnya, server tidak menambahkan nomor di AS ke jalur AS. Juga di RS terdapat pemfilteran rute dasar: misalnya, RS tidak menerima jaringan Mars dan awalan IXP itu sendiri.

    Router perangkat lunak sumber terbuka, BIRD (bird internet routing daemon), sering digunakan sebagai solusi server rute. Keunggulannya adalah gratis, dapat diterapkan dengan cepat di sebagian besar distribusi Linux, memiliki mekanisme fleksibel untuk menyiapkan kebijakan perutean/penyaringan, dan tidak menuntut sumber daya komputasi. Selain itu, perangkat keras/router virtual dari Cisco, Juniper, dll. dapat dipilih sebagai RS.

  • Keamanan Karena jaringan IXP merupakan konsentrasi sejumlah besar AS, kebijakan keamanan yang harus diikuti oleh semua peserta harus ditulis dengan baik. Secara umum, semua mekanisme yang sama yang berlaku saat membuat kedekatan BGP antara dua rekan BGP terpisah di luar IXP berlaku di sini, ditambah beberapa fitur keamanan tambahan.

    Misalnya, praktik yang baik adalah mengizinkan lalu lintas hanya dari alamat mac tertentu dari peserta IXP, yang telah dinegosiasikan terlebih dahulu. Menolak lalu lintas dengan bidang ethertype selain 0x0800(IPv4), 0x08dd(IPv6), 0x0806(ARP); ini dilakukan untuk memfilter lalu lintas yang tidak termasuk dalam peering BGP. Mekanisme seperti GTSM, RPKI, dll juga dapat digunakan.

Mungkin hal di atas adalah komponen utama dari IXP mana pun, apa pun skalanya. Tentu saja, IXP yang lebih besar mungkin mempunyai teknologi dan solusi tambahan.
Kebetulan IXP juga memberikan layanan tambahan kepada pesertanya:

  • ditempatkan di server DNS TLD IXP,
  • menginstal server NTP perangkat keras, memungkinkan peserta untuk menyinkronkan waktu secara akurat,
  • memberikan perlindungan terhadap serangan DDoS, dll.

Prinsip operasi

Mari kita lihat prinsip pengoperasian titik pertukaran lalu lintas menggunakan contoh IXP sederhana, yang dimodelkan menggunakan EVE-NG, dan kemudian pertimbangkan pengaturan dasar router perangkat lunak BIRD. Untuk menyederhanakan diagram, kami akan menghilangkan hal-hal penting seperti redundansi dan toleransi kesalahan.

Topologi jaringan ditunjukkan pada gambar di bawah ini.

Titik pertukaran lalu lintas: dari asal hingga pembuatan IX Anda sendiri

Anggaplah kita mengelola titik pertukaran kecil dan menyediakan opsi peering berikut:

  • mengintip publik,
  • peering pribadi,
  • mengintip melalui server rute.

Nomor AS kami adalah 555, kami memiliki blok alamat IPv4 – 50.50.50.0/24, dari mana kami mengeluarkan alamat IP bagi mereka yang ingin terhubung ke jaringan kami.

50.50.50.254 – Alamat IP yang dikonfigurasi pada antarmuka server rute, dengan klien IP ini akan membuat sesi BGP jika melakukan peering melalui RS.

Selain itu, untuk melakukan peering melalui RS, kami telah mengembangkan kebijakan perutean sederhana berdasarkan komunitas BGP, yang memungkinkan peserta IXP mengatur kepada siapa dan rute apa yang akan dikirim:

komunitas BGP
Описание

LOCAL_AS:PEER_AS
Kirim awalan hanya ke PEER_AS

LOCAL_AS:IXP_AS
Transfer awalan ke semua peserta IXP

3 klien ingin terhubung ke IXP kami dan bertukar lalu lintas; Katakanlah ini adalah penyedia Internet. Mereka semua ingin mengatur peering melalui server rute. Di bawah ini adalah diagram dengan parameter koneksi klien:

Klien
Nomor AS Pelanggan
Awalan yang diiklankan klien
Alamat IP diberikan kepada klien untuk terhubung ke IXP

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

Pengaturan BGP dasar pada router klien:

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

Perlu diperhatikan pengaturan no bgp yang menegakkan-pertama-sebagai di sini. Secara default, BGP mengharuskan jalur as dari pembaruan BGP yang diterima berisi nomor as bgp rekan asal pembaruan tersebut diterima. Namun karena server rute tidak membuat perubahan pada jalur as, nomornya tidak akan ada di jalur as dan pembaruan akan dibuang. Pengaturan ini digunakan untuk membuat router mengabaikan aturan ini.

Kami juga melihat bahwa klien telah menyetel komunitas bgp 555:555 ke awalan ini, yang menurut kebijakan kami berarti klien ingin mengiklankan awalan ini ke semua peserta lainnya.

Untuk router klien lain, pengaturannya akan serupa, kecuali parameter uniknya.

Contoh konfigurasi BIRD:

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

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

Berikut ini penjelasan tentang filter yang tidak menerima prefiks Mars, serta prefiks IXP itu sendiri:

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;
}

Fungsi ini mengimplementasikan kebijakan perutean yang telah kami jelaskan sebelumnya.

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;


}

Kami mengonfigurasi peering, menerapkan filter dan kebijakan yang sesuai.

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;
  }
}

Perlu dicatat bahwa pada server rute, merupakan praktik yang baik untuk menempatkan rute dari rekan yang berbeda ke RIB yang berbeda. BIRD memungkinkan Anda melakukan ini. Dalam contoh kami, untuk kesederhanaan, semua pembaruan yang diterima dari semua klien ditambahkan ke dalam satu RIB umum.

Jadi, mari kita periksa apa yang kita punya.

Di server rute kita melihat bahwa sesi BGP telah dibuat dengan ketiga klien:

Titik pertukaran lalu lintas: dari asal hingga pembuatan IX Anda sendiri

Kami melihat bahwa kami menerima awalan dari semua klien:

Titik pertukaran lalu lintas: dari asal hingga pembuatan IX Anda sendiri

Pada router as 100, kita melihat bahwa jika hanya ada satu sesi BGP dengan server rute, kita menerima awalan dari 200 dan 300, sedangkan atribut BGP tidak berubah, seolah-olah peering antar klien dilakukan secara langsung:

Titik pertukaran lalu lintas: dari asal hingga pembuatan IX Anda sendiri

Jadi, kita melihat bahwa kehadiran server rute sangat menyederhanakan pengorganisasian peering pada IXP.

Saya harap demonstrasi ini membantu Anda lebih memahami cara kerja IXP dan cara kerja server rute pada IXP.

Linxdatacenter IX

Di Linxdatacenter, kami membangun IXP kami sendiri berdasarkan infrastruktur yang toleran terhadap kesalahan yang terdiri dari 2 sakelar dan 2 server rute. IXP kami sekarang berjalan dalam mode pengujian, dan kami mengundang semua orang untuk terhubung ke Linxdatacenter IX dan mengambil bagian dalam pengujian. Saat terhubung, Anda akan diberikan port dengan bandwidth 1 Gbit/s, kemampuan untuk melakukan peer melalui server rute kami, serta akses ke akun pribadi Anda di portal IX, tersedia di ix.linxdatacenter.com.

Tulis di komentar atau pesan pribadi untuk mendapatkan akses ke pengujian.

Keluaran

Titik pertukaran lalu lintas muncul pada awal mula Internet sebagai alat untuk memecahkan masalah arus lalu lintas yang kurang optimal antar operator telekomunikasi. Kini, dengan munculnya layanan global baru dan peningkatan jumlah lalu lintas CDN, titik pertukaran terus mengoptimalkan pengoperasian jaringan global. Peningkatan jumlah IXP di dunia menguntungkan pengguna akhir layanan dan operator telekomunikasi, operator konten, dll. Bagi peserta IXP, manfaatnya dinyatakan dalam pengurangan biaya pengorganisasian peering eksternal, pengurangan jumlah lalu lintas yang harus dibayar oleh operator tingkat yang lebih tinggi, optimalisasi perutean, dan kemampuan untuk memiliki antarmuka langsung dengan operator konten.

Berguna Link

Sumber: www.habr.com

Tambah komentar