Pi-VPN usealla reitittimellä: aseta jokainen reitti laitteelle, joka päättää
Alavirran reititin lisää toisen asiakasverkkoaliverkon, ja kukin neljästä laitteesta omistaa yhden päätöksen. Aseta reitit, tarkista lähde ja testaa sitten oikealta asiakkaalta.
Wi-Fi-laatikon asettaminen Pi:n taakse muuttaa yhden reitityspäätöksen neljäksi, ja suunnitelma hajoaa, kun kaikki neljä tehdään yhdellä laitteella. Ensimmäinen kysymys ei ole, mikä reitti lisätään. Vaan se, siltaako uusi laatikko vai reitittääkö se, koska tämä vastaus määrää, kuinka monta aliverkkoa on ja minkä laitteiden on opittava niistä. Valitse ensin liitäntämalli; jokainen reitti seuraa siitä.
Silta vai reititys: valinta, joka määrää määrän
Silta asettaa uudet asiakkaat samaan aliverkkoon, jota Pi jo palvelee. Yksi aliverkko, yksi DHCP-viranomainen eikä lainkaan siirtoa reititykseen. Tämä on yksinkertaisempi järjestely ja oikea silloin, kun erillinen asiakasverkko ei koskaan ollut vaatimus. Reititetty yhteys on erilainen suunnittelu: laatikko pitää oman aliverkkonsa, ja se etuliite on kannettava kaikkialle, minne liikenne menee.
Suunnitelman loppuosa pitää alavirran reitittimen ja säilyttää asiakkaiden lähdeosoitteet. Tavoite on yksi yksityinen VPN-verkko, ei täysi internetyhteys. Kirjoita malli ennen osoitteita, sillä alla oleva luettelo on vain esimerkki reititetystä liitännästä.
client subnet 10.41.0.0/24
client gateway 10.41.0.1
router-to-Pi link 192.168.71.2
Pi on that link 192.168.71.1
private target 10.72.9.0/24
Kuka päättää mitä
| Decision owner | Entry that encodes the decision | Failure when the entry is missing |
|---|---|---|
| Pi VPN host | Return route for 10.41.0.0/24 via 192.168.71.2, and a tunnel route for 10.72.9.0/24 | Replies to downstream clients die at the Pi |
| Owner of the remote network | A path for 10.41.0.0/24 over the permitted tunnel | Replies stop at the first unaware hop |
| LAN router behind the Pi | Specific route for 10.72.9.0/24 via 192.168.71.1, or a suitable default | Clients never send private traffic to the Pi |
| Client machine | Default via 10.41.0.1, or a specific entry for 10.72.9.0/24 | The private network is unreachable from the client |
Jokainen laite tekee yhden päätöksen, eikä mikään voi tehdä toisen päätöstä sen puolesta. Pi tarvitsee kaksi merkintää, ei yhtä, ja paluupolku on se, jonka ihmiset unohtavat. Edelleen välitetty liikenne saavuttaa yksityisen verkon oikein ja kuolee sitten paluumatkalla, koska Pi:llä ei ole aavistustakaan, missä 10.41.0.0/24 asuu. Se näyttää palomuuriongelmalta ja on oikeasti puuttuva reitti.
Myös kaukopää tarvitsee oman reittinsä. Jos kaukana oleva palvelu ei tiedä, että 10.41.0.0/24 on tavoitettavissa tunnelisi kautta, vastaukset pysähtyvät ensimmäiseen hyppyyn, jolla ei ole vastausta. Lisää molemmat suunnat ennen kuin luet pakettisuodattimia.
Seuraavat hypyt tulevat liitännästä
Seuraavan hypyn on oltava osoite verkossa, johon laite todella pääsee. VPN-kumppanin julkinen osoite ei ole seuraava hyppy yksityiselle aliverkolle, eikä kaukana oleva palveluverkko ole lainkaan seuraava hyppy. Reitti tavoittamattomaan yhdyskäytävään näyttää luettelossa oikealta ja pudottaa jokaisen paketin. Tarkista, että yhdyskäytävä vastaa, ennen kuin syytät kohdetta.
Pidä Pi:n ulkoinen VPN-kumppani tavoitettavana sen oman alikerroksen reitin kautta. Tämä merkintä on erillinen hyötykuorman reiteistä, ja niiden sekoittaminen antaa tunnelin, joka ei voi palautua polun muutoksen jälkeen.
Staattisten reittien dokumentaatio tekee eron kohteen ja yhdyskäytävän välillä selväksi, vaikka jokainen alusta nimeää valikkonsa eri tavoin. Lue edessäsi olevan laitteen dokumentaatio sen sijaan, että kopioisit toisen valmistajan näyttöä. Alla olevat komennot näyttävät merkintöjen muodon Linuxissa.
# on the Pi
ip route add 10.41.0.0/24 via 192.168.71.2
ip route add 10.72.9.0/24 dev tun0
# on the downstream router
ip route add 10.72.9.0/24 via 192.168.71.1
Mitä käännös tekee lähteelle
Jos alavirran reititin jo kääntää asiakkaansa siirto-osoitteeseen, Pi näkee yhden käännetyn lähteen jokaisen asiakkaan oman osoitteen sijaan. Tämä on erilainen suunnittelu kuin yllä oleva lähteen säilyttävä. Se muuttaa lähdeperusteista käytäntöä, lokitusta ja sitä, kumpi puoli voi aloittaa yhteydet. Molemmat suunnitelmat toimivat; ne vastaavat eri kysymyksiin.
Kun ylävirran VPN-palvelu kieltäytyy reitittämästä asiakasetuliitettä takaisin, kapea käännös Pi:n tunnelin ulostulossa voi olla laillinen väliaikaisratkaisu. Se ei ole todiste siitä, että puuttuva reitti oli tarpeeton. Kirjaa, minkä osoitteen kaukoverkko todella näkee ja mikä paluupolku siitä syntyy.
Reitin valinta, välityslupa ja lähdekäännös pysyvät kolmena erillisenä työnä. Jaetun NAT-ketjun tyhjentäminen tai jokaisen liitännän salliminen siksi, että yksi johdollinen asiakas toimii, on tapa, jolla toimiva testi muuttuu avoimeksi välittäjäksi.
Todista se asiakaskoneelta
Lähetä pyyntö alavirran lähiverkon koneelta ja seuraa sitten sen lähdettä ulos ja takaisin. Pi:n lähettämä ping ei koskaan käytä alavirran paluureittiä, siksi onnistunut ping todistaa vähemmän kuin näyttää. Lisää toinen testi johdollisesta asiakkaasta Pi:n omassa lähiverkossa, jotta kahta polkua voidaan verrata. Toista molemmat, kun olet käynnistänyt kumman tahansa laitteen uudelleen.
Käsin lisätyt reitit ja käännökset, joita ei koskaan tallennettu, katoavat yhdessä. Silloin pari näyttää uudelta vialta eikä keskeneräiseltä työltä.
Tallenna liitäntämalli yhdessä reittien, sallitun yksityisen palvelun ja minkä tahansa käännöksen kanssa yhteen muistiinpanoon. Juuri se muistiinpano estää seuraavaa henkilöä pitämästä langatonta sijoittelua reitityspolitiikan kysymyksenä.