Сервер у bridge режиму ради, masquerade правило постоји, а прегледач на клијенту се и даље врти. Све изгледа као да би требало да ради, зато први сат одлази на проверу тунела и акредитива. Затим прочитате бројач на NAT правилу и нађете нулу која се није померила. Правило које никада није избројало ниједан пакет никада се није ни поклопило с њим, а на серверу у bridge режиму разлог је структурни: клијентски саобраћај излази кроз виртуелни tap уређај, док правило именује физичку картицу коју сте преписали из старијег водича.

Доказ је бројач, а не унос у табели

Правила која постоје и правила која се поклапају су различите ствари, а бројач је оно што их раздваја. Излистајте NAT табелу са детаљним бројачима и прочитајте бројеве поред сваког правила пре него што било шта промените. Бројач који стоји на нули док саобраћај тече значи да је правило прескочено, колико год његове адресе изгледале разумно. Бројач који расте док веза и даље не успева упућује вас негде другде: на прослеђивање, повратни пут или удаљени крај.

iptables -t nat -L POSTROUTING -v -n

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

Пронађите име које кернел заиста записује

Одредите име тунелског уређаја пре него што напишете правило, користећи листу интерфејса, а не памћење. У bridge поставци OpenVPN уређај је обично tap интерфејс који је направио сервер, а његово име је део ваше локалне конфигурације, не универзална константа. Потврдите да постоји док је тунел активан, јер уређај који се појави тек након што се клијент повеже учиниће да ранији тест изгледа као проблем с правилом.

ip -brief link

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

Препишите правило за тунелски уређај

Усмерите правило на тунелски уређај и задржите распон клијената као услов поклапања, тако да покрива тунелски саобраћај и оставља властите везе хоста на миру. Замените својим распоном и именом уређаја, јер су оба испод примери и ниједно није преносиво између инсталација.

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o tap0 -j MASQUERADE

Затим проверите друга два услова која исти симптом скрива. Проверите да ли је прослеђивање укључено, и ако није, укључите га у конфигурацији саме дистрибуције, а не помоћу echo који нестаје након поновног покретања. Прочитајте и бројаче forward ланца и, ако он одбацује тунелски саобраћај, дозволите тај интерфејс посебно и оставите политику ланца нетакнутом.

Читање forward ланца с бројачима траје једну команду и искључује половину преосталих могућности пре него што додирнете друго правило.

Зашто се физичка картица никада не поклапа

Bridge је софтверски прекидач састављен од tap уређаја и једног физичког интерфејса. Клијентски оквир улази у тај прекидач и излази према физичкој мрежи као члан bridge-а, а не као пакет на картици. Кернел зато приписује пакет bridge-у и његовом порту, и зато се картица о којој сте размишљали никада не појављује у поклапању. На физичком интерфејсу ништа није покварено; он једноставно није уређај којем кернел приписује тај пакет.

Следећи проблем са којим се људи сусрећу долази из исте структуре: филтрирање оквира на bridge-у је одвојено средство од IP филтрирања. Ако је потребно ограничење на нивоу оквира, оно припада филтрирању bridge-а, а не правилу IP табеле.

Докажите то од почетка до краја, па га затим трајно сачувајте

Подигните једног клијента и пингните нешто на LAN-у сервера; тај пут вежба прослеђивање без икаквог превођења. Након тога затражите нешто јавно да би masquerade правило морало бити искоришћено, и прочитајте бројач још једном: треба да се помери за овај тест, а не за претходни. Снимак направљен на тунелском уређају показује и где се оквир појављује и коју адресу носи.

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

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

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