Anycast

Visualisering av anycast-routing.

Anycast är en nätverksadresserings- och routingmetod där en enda destinations- IP-adress delas av enheter (vanligtvis servrar) på flera platser. Routrar dirigerar paket adresserade till denna destination till platsen närmast avsändaren, med hjälp av deras normala beslutsfattande algoritmer, vanligtvis det lägsta antalet BGP -nätverkshopp . Anycast-routing används i stor utsträckning av innehållsleveransnätverk som webb- och DNS-värdar, för att föra deras innehåll närmare slutanvändarna.

Adresseringsmetoder

Routningsscheman
Unicast

Unicast.svg

Broadcast

Broadcast.svg

Multicast

Multicast.svg

Anycast

Anycast-BM.svg

Det finns fyra huvudsakliga adresseringsmetoder i Internetprotokollet :

  • Unicast levererar ett meddelande till en enda specifik nod med hjälp av en en-till-en- association mellan en avsändare och destination: varje destinationsadress identifierar unikt en enda mottagarändpunkt.
  • Broadcast levererar ett meddelande till alla noder i nätverket med hjälp av en en-till-alla- association; ett enda datagram (eller paket ) från en avsändare dirigeras till alla eventuellt flera slutpunkter som är associerade med sändningsadressen . Nätverket replikerar automatiskt datagram efter behov för att nå alla mottagare inom ramen för sändningen, som vanligtvis är ett helt nätverksundernät .
  • Multicast levererar ett meddelande till en grupp noder som har uttryckt intresse för att ta emot meddelandet med en en-till-många-av-många eller många-till-många-av-många- association; datagram dirigeras samtidigt i en enda överföring till många mottagare. Multicast skiljer sig från broadcast genom att destinationsadressen anger en delmängd, inte nödvändigtvis alla, av de tillgängliga noderna.
  • Anycast levererar ett meddelande till vem som helst ur en grupp av noder, vanligtvis den som är närmast källan med hjälp av en en-till-en-av-många- association där datagram dirigeras till en enskild medlem i en grupp av potentiella mottagare som alla är identifieras av samma destinationsadress. Routingalgoritmen väljer den enskilda mottagaren från gruppen baserat på vilken som är närmast enligt något avstånd eller kostnadsmått.

Historia

  Den första dokumenterade användningen av anycast-routing för topologisk lastbalansering av internetanslutna tjänster var 1989, tekniken dokumenterades först formellt i IETF fyra år senare i RFC 1546, och den tillämpades först på kritisk infrastruktur 2001 med anycasting av I-root-namnservern .

Tidiga invändningar

Tidiga invändningar mot utbyggnaden av anycast-routing centrerades på den upplevda konflikten mellan långlivade TCP- anslutningar och flyktigheten i Internets routade topologi. I konceptet kan en långlivad anslutning, såsom en FTP-filöverföring (som kan ha tagit timmar att slutföra i mitten av 1990-talet, när denna fråga diskuterades) omdirigeras till en annan anycast-instans i mitten av anslutningen på grund av förändringar i nätverkstopologi eller routing, med resultatet att servern ändrar mitt i anslutningen, och den nya servern är inte medveten om anslutningen och har inte TCP-anslutningsstatusen för den tidigare anycast-instansen.

I praktiken observerades inte sådana problem, och dessa invändningar försvann i början av 2000-talet. Många initiala anycast-distributioner bestod av DNS-servrar som huvudsakligen använde UDP-transport. Mätningar av långsiktiga anycast-flöden avslöjade mycket få misslyckanden på grund av växlingar till mitten av anslutningsinstanserna, mycket färre (mindre än 0,017 % eller "mindre än ett flöde per tiotusen per timme av varaktighet" enligt olika källor) än vad som tillskrevs andra orsaker till misslyckande. Många mekanismer utvecklades för att effektivt dela tillstånd mellan anycast-instanser. Och vissa TCP-baserade protokoll, särskilt HTTP, inkorporerade "omdirigerings"-mekanismer, varigenom anycast-tjänstadresser kunde användas för att lokalisera den närmaste instansen av en tjänst, varpå en användare skulle omdirigeras till den specifika instansen innan initieringen av någon lång- levde statlig transaktion.

Internet Protocol version 4

Anycast kan implementeras via Border Gateway Protocol (BGP). Flera värdar (vanligtvis i olika geografiska områden) ges samma unicast IP-adress och olika vägar till adressen meddelas via BGP. Routers anser att dessa är alternativa rutter till samma destination, även om de faktiskt är rutter till olika destinationer med samma adress. Som vanligt väljer routrar en rutt efter vilket avståndsmått som används (lägsta kostnad, minst överbelastad, kortast). Att välja en rutt i denna inställning motsvarar att välja en destination.

Internet Protocol version 6

   Anycast stöds explicit i IPv6 . RFC 4291 , som täcker IPv6-adresseringsarkitektur, reserverar Interface Identifier 0 inom ett IPv6- undernät som "Subnet Router" anycast-adress. Dessutom RFC 2526 ett block med 128 gränssnittsidentifierare inom ett subnät som anycast-adresser.

De flesta IPv6-routrar på vägen för ett anycast-paket genom nätverket kommer inte att skilja det från ett unicast-paket, men speciell hantering krävs från routrarna nära destinationen (det vill säga inom ramen för anycast-adressen) eftersom de krävs för att dirigera ett anycast-paket till det "närmaste" gränssnittet inom det omfång som har den korrekta anycast-adressen, beroende på vilket avståndsmått ( hopp , kostnad, etc.) som används.

Metoden som används i IPv4 för att annonsera flera rutter i BGP till multiplicerat tilldelade unicast-adresser fungerar också fortfarande i IPv6, och kan användas för att dirigera paket till den närmaste av flera geografiskt spridda värdar med samma adress. Detta tillvägagångssätt, som inte är beroende av några cast-medvetna routrar, har samma användningsfall tillsammans med samma problem och begränsningar som i IPv4.

Ansökningar

  I takt med att internet växer, ställer nätverkstjänster allt högre krav på tillgänglighet. Som ett resultat har driften av anycast-tjänster ( RFC 4786 ) ökat i popularitet bland nätoperatörer.

domännamnssystem

  Alla Internet- rotnamnservrar implementeras som kluster av värdar som använder anycast-adressering. Alla 13 rotservrar A–M finns på flera platser, med 11 på flera kontinenter. (Rotservrarna B och H finns på två platser i USA.) Servrarna använder anycast-adressmeddelanden för att tillhandahålla en decentraliserad tjänst. Detta har påskyndat utplaceringen av fysiska (snarare än logiska) rotservrar utanför USA . RFC 3258 dokumenterar användningen av anycast-adressering för att tillhandahålla auktoritativa DNS- tjänster. Många kommersiella DNS-leverantörer har bytt till en IP-anycast-miljö för att öka frågeprestanda och redundans och för att implementera lastbalansering.

IPv6-övergång

   Vid övergång från IPv4 till IPv6 kan anycast-adressering användas för att tillhandahålla IPv6-kompatibilitet till IPv4-värdar. Denna metod, 6to4 , använder en standardgateway med IP-adressen 192.88.99.1, som beskrivs i RFC 3068 . Detta gör att flera leverantörer kan implementera 6to4- gateways utan att värdarna behöver känna till varje enskild leverantörs gateway-adresser. Den här metoden har fasats ut i RFC 7526 som svar på att ursprunglig IPv6 blivit mer utbredd.

Nätverk för leverans av innehåll

Innehållsleveransnätverk kan använda anycast för faktiska HTTP- anslutningar till sina distributionscenter, eller för DNS . Eftersom de flesta HTTP-anslutningar till sådana nätverk begär statiskt innehåll som bilder och stilmallar är de i allmänhet kortlivade och tillståndslösa över efterföljande TCP-sessioner. Den allmänna stabiliteten hos rutter och tillståndslöshet för anslutningar gör anycast lämplig för denna applikation, även om den använder TCP .

Anslutning mellan Anycast och Multicast-nätverk

Anycast rendezvous point kan användas i Multicast Source Discovery Protocol (MSDP) och dess fördelaktiga applikation eftersom Anycast RP är en funktion inom domänen som ger redundans och belastningsdelningsmöjligheter. Om den multipla anycast-träffpunkten används kommer IP-routing automatiskt att välja den topologiskt närmaste mötespunkten för varje källa och mottagare. Det skulle ge ett multicast-nätverk med feltoleranskraven.

säkerhet

Anycast tillåter alla operatörer vars routinginformation accepteras av en mellanliggande router att kapa alla paket avsedda för anycast-adressen. Även om detta vid första anblicken verkar osäkert, skiljer det sig inte från routing av vanliga IP-paket och varken mer eller mindre säkert. Precis som med konventionell IP-routing är noggrann filtrering av vem som får och inte får sprida ruttmeddelanden avgörande för att förhindra man-in-the-middle-attacker eller blackhole-attacker . Det förra kan också förhindras genom att kryptera och autentisera meddelanden, som att använda Transport Layer Security , medan det senare kan bli frustrerat av lökdirigering .

Pålitlighet

Anycast är normalt mycket tillförlitligt, eftersom det kan ge automatisk failover utan att lägga till komplexitet eller nya potentiella felpunkter. Anycast-applikationer har vanligtvis extern "heartbeat"-övervakning av serverns funktion och drar tillbaka ruttmeddelandet om servern misslyckas. I vissa fall görs detta genom att de faktiska servrarna tillkännager anycast-prefixet till routern via OSPF eller annan IGP . Om servrarna dör kommer routern automatiskt att dra tillbaka meddelandet. "Heartbeat"-funktionalitet är viktig eftersom, om meddelandet fortsätter för en misslyckad server, kommer servern att fungera som ett "svart hål" för närliggande klienter; detta är det allvarligaste felet för ett anycast-system. Även i detta fall kommer denna typ av fel bara att orsaka ett totalt fel för klienter som är närmare denna server än någon annan, och kommer inte att orsaka ett globalt fel. Men även den automatisering som krävs för att implementera "heartbeat"-ruttavbrott kan i sig lägga till en potentiell punkt av misslyckande, vilket framgår av Facebook-avbrottet 2021 .

Begränsning av överbelastningsattacker

I denial-of-service-attacker kan en oseriös nätverksvärd marknadsföra sig som en anycast-server för en viktig nätverkstjänst, för att tillhandahålla falsk information eller helt enkelt blockera tjänsten.

Anycast-metoder på Internet kan utnyttjas för att distribuera DDoS- attacker och minska deras effektivitet: Eftersom trafik dirigeras till den närmaste noden, en process som angriparen inte har någon kontroll över, kommer DDoS-trafikflödet att fördelas mellan de närmaste noderna. Därför kan inte alla noder påverkas. Detta kan vara en anledning att distribuera anycast-adressering. Effektiviteten av denna teknik beror på att sekretessen för alla unicast-adresser som är associerade med anycast-tjänstnoder upprätthålls, eftersom en angripare som har unicast-adresserna för individuella noder kan attackera dem från vilken plats som helst och kringgå anycast-adresseringsmetoder.

Lokala och globala noder

Vissa anycast-distributioner på Internet skiljer mellan lokala och globala noder för att gynna lokalsamhället, genom att adressera lokala noder i första hand. Ett exempel är domännamnssystemet. Lokala noder tillkännages ofta med no-export BGP- communityt för att förhindra värdar från att tillkännage dem för sina kamrater, dvs meddelandet hålls i det lokala området. Där både lokala och globala noder är utplacerade, är meddelanden från globala noder ofta AS prependerade (dvs. AS läggs till några gånger till) för att göra vägen längre så att ett lokalt nodmeddelande föredras framför ett globalt nodmeddelande.

Se även

externa länkar