Een sneller mailplatform met Direct Routing!

Wij hebben al jaren de hostname ‘mail.antagonist.nl’ voor alles wat met e-mail te maken heeft: webmail, IMAP, POP3 en SMTP. Eén hostname, lekker simpel. Iets minder simpel is de techniek die daarachter zit. Het is een omgeving met ‘load balancers’ en ‘proxies’, die op slimme wijze de locatie van je e-mail kan vinden. Hoewel deze omgeving jarenlang stabiel heeft gedraaid, werd het tijd om deze te vervangen en over te stappen naar een sneller mailplatform!

Een sneller mailplatform, dankzij Direct Routing!

De reden van vervanging is simpel: het gebruik van de omgeving is in de loop der jaren enorm toegenomen. Hoewel de omgeving schaalbaar is opgezet en er gaandeweg verschillende verbeteringen zijn gemaakt, liepen we nu tegen een structureel probleem aan. Hoewel we met wat slimme trucjes en zwaardere hardware vast nog enige tijd vooruit zouden kunnen, hebben we ervoor gekozen om de setup grondig onder handen te nemen.

Waar liepen we tegenaan?

Onze load balancers gebruikten de zogeheten ‘NAT-methode’ (Network Address Translation). Dat wil zeggen: het IP-adres van ‘mail.antagonist.nl’ kwam uit op één van onze load balancers. Wanneer een client een verzoek stuurde, vertaalde de load balancer vervolgens het doel-IP-adres naar die van één van onze proxies. De proxy stuurde het antwoord terug naar de load balancer, die vervolgens het afzender IP-adres van de proxy terug naar zijn eigen IP vertaalde. Al met al best veel werk voor de load balancer.

Visueel overzicht van loadbalancers, die de NAT-methode gebruiken

Een bijkomend probleem was dat deze vertaling geheel ‘single-threaded’ gebeurde, de taak kon dus niet gedeeld worden door meerdere CPU-cores. Je kunt proberen te schalen, door meerdere CPU’s in de load balancer te stoppen, maar dit heeft geen effect. Hoewel de NAT-methode ons jarenlang trouwe dienst heeft bewezen, werd het dus tijd voor iets nieuws.

De oplossing: Direct Routing

Voor load balancers kun je ook de zogeheten ‘DR-methode’ (Direct Routing) gebruiken. Bij deze methode komt het IP-adres van ‘mail.antagonist.nl’ wederom uit op één van onze load balancers. Wanneer er nu een verzoek van een client binnenkomt, vertaalt de load balancer het IP-adres echter niet, maar stuurt deze direct door naar één van de proxies. De proxy stuurt vervolgens het antwoord rechtstreeks terug naar de client.

Visueel overzicht van loadbalancers, die de Direct Routing-methode gebruiken

Virtual IP

Zoals je merkt, heb ik het steeds over één van de load balancers. Dit komt, omdat onze load balancers in een ‘active-passive setup’ werken. Dit wil zeggen dat er telkens één actief is en de ander uit zijn neus staat te eten. Nou ja, niet helemaal: de load balancers hebben voortdurend contact met elkaar. Als de ene niet reageert, dan neemt de andere het over.

Hoe dat in zijn werk gaat, is als volgt: beide load balancers hebben ieder hun eigen IP-adres, maar geen van deze adressen is publiekelijk bekend. Hiervoor hebben we een extra IP-adres, het ‘Virtual IP’ (VIP). De actieve load balancer heeft dit IP-adres. Als er met de actieve load balancer iets misgaat, vindt er een ‘failover’ plaats. Het IP-adres gaat dan naar de passieve load balancer die daarmee actief wordt.

Valkuil

Omdat een client verbinding maakt met een IP-adres (het VIP), verwacht deze dat het antwoord ook vanaf dat IP-adres komt. Om deze reden moeten de proxies allemaal hetzelfde IP-adres hebben, dat ook op de load balancer beschikbaar is. Echter, normaal gesproken is het geen goed idee om aan meerdere servers hetzelfde IP-adres te geven.

Oppassen voor valkuilen

Als oplossing hebben we daarom onze proxies zo ingesteld, dat ze aan niemand vertellen dat ze dit IP-adres hebben. Voor de kenners onder ons: ze sturen geen ARP (Address Resolution Protocol) uit, betreffende dit IP-adres. Zo kunnen ze dit IP-adres wel als afzender-adres gebruiken, wanneer ze het antwoord naar de client versturen.

Voordeel: een sneller mailplatform

Een belangrijk voordeel is dat de load balancer zo veel minder werk heeft, omdat die het antwoord niet hoeft terug te sturen. Ook is het simpel doorzetten van pakketten minder werk dan er vertaling (NAT) op toe te passen. Hiermee is de capaciteit dus flink verhoogd. Daarnaast hebben we van de gelegenheid gebruikgemaakt om meteen IPv6 toe te voegen aan deze omgeving. Zo zijn we weer klaar voor de toekomst!

Tot slot

Op zoek naar hosting voor zowel je website als e-mail? Kijk gerust eens naar onze pakketten! Je kunt met ieder hostingpakket van ons snel en eenvoudig je eigen professionele e-mailadressen aanmaken die zijn gebaseerd op jouw unieke domeinnaam.

Webhosting + E-mail + Gratis SSL →

P.S. Wil je op de hoogte blijven van alle artikelen, updates, tips en trucs die verschijnen op ons blog? Dat kan! Rechts bovenin via RSS, e-mail, het liken op Facebook, het +1’en op Google+ of het volgen op Twitter.

Deel App Tweet Mail Deel

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *