Nätverk
Varje arbetslast, container eller virtuell maskin, har ett nätverkskort på ett privat nätverk som sträcker sig över alla servrar i realmen. Runt det ger Velrix dig delarna i ett molnnätverk: säkerhetsgrupper, publika adresser, lastbalanserare och värdnamn.
Privata nätverk
- En arbetslast behåller sin privata adress och sin MAC-adress när den flyttas till en annan server, så det som pratar med den märker inte flytten.
- Arbetslaster på samma nätverk når varandra med namn, över servrarna, containrar som VM:ar. Andra ägares nätverk når dem inte.
- Om nätverkets arbetslaster får öppna anslutningar mot internet är en inställning för nätverket (Utgående trafik).
- En server med IPv6 ger arbetslasterna IPv6 också, och en arbetslast kan få en egen publik IPv6-adress, dirigerad direkt till den utan NAT.
Säkerhetsgrupper
En säkerhetsgrupp är en uppsättning regler och de arbetslaster du lägger i den. På ett nätverk där ingen arbetslast ligger i en grupp pratar alla fritt. Så fort en gör det gäller:
- medlemmar i en grupp når varandra;
- mellan grupper öppnas bara det som en inkommande regel i den mottagande gruppen tillåter;
- utgående trafik är öppen, om inte en grupp som arbetslasten ligger i har utgående regler: då gäller bara de.
Svar på en anslutning som släpptes igenom går alltid fram. Ändringar gäller inom några sekunder, var arbetslasten än körs. Hur du ställer in dem visar Nätverk.
Din leverantör kan också lägga mallar för nätverkspolicy före dina egna grupper, till exempel en som stoppar e-post som skickas direkt på port 25. De visas i fönstret Nätverk, och du kan be om att få en upphävd.
Att nå arbetslaster utifrån
- Värdnamn lägger en webbapp på din egen domän, med certifikat, över HTTP/1.1, HTTP/2 och HTTP/3. Det är den vanliga vägen in (Appar).
- Flytande IP är publika adresser som du har och pekar mot en arbetslast. Adressen följer med när arbetslasten flyttas.
- Lastbalanserare lägger en adress framför en apps friska kopior, på appens egna portar.
- Gateways är servrarna som en driftansvarig väljer för att hålla flytande IP och lastbalanserarnas adresser, och för att föra arbetslasternas trafik ut mot internet. Om den aktiva gatewayn slutar fungera tar nästa över inom några sekunder.
Vad en app exponerar anges som protokoll på dess sida (HTTPS, PostgreSQL, SSH, Minecraft och så vidare, med sina portar). Värdnamn och lastbalanserare för fram det protokollen säger. Protokollen är definitioner som en driftansvarig kan utöka, inte kod. Den sidan beskrivs under Lastbalanserare och flytande IP.
Dataplanet
Under allt detta vidarebefordrar och filtrerar varje server paket i Linux-kärnan med eBPF, och gatewayerna använder XDP för sin publika trafik. Det finns ingen tabell för anslutningsspårning, och ingen äldre brandvägg bakom att falla tillbaka på.
- Säkerhetsgrupper bedöms en gång per paket, på arbetslastens egen port, när paketet kommer in. Svar känns igen med ett litet svarsminne per nätverk, så ett nätverks trafik kan aldrig tränga undan ett annats.
- Lastbalanserare sprider anslutningar med Maglev-hashning, en tabell per lastbalanserare, direkt vid gatewayns nätverkskort. En anslutning behåller sin backend medan backends kommer och går, och den överlever att gatewayn byts, eftersom ingen gateway har tillstånd som nästa saknar.
- Flytande IP översätts utan tillstånd per anslutning, så etablerade anslutningar överlever också ett byte av gateway.
- Utgående trafik mot internet översätts per ägare, inom en begränsad andel, så en ägare kan aldrig ta slut på gatewayns portar för alla andra.
- Varje ägare har gränser och räknare: hur många flöden, svar och översättningar den får ha, och vad den har använt. En driftansvarig ser räknarna för varje nätverk.
- SYN-flöden mot en publik adress besvaras vid gatewayns nätverkskort, innan de når någon arbetslast.
- Kan dataplanet inte bedöma ett paket släpps det inte fram. En server vidarebefordrar aldrig trafik som den inte har kontrollerat.
För driftansvariga: Dataplan beskriver kraven på nätverkskort, inbyggd och generisk XDP, och hur du läser räknarna.