Vraag Wat is "anycast" en hoe is het nuttig?


Ik had nog nooit van anycast gehoord tot een paar seconden geleden toen ik las "Wat zijn enkele coole of nuttige server / netwerktrucs?".

De wikipedia "anycast"Het artikel is vrij formeel en roept niet echt een mentaal beeld op van hoe het zou worden gebruikt.

Kan iemand in een paar informele zinnen uitleggen wat "anycast" is, hoe je het configureert (alleen in algemene zin), en wat de voordelen ervan zijn (wat maakt het gemakkelijker)?


78
2018-05-29 18:54


oorsprong




antwoorden:


Anycast is een netwerktechniek waarbij hetzelfde IP-voorvoegsel wordt geadverteerd vanuit meerdere locaties. Het netwerk bepaalt vervolgens op welke locatie een gebruikersverzoek moet worden gerouteerd, op basis van routeringsprotocolkosten en mogelijk de 'gezondheid' van de advertentieservers.

Er zijn verschillende voordelen voor anycast. Ten eerste zullen gebruikers van een anycast-service (DNS is een uitstekend voorbeeld) in de steady state altijd verbinding maken met de DNS-server die het dichtst bij de router staat (vanuit een routeringsprotocol). Dit vermindert de latentie en biedt een niveau van taakverdeling (ervan uitgaande dat uw consumenten gelijkmatig zijn verdeeld over uw netwerk).

Een ander voordeel is het gemak van configuratiemanagement. In plaats van verschillende DNS-servers te moeten configureren, afhankelijk van waar een server / werkstation is geïmplementeerd (Azië, Amerika, Europa), hebt u één IP-adres dat op elke locatie is geconfigureerd.

Afhankelijk van hoe anycast is geïmplementeerd, kan het ook een niveau van hoge beschikbaarheid bieden. Als de advertentie van de anycast-route afhankelijk is van een soort statuscontrole (bijvoorbeeld een DNS-zoekopdracht voor een bekend domein, in dit voorbeeld), kan zodra een server faalt, de route worden verwijderd. Nadat het netwerk opnieuw is geconvergeerd, worden gebruikersaanvragen naadloos doorgestuurd naar het dichtstbijzijnde dichtstbijzijnde DNS-exemplaar, zonder dat handmatige tussenkomst of herconfiguratie nodig is.

Een laatste voordeel is dat van horizontaal schalen; Als u vindt dat een server te zwaar wordt geladen, kunt u eenvoudig een andere server op een locatie implementeren waarmee een deel van de verzoeken van de overbelaste server kan worden verwerkt. Nogmaals, aangezien er geen clientconfiguratie vereist is, kan dit zeer snel worden gedaan.


83
2018-05-29 19:22



Gebruikt anycast meer bandbreedte in vergelijking met unicast? Stel je voor dat we duizend servers hebben die allemaal hetzelfde IP-adres delen, wanneer we een pakket naar sturen dat adres, zou het niet meer bandbreedte in beslag nemen dan in vergelijking met unicasting? - Pacerier
Nee - verkeer dat naar een anycast-adres wordt verzonden, komt maar op één locatie terecht en adverteert het adres. Je denkt misschien aan multicast, waarbij pakketten die naar een multicast-groepsadres worden verzonden, naar alle hosts worden verzonden die in die groep zijn geïnteresseerd. - Murali Suriar
Is niet het probleem van "In plaats van verschillende DNS-servers te hoeven configureren, afhankelijk van waar een server / werkstation is geïmplementeerd"opgelost door domeinnamen? Dus wat is het nut van anycast wanneer het eenvoudigweg dupliceert welke domeinnamen al bezig zijn? - Pacerier
@Pacerier - u kunt geen domeinnamen gebruiken om uw DNS-server te vinden - dat is een circulaire afhankelijkheid. Voorbeeld: configureer dns.foo.com. als uw DNS-server. Naar welk IP-adres moet ik verzoeken sturen naar dns.foo.com? Ik weet het, ik zal het opzoeken in DNS. enz. - Murali Suriar


Een van de dingen die me vaak verwarren in het begrijpen van "anycast" is dat het, hoewel het een term op hoog niveau is, in de praktische uitvoering meestal neerkomt op twee voorbeelden:

  1. Routers gebruiken BGP om hetzelfde IP-blok via meerdere te adverteren ZOALS paden als een ruwe manier om gebruikers naar een 'dichterbij'-site te leiden. Tegelijkertijd zorgt het voor een bijna transparante failover naar de andere sites door gewoon de routes van een onrustige site in te trekken. Dit kan handig zijn voor vrijwel elk protocol, hoewel het duidelijk veel problemen met de synchronisatie van backend-gegevens oplevert.

  2. Adverteren van dezelfde service IP vanuit meerdere punten binnen uw eigen netwerk (via statische routing, OSPF, EIGRP, of wat dan ook). Als de routes worden gewogen andershet fungeert als een failover-mechanisme. Als de routes worden gewogen gelijkmatig het kan profiteren van de load-balancing-mogelijkheden per pakket of per flow van de meeste routers van naam-merk-leverancier. Je moet oppassen dat de applicatielaag protocol is hier prettig bij, daarom hoor je er bijna altijd van dat het wordt gebruikt DNS waar een verzoek altijd één pakket is en alles staatloos is. Persoonlijk beschouw ik dit als een hacky-indringing van problemen met applicatielagen in de netwerklaag wanneer een combinatie van DNS en de juiste load-balancers bijna altijd een betere oplossing zal zijn.


31
2018-05-30 04:24



+1 voor het vermelden van één pakket en staatloosheid - nponeccop
probleem met DNS is dat men google of een andere externe resolver kan gebruiken en de dichtstbijzijnde server om te resolver anders kan zijn dan voor de gebruiker. Uiteraard is dit alleen geldig als anycast voor niet-DNS-gebruik is (bijvoorbeeld tcp anycast of ander gebruik). - akostadinov
@cagenut, Zou HTTP breken in het geval van per-pakket load-balancing (vanwege even gewichten of anderszins)? - Pacerier


Hoofdzakelijk gebruikt voor op UDP gebaseerde services zoals DNS. Kort gezegd kondigt u dezelfde route aan vanuit meerdere datacenters over de hele wereld. Op deze manier worden uw klanten naar het "beste" en "dichtstbijzijnde" datacenter gestuurd op basis van BGP-routes. Ik zet "best" en "dichtstbij" tussen aanhalingstekens omdat netwerkproviders games kunnen spelen en verkeer van bepaalde netwerken anders kunnen routeren. Over het algemeen gaat het met anycast het beste, maar het is geen garantie.

Een voorbeeld hiervan is om uw DNS-servers op te sommen als 1.2.3.4 en 1.2.3.5. Uw routers zouden een route voor 1.2.3 / 24 uit meerdere datacenters bekendmaken. Als je in Japan bent en daar een datacenter hebt, is de kans groot dat je daar terechtkomt. Als u zich in de VS bevindt, wordt u naar uw Amerikaanse datacenter gestuurd. Nogmaals, het is gebaseerd op BGP-routering en niet op daadwerkelijke geografische routering, maar dat is meestal hoe dingen opbreken.


16
2018-05-29 19:01



Hoe worden conflicten dan vermeden? - Pacerier
Ik weet niet zeker wat je bedoelt met conflicten. BGP staat conflicten niet echt toe. Het kiest gewoon een route. Een (vaak genegeerd) probleem met anycast is legaal. Technisch gezien is anycasting gedekt door verschillende patenten. Niemand verplicht dit, maar verschillende soorten verkeer (CDN, DNS, TCP vs UDP) vallen onder verschillende patenten. Deze paragraaf moet worden behandeld met IANAL. - diq
Dus je bedoelt dat die ip2locatieservices onnauwkeurig zijn? Omdat er geen officiële locatie is voor een IP en dat zou kunnen zijn overal afhankelijk van welke BGP-computer u spreekt? - Pacerier


Naar aanleiding van mijn oorspronkelijke reactie heb ik zojuist nog twee artikelen op mijn blog geplaatst met de titel: Anycast DNS - Deel 3, RIP en Anycast DNS gebruiken - Deel 3, RIP gebruiken (vervolg). De laatste gaat in op meer details, maar op www.netlinxinc.com/netlinx-blog.html vindt u actuele recepten voor het configureren van Cisco-routers en Open Source Quagga host-gebaseerde routeringsoftware voor Anycast DNS met behulp van RIP.

Ik ben momenteel bezig met het schrijven van het vierde artikel in de serie. Dit biedt recepten over hoe u Anycast DNS kunt inzetten met OSPF. Als laatste in de serie, laat ik recepten zien voor het inzetten van Anycast DNS met behulp van BGP.

Anycast DNS - deel 1, overzicht

Anycast DNS - Deel 2, met behulp van statische routes

Anycast DNS - Deel 3, RIP gebruiken 

Anycast DNS - Deel 3, RIP gebruiken (vervolg) 


8
2018-05-31 16:32



Dus is het waar dat het vanwege anycast mogelijk is dat iemand anders op internet over de hele wereld hetzelfde publieke IP heeft als degene die uw ISP u gaf? - Pacerier
Is het waar dat alleen ISP's in staat zijn om anycast-servers te implementeren? - Pacerier
Eigenlijk zou je het moeten bezitten meerdere ISP's om anycast te doen. - Pacerier


Gezien dit momenteel voornamelijk DNS is ...

Informeel maakt het uw service veerkrachtiger en met betere netwerktoegang / latency / snelheid doordat u dezelfde service op meerdere locaties over de hele wereld kunt instellen, allemaal met hetzelfde adres. Wanneer iemand naar dat adres vraagt, krijgen ze de dichtstbijzijnde / beste route.

Vanuit een serverperspectief:

Als unicast naar één persoon gaat, en multicast gaat u naar verschillende mensen, en uitzending gaat u naar alle mensen, dan is anycast schitzofrenisch en heeft meerdere persoonlijkheden waar de persoonlijkheid die het meest geschikt is voor elke persoon verbinding met hen maakt. Hmm. Niet de beste analogie.


4
2018-05-29 19:19





Een echt interessant gebruik van anycast is DNS. U kunt 5 verschillende DNS-servers plaatsen op verschillende fysieke en netwerklocaties, maar een enkele (of soms zowel primaire als secundaire DNS) -adressen delen. Afhankelijk van waar de bron is, worden ze gerouteerd naar hun dichtstbijzijnde knooppunt. Dit zorgt voor een goede afweging van het verkeer plus het biedt redundantie als een DNS-server sterft.


3
2018-05-29 19:03



Maar wordt door het DNS-systeem al geen redundantie geboden? - Pacerier


Volgens een van mijn collega's is het ook nuttig als een DoS-aanvalmitigatietechniek, omdat mensen alleen het "dichtstbijzijnde" anycast IP-adres kunnen aanvallen, dus als er veel zombines in bijvoorbeeld de VS zijn, zou jouw Euro-site meestal niet beïnvloed, omdat ze er geen pakketten naar kunnen verzenden.

Het kan ook mogelijk zijn om het te gebruiken als een manier om (enigszins naïef) gefingeerde pakketten te filteren als ze duidelijk ergens vandaan komen waar het onwaarschijnlijk is dat geadverteerd wordt in BGP als de juiste route (bijv. Pakketten die Europa binnenkomen wanneer de ASN een N-Amerikaan aangeeft blok).


2
2018-05-31 17:16



Welnu, zelfs in het eenvoudige geval zou dat alleen de mensen stoppen die AS-routes naar die server gaan - bijv. je kunt mensen stoppen die je bereiken via Comcast, maar niet AT & T. Als je het "op de juiste manier" hebt ingesteld voor failover (volg de L7-service, stop dan met aankondigen wanneer het uitvalt), dan is het eigenlijk een stuk lastiger om DoS-aanvallen af ​​te handelen, omdat het een server vernietigt en dan naar de volgende gaat wanneer het aankondigingen worden verwijderd ... - James Cape
@JamesCape, interessant, maar wanneer ze naar de volgende overschakelen, zijn de dos mislukt omdat mensen geen verbinding kunnen maken? - Pacerier
@Pacerier In het eenvoudigste geval, waar je gewoon overal hetzelfde IP adverteert zonder dat er intelligentie op staat, ja. Als u echter slim probeert te worden en de advertentie in de VS wilt intrekken omdat de service niet reageert, is de enige resterende advertentie die in Europa. Alle Amerikaanse zombies raken dan de volgende beschikbare server en doden die ook. - James Cape