Kaksoispinon VPN-altaat: molempien perheiden osoitteistus strongSwanissa
Sisäiset IPv4- ja IPv6-altaat, suojatut etuliitteet ja ulomman tunnelin perhe ovat kolme erillistä päätöstä. Suunnittele jokainen ennen kuin kutsut sitä kaksoispinoksi.
Yhdyskäytävä voi antaa liikkuvalle käyttäjälle sekä IPv4- että IPv6-virtuaaliosoitteen, kun ulompi tunneli kulkee edelleen IPv4:n yli. Nämä ovat itsenäisiä päätöksiä, ja juuri niiden käsitteleminen yhtenä on se kohta, jossa kaksoispinon suunnitelmat yleensä hajoavat. Asiakkaan sisäiset perheet, suojatut etuliitteet joihin se voi päästä, ja kapseloinnin kantava siirto ovat kolme erillistä valintaa.
Suurin osa sekaannuksesta tulee siitä, että sanaa kaksoispino sovelletaan suunnitelmaan, joka on kaksoispino vain yhdessä kohdassa. Palvelu voi olla sisäisesti kaksoispino, ulko-osoitteessaan yksittäispino, ja silti toimia asiakkaille täysin hyvin. Se mitä se ei voi tehdä, on toimia vahingossa.
Kaksi perhettä sisällä, yksi polku ulkona
Ulompi yhteys on IKE UDP:n yli, ja se tarvitsee yhden saavutettavan osoiteperheen sieltä, missä asiakas milloinkin on. Sisäinen IPv6-osoite ei vaadi IPv6:ta tukevaa operaattoria, koska sisäinen paketti on hyötykuorma ulomman sisällä. Monet toimivat käyttöönotot kuljettavat IPv6-etuliitteitä vain IPv4:ää tukevan ylälinkin kautta.
Mitä ulompi polku tosiaan rajoittaa, on saavutettavuus ja NAT:n läpäisy. Jos yhdyskäytävä ilmoittaa vain IPv4-osoitteen, vain IPv6:tta käyttävässä verkossa oleva asiakas ei voi yhdistää lainkaan, riippumatta siitä mitä altaita määritit. Valitse ulompi perhe asiakaskuntasi mukaan, älä sisäisen osoitesuunnitelman mukaan.
Anna asiakkaalle osoite kussakin perheessä
Molempien perheiden pyytäminen on asiakkaan puolella yhden rivin lause, edellyttäen että yhdyskäytävällä on jotain jaettavaa. Nimetyt altaat pitävät lähteet erillään palveluverkoista, ja juuri tämä ominaisuus tekee palomuurisäännöistä luettavia kuusi kuukautta myöhemmin.
pools {
pool4 { addrs = 10.90.0.0/24 }
pool6 { addrs = fd42:90::/64 }
}
connections {
private-access {
version = 2
pools = pool4, pool6
local { auth = pubkey certs = gateway.pem id = vpn.example.com }
remote { auth = pubkey cacerts = ca.pem vips = 0.0.0.0, :: }
children {
private { local_ts = 10.60.0.0/16, fd42:60::/48 remote_ts = dynamic }
}
}
}
Arvo vips pyytää osoitteen kustakin perheestä, ja allasluettelo päättää, mistä nuo osoitteet tulevat. Dokumentaatio strongSwanin virtuaalisista IP-osoitteista kattaa useat pyynnöt ja allasjaon, mukaan lukien sen, että tiettyä osoitetta pyytävä asiakas ilmaisee vain mieltymyksen, jonka vastaaja voi ohittaa. Älä rakenna käyttösääntöä, joka olettaa asiakkaan saavan aina saman arvon.
Luo oma ainutlaatuinen paikallinen etuliitteesi sen sijaan, että kopioisit esimerkin. Kaksi organisaatiota, jotka molemmat fd42::/16 ottavat sen käyttöön, löytävät törmäyksen ensimmäisellä keskinäisellä yhteydellä, eikä sen diagnosointi ole miellyttävää.
Valitsimet kuvaavat kohteita, eivät lähteitä
Lapsi-SA:n paikalliset liikennevalitsimet kertovat, mitkä suojatut verkot ovat yhdyskäytävän takana, ja etävalitsimet kuvaavat, mitä asiakas saa käyttää lähteenä. Virtuaalisen altaan osoite kuuluu kyseisen käytännön lähdepuolelle; sen laittaminen kohdeluetteloon on yleinen väärinluenta kokoonpanosta.
Molemmat perheet tarvitsevat paluureitit ja sallitun edelleenlähetyksen yhdyskäytävällä. Etuliitteen lisääminen valitsimeen ilman reittiä takaisin altaalle tuottaa tunnelin, joka muodostuu, päästää läpi yhden liikennesuunnan ja pudottaa vastauksen hiljaisesti. Valitsin on käytäntöä, ei reititystä.
Pidä altaat ja palveluetuliitteet osoitesuunnitelmasi erillisissä lohkoissa. Kun ne menevät päällekkäin, reitti jonka pitäisi tavoittaa suojattu isäntä voi osua altaan osoitteeseen ja kadota tunneliin.
DNS ja paluupolku päättävät, tuntuuko se valmiilta
Ratkaisijan vastaukset ovat riippumattomia siitä siirrosta, jolla ratkaisijaan päästään. Nimi voi palauttaa A-tietueen, AAAA-tietueen tai molemmat, ja asiakas valitsee omien mieltymyssääntöjensä mukaan . Jos sisäinen palvelu julkaisee AAAA-tietueen, mutta mikään ei reititä sitä etuliitettä, kaksoispinoverkkojen asiakkaat yrittävät ensin IPv6-polun ja jäävät siihen, kunnes se epäonnistuu. Mikään tunnelin kokoonpanossa ei näytä väärältä sinä aikana.
Päätä siis nimeä kohden, mitkä perheet pitäisi olla käytettävissä, ja tarkista sitten, että vastaava etuliite on valitsimessa ja sillä on paluureitti. Se on palvelukohtainen päätös. Molempien tietuetyyppien summittainen julkaiseminen on se tapa, jolla toimiva vain IPv4:ää käyttävä palvelu alkaa aikakatkaista puolelle käyttäjistään.
Varmista molemmat perheet ennen kuin kutsut sitä valmiiksi
Kokoonpano, joka latautuu, ei ole kokoonpano, joka toimii. Lue tila, jonka taustaprosessi raportoi, vahvista allasjaot ja katso sitten reitit, jotka asiakas todella asensi.
swanctl --list-sas
swanctl --list-pools
ip -6 addr show scope global
ip -6 route get fd42:60::10
Kaksi ensimmäistä komentoa näyttävät muodostetut lapsi-SA:t ja mitkä altaat ovat vielä osoitteita vapaana, joten suunnitelma, joka toimii ensimmäiselle asiakkaalle ja epäonnistuu kymmenennelle, tulee näkyväksi. Kaksi viimeistä näyttävät, saiko asiakas altaasta globaalin IPv6-osoitteen ja mihin liikenne suojattua etuliitettä kohti todella menisi. Vertaa jaettua osoitetta altaaseen, jonka määritit, älä osoitteeseen jota toivoit. Jos vastaaja valitsi käytäntönsä nojalla toisen arvon, reittien ja palomuurisääntöjen on silti sovittava sen valintaan.
Testaa sitten yksi suojattu isäntä perhettä kohden ja nimi, joka ratkeaa molempiin. Yhden perheen testi ei kerro sinulle mitään siitä suunnitelman puolikkaasta, jota et harjoittanut, ja siellä puuttuva reitti yleensä asuu.