Titik ijol-ijolan lalu lintas: saka asal nganti nggawe IX sampeyan dhewe
"Kita nyiyapake sambungan telpon antarane kita lan wong lanang ing SRI ...", Kleinrock ... ngandika ing wawancara:
"Kita ngetik L lan takon ing telpon, "Apa sampeyan ndeleng L?"
"Ya, kita ndeleng L," wangsulane.
"Kita ngetik O, lan takon, "Apa sampeyan ndeleng O?"
"Ya, kita ndeleng O."
"Banjur kita ngetik G, lan sistem nabrak"...
Nanging revolusi wis diwiwiti ...
Wiwitane internet.
ΠΡΠ΅ΠΌ ΠΡΠΈΠ²Π΅Ρ!
Jenengku Alexander, aku insinyur jaringan ing Linxdatacenter. Ing artikel dina iki, kita bakal ngomong babagan titik ijol-ijolan lalu lintas (Internet Exchange Points, IXP): apa sing sadurunge katon, tugas apa sing diatasi lan cara dibangun. Uga ing artikel iki aku bakal nduduhake prinsip operasi IXP nggunakake platform EVE-NG lan router piranti lunak BIRD, supaya sampeyan duwe pangerten babagan cara kerjane "ing hood".
Sawetara sejarah
Yen sampeyan ndeleng kene, banjur sampeyan bisa ndeleng manawa wutah kanthi cepet ing jumlah titik ijol-ijolan lalu lintas diwiwiti ing taun 1993. Iki amarga kasunyatan sing umume lalu lintas operator telekomunikasi sing ana ing wektu kasebut liwat jaringan backbone AS. Dadi, contone, nalika lalu lintas pindhah saka operator ing Prancis menyang operator ing Jerman, mula saka Prancis menyang Amerika Serikat, lan mung saka Amerika Serikat menyang Jerman. Jaringan backbone ing kasus iki tumindak minangka transit antarane Prancis lan Jerman. Malah lalu lintas ing sawijining negara asring ora liwati langsung, nanging liwat jaringan tulang punggung operator Amerika.
Kahanan iki ora mung kena pengaruh biaya kiriman lalu lintas transit, nanging uga kualitas saluran lan telat. Jumlah pangguna Internet tambah akeh, operator anyar muncul, volume lalu lintas tambah akeh, lan Internet wis diwasa. Operator ing saindenging jagad wiwit ngerti manawa pendekatan sing luwih rasional kanggo ngatur interaksi antar operator dibutuhake. "Yagene aku, operator A, kudu mbayar transit liwat negara liya supaya bisa ngirim lalu lintas menyang operator B, sing ana ing dalan sabanjure?" Iki kira-kira pitakonan operator telekomunikasi ing wektu iku. Mangkono, titik ijol-ijolan lalu lintas wiwit katon ing macem-macem wilayah ing titik konsentrasi operator:
1994 - LINX ing London,
1995 - DE-CIX ing Frankfurt,
1995 - MSK-IX, ing Moskow, lsp.
Internet lan dina kita
Secara konseptual, arsitektur Internet modern kasusun saka akeh sistem otonom (AS) lan akeh sambungan ing antarane, fisik lan logis, sing nemtokake jalur lalu lintas saka siji AS menyang AS liyane.
AS biasane operator telekomunikasi, panyedhiya Internet, CDN, pusat data, lan perusahaan segmen perusahaan. ASes ngatur sambungan logis (peering) antarane piyambak, biasane nggunakake protokol BGP.
Cara sistem otonom ngatur sambungan kasebut ditemtokake dening sawetara faktor:
geografis,
ekonomi,
politik,
persetujuan lan kapentingan umum antarane pemilik AS,
Gambar iki nuduhake yen lalu lintas dikumpulake saka ngisor menyang ndhuwur, yaiku. saka pangguna pungkasan nganti operator tier-1. Ana uga ijol-ijolan lalu lintas horisontal antarane AS sing kira-kira padha karo siji liyane.
Bagean integral lan ing wektu sing padha kerugian saka skema iki minangka kebingungan tartamtu saka sambungan antarane sistem otonom sing luwih cedhak karo pangguna pungkasan, ing wilayah geografis. Coba gambar ing ngisor iki:
Ayo dadi nganggep yen ing kutha gedhe ana 5 operator telekomunikasi, peering antarane kang, kanggo siji utawa alesan liyane, diatur kaya ing ndhuwur.
Yen pangguna Petya, disambungake menyang ISP Go, pengin ngakses server sing disambungake menyang panyedhiya ASM, banjur lalu lintas ing antarane dheweke bakal dipeksa ngliwati 5 sistem otonom. Iki nambah wektu tundha amarga jumlah piranti jaringan sing bakal dadi lalu lintas mundhak, uga volume lalu lintas transit ing sistem otonom antarane Go lan ASM.
Kepiye cara nyuda jumlah AS transit sing kudu dilewati lalu lintas? Sing bener - titik ijol-ijolan lalu lintas.
Titik ijol-ijolan lalu lintas minangka papan kanthi infrastruktur jaringan khusus ing ngendi para peserta sing kasengsem ing pertukaran lalu lintas bebarengan ngatur peering bebarengan. Peserta utama titik ijol-ijolan lalu lintas: operator telekomunikasi, panyedhiya Internet, panyedhiya konten lan pusat data. Ing titik ijol-ijolan lalu lintas, peserta nyambung langsung karo saben liyane. Iki ngidini sampeyan ngatasi masalah ing ngisor iki:
nyuda latensi,
nyuda jumlah lalu lintas transit,
ngoptimalake nuntun antarane AS.
Ngelingi manawa IXP ana ing pirang-pirang kutha gedhe ing saindenging jagad, kabeh iki duwe pengaruh sing migunani ing Internet kanthi wutuh.
Yen kahanan ing ndhuwur karo Petya ditanggulangi nggunakake IXP, bakal katon kaya iki:
Kepiye cara kerja titik ijol-ijolan lalu lintas?
Minangka aturan, IXP minangka AS sing kapisah kanthi blok alamat IPv4/IPv6 umum.
Jaringan IXP paling asring dumadi saka domain L2 sing terus-terusan. Kadhangkala iki mung VLAN sing dadi tuan rumah kabeh klien IXP. Nalika nerangake luwih gedhe, IXPs geografis mbagekke, teknologi kayata MPLS, VXLAN, etc.. bisa digunakake kanggo ngatur domain L2.
unsur IXP
SKS. Ora ana sing ora biasa ing kene: rak, sambungan silang optik, panel tembelan.
Ngalih - dhasar IXP. Port switch minangka titik entri menyang jaringan IXP. Ngalih uga nindakake bagean saka fungsi keamanan - nyaring lalu lintas sampah sing ora ana ing jaringan IXP. Minangka aturan, saklar dipilih adhedhasar syarat fungsional - linuwih, kecepatan port sing didhukung, fitur keamanan, dhukungan sFlow, lsp.
Server rute (RS) β bagean integral lan perlu saka sembarang titik ijol-ijolan lalu lintas modern. Prinsip operasi meh padha karo reflektor rute ing iBGP utawa router sing ditunjuk ing OSPF lan ngrampungake masalah sing padha. Minangka nomer peserta ing titik ijol-ijolan lalu lintas mundak akeh, nomer sesi BGP sing saben peserta perlu kanggo ndhukung mundhak, i.e. iki kaya topologi full-mesh klasik ing iBGP. RS ngatasi masalah kasebut kanthi cara ing ngisor iki: nggawe sesi BGP karo saben peserta IXP sing kasengsem, lan peserta kasebut dadi klien RS. Nampa nganyari BGP saka salah sawijining klien, RS ngirim nganyari iki menyang kabeh klien liyane, mesthi, kajaba sing nganyari iki ditampa. Mangkono, RS ngilangi kabutuhan kanggo nggawe bolong lengkap antarane kabeh anggota IXP lan kanthi elegan ngrampungake masalah skalabilitas. Wigati dicathet menawa server rute kanthi transparan ngirim rute saka siji AS menyang liyane tanpa owah-owahan ing atribut sing ditularake dening BGP, contone, ora nambah nomer ing AS menyang AS-path. Uga ing RS ana panyaring dhasar rute: contone, RS ora nampa jaringan Martians lan awalan saka IXP dhewe.
Router piranti lunak open source, BIRD (daemon routing internet manuk), asring digunakake minangka solusi server rute. Sing apik babagan iki yaiku gratis, nyebar kanthi cepet ing paling distribusi Linux, duwe mekanisme fleksibel kanggo nyetel kabijakan rute / nyaring, lan ora nuntut sumber daya komputasi. Uga, hardware / router virtual saka Cisco, Juniper, etc.. bisa dipilih minangka RS.
Contone, iku laku apik kanggo ngidini lalu lintas mung saka alamat mac tartamtu saka peserta IXP, kang rembugan ing advance. Nolak lalu lintas nganggo kolom ethertype liyane saka 0x0800(IPv4), 0x08dd(IPv6), 0x0806(ARP); iki rampung supaya nyaring metu lalu lintas sing ora kagungane ing BGP peering. Mekanisme kayata GTSM, RPKI, lan liya-liyane uga bisa digunakake.
Mbokmenawa ing ndhuwur minangka komponen utama IXP, preduli saka skala. Mesthine, IXP sing luwih gedhe bisa uga duwe teknologi lan solusi tambahan.
Iku kedadeyan yen IXP uga nyedhiyakake layanan tambahan kanggo para peserta:
diselehake ing server DNS IXP TLD,
nginstal server NTP hardware, supaya peserta bisa nyinkronake wektu kanthi akurat,
menehi pangayoman marang serangan DDoS, etc.
Cara kerjane
Ayo goleki prinsip operasi titik ijol-ijolan lalu lintas nggunakake conto IXP sing prasaja, dimodelake nggunakake EVE-NG, banjur nimbang persiyapan dhasar router piranti lunak BIRD. Kanggo nyederhanakake diagram, kita bakal ngilangi perkara-perkara penting kaya redundansi lan toleransi fault.
Topologi jaringan ditampilake ing gambar ing ngisor iki.
Ayo nganggep yen kita ngatur titik ijol-ijolan cilik lan nyedhiyakake opsi peering ing ngisor iki:
penyuluhan umum,
pribadhi nyawang,
peering liwat server rute.
Nomer AS kita yaiku 555, kita duwe blok alamat IPv4 - 50.50.50.0/24, saka ngendi kita ngetokake alamat IP kanggo sing pengin nyambung menyang jaringan kita.
50.50.50.254 - alamat IP diatur ing antarmuka server rute, karo klien IP iki bakal netepake sesi BGP ing cilik saka peering liwat RS.
Uga, kanggo peering liwat RS, kita wis ngembangaken kabijakan routing prasaja adhedhasar komunitas BGP, sing ngidini peserta IXP kanggo ngatur kanggo sapa lan apa rute ngirim:
masyarakat BGP
Description
LOCAL_AS:PEER_AS
Kirimi awalan mung menyang PEER_AS
LOCAL_AS:IXP_AS
Transfer awalan menyang kabeh peserta IXP
3 klien pengin nyambung menyang IXP lan ijol-ijolan lalu lintas; Ayo kita ngomong iki panyedhiya Internet. Dheweke kabeh pengin ngatur peering liwat server rute. Ing ngisor iki diagram karo paramèter sambungan klien:
Pelanggan
Nomer AS pelanggan
Ater-ater sing diiklanake klien
Alamat IP ditanggepi kanggo klien kanggo nyambung menyang IXP
ISP #1
ing 100
1.1.0.0/16
50.50.50.10/24
ISP #2
ing 200
2.2.0.0/16
50.50.50.20/24
ISP #3
ing 300
3.3.0.0/16
50.50.50.30/24
Persiyapan BGP dhasar ing 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 dicathet yen ora ana setelan bgp enforce-first-as ing kene. Kanthi gawan, BGP mbutuhake minangka-path saka nganyari BGP ditampa ngemot nomer bgp saka peer saka kang nganyari ditampa. Nanging amarga server rute ora nggawe owah-owahan menyang as-path, nomer kasebut ora bakal ana ing as-path lan nganyari bakal dibuwang. Setelan iki digunakake kanggo nggawe router nglirwakake aturan iki.
Kita uga weruh manawa klien wis nyetel komunitas bgp 555:555 menyang awalan iki, sing miturut kabijakan kita tegese klien pengin ngiklanake awalan iki menyang kabeh peserta liyane.
Kanggo router klien liyane, setelan bakal padha, kajaba paramèter unik.
Conto konfigurasi BIRD:
define ixp_as = 555;
define ixp_prefixes = [ 50.50.50.0/24+ ];
template bgp RS_CLIENT {
local as ixp_as;
rs client;
}
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 iki ngetrapake kabijakan routing sing wis diterangake sadurunge.
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;
}
Kita ngatur peering, aplikasi saringan lan kawicaksanan cocok.
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;
}
}
Iku worth kang lagi nyimak sing ing server rute iku laku apik kanggo sijine rute saka ora pati cetho beda menyang RIBs beda. BIRD ngidini sampeyan nindakake iki. Ing conto kita, kanggo kesederhanaan, kabeh nganyari sing ditampa saka kabeh klien ditambahake menyang siji RIB umum.
Dadi, ayo mriksa apa sing entuk.
Ing server rute kita weruh yen sesi BGP wis ditetepake karo kabeh telung klien:
Kita weruh manawa kita nampa prefiks saka kabeh klien:
Ing router minangka 100, kita weruh yen mung ana siji sesi BGP karo server rute, kita nampa awalan saka loro minangka 200 lan 300, nalika atribut BGP ora diganti, kaya peering antarane klien wis digawa metu langsung:
Mangkono, kita weruh manawa anane server rute nyederhanakake organisasi peering ing IXP.
Muga-muga demonstrasi iki mbantu sampeyan luwih ngerti cara kerja IXP lan cara kerja server rute ing IXP.
Tulis ing komentar utawa pesen pribadi kanggo entuk akses menyang testing.
kesimpulan
Titik ijol-ijolan lalu lintas muncul nalika esuke Internet minangka alat kanggo ngatasi masalah aliran lalu lintas suboptimal antarane operator telekomunikasi. Saiki, kanthi tekane layanan global anyar lan nambah jumlah lalu lintas CDN, titik ijol-ijolan terus ngoptimalake operasi jaringan global. Tambah jumlah IXP ing donya entuk manfaat kanggo pangguna pungkasan layanan lan operator telekomunikasi, operator konten, lsp. Kanggo peserta IXP, entuk manfaat dituduhake kanggo ngurangi biaya ngatur peering eksternal, ngurangi jumlah lalu lintas sing kudu dibayar dening operator tingkat sing luwih dhuwur, ngoptimalake rute, lan kemampuan kanggo duwe antarmuka langsung karo operator konten.