Преносното сметачко се поврзува, тунелот е кренат, а барањата до внатрешна услуга висат при поврзувањето. На самата услуга барањето пристигнува од адреса како 10.90.0.25, одговорот заминува кон стандардната порта, и ништо не се враќа, зашто таа порта нема поим каде се наоѓа 10.90.0.25. Од другата страна истата грешка изгледа како внатрешен домаќин што не може да пингува поврзан клиент. И двете се еден објект што недостасува: повратен маршрут кон базенот на VPN клиенти, кој само приватната мрежа може да го додаде.

Прочитајте ја изворната адреса што ја гледа услугата

Тоа едно поле одлучува за сѐ друго. Ако внатрешната услуга ја гледа адресата на базенот, Access Server рутира наместо да го крие сообраќајот на клиентот, и секој одговор мора да се рутира назад кон базенот. Ако наместо тоа ја гледа сопствената приватна адреса на серверот, серверот маскира и повратниот пат веќе работи, но по цена да се изгуби секој идентитет по клиент во дневниците и правилата за пристап на услугата.

Споредете ги двата краја пред да промените нешто. На серверот наведете ги тунелските интерфејси и нивните адреси; на клиентот потврдете која од тие адреси навистина ја има; на внатрешниот домаќин погледнете активна врска.

ip -br addr show
ss -tnp state established '( dport = :443 )'
ip route get 10.90.0.25

Последната наредба е таа што не успева во расипаниот случај: или го пријавува префиксот на тунелот како недостапен или, уште полошо, ја враќа вашата стандардна порта, и така одговорите завршуваат на интернет.

Не претпоставувајте само еден базен. Серверот може да има динамичен опсег плус статични мапирања по корисник, а статичната адреса може да лежи целосно надвор од динамичниот префикс. Ако рутирате само опсегот што го паметите, корисниците со фиксни адреси остануваат расипани, а сите други пријавуваат дека проблемот е решен.

Додајте го маршрутот таму каде што се решава одговорот

Маршрутот им припаѓа на портата што внатрешната услуга веќе ја користи, не на услугата, освен ако таа самата не го рутира сопствениот сообраќај. Насочете го кон достапната приватна адреса на Access Server, што е различна вредност од адресата на тунелот што ја има клиентот.

ip route add 10.90.0.0/24 via 10.0.1.5
ip route get 10.90.0.25

Во облачна мрежа истата изјава станува запис во табелата за рутирање чија цел е инстанцата или мрежниот интерфејс на кој работи серверот, со исклучена проверка на изворот и одредиштето на тој интерфејс. Забележете што не прави тој запис: рутирањето не е доделување пристап, па заштитните групи, мрежните ACL и огнениот ѕид на домаќинот сѐ уште мора да го дозволат сообраќајот.

Направете го постојан и држете ги големините на базените чесни. Два несоседни базени бараат два маршрути, а базен што израснал над конфигурираниот префикс тивко создава клиенти чии одговори немаат каде да одат. Ако вие ги контролирате опсезите на базените, изберете сумар што можете да го рутирате еднаш и да го оставите.

Препраќањето и филтрите мора да се согласат со маршрутот

Рутирањето е само половина од патот. На серверот мора да му биде дозволено да препраќа меѓу тунелот и приватниот интерфејс, што на Linux значи net.ipv4.ip_forward плус синџир за препраќање што го дозволува парот интерфејси, а на зајакнат домаќин обично посебно јасно правило за секој правец.

sysctl net.ipv4.ip_forward
nft list ruleset | grep -A5 forward

Филтрирањето со состојба објаснува симптом што ги носи луѓето на погрешен пат. Одговорот во воспоставен тек не бара ново влезно правило, па врската што висат по SYN-ACK не е блокирана од правило за прифаќање што недостасува; таа се отфрла или погрешно се рутира. Задржете ја таа разлика, зашто таа раздвојува промена во рутирањето од промена во огнениот ѕид.

Асиметричните повратни патишта се потивката верзија на истиот проблем. Ако до базенот стигнуваат два маршрути и одговорот го земе оној што излегува низ различен интерфејс од оној по кој пристигнало барањето, строгото филтрирање на повратниот пат го отфрла и текот не успева само кај некои клиенти.

Рутирано или маскирано: изберете свесно

Рутираниот режим ја зачувува адресата на базенот на клиентот кај услугата, што овозможува евидентирање и политика по клиент, а за возврат секоја внатрешна мрежа што треба да одговори на клиент бара маршрутот на базенот. Маскираниот режим го отстранува тоа барање зашто одговорите се враќаат на серверот, но услугата повеќе не може да разликува еден клиент од друг и не може да иницира ништо кон конкретен клиент.

Промената на тоа однесување на активен сервер ги прекинува постојните сесии, па прво тестирајте со еден клиент и еден тек. Ако префрлањето е вистинскиот одговор, тоа е одлука за конфигурација на серверот, а не нешто што се заобиколува со додавање маршрути што подоцна ќе станат непотребни.

Подмрежата зад клиентот е одделна задача

Достигнување до уред во сопствениот LAN на преносното сметачко не е исто како достигнување до тунелската адреса на преносното сметачко. Тоа бара клиентот да дејствува како порта за подмрежа: декларирана мрежа на клиентската страна, овозможено препраќање во оперативниот систем на клиентот, и маршрут во тој LAN назад кон клиентот. Додавањето маршрут за приватна мрежа за домашниот опсег на преносното сметачко не го прави тоа и создава конфликти кога двајца корисници имаат ист домашен опсег.

Правецот е исто така прашање на политика. Дозволата клиент да отвори врска до внатрешна услуга не му дозволува автоматски на внатрешен домаќин да отвори врска до тој клиент. Проверете ја политиката за пристап на серверот и огнениот ѕид на домаќинот на клиентот пред да заклучите дека патот е расипан.

Проверете со еден тек и еден запис

Докажете го патот со една врска наместо со општ тест за достапност. Набљудувајте го истиот тек на двата краја: барањето што пристигнува во услугата и одговорот што ја напушта.

tcpdump -ni any host 10.90.0.25 and port 443

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

Завршете со четирите проверки што го затвораат ова: изворната адреса кај услугата одговара на режимот што сте го намеравале, портата има маршрут до секој базен во употреба, препраќањето и филтрите дозволуваат двата правци, и еден вистински тек поминува од почеток до крај. Често поставувани прашања за рутирањето на Access Server го изложува истиот принцип за инсталираното издание, чиј поддржан конфигурациски интерфејс може да се разликува од постарите упатства.

Поврзани статии