Automatiseringsworkflows
IP-adressen beheren via de API
Zoek een IP-blok en vrije adressen, reserveer en wijs adressen toe aan servers, geef ze vrij, stel reverse DNS in en voeg adresruimte toe of lever die in.
Adressen horen bij IP-blokken. Elke adresaanroep noemt het blok en het adres in het pad: /v1/networking/ip-blocks/{blockId}/addresses/{address}, gevolgd door de actie.
Zie Openbare IP-blokken voor console-instructies en een voorbeeld van een gedeeld blok.
Zoek een blok en zijn vrije adressen
IP-blokken opvragen geeft elk blok op de netwerken van uw organisatie terug, met id, networkId, datacenter, ipVersion, cidr, gateway, subnetMask, prefixLength en het aantal gebruikte en vrije adressen:
curl --request GET \
--url https://api.serverside.com/v1/networking/ip-blocks \
--header 'Authorization: Bearer <api-key>'De eigen blokken van een server staan op zijn internettoegangsnetwerk. Virtuele netwerken van een dienst opvragen toont ze onder prefixes van elk netwerk, met voor elk blok de id en de serveradressen daarin.
IP-blok ophalen geeft één blok met zijn adressen terug:
curl --request GET \
--url https://api.serverside.com/v1/networking/ip-blocks/{blockId} \
--header 'Authorization: Bearer <api-key>'data.addresses bevat één vermelding per geregistreerd adres in het blok, met state (FREE, RESERVED, GATEWAY of ASSIGNED), de reverse-DNS-naam als rdns en onder serviceAssignments de serviceId en name van elke server waaraan het is toegewezen. data.availableAddresses bevat de laagste vrije adressen, maximaal 255. Een blok dat niet meer op een van uw netwerken staat, antwoordt met 404.
Reserveer een adres
IP-adres reserveren houdt een vrij adres buiten de pool zonder het aan een server te geven. De aanroep heeft geen body en antwoordt met 200 en het adres, nu RESERVED:
curl --request POST \
--url https://api.serverside.com/v1/networking/ip-blocks/{blockId}/addresses/198.51.100.27/reserve \
--header 'Authorization: Bearer <api-key>'Reserveren en toewijzen zijn twee verschillende toepassingen van een adres, geen twee stappen. Het toewijzen van een gereserveerd adres wordt geweigerd met 409 IP_ADDRESS_IN_USE; geef het eerst vrij.
Wijs een adres toe aan een server
IP-adres toewijzen koppelt een adres aan een server die met het netwerk van het blok is verbonden. De aanroep accepteert serviceId en de segmentId van de koppeling, te vinden op de netwerkregel bij Virtuele netwerken van een dienst opvragen:
curl --request POST \
--url https://api.serverside.com/v1/networking/ip-blocks/{blockId}/addresses/198.51.100.26/assign \
--header 'Authorization: Bearer <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"serviceId": "<service-id>",
"segmentId": "<segment-id>"
}
'Het antwoord is 200 met het adres, nu ASSIGNED, en de server onder serviceAssignments. Het eerste adres van elke familie dat een server op een netwerk krijgt, wordt daar zijn primaire adres. Een implementatie gebruikt zijn primaire IPv4-adres van een native netwerk.
De openbare adressen van een server worden niet via DHCP verstrekt. Het installatieprogramma schrijft adressen die vóór de implementatie zijn toegewezen als statische configuratie in het besturingssysteem. Een later toegewezen adres moet u handmatig toevoegen met prefixLength en gateway uit IP-blok ophalen.
Geef een adres vrij
IP-adres vrijgeven verwijdert het adres van elke server waaraan het is toegewezen, of beëindigt zijn reservering, en antwoordt met 200 en het adres, nu FREE:
curl --request POST \
--url https://api.serverside.com/v1/networking/ip-blocks/{blockId}/addresses/198.51.100.26/release \
--header 'Authorization: Bearer <api-key>'Vrijgeven verwijdert de reverse-DNS-record van het adres. Als het het primaire serveradres was, neemt het laagste adres van dezelfde familie dat de server nog op dit netwerk heeft zijn plaats in.
Fouten
Reserveren, toewijzen en vrijgeven kunnen deze antwoorden geven:
| Status | code | Oorzaak |
|---|---|---|
400 | VALIDATION_ERROR | Het adres in het pad is geen IP-adres, of is IPv4 in een ongeldige schrijfwijze, zoals 198.51.100.026. |
404 | ENTITY_NOT_FOUND | Het blok staat niet op een van uw netwerken, de server is niet op dat segment aan het bloknetwerk gekoppeld, of bij vrijgeven wordt een adres buiten het blok of zonder registratie in het blok genoemd. |
409 | IP_ADDRESS_IN_USE | Het adres is al toegewezen of gereserveerd. |
409 | IP_ALLOCATION_RACE | Een ander verzoek wijzigde tegelijk hetzelfde adres. Probeer na één seconde opnieuw (Retry-After: 1). |
409 | NETWORK_CHANGE_IN_PROGRESS | Een netwerkwijziging voor de server wordt nog toegepast. Probeer opnieuw na Retry-After (10 seconden). |
409 | OPERATION_IN_PROGRESS | Er draait een implementatie, wisbewerking of hardwaretest op de server. |
422 | IP_ADDRESS_UNAVAILABLE | Het blok heeft geen vrije adressen meer. |
422 | VALIDATION_FAILED | Het adres is geen bruikbaar hostadres in dit blok: buiten de reeks, het netwerk- of broadcastadres, of van de andere IP-versie. De detailcode is IP_ADDRESS_INVALID, op address. |
422 | ENTITY_STATE_INVALID | Een poging om de gateway van het blok vrij te geven. |
Stel reverse DNS in
Zie Reverse DNS (rDNS) voor de consoleprocedure en controles van DNS-resolutie.
Reverse DNS instellen schrijft de PTR-record voor een IPv4-adres en antwoordt met 204. De API controleert de naam voordat deze wordt geaccepteerd. Maak daarom eerst de forward-record:
- De naam moet een volledig gekwalificeerde domeinnaam zijn. Een afsluitende punt is toegestaan en wordt verwijderd; de naam wordt in kleine letters opgeslagen.
- De naam moet een A-record hebben en een van zijn A-records moet dit adres zijn. De controle gebruikt de openbare Cloudflare-resolver 1.1.1.1.
curl --request PUT \
--url https://api.serverside.com/v1/networking/ip-blocks/{blockId}/addresses/198.51.100.26/rdns \
--header 'Authorization: Bearer <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"rdns": "mail.example.com"
}
'Stel dit in nadat het adres is toegewezen: toewijzen of reserveren wist een achtergebleven record. Een adres zonder registratie in het blok antwoordt met 404.
code | Status | Oorzaak |
|---|---|---|
RDNS_HOSTNAME_INVALID | 422 | De naam is leeg of geen volledig gekwalificeerde domeinnaam. |
RDNS_A_RECORD_NOT_FOUND | 422 | De naam heeft geen A-record. |
RDNS_A_RECORD_MISMATCH | 422 | De A-records van de naam wijzen ergens anders naartoe. |
RDNS_ZONE_UNSUPPORTED | 422 | Wij leveren geen reverse DNS voor dit adres. |
RDNS_VALIDATION_UNAVAILABLE | 503 | De resolver antwoordde niet. Probeer opnieuw na Retry-After (30 seconden). |
DNS_PROVIDER_UNAVAILABLE | 503 | De DNS-provider antwoordde niet. Probeer opnieuw na Retry-After (30 seconden). |
DNS_MANAGEMENT_FAILED | 502 | De DNS-provider weigerde de wijziging. |
Reverse DNS verwijderen verwijdert de record en antwoordt met 204, ook als er geen record was.
IPv6
IPv6-blokken gebruiken dezelfde aanroepen voor reserveren, toewijzen en vrijgeven. Het adres mag in elke IPv6-vorm worden geschreven, zoals 2001:db8::1a, zonder vierkante haken of zone. Vrije adressen van een IPv6-blok worden niet geteld; availableAddressCount en availableAddresses zijn daarom null. Kies een host in het cidr die niet in addresses staat. Reverse DNS wordt niet geleverd voor IPv6; beide reverse-DNS-aanroepen antwoorden voor een IPv6-adres met 422 RDNS_IPV6_UNSUPPORTED.
Voeg adresruimte toe met een IP-blok
Als een blok vol raakt, voegt een ander blok adresruimte toe aan een openbaar netwerk van uw organisatie, zoals het internettoegangsnetwerk van een server. IP-blokabonnementen opvragen heeft één abonnement per grootte, met ipVersion, prefixLength en usableAddresses in specs, de prijs per factureringscyclus in pricing en de voorraad per datacenter in availability. De queryparameter datacenter beperkt de lijst tot één locatie en accepteert een code zoals ams1 of een ID uit Regio’s opvragen.
curl --request GET \
--url https://api.serverside.com/v1/networking/ip-blocks/plans \
--header 'Authorization: Bearer <api-key>'Voor een vaste termijn is het blok een IP_BLOCK-regel van Bestelling aanmaken, toegevoegd zodra de factuur is betaald (Facturering). Bij facturering per uur voegt IP-blok aanmaken het in één verzoek toe. Dit vereist billing.isUsageBased op true bij Rechten ophalen; anders is het antwoord 422 USAGE_BILLING_DISABLED:
curl --request POST \
--url https://api.serverside.com/v1/networking/ip-blocks \
--header 'Authorization: Bearer <api-key>' \
--header 'Idempotency-Key: <idempotency-key>' \
--header 'Content-Type: application/json' \
--data '
{
"plan": "<ip-block-plan-id>",
"datacenter": "ams1",
"networkId": "<network-id>"
}
'plan accepteert de id van het abonnement; networkId noemt het netwerk waaraan het blok wordt toegevoegd. Het antwoord is 201 met het nieuwe blok, waarvan de id de {blockId} van de adresaanroepen is. Hetzelfde verzoek met dezelfde Idempotency-Key bestelt niets nieuws en antwoordt met 200 en dat blok. Een blok dat niet kon worden toegewezen wordt geweigerd met 409 PROVISIONING_FAILED; een grootte waarvoor het datacenter geen ruimte heeft met 422 OFFERING_NOT_AVAILABLE.
Lever een IP-blok in
IP-blok verwijderen zegt het abonnement van een los besteld blok op en antwoordt met 204. Abonnement van IP-blok ophalen toont welk abonnement dat is.
curl --request DELETE \
--url https://api.serverside.com/v1/networking/ip-blocks/{blockId} \
--header 'Authorization: Bearer <api-key>'Een blok zonder toegewezen adressen wordt direct vrijgegeven. Een blok met een adres dat nog aan een server is toegewezen, wordt geweigerd met 422 TERMINATION_BLOCKED; geef die adressen eerst vrij. Een bij een server geleverd blok wordt via het serverabonnement gefactureerd. Verwijderen wordt geweigerd met 422 BUNDLED_ITEM_CANCELLATION_BLOCKED; het wordt vrijgegeven nadat de server is verwijderd.