Четири независими задачи поставят цялата локална мрежа на рутера зад един тунел. Устройството на тунела се нуждае от собственик, от зона на защитната стена, от цел за преобразуване към горната връзка и, ако някои клиенти трябва да останат извън VPN, от маршрутизация по адрес на източника. Тунел, който се свързва, но нищо не минава през него, обикновено няма едно от тези четири. Работата в ред на зависимости означава, че провалът в края принадлежи на стъпката, която току-що променихте. Всяка стъпка по-долу завършва с нещо, което можете да наблюдавате, и това пази следващата да не е догадка.

Решете какво споделя тунелът

Рутерът, който раздава Wi-Fi и DHCP, може сам да пусне клиента. Така всяко включено устройство застава зад тунела без настройка за всяко устройство и това е подредбата, която повечето малки обекти искат. Същевременно това е вариантът с най-широк обхват на щетите при падане на тунела, защото всички устройства губят пътя си наведнъж. Нищо в локалната мрежа не запазва работещ маршрут навън.

Втори рутер зад първия, който пуска клиента със своя подмрежа, ограничава тунела до собствените си устройства. По-лесно се премахва и по-лесно се обяснява на този, който го наследява. Цената е достъпността между двете страни без маршрут или пренасочване на порт.

Както и да е, направете подмрежите на локалната мрежа различни. Еднаквите диапазони карат едната страна да изглежда директно свързана, а получената черна дупка изглежда като повреда на VPN с часове.

Дайте на тунела собственик

Обявете тунела като мрежов интерфейс с име, устройство и без собствен протокол. Тогава мрежовата система създава и управлява устройството, а всичко след него се обръща към интерфейса по име, не по устройство. Именно това позволява на зоната да го намери.

Не създавайте същото устройство на две места. Ръчно направен тунел до обявен интерфейс дава устройство, което съществува, но не е в зона, или такова, което изчезва при презареждане. И двете изглеждат като провал на клиента и нито едно не дава грешка, която да назовава истинската причина. Изберете декларативния път и изтрийте ръчния.

Дръжте името еднакво в конфигурацията на мрежата, защитната стена и VPN. Зоната изброява мрежите по име, така че печатна грешка оставя тунела извън всяка зона, докато самият интерфейс изглежда здрав. Здрав интерфейс без политика е най-трудното за забелязване състояние.

Сложете го в зона, после насочете към нея

Зоната на защитната стена е мястото, където живее политиката: input, output, forward и masquerade. Тунел извън всяка зона се управлява от настройки по подразбиране, които не сте избрали, а това рядко е нужното на рутер клиент. Блоковете по-долу обявяват интерфейса, поставят го в зона и разрешават на трафика от локалната мрежа да влиза в нея.

config interface 'vpn'
    option device 'tun0'
    option proto 'none'

config zone
    option name 'vpn'
    list network 'vpn'
    option input 'REJECT'
    option output 'ACCEPT'
    option forward 'REJECT'
    option masq '1'

config forwarding
    option src 'lan'
    option dest 'vpn'

При издания по-стари от 21.02 същият ред за интерфейса се пише option ifname, затова проверете кой вид разбира инсталираният фърмуер, преди да поставите. Блокът за препращане е разрешението, което изобщо позволява на трафика от локалната мрежа да ползва тунела. Без него устройството работи, клиентът е свързан и нито един локален хост не стига до тунела. Това е най-честият доклад „свързан, но без интернет“ при рутер клиентите.

Маскарадът в зоната на VPN сгъва всеки адрес от локалната мрежа в адреса на тунела на рутера, преди пакетът да излезе. Това премахва нуждата от обратен маршрут към вашата подмрежа от другата страна.

Ако далечната страна вече маршрутизира локалната ви мрежа, изключването на маскарада оставя адресите на източника видими и прави журналите за всеки клиент смислени. Изберете едно и запишете кое, защото двата избора по-късно пораждат различни въпроси към поддръжката. Премахването на стандартното препращане от локалната мрежа към WAN е отделно решение с последица. Махнете го и собственият достъп на рутера до интернет отива с него.

Назовавайте истинската горна връзка в NAT

При фърмуер, където правилото за преобразуване е написано на ръка, полето, което се обърква, е изходящият интерфейс. Правило с vlan2 не прави нищо, когато сесията завършва на ppp0. Правило без никакъв интерфейс може да преобразува трафик, който е трябвало да остане частен. Нито една от грешките не се обявява, защото тунелът продължава да работи.

iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

Заменете ppp0 в това правило с интерфейса от ip route или от списъка с работещи интерфейси, после гледайте брояча, докато локален хост зарежда страница. На рутер с един доставчик едно правило за маскарад на горната връзка обикновено е достатъчно. Второ правило за интерфейса на тунела не замества първото.

След това добавете опциите на клиента, които решават какво влиза в тунела. Директивата redirect-gateway праща интернет трафика на клиента през VPN и без нея тунелът носи само маршрутите, които сървърът избутва. Проверете получената таблица за маршрутизация, преди да пипате DNS.

Разделете Wi-Fi с втора таблица

Една таблица за маршрутизация не може да държи две подразбирания. Затова втори SSID, който трябва да заобикаля тунела, се нуждае от своя подмрежа и своя таблица. Дайте на тунелирания SSID собствен диапазон, после насочете само него към тунела с правило, което избира таблицата.

Пакетите за маршрутизация по политика в OpenWrt изразяват точно тази комбинация. Ръчно също работи: правило по източник и таблица, чието подразбиране сочи към устройството на тунела.

Проверете разделянето от двете мрежи. Клиент в тунелирания SSID трябва да показва изходния адрес на VPN, а клиент в обикновения SSID — този на доставчика. Когато двата изглеждат еднакво, правилото хваща грешен източник или таблицата изобщо не се ползва. Тествайте и след повторно свързване, защото правило, зависещо от името на интерфейса, се чупи, когато устройството бъде преномерирано.

Подозирайте часовника и флага на устройството

Флагът persist-tun оставя устройството на тунела на място между рестартите. Това подхожда на сървър и обърква клиент, чието състояние трябва да се гради от нулата. Махнете го, докато отстранявате проблем с рутер клиент, защото устройство, което преживява неуспешно договаряне, крие коя стъпка всъщност се е счупила. Върнете го, след като клиентът се свързва надеждно, и не по-рано.

Часовникът е другият тих провал. Рутер без часовник с батерия тръгва от епохата, което значи, че проверките на сертификата се провалят, докато NTP не навакса. Сравнете времевите маркери в журнала с реалното време, преди да пипате сертификат, защото клиент, който се свързва минута след зареждане, обикновено чака синхронизация на времето.

Подобни статии