Palitan ng trapiko: mula sa pinanggalingan hanggang sa paggawa ng sarili mong IX

Palitan ng trapiko: mula sa pinanggalingan hanggang sa paggawa ng sarili mong IX

"Nag-set up kami ng koneksyon sa telepono sa pagitan namin at ng mga lalaki sa SRI...", sinabi ni Kleinrock... sa isang panayam:
"Nag-type kami ng L at nagtanong kami sa telepono, "Nakikita mo ba ang L?"
"Oo, nakikita natin ang L," ang sagot nito.
"Nag-type kami ng O, at tinanong namin, "Nakikita mo ba ang O."
"Oo, nakikita natin ang O."
"Pagkatapos ay nag-type kami ng G, at nag-crash ang system"...

Ngunit nagsimula ang isang rebolusyon ...

Ang simula ng internet.


Kumusta sa lahat!

Ang pangalan ko ay Alexander, ako ay isang network engineer sa Linxdatacenter. Sa artikulong ngayon ay pag-uusapan natin ang tungkol sa mga traffic exchange point (Internet Exchange Points, IXP): kung ano ang nauna sa kanilang hitsura, anong mga gawain ang kanilang nalutas at kung paano sila binuo. Gayundin sa artikulong ito ipapakita ko ang prinsipyo ng pagpapatakbo ng IXP gamit ang EVE-NG platform at ang BIRD software router, upang magkaroon ka ng pag-unawa sa kung paano ito gumagana "sa ilalim ng hood".

Ang isang maliit na kasaysayan

Kung titingnan mo dito, pagkatapos ay makikita mo na ang mabilis na paglaki sa bilang ng mga traffic exchange point ay nagsimula noong 1993. Ito ay dahil sa ang katunayan na ang karamihan sa trapiko ng mga operator ng telecom na umiiral sa oras na iyon ay dumaan sa US backbone network. Kaya, halimbawa, kapag ang trapiko ay napunta mula sa isang operator sa France patungo sa isang operator sa Germany, ito ay unang napunta mula sa France hanggang sa USA, at pagkatapos lamang mula sa USA hanggang Germany. Ang backbone network sa kasong ito ay kumilos bilang isang transit sa pagitan ng France at Germany. Kahit na ang trapiko sa loob ng isang bansa ay madalas na dumaan hindi direkta, ngunit sa pamamagitan ng backbone network ng mga Amerikanong operator.

Ang kalagayang ito ay nakaapekto hindi lamang sa gastos ng paghahatid ng trapiko sa transit, kundi pati na rin sa kalidad ng mga channel at pagkaantala. Ang bilang ng mga gumagamit ng Internet ay tumaas, ang mga bagong operator ay lumitaw, ang dami ng trapiko ay tumaas, at ang Internet ay lumago. Ang mga operator sa buong mundo ay nagsimulang mapagtanto na ang isang mas makatwirang diskarte sa pag-aayos ng inter-operator na interaksyon ay kailangan. "Bakit ako, operator A, magbabayad para sa pagbibiyahe sa ibang bansa upang maihatid ang trapiko sa operator B, na matatagpuan sa susunod na kalye?" Ito ang halos tanong ng mga operator ng telecom sa kanilang sarili noong panahong iyon. Kaya, nagsimulang lumitaw ang mga palitan ng trapiko sa iba't ibang bahagi ng mundo sa mga lugar ng konsentrasyon ng operator:

  • 1994 - LINX sa London,
  • 1995 – DE-CIX sa Frankfurt,
  • 1995 - MSK-IX, sa Moscow, atbp.

Internet at ang ating mga araw

Sa konsepto, ang arkitektura ng modernong Internet ay binubuo ng maraming mga autonomous system (AS) at maraming koneksyon sa pagitan ng mga ito, parehong pisikal at lohikal, na tumutukoy sa landas ng trapiko mula sa isang AS patungo sa isa pa.

Ang mga AS ay karaniwang mga operator ng telecom, Internet provider, CDN, data center, at kumpanya ng segment ng enterprise. Ang mga AS ay nag-aayos ng mga lohikal na koneksyon (peering) sa kanilang mga sarili, kadalasang gumagamit ng BGP protocol.

Kung paano inaayos ng mga autonomous system ang mga koneksyong ito ay natutukoy ng ilang salik:

  • heograpikal,
  • ekonomiya,
  • pampulitika,
  • mga kasunduan at karaniwang interes sa pagitan ng mga may-ari ng AS,
  • at iba pa

Siyempre, ang pamamaraan na ito ay may isang tiyak na istraktura at hierarchy. Kaya, ang mga operator ay nahahati sa tier-1, tier-2 at tier-3, at kung ang mga kliyente para sa isang lokal na provider ng Internet (tier-3) ay, bilang panuntunan, mga ordinaryong user, kung gayon, halimbawa, para sa tier-1 mga operator ng antas ang mga kliyente ay iba pang mga operator. Pinagsasama-sama ng mga Tier-3 operator ang trapiko ng kanilang mga subscriber, ang tier-2 telecom operator, naman, ay pinagsama-sama ang trapiko ng mga tier-3 na operator, at ang tier-1 – lahat ng trapiko sa Internet.

Sa eskematiko, maaari itong ilarawan tulad nito:

Palitan ng trapiko: mula sa pinanggalingan hanggang sa paggawa ng sarili mong IX
Ipinapakita ng larawang ito na ang trapiko ay pinagsama-sama mula sa ibaba hanggang sa itaas, ibig sabihin. mula sa mga end user hanggang sa tier-1 na mga operator. Mayroon ding pahalang na palitan ng trapiko sa pagitan ng mga AS na tinatayang katumbas ng bawat isa.

Ang isang mahalagang bahagi at sa parehong oras ang isang kawalan ng scheme na ito ay isang tiyak na pagkalito ng mga koneksyon sa pagitan ng mga autonomous system na matatagpuan mas malapit sa end user, sa loob ng isang geographic na lugar. Isaalang-alang ang larawan sa ibaba:

Palitan ng trapiko: mula sa pinanggalingan hanggang sa paggawa ng sarili mong IX

Ipagpalagay natin na sa isang malaking lungsod mayroong 5 operator ng telecom, na tumitingin sa pagitan kung saan, para sa isang kadahilanan o iba pa, ay nakaayos tulad ng ipinapakita sa itaas.

Kung ang user na si Petya, na konektado sa Go ISP, ay gustong ma-access ang isang server na konektado sa ASM provider, kung gayon ang trapiko sa pagitan nila ay mapipilitang dumaan sa 5 autonomous system. Pinapataas nito ang pagkaantala dahil tumataas ang bilang ng mga network device kung saan dadaan ang trapiko, gayundin ang dami ng trapiko sa transit sa mga autonomous system sa pagitan ng Go at ASM.

Paano bawasan ang bilang ng mga transit AS na pinipilit na dumaan sa trapiko? Tama iyon - palitan ng trapiko.

Ngayon, ang paglitaw ng mga bagong IXP ay hinihimok ng parehong mga pangangailangan tulad noong unang bahagi ng 90s-2000s, sa isang mas maliit na sukat, bilang tugon sa pagtaas ng bilang ng mga operator ng telecom, mga gumagamit at trapiko, ang lumalaking dami ng nilalaman na nabuo ng mga network ng CDN at mga data center.

Ano ang exchange point?

Ang traffic exchange point ay isang lugar na may espesyal na network infrastructure kung saan ang mga kalahok na interesado sa mutual traffic exchange ay nag-oorganisa ng mutual peering. Ang mga pangunahing kalahok ng traffic exchange point: mga operator ng telecom, Internet provider, content provider at data center. Sa mga traffic exchange point, direktang kumonekta ang mga kalahok sa isa't isa. Pinapayagan ka nitong malutas ang mga sumusunod na problema:

  • bawasan ang latency,
  • bawasan ang dami ng trapiko sa pagbibiyahe,
  • i-optimize ang pagruruta sa pagitan ng AS.

Isinasaalang-alang na ang mga IXP ay naroroon sa maraming malalaking lungsod sa buong mundo, lahat ito ay may kapaki-pakinabang na epekto sa Internet sa kabuuan.

Kung ang sitwasyon sa itaas sa Petya ay nalutas gamit ang IXP, ito ay magiging ganito:

Palitan ng trapiko: mula sa pinanggalingan hanggang sa paggawa ng sarili mong IX

Paano gumagana ang isang traffic exchange point?

Bilang isang tuntunin, ang isang IXP ay isang hiwalay na AS na may sarili nitong bloke ng mga pampublikong IPv4/IPv6 address.

Ang network ng IXP ay kadalasang binubuo ng isang tuluy-tuloy na domain ng L2. Minsan isa lang itong VLAN na nagho-host ng lahat ng kliyente ng IXP. Pagdating sa mas malalaking IXP na ipinamahagi sa heograpiya, maaaring gamitin ang mga teknolohiya tulad ng MPLS, VXLAN, atbp. upang ayusin ang isang L2 domain.

Mga elemento ng IXP

  • SKS. Walang kakaiba dito: mga rack, optical cross-connect, patch panel.
  • Mga switch – ang batayan ng IXP. Ang switch port ay ang entry point sa IXP network. Ang mga switch ay gumaganap din ng bahagi ng mga function ng seguridad - sinasala nila ang junk traffic na hindi dapat naroroon sa IXP network. Bilang isang patakaran, ang mga switch ay pinili batay sa mga kinakailangan sa pagganap - pagiging maaasahan, suportadong bilis ng port, mga tampok ng seguridad, suporta sa sFlow, atbp.
  • Server ng ruta (RS) – isang mahalagang bahagi at kinakailangang bahagi ng anumang modernong traffic exchange point. Ang prinsipyo ng pagpapatakbo ay halos kapareho sa reflector ng ruta sa iBGP o ang itinalagang router sa OSPF at nilulutas ang parehong mga problema. Habang lumalaki ang bilang ng mga kalahok sa isang traffic exchange point, tumataas ang bilang ng mga session ng BGP na kailangang suportahan ng bawat kalahok, i.e. ito ay nakapagpapaalaala sa klasikong full-mesh topology sa iBGP. Niresolba ng RS ang problema sa sumusunod na paraan: nagtatatag ito ng sesyon ng BGP sa bawat interesadong kalahok sa IXP, at ang kalahok na iyon ay nagiging isang kliyente ng RS. Pagtanggap ng BGP update mula sa isa sa mga kliyente nito, ipinapadala ng RS ang update na ito sa lahat ng iba pang kliyente nito, siyempre, maliban sa isa kung saan natanggap ang update na ito. Kaya, inalis ng RS ang pangangailangang magtatag ng isang ganap na mata sa pagitan ng lahat ng miyembro ng IXP at eleganteng nilulutas ang problema sa scalability. Kapansin-pansin na ang server ng ruta ay malinaw na nagpapadala ng mga ruta mula sa isang AS patungo sa isa pa nang hindi gumagawa ng mga pagbabago sa mga katangiang ipinadala ng BGP, halimbawa, hindi nito idinaragdag ang numero sa AS nito sa AS-path. Gayundin sa RS mayroong pangunahing pag-filter ng mga ruta: halimbawa, hindi tinatanggap ng RS ang mga network ng Martians at ang mga prefix ng IXP mismo.

    Ang isang open source software router, BIRD (bird internet routing daemon), ay kadalasang ginagamit bilang solusyon sa server ng ruta. Ang magandang bagay tungkol dito ay libre ito, mabilis na nagde-deploy sa karamihan ng mga distribusyon ng Linux, may flexible na mekanismo para sa pag-set up ng mga patakaran sa pagruruta/pag-filter, at hindi hinihingi ang mga mapagkukunan sa pag-compute. Gayundin, maaaring mapili ang isang hardware/virtual router mula sa Cisco, Juniper, atbp. bilang isang RS.

  • Seguridad. Dahil ang isang IXP network ay isang konsentrasyon ng isang malaking bilang ng mga AS, ang patakaran sa seguridad na dapat sundin ng lahat ng kalahok ay dapat na maayos na nakasulat. Sa pangkalahatan, ang lahat ng parehong mekanismo na ginagamit upang magtatag ng BGP adjacency sa pagitan ng dalawang magkahiwalay na BGP peer sa labas ng isang IXP ay nalalapat dito, kasama ang ilang karagdagang mga hakbang sa seguridad.

    Halimbawa, magandang kasanayan na payagan lamang ang trapiko mula sa isang partikular na mac address ng kalahok sa IXP, na napag-usapan nang maaga. Pagtanggi sa trapiko gamit ang mga field ng ethertype maliban sa 0x0800(IPv4), 0x08dd(IPv6), 0x0806(ARP); ito ay ginagawa upang ma-filter ang trapiko na hindi kabilang sa BGP peering. Maaari ding gamitin ang mga mekanismo tulad ng GTSM, RPKI, atbp.

Marahil ang nasa itaas ay ang mga pangunahing bahagi ng anumang IXP, anuman ang sukat. Siyempre, ang malalaking IXP ay maaaring may mga karagdagang teknolohiya at solusyon sa lugar.
Nangyayari na ang IXP ay nagbibigay din sa mga kalahok nito ng mga karagdagang serbisyo:

  • inilagay sa IXP TLD DNS server,
  • mag-install ng mga hardware NTP server, na nagpapahintulot sa mga kalahok na tumpak na i-synchronize ang oras,
  • magbigay ng proteksyon laban sa mga pag-atake ng DDoS, atbp.

Prinsipyo ng operasyon

Tingnan natin ang prinsipyo ng pagpapatakbo ng isang traffic exchange point gamit ang halimbawa ng isang simpleng IXP, na namodelo gamit ang EVE-NG, at pagkatapos ay isaalang-alang ang pangunahing setup ng isang BIRD software router. Upang pasimplehin ang diagram, aalisin namin ang mga mahahalagang bagay tulad ng redundancy at fault tolerance.

Ang topology ng network ay ipinapakita sa figure sa ibaba.

Palitan ng trapiko: mula sa pinanggalingan hanggang sa paggawa ng sarili mong IX

Ipagpalagay natin na nangangasiwa tayo ng isang maliit na exchange point at nagbibigay ng mga sumusunod na opsyon sa peering:

  • pagsilip sa publiko,
  • pribadong pagsilip,
  • pagsilip sa pamamagitan ng server ng ruta.

Ang aming AS number ay 555, nagmamay-ari kami ng isang bloke ng mga IPv4 address – 50.50.50.0/24, kung saan naglalabas kami ng mga IP address para sa mga gustong kumonekta sa aming network.

50.50.50.254 – IP address na na-configure sa interface ng server ng ruta, kasama nito ang mga IP client ay magtatatag ng BGP session sa kaso ng peering sa pamamagitan ng RS.

Gayundin, para sa pag-peering sa pamamagitan ng RS, bumuo kami ng isang simpleng patakaran sa pagruruta batay sa komunidad ng BGP, na nagpapahintulot sa mga kalahok ng IXP na mag-regulate kung kanino at kung anong mga ruta ang ipapadala:

komunidad ng BGP
ОписаниС

LOCAL_AS:PEER_AS
Magpadala lamang ng mga prefix sa PEER_AS

LOCAL_AS:IXP_AS
Maglipat ng mga prefix sa lahat ng kalahok sa IXP

3 kliyente ang gustong kumonekta sa aming IXP at makipagpalitan ng trapiko; Sabihin nating mga Internet provider ito. Gusto nilang lahat na ayusin ang peering sa pamamagitan ng isang server ng ruta. Nasa ibaba ang isang diagram na may mga parameter ng koneksyon ng kliyente:

Customer
Customer AS number
Mga prefix na ina-advertise ng kliyente
IP address na ibinigay sa kliyente upang kumonekta sa 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

Pangunahing BGP setup sa client router:

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

Ito ay nagkakahalaga ng noting ang walang bgp enforce-first-as setting dito. Bilang default, hinihiling ng BGP na ang as-path ng isang natanggap na BGP update ay naglalaman ng bilang bgp number ng peer kung saan natanggap ang update. Ngunit dahil ang server ng ruta ay hindi gumagawa ng mga pagbabago sa as-path, ang numero nito ay hindi nasa as-path at ang pag-update ay itatapon. Ginagamit ang setting na ito para balewalain ng router ang panuntunang ito.

Nakikita rin namin na ang kliyente ay nagtakda ng bgp community 555:555 sa prefix na ito, na ayon sa aming patakaran ay nangangahulugan na gusto ng kliyente na i-advertise ang prefix na ito sa lahat ng iba pang kalahok.

Para sa mga router ng ibang kliyente, ang mga setting ay magiging katulad, maliban sa kanilang mga natatanging parameter.

Halimbawang configuration ng BIRD:

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

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

Inilalarawan ng sumusunod ang isang filter na hindi tumatanggap ng mga prefix ng martians, pati na rin ang mga prefix ng IXP mismo:

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

Ipinapatupad ng function na ito ang patakaran sa pagruruta na inilarawan namin kanina.

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;


}

Kino-configure namin ang peering, naglalapat ng mga naaangkop na filter at patakaran.

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

Kapansin-pansin na sa isang server ng ruta, magandang kasanayan na ilagay ang mga ruta mula sa iba't ibang mga kapantay sa iba't ibang RIB. Binibigyang-daan ka ng BIRD na gawin ito. Sa aming halimbawa, para sa pagiging simple, ang lahat ng mga update na natanggap mula sa lahat ng mga kliyente ay idinagdag sa isang karaniwang RIB.

Kaya, suriin natin kung ano ang nakuha natin.

Sa server ng ruta nakita namin na ang isang session ng BGP ay naitatag kasama ang lahat ng tatlong mga kliyente:

Palitan ng trapiko: mula sa pinanggalingan hanggang sa paggawa ng sarili mong IX

Nakita namin na nakakatanggap kami ng mga prefix mula sa lahat ng kliyente:

Palitan ng trapiko: mula sa pinanggalingan hanggang sa paggawa ng sarili mong IX

Sa bilang 100 na router, nakikita namin na kung mayroon lamang isang session ng BGP kasama ang server ng ruta, nakakatanggap kami ng mga prefix mula sa parehong bilang 200 at bilang 300, habang ang mga katangian ng BGP ay hindi nagbago, na parang ang pagsilip sa pagitan ng mga kliyente ay direktang isinasagawa:

Palitan ng trapiko: mula sa pinanggalingan hanggang sa paggawa ng sarili mong IX

Kaya, nakikita namin na ang pagkakaroon ng isang server ng ruta ay lubos na nagpapadali sa organisasyon ng peering sa IXP.

Umaasa ako na ang demonstrasyon na ito ay nakatulong sa iyo na mas maunawaan kung paano gumagana ang mga IXP at kung paano gumagana ang server ng ruta sa isang IXP.

Linxdatacenter IX

Sa Linxdatacenter, bumuo kami ng sarili naming IXP batay sa fault-tolerant na imprastraktura ng 2 switch at 2 server ng ruta. Ang aming IXP ay tumatakbo na ngayon sa test mode, at iniimbitahan namin ang lahat na kumonekta sa Linxdatacenter IX at makilahok sa pagsubok. Kapag nakakonekta, bibigyan ka ng isang port na may bandwidth na 1 Gbit/s, ang kakayahang mag-peer sa pamamagitan ng aming mga server ng ruta, pati na rin ang access sa iyong personal na account ng IX portal, na magagamit sa ix.linxdatacenter.com.

Sumulat sa mga komento o pribadong mensahe para makakuha ng access sa pagsubok.

Pagbubuhos

Ang mga palitan ng trapiko ay lumitaw sa madaling araw ng Internet bilang isang tool para sa paglutas ng isyu ng suboptimal na daloy ng trapiko sa pagitan ng mga operator ng telecom. Ngayon, sa pagdating ng mga bagong pandaigdigang serbisyo at pagtaas ng dami ng trapiko ng CDN, patuloy na ino-optimize ng mga exchange point ang operasyon ng pandaigdigang network. Ang pagtaas sa bilang ng mga IXP sa mundo ay nakikinabang kapwa sa end user ng serbisyo at mga operator ng telecom, mga operator ng nilalaman, atbp. Para sa mga kalahok ng IXP, ang benepisyo ay ipinahayag sa pagbabawas ng mga gastos sa pag-aayos ng panlabas na peering, pagbabawas ng dami ng trapiko na kailangang bayaran ng mga operator na mas mataas ang antas, pag-optimize ng pagruruta, at ang kakayahang magkaroon ng direktang interface sa mga operator ng nilalaman.

Kapaki-pakinabang na mga link

Pinagmulan: www.habr.com

Magdagdag ng komento