Додајте клијентски профил на машину на којој већ ради VPN сервер, и прва жртва је постојећа услуга. Нови тунел можда никада неће бити успостављен, или ће се подићи док постојећи клијенти сервера тихо престају да добијају одговоре. Две колизије дају оба резултата: скуп тунела који је већ у употреби и подразумевана рута коју инсталира нова клијентска половина и која покрива целу табелу. Ниједна не производи OpenVPN поруку о грешци, зато се квар чита као проблем сервера.

Једна машина, две улоге и два неспојива одговора о томе куда одговори треба да иду.

Исти скуп, два сервера: ко побеђује

Свака инстанца сервера захтева своју тунелску подмрежу. Копирање линије као што је server 10.8.0.0 255.255.255.0 у другу конфигурацију даје двема инстанцама исти префикс, а исход је или одбијање покретања или тиха борба у којој клијенти једног сервера добијају адресе које и други сматра својим. Различити UDP портови и различита имена уређаја не помажу, јер ниједно не дира адресни простор. Промените други скуп и промените га свуда где га руте помињу.

Попишите шта је активно пре уређивања: ip -4 addr show приказује тунелске уређаје, ss -lunp приказује слушаоце, а systemctl list-units именује јединице. Један поглед на тунелске адресе одлучује да ли се скупови сударају.

Шта клијентски профил додаје табели

Клијентска половина уписује руте чим се повеже. redirect-gateway def1 дели подразумевану руту на 0.0.0.0/1 плус 128.0.0.0/1, обе усмерене кроз нови уређај, заједно са хост рутом ка удаљеном серверу која је намерно прикована за физички интерфејс. То приковање постоји да би тунел задржао пут за сопствени транспорт. Све остало, укључујући одговоре које локални сервер дугује својим клијентима, сада следи нову подразумевану руту и излази кроз удаљену везу.

Дакле, друга колизија није покварен тунел. То је исправан тунел на погрешном месту у табели.

Три начина да се улоге раздвоје

Најмање инвазивна поправка држи подразумевану руту изван клијентског профила: route-nopull плус експлицитне линије route за удаљене префиксе, тако да се локална табела мења само тамо где сте тражили. Следећи корак је правило политике које изузима локалну тунелску подмрежу, пуштајући одговоре локалним клијентима да изађу на интерфејсу на који су стигли, чак и када постоји подразумевана рута. Најтемељније је одвојен мрежни простор имена за клијентску улогу, који потпуно уклања дељену табелу и кошта други контекст рутирања за одржавање.

Који год пут да изаберете, изузетак мора именовати локалну тунелску подмрежу, а не LAN. Одговор који локални сервер шаље има тунелску адресу као одредиште, па се изузетак у облику LAN-а никада не поклапа с њим.

Која је од две инстанце крива

Зауставите клијентску инстанцу и поново тестирајте постојеће клијенте. Тренутни опоравак значи рутирање, а не сервер. Вратите клијента и пратите један одговор уз ip route get коме су задати и изворни и одредишни адреса, што показује пут који би кернел изабрао, а затим гледајте интерфејс који пакети заиста користе уз tcpdump -ni any port 1194. Статусна датотека сервера, која се пише сваких неколико секунди кроз директиву status, носи листу повезаних клијената и бројаче бајтова у оба смера.

Читајте те бројаче један према другом. Саобраћај који изађе и никада се не врати је одговор о рутирању, а не проблем са руковањем.

Повезани чланци