Skip to content

Gateway

Gateway on VPC:n lähtevä reitti internetiin. Se on oma resurssinsa, ei VPC:n asetus: VPC:llä on enintään yksi, eikä VPC ilman sitä pääse internetiin lainkaan.

Saapuva tavoitettavuus on eri asia — siihen tarvitaan julkinen IP ja vastaavat säännöt suojausryhmässä.

Kolme yhteystilaa

VPC on aina täsmälleen yhdessä näistä. Gatewayn omaava VPC lähtee aina yhdestä julkisesta osoitteesta; valitsemasi asia on se, mistä tuo osoite tulee.

Lähtevä internet-yhteysLähdeosoite, jonka vastapuoli näkeeKäytetyt julkiset IP:t
Ei GatewaytaEi — eristetty0
Gateway, oletusosoiteKylläAlustan valitsema osoite. Ei näy missään, ja arvotaan uudelleen, jos gateway rakennetaan uudelleen0
Gateway, itse nimeämäsi julkinen IPKylläNimeämäsi julkinen IP — pysyvä, ja sinun1, tenantisi kiintiöstä

"Ei Gatewayta" tarkoittaa resurssin puuttumista, ei tilaa eikä kytkintä, jonka voi sammuttaa. Osoitteetonta gatewayta ei ole olemassa: joko VPC:llä on gateway tai sillä ei ole.

Kumman haluat

  • Oletusosoite — oikea valinta aina, kun vastapuolta ei kiinnosta, mistä osoitteesta saavut: pakettipeilit, julkiset API:t, lähettämäsi webhookit, ohjelmistopäivitykset. Saat sen pyytämällä gatewayta ja jättämällä osoitteen nimeämättä. Se ei maksa sinulle mitään: se ei käytä lainkaan julkisten IP-osoitteidesi kiintiötä, se ei näy yhdelläkään listallasi, sillä ei ole tunnusta eikä se koskaan päädy laskulle. Se, mihin se ei pysty, on pysyä samana — ks. varoitus alla.
  • Itse nimeämäsi julkinen IP — valitse tämä, kun vastapuoli pitää lähdeosoitettasi sallittujen listalla tai kun osoite viedään DNS:ään: kumppanin API, asiakkaan palomuuri tai SFTP-päätepiste, joka hyväksyy vain tunnetut osoitteet. Osoite on oma julkinen IP, jonka valitset itse. Se näkyy julkisten IP-osoitteidesi listalla, se lasketaan tenantisi julkisten IP-osoitteiden kiintiöön, siitä laskutetaan julkisena IP:nä, ja se on kiinnitetty — se säilyttää osoitteensa, vaikka gateway tai VPC poistettaisiin ja rakennettaisiin uudelleen. Ks. Valitse osoite, jota gateway käyttää.
  • Ei gatewayta — oikea vastaus VPC:lle, joka ei saa keskustella internetin kanssa lainkaan: eristetty taustakerros tai datankäsittelyverkko, johon päästään vain saman VPC:n muista resursseista. Se ei kuluta mitään.

Vain itse nimeämäsi osoite on turvallista julkaista tai antaa sallittujen listalle

Oletusosoite ei ole sinun, eikä se ole pysyvä. Alusta arpoo sen, se ei ole sinun omistamasi resurssi, se ei näy yhdelläkään julkisten IP-osoitteiden listalla, ja se arvotaan uudelleen aina, kun gateway tai VPC rakennetaan uudelleen. Se ei myöskään elä gatewayta pidempään.

Sitä ei siis saa koskaan antaa kumppanille sallittujen listalle, koskaan laittaa asiakkaan palomuuriin eikä koskaan julkaista DNS-tietueessa. Kun osoite vaihtuu — eikä mikään varoita siitä etukäteen — kyseistä liikennettä ei yksinkertaisesti enää hyväksytä.

Jos jonkun VPC:si ulkopuolisen on tiedettävä, mistä osoitteesta liikenteesi tulee, nimeä oma julkinen IP. Se on tämän sivun ainoa osoite, johon liittyy lupaus.

Gatewayn poistaminen maksaa enemmän kuin internet-yhteyden

VPC:n nimenselvitys (DNS) ja yhteys hallittuihin palveluihin kulkevat samaa reittiä. Kun poistat Gatewayn, VPC menettää kaikki kolme kerralla: ei lähtevää internet-yhteyttä, ei DNS:ää eikä yhteyttä hallittuihin palveluihin. VPC:n sisällä olevat resurssit jatkavat toimintaansa ja keskustelevat keskenään yksityisillä osoitteilla — mutta kaikki, mikä selvittää verkkonimen tai ottaa yhteyttä hallittuun palveluun, lakkaa toimimasta.

Siksi jokainen pinta vaatii aikomuksen ilmaisemista selvästi: vahvistus portaalissa, valitsin komentorivillä, hyväksytty suunnitelma Terraformissa.

Valitse yhteys VPC:tä luodessasi

VPC:tä luotaessa voit valita yhteyden — none tai public-ip. Jos jätät valinnan tekemättä, se tarkoittaa none: mitään ei provisioida, joten VPC ei koskaan saa lähtevää yhteyttä vain siksi, että kenttä jäi pois.

Portaalissa Verkko → VPC:t → Luo kysyy valinnan eikä esivalitse mitään.

bash
fm network vpc create --name my-vpc --cidr 10.0.0.0/16 --gateway public-ip
fm network vpc create --name my-vpc --cidr 10.0.0.0/16 --gateway none

Komentorivillä yhdistetty valinta kirjoitetaan public-ip, ja myös public_ip hyväksytään. Se antaa VPC:lle gatewayn oletusosoitteella; oman julkisen IP:n nimeäminen tehdään gatewayssa itsessään, alla.

Tarkista gateway sen jälkeen, kun VPC on luotu

Luontihetken valinta toteutetaan parhaan yrityksen mukaan ja vasta sen jälkeen, kun VPC itse on olemassa. VPC luodaan ensin; gateway provisioidaan seuraavassa vaiheessa, ja sen epäonnistuminen ei tarkoituksella ole kohtalokas VPC:lle — alustan kapasiteettiraja, virhe lähtevää reittiä pystytettäessä tai epäonnistunut kirjaus jättää sinulle pyytämäsi VPC:n ilman gatewayta, ja luonti ilmoittaa siitä huolimatta onnistuneensa.

Varmista se siis jälkikäteen sen sijaan, että oletat:

bash
fm network gateway get --vpc-id vpc-abc123

tai katso VPC:n yhteyspaneelia portaalissa — se tarkistaa asian puolestasi ja varoittaa, jos tekemääsi valintaa ei otettu käyttöön. Jos VPC jäi ilman gatewayta, mitään ei ole kulutettu eikä mikään ole rikki: lisää sellainen komennolla fm network gateway create (alla).

Terraform toimii tarkoituksella toisin. frostmoln_vpc-resurssilla ei ole yhteysargumenttia, koska VPC, joka loisi gatewayn sivussa, omistaisi objektin, jota Terraform ei hallitse. Terraformissa yhteysvalinta on kyseisen resurssin olemassaolo tai puuttuminen.

Tällä on merkitystä VPC:lle, joka ei saanut alkuaan Terraformista, ja virhetilanne on hiljaisempi kuin odottaisi. Jos VPC:llä on jo gateway — valittu luontihetkellä tai alustan liittämä silloin, kun julkinen IP kytkettiin — frostmoln_gateway-resurssin määrittäminen sille ei välttämättä epäonnistu. Resurssi, joka ei nimeä public_ip_id-arvoa, ottaa haltuunsa jo olemassa olevan gatewayn: Terraform raportoi luonnin, jota se ei tehnyt, ja VPC jatkaa ulospäin sillä osoitteella, joka gatewaylla jo oli — alustan arpomalla tai aiemmin portaalista tai komentoriviltä valitulla, mutta ei sellaisella, jonka tämä konfiguraatio nimeää. Määrittely hylätään yleensä virheellä GATEWAY_EXISTS vain silloin, kun resurssi nimeää public_ip_id-arvon, jota olemassa olevalla gatewaylla ei ole. Hallitaksesi jo olemassa olevaa gatewayta tuo se sen sijaan, että määrittäisit uuden.

Riippumatta siitä, miten VPC aloittaa, alla oleva gateway-resurssi on tapa lisätä, muuttaa tai poistaa yhteys jälkikäteen — luontihetken valintaa ei voi antaa uudelleen jo olemassa olevalle VPC:lle.

Lisää Gateway olemassa olevaan VPC:hen

Lisääminen ei riko mitään: instanssit jatkavat toimintaansa ja säilyttävät osoitteensa, ne saavat yksinkertaisesti reitin ulos.

Portaalissa

Avaa Verkko → VPC:t ja sitten VPC. Gateway -paneeli näyttää, onko VPC:llä sellainen ja mistä osoitteesta sen lähtevä liikenne näyttää tulevan. Kun lisäät sellaisen, kysytään mistä osoite tulee: alustan oletusosoitteesta vai jostakin omasta julkisesta IP:stäsi, jonka sitten valitset listalta. Kun gateway on olemassa, paneeli tarjoaa Poista Gateway — ja niin kauan kuin gateway on oletusosoitteessa, myös Ota osoite omakseni, joka kuvataan kohdassa Ota gatewayn osoite omaksesi.

Komentoriviltä

fm network gateway hallitsee VPC:n gatewayta:

bash
# Kaikki tenantin gatewayt. VPC ilman gatewayta puuttuu listalta kokonaan.
fm network gateway list

# Yhden VPC:n gateway
fm network gateway get --vpc-id vpc-abc123

# Anna VPC:lle lähtevä yhteys oletusosoitteella — --mode on pakollinen eikä
# sillä ole koskaan oletusarvoa
fm network gateway create --vpc-id vpc-abc123 --mode public-ip

# ...tai ulos jo hallussasi olevan julkisen IP:n kautta
fm network gateway create --vpc-id vpc-abc123 --mode public-ip --public-ip-id pip-xyz789

# Osoita olemassa oleva gateway toiseen omaan julkiseen IP:hen — --yes
# vahvistaa katkoksen
fm network gateway set-mode --vpc-id vpc-abc123 \
  --mode public-ip --public-ip-id pip-xyz789 --yes

# Poista se — --yes vahvistaa internetin, DNS:n ja hallittujen palveluiden menetyksen
fm network gateway delete --vpc-id vpc-abc123 --yes

--mode ottaa arvon public-ip (myös public_ip hyväksytään) eikä sillä ole koskaan oletusarvoa: yhteys on ilmaistu valinta, ei koskaan jotain, minkä VPC saa siksi, että valitsin unohtui. --public-ip-id kertoo, minkä julkisen IP:n kautta VPC menee ulos, ja se on valinnainen:

  • Jätä se pois, niin gateway ottaa alustan oletusosoitteen. Sinulle ei varata mitään, mitään ei ilmesty komennon fm network public-ip list tuloksiin eikä mistään laskuteta. Osoite ei ole pysyvä.
  • Nimeä osoite, niin siitä julkisesta IP:stä tulee VPC:n lähdeosoite — listattu, kiintiöösi laskettu, julkisena IP:nä laskutettu ja kiinnitetty.

--public-ip-id:n pois jättäminen ei varaa osoitetta puolestasi

Ennen se varasi. Enää ei: pois jätetty --public-ip-id tarkoittaa nyt "käytä alustan oletusosoitetta", joka on piilossa ja laskuttamaton — ei "varaa julkinen IP puolestani". Gatewayn luominen osoitetta nimeämättä ei tuota julkisten IP-osoitteidesi listalle mitään, eikä siellä ole mitään, jonka voisi turvallisesti antaa sallittujen listalle.

Vanhaa toimintaa vasten kirjoitetut skriptit toimivat yhä ja pitävät VPC:n yhteydessä; muutos on se, että ne eivät enää tuota osoitetta, jonka voisi hakea, julkaista tai antaa kumppanille. Jos omasi luotti siihen, varaa julkinen IP ja nimeä se erikseen.

Hyvä tietää skriptatessa:

  • get -o json tuottaa aina listan, jossa on nolla tai yksi gateway — saman muodon kuin list — joten sama jq toimii vastauksesta riippumatta:

    bash
    fm network gateway get --vpc-id vpc-abc123 -o json | jq -r '.[0].mode // empty'
  • create VPC:lle, jolla on jo gateway, on idempotentti toisto: se kertoo olemassa olevan gatewayn, eikä mitään luoda tai kuluteta. Myös se, ettei nimeä mitään osoitetta, on toisto — pois jätetty osoite tarkoittaa "säilytä se osoite, joka gatewaylla on", joten se ei koskaan vaihda olemassa olevan gatewayn osoitetta. Vain create, joka nimeää eri osoitteen, hylätään (GATEWAY_EXISTS); käytä siihen set-mode-komentoa. Sama sääntö saa Terraformin ottamaan haltuunsa gatewayn, jota se ei luonut.

  • set-mode, joka pyytää sitä mitä gatewaylla jo on, ei tee mitään eikä vaadi --yes.

  • set-mode ilman valitsinta --public-ip-id ei koskaan vie osoitetta pois. Sen pois jättäminen tarkoittaa "pidä se osoite, joka gatewaylla on", ei "palaa oletusosoitteeseen" — muutoin jokainen työkalu, joka ei ole koskaan kuullut valitsimesta, irrottaisi valitsemasi osoitteen selkäsi takana. Valitun osoitteen palauttaminen on tietoinen teko, ja se kuvataan kohdassa Palauta valittu osoite.

  • delete päättyy nollasta poikkeavaan paluuarvoon, jos --vpc-id:n olemassaoloa ei voida varmistaa. Tyhjä gateway-haku näyttää samalta silloin, kun VPC:llä ei ole gatewayta, kun tunnus on tuntematon ja kun VPC kuuluu toiselle tenantille — joten vanhaan tai väärin kirjoitettuun tunnukseen osoittava alasajoskripti saa tietää, ettei se tehnyt mitään, sen sijaan että sille kerrottaisiin gatewayn olevan poissa, vaikka se on yhä kiinni.

  • Samasta syystä get kertoo, ettei VPC:llä ole gatewayta, sen sijaan että se epäonnistuisi. Käytä sen parina fm network vpc get <vpc-id>, joka puolestaan kertoo puuttuvasta VPC:stä.

Terraformilla

hcl
resource "frostmoln_gateway" "main" {
  vpc_id = frostmoln_vpc.main.id
  mode   = "public_ip"
}

# Osoite, josta lähtevä liikenne näyttää tulevan. Gatewaylla, jolla ei ole
# public_ip_id:tä, tämä on alustan osoite — lue se vianselvitystä varten,
# älä koskaan julkaistavaksi.
output "gateway_source_address" {
  value = frostmoln_gateway.main.source_address
}

public_ip_id kertoo, minkä osoitteen kautta liikenne menee ulos, ja se on se, minkä määrität silloin, kun osoitteen on oltava pysyvä:

hcl
resource "frostmoln_public_ip" "gateway" {}

resource "frostmoln_gateway" "main" {
  vpc_id       = frostmoln_vpc.main.id
  mode         = "public_ip"
  public_ip_id = frostmoln_public_ip.gateway.id
}
  • public_ip_id on valinnainen. Jos jätät sen pois, gateway käyttää alustan oletusosoitetta: VPC:llä on lähtevä yhteys, tenantillesi ei varata mitään eikä mistään laskuteta. Attribuutti jää arvoon null — alusta ei raportoi mitään tunnusta takaisin, koska raportoitavaa sinun resurssiasi ei ole.

  • Ideana on määrittää se omana frostmoln_public_ip-resurssinaan. Silloin osoite elää gatewayta pidempään: poista ja luo uudelleen frostmoln_gateway.main tai koko VPC, ja sama frostmoln_public_ip liitetään takaisin samalla osoitteella.

  • Attribuutin poistaminen ei palauta osoitetta. Terraform säilyttää kirjatun arvon eikä suunnittele muutosta, koska pois jätetty public_ip_id tarkoittaa "pidä se, mikä sinulla on" eikä "palaa alustan osoitteeseen". Jos haluat siirtää gatewayn toiseen osoitteeseen, anna se toinen osoite; jos haluat palata alustan osoitteeseen, ks. Palauta valittu osoite.

  • public_ip_id:n muutos tehdään paikallaan — ei koskaan poistona ja uudelleenluontina. Se kuitenkin antaa VPC:n lähtevälle liikenteelle uuden osoitteen ja katkaisee käynnissä olevat yhteydet, joten se vaatii acknowledge_connectivity_loss = true.

  • mode ottaa arvon public_ip. Kaikki muu hylätään jo suunnitelmaa validoitaessa, joten konfiguraatio, joka yhä asettaa sen, epäonnistuu ennen kuin mitään otetaan käyttöön. Huomaa kirjoitusasu: komentorivi hyväksyy lisäksi väliviivallisen muodon public-ip, joten komentoriviltä kopioitu arvo on kirjoitettava tähän alaviivalla.

  • acknowledge_connectivity_loss on valinnainen totuusarvo, joka virittää resurssin poistoa tai public_ip_id:n muutosta varten. Tarjoaja hylkää molemmat ilman sitä, jo ennen kuin yhtään pyyntöä lähetetään. Aseta se arvoon true, aja apply, tee sitten poisto tai muutos — ja poista rivi jälkeenpäin. Paikalleen jätettynä se poistaa suojauksen resurssin loppuiäksi: myöhempi terraform destroy -target, poistettu moduuli tai vpc_id:n muutos katkaisisi VPC:n yhteyden ilman, että suunnitelmassa lukee muuta kuin tavallinen "will be destroyed".

  • vpc_id on se, joka pakottaa korvaamisen — ja korvaaminen poistaa olemassa olevan gatewayn ensin, mikä hylätään, ellei vahvistusta ole jo otettu käyttöön.

  • source_address, status ja origin ovat vain luettavia. public_ip_id:n muutoksen jälkeen alusta kirjaa osoitteen uudelleen, joten se suunnitellaan muodossa "(known after apply)".

  • Tuo gateway sen omalla tunnuksella tai VPC:n tunnuksella (gateway, josta ei ole tallennettua merkintää, on osoitettavissa vain VPC:n tunnuksella). Tuotu gateway ei ole koskaan valmiiksi vahvistettu.

    bash
    terraform import frostmoln_gateway.main vpc-abc123

Järjestä liitetyt osoitteet gatewayn suhteen

Johonkin liitetty osoite edellyttää, että VPC:llä on gateway — mutta mikään liitoksen tekevä resurssi ei viittaa frostmoln_gateway-resurssiin, joten Terraform ei näe niiden välillä yhteyttä ja ajaa ne rinnakkain. Tämä koskee resursseja frostmoln_public_ip (sen instance_id-attribuutin kautta), frostmoln_public_ip_association, frostmoln_load_balancer ja frostmoln_kubernetes_cluster (public_ip_id). Kumpi tahansa voi voittaa, ja molemmat väärät järjestykset kostautuvat:

  • Purkaessa gateway voi mennä ensin, jolloin sen poisto hylätään virheellä GATEWAY_IN_USE — destroy pysähtyy puoliväliin, osa pinosta jo poistettuna.
  • Luotaessa liitos voi tapahtua ensin, jolloin alusta liittää oman gatewayn kantamaan sitä. Oma frostmoln_gateway joko törmää siihen (GATEWAY_EXISTS, jos se nimeää public_ip_id-arvon) tai ottaa sen hiljaisesti haltuunsa, kuten yllä.

Tämä pätee, kun gateway on samassa konfiguraatiossa oleva frostmoln_gateway-resurssi. data "frostmoln_gateway" ei voi kantaa järjestystä — tietolähde luetaan, sitä ei koskaan luoda eikä poisteta, joten siitä riippuminen vain siirtää lukemista eikä järjestä mitään. Jos gateway ei ole sinun hallittavanasi, tuo se ensin.

Ilmaise järjestys itse sillä resurssilla, joka tekee liitoksen:

hcl
resource "frostmoln_public_ip_association" "web" {
  public_ip_id = frostmoln_public_ip.web.id
  instance_id  = frostmoln_instance.web.id

  depends_on = [frostmoln_gateway.main]
}

Sama rivi kuuluu mihin tahansa muuhun niistä: frostmoln_public_ip-resurssiin, jonka oma instance_id tekee liitoksen, frostmoln_load_balancer-resurssiin, jolla on scheme = "public", tai frostmoln_kubernetes_cluster-resurssiin, joka nimeää public_ip_id-arvon. Jos gateway on toisessa moduulissa, kohdista riippuvuus moduuliin: depends_on = [module.network].

Neljä asiaa ennen kuin kopioit sen:

  • Se kuuluu liitokseen, ei varaukseen. Pelkästään varattu osoite ei riipu mistään — eikä frostmoln_public_ip-tietolähteellä haetulla osoitteella ole varausresurssia, johon sen ripustaisi.
  • Älä koskaan aseta sitä osoitteeseen, jonka frostmoln_gateway.public_ip_id nimeää. Gateway riippuu jo kyseisestä osoitteesta, joten riippuvuus toiseen suuntaan on Cycle:-virhe jo plan-vaiheessa. Kyseinen osoite on jo oikeassa järjestyksessä.
  • Älä koskaan kirjoita sitä toisin päin — gatewaylle, osoitteet lueteltuina. Se on houkutteleva virhe, koska juuri gatewayn on oltava olemassa ensin; mutta depends_on järjestää sen resurssin, jolla se on, joten se kääntää molemmat järjestykset ja tekee joskus onnistuneesta kilpajuoksusta purkamisen, joka epäonnistuu joka kerta.
  • Se muuttaa vain järjestystä. Mitään ei luoda eikä vapauteta — eikä se viritä gatewayn omaa poistoa, joka vaatii yhä ensin acknowledge_connectivity_loss-asetuksen.

Jos gateway on jo otettu haltuun, merkki siitä on origin: se on implicit_public_ip tai vpc_create eikä explicit, ja source_address on osoite, jota et koskaan valinnut. Mitään ei tarvitse tuoda eikä rakentaa uudelleen — resurssi on jo Terraformin tilassa. Lisää järjestys, jottei tämä voi toistua, ja anna sitten gatewaylle tarkoittamasi osoite asettamalla public_ip_id, joka otetaan käyttöön paikan päällä ja vaatii acknowledge_connectivity_loss = true.

Jos haluat lukea gatewayn, jota et hallitse — sellaisen, joka valittiin VPC:tä luotaessa tai jonka alusta liitti julkisen IP:n yhteydessä — käytä tietolähdettä:

hcl
data "frostmoln_gateway" "production" {
  vpc_id = frostmoln_vpc.production.id
}

# Turvallista antaa kumppanille VAIN, jos tällä gatewaylla on public_ip_id.
# Ilman sitä arvo on alustan osoite, joka arvotaan uudelleen, kun gateway
# rakennetaan uudelleen.
output "gateway_source_address" {
  value = data.frostmoln_gateway.production.source_address
}

Valitse osoite, jota gateway käyttää

Jokaisella Gatewaylla on yksi lähdeosoite. Se on joko alustan tai jokin julkisista IP-osoitteistasi — sama resurssi, jonka itse varaat, listaat ja vapautat. Sinä päätät kumpi:

  • Nimeä hallussasi oleva osoite. Varaa julkinen IP (tai käytä uudelleen available-tilassa olevaa) ja nimeä se, kun luot gatewayn, tai osoita olemassa oleva gateway siihen. Kyseinen osoite näkyy julkisten IP-osoitteidesi listalla, lasketaan kiintiöösi, laskutetaan julkisena IP:nä ja on kiinnitetty gatewayhin.
  • Tai älä nimeä mitään. Gateway ottaa alustan osoitteen. Sinulle ei varata mitään, mitään ei listata, kiintiötä ei kuluteta eikä mistään laskuteta — ja osoite ei ole pysyvä.

Miksi nimetä osoite itse

Koska osoite on sinun resurssisi, se elää gatewayta pidempään. Poista Gateway tai poista VPC ja rakenna se alusta uudelleen: julkinen IP pysyy varattuna tenantillesi, säilyttää tunnuksensa ja säilyttää osoitteensa, ja kun osoitat uuden gatewayn siihen, saat täsmälleen saman osoitteen kuin ennen.

Juuri se tekee osoitteesta turvallisen antaa eteenpäin:

  • kumppanille tai toimittajalle, joka lisää liikenteesi lähdeosoitteen sallittujen listalle,
  • asiakkaalle, jonka palomuuri hyväksyy vain tunnetut lähteet,
  • julkaisemaasi DNS-tietueeseen.

Alustan oletusosoite ei anna tällaista lupausta. Se ei ole sinun, se ei ole yhdelläkään listalla, se arvotaan uudelleen, jos gateway tai VPC rakennetaan uudelleen, eikä se elä gatewayta pidempään. Älä koskaan anna sitä kenellekään, joka aikoo lisätä sen sallittujen listalle, äläkä koskaan julkaise sitä.

Palauta valittu osoite

Toiseen suuntaan — omasta julkisesta IP:stä takaisin alustan osoitteeseen — siirrytään tietoisesti, koska yksikään asiakassovellus ei voi tehdä sitä vahingossa. Osoitteen pois jättäminen luetaan merkityksessä "pidä se, mikä sinulla on", joten paluutie on poistaa gateway ja luoda se uudelleen osoitetta nimeämättä:

bash
fm network gateway delete --vpc-id vpc-abc123 --yes
fm network gateway create --vpc-id vpc-abc123 --mode public-ip

Julkinen IP palaa listallesi tunnuksineen ja osoitteineen available-tilan osoitteena, joka on yhä hallussasi — sen vapauttaminen on erillinen ja lopullinen teko. Komentojen välissä VPC:llä ei ole lähtevää internet-yhteyttä, DNS:ää eikä yhteyttä hallittuihin palveluihin, joten käsittele sitä lyhyenä huoltokatkona.

Kun osoite on kiinni gatewayssa

Gatewayn käytössä oleva julkinen IP on varattu, joten:

  • sitä ei voi liittää instanssiin — anna instanssille toinen osoite, ja
  • sitä ei voi vapauttaa — vapauttaminen luovuttaa osoitteen lopullisesti, mikä on juuri se, mitä gateway on estämässä.

Irrota se ensin, niin molemmat onnistuvat taas. Irrottaminen tarkoittaa: osoita gateway toiseen julkiseen IP:hen tai poista gateway. Osoitteesta tulee silloin taas aivan tavallinen available-tilan julkinen IP — yhä varattuna tenantillesi ja yhä kiintiöösi laskettuna, kunnes vapautat sen.

Se ei ohita instanssin omaa julkista IP:tä

Instanssi, jolla on oma julkinen IP, menee yhä ulos sen osoitteen kautta. Gatewayn osoite on lähde vain sellaisten instanssien liikenteelle, joilla ei ole omaa. Osoitteen valinta gatewaylle ei siis muuta mitenkään sitä, miltä julkisesti näkyvät instanssisi näyttävät ulospäin.

Ota gatewayn osoite omaksesi

Gateway, joka on alustan oletusosoitteessa, voi saada täsmälleen saman osoitteen muutetuksi omistamaksesi julkiseksi IP:ksi ilman että osoite vaihtuu. Se on tämän sivun ainoa toimenpide, joka ei muuta liikenteessäsi mitään:

  • Osoite pysyy täsmälleen samana. Mitään ei siirretä eikä käynnistetä uudelleen; katkosta ei tule.
  • Sen jälkeen se näkyy julkisten IP-osoitteidesi listalla ja on kiinnitetty, joten se säilyy, vaikka Gateway tai VPC luotaisiin uudelleen — sama lupaus kuin osoitteen itse nimetessäsi.
  • Siitä lähtien se lasketaan julkisten IP-osoitteidesi kiintiöön ja siitä laskutetaan kuten mistä tahansa julkisesta IP:stä. Juuri siksi tämä on sinun valintasi eikä jotain, joka tehdään puolestasi.
bash
fm network gateway adopt-public-ip --vpc-id vpc-abc123

Portaalissa VPC:n Gateway -paneeli tarjoaa toiminnon Ota osoite omakseni.

Tämä on oikea siirto silloin, kun osoite, jota ei ollut koskaan tarkoitus julkaista, on jo julkaistu — se on ainoa tie oletusosoitteesta pysyvään osoitteeseen, joka ei muuta itse osoitetta, joten sen jo sisältävät sallittujen listat ja DNS-tietueet toimivat edelleen.

Kahdesti ottaminen on vaaratonta — toisella kerralla mikään ei muutu ja sama osoite raportoidaan. Se koskee vain gatewayta, joka ei jo mene ulos valitsemasi julkisen IP:n kautta; sellaisella ei ole mitään otettavaa. Myöskään gatewaylla, joka on yhä

Mitä gateway kertoo

KenttäMerkitys
Tila (mode)public_ip.
LähdeosoiteJulkinen osoite, josta lähtevä liikenne näyttää tulevan. Turvallista lisätä sallittujen listalle vain silloin, kun alla näkyy julkinen IP; muutoin se on alustan osoite, ja se vaihtuu. Tyhjä, kun osoitetta ei vielä tiedetä.
Julkinen IPJulkinen IP, jonka kautta gateway menee ulos, kun olet nimennyt sellaisen. Sen osoite on lähdeosoite, ja se jää sinulle, kun gateway poistuu. Tyhjä tarkoittaa, että gateway on alustan oletusosoitteessa — siinä, jota et saa julkaista.
Tila (status)Havaittu alustalta, ei tallennetuista asetuksista: active tai detached.
AlkuperäKuka gatewayn pyysi (ks. alla).

Alkuperän arvot:

  • explicit — luotu suoraan portaalista, komentoriviltä, Terraformilla tai API:n kautta, osoitetta nimeämättä.
  • explicit_public_ip — luotu suoraan kuten explicit, ja julkinen IP, jonka kautta se menee ulos, on sinun nimeämäsi. Pidetään erillään siksi, että kyseinen osoite on sinun oma resurssisi: se palautetaan sinulle eikä alustalle, kun gateway päästää siitä irti.
  • implicit_public_ip — alusta lisäsi sen, koska tähän VPC:hen liitettiin julkinen IP. Saapuva ja lähtevä liikenne kulkevat samaa reittiä, joten julkisen IP:n liittäminen gatewayttomaan VPC:hen antaa sille gatewayn.
  • vpc_create — se tuli VPC:n mukana, VPC:n luontihetkellä tehdystä yhteysvalinnasta. Vain se valinta kirjaa tämän alkuperän.
  • legacytuntematon. Gatewayn pyytäjästä ei ole merkintää. Yleensä syynä on se, että VPC on resurssia vanhempi, mutta ei aina — lue se merkityksessä "tuntematon", älä koskaan "vanha".

Lähdeosoitteen vaihtaminen

Gatewayn osoittaminen toiseen omaan julkiseen IP:hen tehdään paikallaan: gateway säilyttää identiteettinsä, eikä mitään poisteta ja luoda uudelleen. Kyseessä on kuitenkin katkos — ei hiljainen vaihto:

  • Lähdeosoite muuttuu. Kaikki, mikä pitää vanhaa osoitettasi sallittujen listalla, lakkaa hyväksymästä liikennettäsi, kunnes uusi osoite on lisätty vastapuolen päässä. Koska nimeät uuden osoitteen itse, tämä on se tapaus, jossa tiedät sen etukäteen.
  • Käynnissä olevat yhteydet katkeavat. Vaihdon aikana auki olevat istunnot katkeavat ja ne on muodostettava uudelleen.
  • Se vaatii nimenomaisen vahvistuksen, ja juuri sen se vahvistaa: muuttuneen lähdeosoitteen ja katkenneet yhteydet.

Kyseessä ei ole poisto. Itse internet-yhteys jatkuu, eivätkä DNS ja yhteys hallittuihin palveluihin kuulu siihen, mitä muutos maksaa.

Osoitteen nimeäminen kuluttaa yhden osoitteen tenantisi kiintiöstä ja päätyy laskullesi julkisena IP:nä. Osoite, josta siirryt pois, irrotetaan: se pysyy varattuna tenantillesi, säilyttää osoitteensa ja palaa available-tilaan, joten myöhempi paluu voi käyttää täsmälleen samaa osoitetta.

  • Portaali — VPC:n Gateway -paneeli, ja vahvista.

  • Komentorivi:

    bash
    fm network gateway set-mode --vpc-id vpc-abc123 \
      --mode public-ip --public-ip-id pip-xyz789 --yes
  • Terraform — ota ensin käyttöön acknowledge_connectivity_loss = true, muuta sitten public_ip_id ja aja apply uudelleen, ja poista lopuksi vahvistusrivi.

Käsittele sitä lyhyenä huoltokatkona. Alusta varaa muutoksen tarvitseman ennen kuin se purkaa vanhan osoitteen, joten jos muutosta ei voida tehdä, se hylätään ja VPC jää täsmälleen ennalleen.

Gatewayn poistaminen

Tämä poistaa myös DNS:n ja yhteyden hallittuihin palveluihin

VPC menettää lähtevän internet-yhteyden, nimenselvityksen ja yhteyden hallittuihin palveluihin yhtä aikaa. Sisällä olevat resurssit jatkavat toimintaansa; kaikki, mikä selvittää nimen tai keskustelee hallitun palvelun kanssa, lakkaa toimimasta.

  • PortaaliPoista Gateway VPC:llä ja vahvista.

  • Komentorivi--yes on vahvistus, ja komento kieltäytyy ilman sitä:

    bash
    fm network gateway delete --vpc-id vpc-abc123 --yes
  • Terraform — aseta acknowledge_connectivity_loss = true ja aja apply, poista sitten resurssi (tai aja terraform destroy). Ilman että se on ensin otettu käyttöön, poisto epäonnistuu sen sijaan, että VPC:n yhteys katkaistaisiin hiljaisesti.

Poisto hylätään niin kauan kuin VPC:n julkiset IP-osoitteet ovat riippuvaisia gatewaysta. Irrota ne ensin — se on ilmaista, peruutettavissa ja riittää tarkistuksen läpäisyyn:

bash
fm network public-ip disassociate <public-ip-id>

Myös vapauttaminen läpäisee tarkistuksen, mutta vapauttaminen on lopullista: osoite palaa alustalle, jaetaan uudelleen seuraavalle pyytäjälle, etkä saa sitä takaisin. Vapauta vain osoite, jota et varmasti enää koskaan halua.

VPC:n poistaminen poistaa sen gatewayn sen mukana.

Gatewayn oma osoite ei kuulu näihin esteisiin. Jos se on oma julkinen IP:si, se irrotetaan puolestasi, kun gateway poistuu, ja se jää varatuksi tenantillesi available-tilan julkisena IP:nä samalla osoitteella — gatewayn poistaminen ei luovuta sitä, sen tekee vain julkisen IP:n vapauttaminen. Jos se on alustan oletusosoite, se yksinkertaisesti poistuu gatewayn mukana; sinulle kuuluvaa säilytettävää ei ollut koskaan.

Yksi poikkeus, vanhemmissa VPC:issä. Gateway, jonka Alkuperä on vpc_create, voi pitää hallussaan julkista IP:tä, jonka alusta varasi VPC:tä luotaessa — ajalta ennen kuin osoitteen nimeäminen oli ainoa tapa saada oma. Et ole koskaan pyytänyt pysyvää osoitetta, joten juuri se vapautetaan, kun gateway poistetaan, sen sijaan että se jäisi varatuksi ja laskutettavaksi. Vapauttaminen on lopullista. Jos kyseisellä osoitteella on merkitystä jollekulle VPC:si ulkopuolella, kirjaa se ylös ennen gatewayn poistamista.

Jos pyyntö hylätään

Jokainen hylkäys kantaa mukanaan koneluettavan koodin viestin ohella. Täsmää koodiin, älä viestiin — sanamuoto saa parantua, koodi ei. Kaikki nämä koodit nimettiin uudelleen resurssin mukana: entinen EGRESS_* on nyt GATEWAY_*, eikä mikään vastaa vanhaan kirjoitusasuun.

Mitä näetKoodiMitä se tarkoittaa
VPC:llä on jo GatewayGATEWAY_EXISTSVPC:llä on enintään yksi. Vaihda sen käyttämä osoite sen sijaan, että lisäisit toisen. Terraformissa tämä laukeaa vain, kun resurssi nimeää public_ip_id-arvon; sellainen joka ei nimeä, ottaa olemassa olevan gatewayn hiljaisesti haltuunsa — ks. Järjestä liitetyt osoitteet gatewayn suhteen.
Julkiset IP-osoitteet ovat yhä riippuvaisia gatewaystaGATEWAY_IN_USEIrrota VPC:n julkiset IP-osoitteet — ilmaista ja peruutettavissa — ja poista sitten gateway. Myös vapauttaminen toimii, mutta on lopullista. Terraformissa tämä on yleensä järjestysongelma — ks. Järjestä liitetyt osoitteet gatewayn suhteen — ellei osoitetta pidä hallussaan VPC:n hallittu resurssi, jolloin viesti kertoo sen.
Alueella ei ole vapaita julkisia osoitteitaGATEWAY_POOL_EXHAUSTEDAlustan kapasiteettiraja, ei sinun kiintiösi — lisäkiintiön pyytäminen ei auta. Yritä myöhemmin uudelleen.
Julkisten IP-osoitteiden kiintiösi on täynnäkiintiövirhe, ei gateway-virheVain osoitteen nimeäminen — tai omaksi ottaminen — kuluttaa kiintiötä, joten tämä ei koskaan estä oletusosoitteella toimivaa gatewayta. Vapauta osoite, jota et käytä, tai pyydä lisää kiintiötä.
Julkista IP:tä ei voi käyttää lähdeosoitteenaGATEWAY_PUBLIC_IP_UNAVAILABLENimeämäsi osoite on liitetty instanssiin tai kuormantasaajaan, se on jo kiinni toisen VPC:n gatewayssa, tai se ei ole osoite, joka voi kantaa VPC:n liikennettä. Vapauta se tai valitse toinen. Viesti kertoo, mikä kolmesta on kyseessä.
Gatewayn poistoa ei vahvistettuGATEWAY_LOSS_NOT_ACKEDPoisto vie mukanaan internetin, DNS:n ja yhteyden hallittuihin palveluihin, joten se on sanottava ääneen: --yes komentorivillä, acknowledge_connectivity_loss = true Terraformissa.
Tilan vaihtoa ei vahvistettuGATEWAY_MODE_SWITCH_NOT_ACKEDTilan vaihto antaa VPC:lle uuden osoitteen ja katkaisee avoimet yhteydet. Erotettu poistosta, koska palaat verkkoon etkä pimene.
Lähdeosoitteen vaihtoa ei vahvistettuGATEWAY_SOURCE_ADDRESS_CHANGE_NOT_ACKEDGatewayn osoittaminen toiseen julkiseen IP:hen muuttaa osoitteen, jonka vastapuoli näkee, ja katkaisee kesken olevat yhteydet; vahvista se samalla tavalla.
Julkinen IP on gatewayn hallussaPUBLIC_IP_IN_USE_BY_GATEWAYPalautetaan julkisella IP:llä, ei gatewaylla: osoitetta, jonka kautta gateway menee ulos, ei voi liittää instanssiin eikä vapauttaa. Irrota se ensin gatewaysta.

Liittyvät