Барањата ја напуштаат машината, партнерот на VPN одговара, а одговорот никогаш не стигнува до сокетот. Тунелот е кренат, дневниците на партнерот покажуваат дека пакетот се праќа, и ништо во апликацијата не ја објаснува тишината. На Linux еден од вообичаените сомнителни е филтрирањето на повратниот пат: дојдовен пакет IPv4 може да биде одбиен кога валидацијата на изворот не се совпаѓа со рутата што јадрото ја очекува за тој извор. Преминувањето по ред ви кажува дали тоа е причината или случајност. Тоа ве спречува и да исклучите безбедносна контрола за да поправите рута што недостига.

Што одлучува валидацијата на изворот

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

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

Читајте го ефективниот режим, не едно поле

Постојат три режими: исклучен, строг и благ. Строгиот наметнува поинакво очекување за рутата од благиот, а глобалната поставка взаимодейува со оние по интерфејс, така што читањето на една датотека може погрешно да опише што е навистина во сила. Читајте ги двете и читајте ги на интерфејсот што го прима одговорот, а не на интерфејсот на стандардната рута.

sysctl net.ipv4.conf.all.rp_filter
sysctl net.ipv4.conf.<iface>.rp_filter
ip route get <source-of-the-reply>

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

Најдете го несогласувањето пред да ја смените проверката

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

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

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

Селективно прилагодување што можете да го одбраните

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

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

Држете ги IPv4 и IPv6 одделно

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

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

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