VPC-reitit
Reitti ohjaa kohteeseen menevän liikenteen seuraavaan hyppyyn VPC:si sisällä. Jokaisella VPC:llä on oma reititystaulunsa; reitin lisääminen on tapa ohjata liikenne jonkin itse ylläpitämäsi läpi — VPN-laitteen, palomuurin, välitys- palvelimen — sen sijaan että se kulkisi alustan oletuspolkua.
Reittejä hallitaan VPC:llä, kohdassa Verkko → VPC:t → oma VPC → Reitit, komennolla fm network vpc route tai Terraform-resurssilla frostmoln_vpc_route.
Listaa reitit
fm network vpc route list <vpc-id>Tämä listaa sinun omistamasi reitit. Alustan tarjoamia reittejä ei näytetä — katso Reitit, joita et näe etkä voi muuttaa alla.
Lisää reitti
Reitissä on kaksi osaa:
- Kohde — CIDR-lohko, esim.
203.0.113.0/24. IPv4:n oletusreitti (0.0.0.0/0) on sallittu; IPv6:n (::/0) sitä ei vielä tarjota ja se hylätään — kirjoita tarvitsemasi IPv6-alueet tarkempina kohteina. Kirjoita kohde kanonisessa muodossa:203.0.113.0/24, ei203.0.113.5/24, joka hylätään. - Seuraava hyppy — osoite tähän VPC:hen liitetyssä aliverkossa, samaa osoiteperhettä kuin kohde, tai varattu sana
internet.
fm network vpc route add <vpc-id> --destination 203.0.113.0/24 --next-hop 10.0.1.10resource "frostmoln_subnet" "app" {
name = "app"
cidr = "10.0.1.0/24"
vpc_id = frostmoln_vpc.main.id
zone = "falkenberg"
}
resource "frostmoln_vpc_route" "partner" {
vpc_id = frostmoln_vpc.main.id
destination = "203.0.113.0/24"
next_hop = "10.0.1.10"
# Seuraavan hypyn on oltava aliverkossa, jonka VPC on jo liittänyt. Ilman tätä
# yksi ja sama apply voi luoda reitin ensin, jolloin kirjoitus hylätään.
depends_on = [frostmoln_subnet.app]
}Seuraavan hypyn on oltava tavoitettavissa VPC:n sisältä — osoite aliverkossa, jonka VPC on liittänyt, yleensä jokin instansseistasi. Se ei ole jokin osoite internetissä eikä osoite toisessa VPC:ssä.
Reitti koskee koko VPC:tä
Reitti täsmätään vain kohteen perusteella. VPC:ssä ei ole lähettäjäkohtaista reititystä, joten yhtä instanssia varten lisäämäsi reitti vie jokaisen VPC:n instanssin samaa polkua kyseiseen kohteeseen. Suunnittele reitit koko VPC:lle; jos kaksi instanssiryhmää tarvitsee eri polut, ne kuuluvat eri VPC:hin.
Muuta reittiä
Kohteella voi olla vain yksi seuraava hyppy, joten muokkaaminen ei ole mahdollista. Toisen reitin lisääminen jo reitittämällesi kohteelle hylätään. Osoita reitti uudelleen poistamalla se ja lisäämällä se uudestaan:
fm network vpc route remove <vpc-id> 203.0.113.0/24
fm network vpc route add <vpc-id> --destination 203.0.113.0/24 --next-hop 10.0.1.20Terraform tekee saman puolestasi: jokainen frostmoln_vpc_route-argumentti pakottaa korvaamisen, joten next_hop-arvon muuttaminen tuhoaa reitin ja luo sen uudelleen.
Kummallakin tavalla vaiheiden väliin jää hetki, jolloin kohteella ei ole omaa reittiäsi ja liikenne seuraa jäljelle jäävää epätarkempaa reittiä.
Seuraava hyppy internet
internet on varattu sana, ei osoite. Se tarkoittaa "ulos tämän VPC:n oman Gatewayn kautta", ja se on olemassa siksi, ettei alustan omalla oletusreitillä ole osoitetta, jonka voisit nimetä. Se täsmätään tarkasti ja on kirjainkokoriippuvainen — Internet hylätään.
fm network vpc route add <vpc-id> --destination 198.51.100.7/32 --next-hop internetresource "frostmoln_gateway" "main" {
vpc_id = frostmoln_vpc.main.id
mode = "public_ip"
}
resource "frostmoln_vpc_route" "peer_exception" {
vpc_id = frostmoln_vpc.main.id
destination = "198.51.100.7/32"
next_hop = "internet"
# `internet` edellyttää, että VPC:llä on Gateway, joten reitti on luotava sen
# jälkeen.
depends_on = [frostmoln_gateway.main]
}Se edellyttää, että VPC:llä on internetiin päin oleva Gateway. Jos VPC:llä ei ole Gatewayta, lisää se ja luo sitten reitti. Jos sillä on jo Gateway, mutta se on sisäisen yhteyden polku eikä internetiin päin, uuden lisääminen ei auta — käytä sen sijaan seuraavana hyppynä osoitetta VPC:n sisällä.
Sivustolla, jonka Gateway on IPv4, internet ratkeaa IPv4-osoitteeksi, joten IPv6-kohde ei voi käyttää sitä siellä — anna sellaiselle reitille sen sijaan osoite VPC:n sisältä.
Tätä kautta lähtevä liikenne poistuu alustan oman gateway-osoitteen kautta, jota et näe etkä voi pitää. Jos vastapuoli lukitsee tai sallii vain tietyn lähdeosoitteen — tai avaa yhteyden itse sinuun — anna instanssille oma julkinen IP ja katso Gateway.
VPC:n ohjaaminen oman laitteen kautta
Yleisin syy kirjoittaa reittejä on asettaa VPN- tai palomuurilaite polulle. Se vaatii kaksi reittiä, ja toinen niistä unohtuu usein:
# Ohjaa liikenne laitteen kautta...
fm network vpc route add <vpc-id> --destination 0.0.0.0/0 --next-hop 10.0.1.10
# ...paitsi laitteen oma tunneli vastapuolelleen.
fm network vpc route add <vpc-id> --destination 198.51.100.7/32 --next-hop internetIlman toista reittiä laite rikkoo itsensä: sen omat salatut paketit vastapuolelle täsmäävät oletusreittiin ja palaavat laitteelle, joka jää silmukkaan. Tuo poikkeus on /32 ja voittaa siksi luotettavasti jokaisen epätarkemman reitin.
Sama koskee kaikkea muuta, mihin laitteen itsensä on päästävä. Reitit täsmätään vain kohteen perusteella, ja laite on VPC:n instanssi siinä missä muutkin, joten sen oma internet-liikenne seuraa oletusreittiä suoraan takaisin sille. Se säilyttää sen, mihin pääsee oman tunnelinsa kautta, ja menettää loput — pakettipeilit, NTP:n, sen kutsuman API:n. Anna jokaiselle tällaiselle kohteelle oma reitti internet-hypyn kautta, tai ohjaa myös se liikenne tunnelin läpi.
Poikkeus ei voi osoittaa Frostmolnin osoitteeseen
Reitin kohde ei saa osua Frostmolnin omaan julkiseen osoitealueeseen, annoitpa seuraavaksi hypyksi minkä tahansa — internet mukaan lukien. Jos tunnelin vastapuoli on itse julkinen Frostmoln-osoite, oma toinen VPC mukaan lukien, poikkeusreitti siis hylätään, ja laitteen kautta kulkeva oletusreitti silmukoi sen tunneliliikenteen takaisin sille. Ohjaa sen sijaan juuri tarvitsemasi kohteet laitteen kautta äläkä kirjoita oletusreittiä: laitteen oma liikenne ei silloin koskaan täsmää, eikä poikkeusta tarvita.
Laite voi käyttää mitä tahansa osoitetta — oletusreitin kanssa mitä tahansa osoitetta maailmassa
Instanssi voi välittää liikennettä muiden puolesta vain, jos alusta lakkaa pudottamasta paketteja, jotka se lähettää jonkun toisen lähdeosoitteella. Alusta tekee sen itse jokaiselle osoitteelle, jonka reitti nimeää seuraavaksi hypyksi: et konfiguroi mitään, mitään ei tarvitse pyytää, ja lupa kirjoitetaan ennen reittiä — reittiä, jonka lupaa ei voida kirjoittaa, ei kirjoiteta lainkaan.
Mitä se kattaa. Jokaisen tähän VPC:hen liitetyn aliverkon sekä jokaisen instanssiin osoittavan reitin kohteen. Oletusreitin kohde on koko osoiteavaruus, joten VPC:n oletusreittiä pitävä laite voi käyttää mitä tahansa osoitetta, ei vain VPC:si osoitteita.
Mitä se maksaa. Turvaryhmäsäännöt, jotka täsmäävät lähdeosoitteeseen tai lähettävään ryhmään, eivät enää rajoita kyseistä instanssia — eivät myöskään säännöt, jotka päästävät läpi julkisen osoitteen, kuten toimistonne tai kumppanin alueen. Se voi lisäksi ottaa haltuunsa toisen instanssin osoitteen aliverkossa, jolloin kyseiselle instanssille tarkoitettu liikenne voidaan vetää laitteelle. Kyse ei siis ole vain siitä, mitä laite voi lähettää.
Mitä tehdä sen sijaan. Älä käytä lähdeosoitteeseen perustuvia sääntöjä rajana tämän instanssin ja minkään merkityksellisen välillä. Pidä se omistettuna laitteena äläkä jaettuna työkuormapalvelimena, sijoita siltä suojattava toiseen VPC:hen, ja kun sen on jaettava VPC, vaadi todennus, jota se ei voi väärentää. Erillistä luetteloa tämän luvan saaneista instansseista ei ole: se on täsmälleen komennon fm network vpc route list seuraavien hyppyjen joukko, joten käy se lista läpi kuten kävisit läpi käyttöoikeuden.
Milloin se poistuu. Kun poistat viimeisen kyseisen osoitteen nimeävän reitin — vain se peruu luvan. Se ei ole sidottu instanssin elinkaareen. Se johdetaan sille portille, joka pitää osoitetta, joten jos korvaat instanssin ja sama osoite palaa, välitys pysähtyy vain siihen asti, kunnes alusta johtaa luvan uudelleen — yleensä kymmenessä minuutissa, ilman että sinun tarvitsee tehdä mitään. Jos korvaaja nousee eri osoitteella, reitti näyttää yhä oikealta eikä välitä koskaan mitään; osoita se uudelleen. Ja jos annat laitteen osoitteen jollekin toiselle instanssille reitin ollessa yhä voimassa, kyseinen instanssi perii luvan.
Reitti, jonka seuraava hyppy on internet, ei anna mitään lupaa — tämä koskee vain reittiä, joka nimeää VPC:n sisäisen osoitteen.
Tämän VPC:n julkiset IP-osoitteet lakkaavat vastaamasta
Oletusreitti kaappaa kaiken VPC:stä lähtevän liikenteen, vastaukset mukaan lukien. Julkisella IP-osoitteella varustettu instanssi vastaanottaa yhä saapuvaa liikennettä, mutta vastaus reititetään samalla taululla — kohteena on internet-asiakas, joten se täsmää oletusreittiisi ja menee laitteellesi gatewayn sijaan. Tämän VPC:n julkiset IP-osoitteet lakkaavat vastaamasta niin kauan kuin oletusreitti on olemassa, ja toimivat taas kun poistat sen.
Alustan DNS ja hallitut palvelut toimivat edelleen: ne käyttävät oletusreittiä tarkempia reittejä, jotka siksi voittavat.
Oletusreitti lasketaan myös kahdeksi VPC:n reittirajaa vastaan.
Muista, että toinen reitti täsmätään kohteen perusteella, joten se vie jokaisen VPC:n instanssin laitteen ohi juuri sen osoitteen osalta — ei vain laitetta.
Jos reitit näyttävät oikeilta eikä mitään välity
Yllä kuvattu lupa johdetaan reiteistäsi, ja on muutama tapa päätyä reittiin, joka hyväksytään eikä silti välitä mitään. Turvaryhmät eivät liity asiaan: lähdesuodatus liitännällä on erillinen mekanismi, eikä kaiken salliva ryhmä lievennä sitä.
- Seuraavan hypyn on oltava osoite, joka jollakin instanssilla todella on. Sen tarvitsee olla vain kelvollinen isäntäosoite liitetyssä aliverkossa, joten reitti, joka nimeää osoitteen jota kenelläkään ei ole, hyväksytään eikä välitä hiljaisesti mitään. Tarkista se laitteen liitännän osoitetta vasten.
- Lupa laskeutuu sille liitännälle, jonka reitti nimeää, ei koko instanssille. Laitteella, jolla on toinen liitäntä toisessa aliverkossa, ei ole lupaa siellä — jos liikenne lähtee sen liitännän kautta, osoita reitti myös sen liitännän osoitteeseen.
- Jaettua virtuaaliosoitetta ei tueta. Kaksi laitetta, jotka vaihtavat VIP:n keskenään keepalivedin tai VRRP:n avulla, eivät voi toimia: yksikään liitäntä ei pidä VIP:iä, joten sen nimeävä reitti ei välitä mitään, eikä toisen laitteen omaa osoitetta nimeävä reitti seuraa vaihtoa. Alusta omistaa tämän lupajoukon ja kirjoittaa sen kokonaan uusiksi reiteistäsi, joten käsin liitännälle asettaminen ei ole tie sen ohi.
- Enintään kymmenen aluetta laiteosoitetta kohden. VPC:hen liitetyt saman osoiteperheen aliverkot lasketaan ensin, ja oletusreitti lasketaan kahdeksi, joten VPC, jossa on monta aliverkkoa, voi saavuttaa katon yhdellä ainoalla reitillä — kahdeksan liitettyä aliverkkoa oletusreitin rinnalla, yhdeksän tavallisen rinnalla. Sen yli menevä reitin kirjoitus hylätään. Osoita osa reiteistä toiselle laitteelle tai poista osa. Kohteiden yhdistäminen harvemmiksi ja suuremmiksi alueiksi auttaa vain, kun juuri kohteet täyttävät joukon, ja laajempi kohde on laajempi alue, jota laite saa käyttää lähdeosoitteenaan.
Kirjoita 0.0.0.0/0, älä puolikkaita
Sisäisesti alusta tallentaa oletusreitin kahtena vastaavana puolikkaana, jotka yhdessä kattavat samat osoitteet, jotta se voittaa alustan oman oletusreitin kokonaan sen sijaan että jakaisi liikenteen sen kanssa. Tätä ei tarvitse ajatella: kirjoitat 0.0.0.0/0, luet takaisin 0.0.0.0/0, ja jommankumman puolikkaan kirjoittaminen tai poistaminen suoraan hylätään. Tämä on tarkoituksellista — se, että kirjoittamasi reitti palaa toisenlaisena, on juuri se mikä rikkoo työkalun, joka pyrkii ilmoittamiisi reitteihin.
Reitit, joita et näe etkä voi muuttaa
Osa reiteistä kuuluu alustalle. Niiden kautta VPC tavoittaa alustan DNS:n ja hallitut palvelut, ja niiden kautta Gatewaylla varustettu VPC pääsee internetiin.
Niitä ei luetella reittiesi joukossa, niitä ei voi poistaa, ja niiden kanssa ristiriitainen kohde tai seuraava hyppy hylätään. Tämä on tarkoituksellista: sellaisen reitin näyttäminen, jota et voisi poistaa, olisi huonompi vaihtoehto kuin sen näyttämättä jättäminen.
Kaksi seurausta on hyvä tietää:
- Kohde, joka osuu alustan reitittämälle alueelle, hylätään pysyvästi, ja niin hylätään myös jokainen kohde Frostmolnin omalla julkisella osoitealueella — niin toisen asiakkaan julkinen osoite kuin omasikin, annoitpa seuraavaksi hypyksi minkä tahansa. Uudelleenyritys ei auta. Valitse kohde omasta osoiteavaruudestasi tai tavoita kyseinen osoite VPC:n tavallista polkua pitkin oman reitin sijaan.
- Jos VPC:lläsi on internetiin päin oleva Gateway, se ohjaa jo kaiken muun liikenteen internetiin.
0.0.0.0/0-reitti arvollainternetsiis hylätään — lisättävää ei ole. Jos haluat ohjata VPC:n oman laitteesi kautta, osoita oletusreitti VPC:n sisäiseen osoitteeseen kuten yllä — lue ensin kyseisen osion huomautus.
Myös kohde, joka on tähän VPC:hen liitetty aliverkko tai osuu sen sisään, hylätään: kyseinen aliverkko toimittaa sen jo suoraan ilman reittiä.
Poista reitti
fm network vpc route remove <vpc-id> 203.0.113.0/24Reitin poistaminen vie pois polun, jota instanssit käyttivät kyseiseen kohteeseen. Liikenne seuraa sen jälkeen jäljelle jäävää epätarkempaa reittiä — alustan omaa oletusreittiä, jos VPC:llä on Gateway, tai ei mitään, jos ei ole.
Koska poisto tehdään kirjoittamalla VPC:n koko jäljelle jäävä reittijoukko uudelleen, jokainen sen reitti tarkistetaan uudelleen — joten poisto voidaan hylätä jo aiemmin olemassa olleen reitin vuoksi eikä sen, jonka olet poistamassa, ja korjaus on listata reitit ja korjata tai poistaa kyseinen reitti.
Oletusreitti poistetaan kokonaan. 0.0.0.0/0 poistaa molemmat rivit, joina alusta sen tallentaa, yhdellä kirjoituksella — tai ei kumpaakaan, joten poisto ei voi jättää puolikasta oletusreittiä jäljelle. Kun se poistetaan, lähtevä liikenne palaa käyttämään VPC:n omaa Gatewayta, ja instanssien julkiset IP-osoitteet alkavat taas vastata.
Rajat
VPC:n reittien määrällä on yläraja. Se laskee sinun reittisi; alustan omat eivät kuluta sitä. Sama raja koskee alustan jokaista VPC:tä sen sijaan, että se asetettaisiin asiakaskohtaisesti, joten jos se on todella liian matala rakentamallesi, ota yhteyttä tukeen.
Samasta syystä poisto hylätään, jos VPC:n tallennetut reitit ylittävät rajan jo valmiiksi: joukko on yhä rajan yli, kun yksi reitti poistetaan. Niiden poistaminen yksi kerrallaan ei voi palauttaa määrää rajan alle, joten ota yhteyttä tukeen, jotta joukko korvataan yhdellä kirjoituksella.
Oletusreitti lasketaan kahdeksi, koska alusta tallentaa sen kahtena puolikkaana — yksi 0.0.0.0/0 listassasi käyttää siis kaksi kiintiöstä.