Pi VPN са више рутера: ставите сваку руту на уређај који одлучује
Рутер ниже у низу додаје другу клијентску подмрежу, и сваки од четири уређаја има једну одлуку. Поставите руте, проверите извор, затим тестирајте са правог клијента.
Постављање Wi-Fi кутије иза Pi претвара једну одлуку о рутирању у четири, а план се ломи када се све четири донесу на једном уређају. Прво питање није коју руту додати. Већ да ли нова кутија премошћава или рутира, јер тај одговор одређује колико подмрежа постоји и који уређаји морају да науче о њима. Прво изаберите модел повезивања; свака рута произилази из њега.
Мост или рутирање: избор који одређује број
Мост ставља нове клијенте у исту подмрежу коју Pi већ опслужује. Једна подмрежа, један DHCP ауторитет и никакво предавање за рутирање. Ово је једноставнији распоред и исправан када одвојена клијентска мрежа никада није била захтев. Рутирана веза је другачији дизајн: кутија задржава своју подмрежу, и тај префикс мора да се носи свуда куда саобраћај иде.
Остатак плана задржава рутер ниже у низу и чува изворне адресе клијената. Циљ је једна приватна VPN мрежа, а не пун излаз на интернет. Запишите модел пре адреса, јер је списак испод само пример рутираног повезивања.
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
Ко шта одлучује
| 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 |
Сваки уређај доноси једну одлуку, и ниједан не може да донесе одлуку другог уместо њега. Pi-ју су потребна два уноса, не један, а пут назад је онај који људи забораве. Прослеђени саобраћај исправно стиже до приватне мреже и затим умире на путу назад, јер Pi нема појма где живи 10.41.0.0/24. То изгледа као проблем заштитног зида и заправо је рута која недостаје.
И удаљена страна треба своју руту. Ако услуга на далеком крају не зна да је 10.41.0.0/24 доступна кроз ваш тунел, одговори се заустављају на првом скоку без одговора. Додајте оба смера пре него што читате филтере пакета.
Следећи скокови долазе из повезивања
Следећи скок мора бити адреса у мрежи до које уређај заиста може да стигне. Јавна адреса VPN партнера није следећи скок за приватну подмрежу, а удаљена услужна мрежа уопште није следећи скок. Рута до недоступног гејтвеја изгледа исправно на списку и одбацује сваки пакет. Проверите да ли гејтвеј одговара пре него што оптужите одредиште.
Држите спољног VPN партнера Pi доступним кроз његову сопствену доњу руту. Тај унос је одвојен од рута корисног терета, а њихово мешање даје тунел који не може поново да се успостави после промене пута.
Документација о статичким рутама јасно показује разлику између одредишта и гејтвеја, иако свака платформа другачије именује своје меније. Читајте документацију за уређај пред собом уместо да копирате екран другог произвођача. Команде испод показују облик уноса на Linux-у.
# 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
Шта превод ради са извором
Ако рутер ниже у низу већ преводи своје клијенте на транзитну адресу, Pi види један преведени извор уместо сопствене адресе сваког клијента. То је другачији дизајн од горњег који чува извор. Мења политику засновану на извору, евидентирање и то која страна може да започне везе. Оба дизајна раде; она одговарају на различита питања.
Када горња VPN услуга одбије да рутира клијентски префикс назад, уски превод на излазу тунела Pi може бити легитимно привремено решење. То није доказ да је рута која недостаје била непотребна. Забележите коју адресу удаљена мрежа заиста види и какав пут назад из тога следи.
Избор руте, дозвола за прослеђивање и превод извора остају три одвојена посла. Пражњење заједничког NAT ланца или дозвола сваком интерфејсу зато што један жичани клијент ради је начин на који радна провера постаје отворени прослеђивач.
Докажите то са клијентске машине
Пошаљите захтев са машине у доњој LAN, затим пратите његов извор напоље и назад. Ping који пошаље Pi никада не вежба доњи повратни пут, зато успешан ping доказује мање него што изгледа. Додајте други тест са жичаног клијента у сопственој LAN Pi-ја да би два пута могла да се упореде. Поновите оба после рестартовања било ког уређаја.
Руте додате ручно и преводи који никада нису сачувани нестају заједно. Тада пар изгледа као нови квар, а не као недовршен посао.
Сачувајте модел повезивања заједно са рутама, дозвољеном приватном услугом и сваким преводом у једној белешци. Та белешка је оно што спречава следећу особу да бежично постављање третира као питање рутинг политике.