Een privénetwerk (VPC) verbindt je servers via je eigen IP-bereik, los van het internet. Servers kunnen op een privénetwerk staan zonder publiek IP; een NAT-gateway geeft ze uitgaande internettoegang, en een Elastic IP koppelt een publiek adres aan een van die servers als hij bereikbaar moet zijn.
Wanneer gebruik je er een?
- Databases, caches en queues die nooit publiek bereikbaar mogen zijn.
- Appservers achter een load balancer, die servers zonder publiek IP via het netwerk kan bereiken.
- Minder betaalde IPv4-adressen: alleen de toegangspunten hebben er een nodig.
- Intern verkeer tussen servers dat niet over de publieke interface gaat.
Een netwerk aanmaken
- Open Networks in de console en kies Create network.
- Geef het een naam, bijvoorbeeld
prod. - Kies een IP-bereik, zoals
10.0.0.0/16. - Maak het aan.
De voorbeelden hieronder gebruiken adressen uit 10.0.1.0/24 binnen dat bereik.
Kies een bereik dat niet overlapt met je kantoornetwerk of een VPN die je wilt koppelen, want overlappende bereiken zijn niet netjes te routeren.
Servers koppelen
- Nieuwe servers: selecteer het netwerk in de netwerkstap van een server aanmaken. Wil je een server zonder publiek adres, vink dan het publieke IPv4 en IPv6 uit.
- Bestaande servers: open de server, ga naar Networking en koppel hem aan het netwerk.
Op de server verschijnt het privéadres op een eigen interface:
ip -brief address
Test van de ene server naar de andere:
ping -c 3 10.0.1.5 # example private address
Diensten aan het privéadres binden
Laat interne diensten alleen op de privé-interface luisteren. Voorbeelden:
# PostgreSQL: /etc/postgresql/16/main/postgresql.conf
listen_addresses = '10.0.1.5'
# Redis: /etc/redis/redis.conf
bind 10.0.1.6
En sta alleen het netwerkbereik toe in pg_hba.conf, UFW of een firewall:
sudo ufw allow from 10.0.0.0/16 to any port 5432 proto tcp
NAT-gateway: internet voor privéservers
Een server zonder publiek adres kan zelf geen updates downloaden of externe API's aanroepen. Een NAT-gateway lost dat op:
- Maak in de console een NAT-gateway aan voor het netwerk.
- Bevestig. Uitgaand verkeer van servers in het netwerk gaat nu via het publieke adres van de gateway naar buiten.
Controleer het vanaf een privéserver:
curl -4 https://ifconfig.me
sudo apt update
De NAT-gateway verwerkt alleen verbindingen die van binnenuit worden gestart. Niets op het internet kan via de gateway een verbinding met je privéservers openen.
Elastic IP: één privéserver van buitenaf bereiken
Een Elastic IP is een publiek IP dat via NAT naar een server op een privénetwerk gaat. Gebruik het wanneer één privéserver verbindingen vanaf het internet moet accepteren, bijvoorbeeld een mailrelay of een VPN-endpoint, zonder hem een publieke interface te geven.
- Maak een Elastic IP aan in de console.
- Wijs het toe aan een privéserver in het netwerk.
- Sta de benodigde poorten toe in de firewall van de server.
Voor meerdere servers achter één adres is een load balancer meestal de betere keuze.
Verbinding maken met privéservers
Gebruik een jumphost met een publiek adres:
ssh -J [email protected] [email protected] # example addresses
Of draai een VPN op één server en routeer het netwerkbereik daardoorheen; zie de WireGuard-gids. De browserconsole werkt ook voor elke server, publiek of niet.
De indeling plannen
Een veelgebruikte, kleine productie-indeling:
| Server | Publiek | Privé |
|---|---|---|
| Load balancer | ja (beheerd) | bereikt 10.0.1.0/24 |
web-1, web-2 |
nee | 10.0.1.11, 10.0.1.12 |
db-1 |
nee | 10.0.1.20 |
| NAT-gateway | ja | geeft web en db uitgaande toegang |
bastion |
kleine server met IPv4 | 10.0.1.5 |
Precies deze opzet kun je tekenen in Composer: je ziet de maandkosten en past alles in de juiste volgorde toe.
API
Netwerken zijn beschikbaar via de API op https://api.wolkra.com/v1/networks. Zie API-tokens.
Meer op de productpagina's: privénetwerken, NAT-gateways en IP-adressen.
Veelgestelde vragen
Kan een server helemaal geen publiek IP hebben?
Ja. Koppel hem alleen aan een privénetwerk. Via een NAT-gateway kan hij het internet bereiken, en jij maakt verbinding via een jumphost, een VPN of een load balancer.
Welk IP-bereik moet ik gebruiken?
Elk privébereik uit RFC 1918, bijvoorbeeld 10.0.0.0/16, zolang het niet overlapt met andere netwerken die je wilt koppelen, zoals je kantoornetwerk of een VPN.
Wat is het verschil tussen een Elastic IP en een floating IP?
Een floating IP is een publiek adres dat direct aan een server is toegewezen en in seconden naar een andere server kan. Een Elastic IP is een publiek adres dat via NAT naar een server gaat die alleen op een privénetwerk staat.
Wordt dataverkeer op een privénetwerk gefactureerd?
Dataverkeer is bij Wolkra onbemeterd, op publieke en privé-interfaces.