Көпүрөлүү сервер иштеп жатат, masquerade эрежеси бар, ал эми кардардагы браузер дагы эле айланып турат. Баары иштеши керек сыяктуу көрүнөт, ошондуктан биринчи саат туннелди жана кирүү маалыматтарын текшерүүгө кетет. Анан NAT эрежесиндеги эсептегичти окуп, кыймылдабаган нөлдү көрөсүз. Бир да пакетти санабаган эреже эч качан эч нерсеге дал келген эмес, ал эми көпүрөлүү серверде себеби структуралык: кардардын трафиги виртуалдык tap түзмөгү аркылуу чыгат, эреже болсо эски колдонмодон көчүрүлгөн физикалык картаны атайт.

Далил — эсептегич, таблицанын сабы эмес

Бар эрежелер менен дал келүүчү эрежелер башка нерселер, аларды эсептегич ажыратат. NAT таблицасын кеңири эсептегичтер менен чыгарып, бир нерсени өзгөртүүдөн мурун ар бир эреженин жанындагы сандарды окуңуз. Трафик агып турганда нөлдө турган эсептегич эреженин өткөрүп жиберилгенин билдирет, анын даректери канчалык орундуу көрүнсө да. Байланыш дагы эле ишке ашпай жатканда өскөн эсептегич сизди башка жакка жиберет: багыттоо, кайтуу жолу же алыскы чет.

iptables -t nat -L POSTROUTING -v -n

Адегенде интерфейс дал келүүсүнүн жанындагы эсептегичти окуңуз. Булак диапазону туура, чыгуу жагы туура эмес болсо, оңдоо — жаңы эреже эмес, эрежедеги бир сөз.

Ядро чындап жаза турган атты табыңыз

Эрежени жазардан мурун туннел түзмөгүн эске тутууга эмес, интерфейстер тизмесине таянып аты боюнча аныктаңыз. Көпүрөлүү OpenVPN конфигурациясында түзмөк адатта сервер түзгөн tap интерфейси болот жана анын аты жергиликтүү конфигурацияңыздын бөлүгү, универсалдуу туруктуу эмес. Туннел күйүп турганда анын бар экенин ырастаңыз, анткени кардар туташкандан кийин гана пайда болгон түзмөк мурунку сынакты эреже маселесине окшоштурат.

ip -brief link

Атты жазып алыңыз. Бул диагностикадагы ар бир кийинки буйрук ага шилтеме жасайт, ал эми бул жердеги тамга катасы баштапкы ката сыяктуу эле нөлдүк эсептегичти берет.

Эрежени туннел түзмөгүнө карата кайра жазыңыз

Эрежени туннел түзмөгүнө багыттап, кардар диапазонун анын дал келүү шарты катары калтырыңыз, ошентип ал туннел трафигин камтыйт жана хосттун өз байланыштарына тийбейт. Төмөнкү эки мисал тең мисал гана жана экөө тең орнотуулар арасында көчүрүлбөйт, ошондуктан өз диапазонуңуз менен түзмөк атыңызды коюңуз.

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

Анан ошол эле симптом жашырган калган эки шартты текшериңиз. Багыттоо күйгүзүлгөнбү, жокпу текшериңиз, ал эми күйгүзүлбөсө, кайра жүктөөдө жоголгон echo аркылуу эмес, дистрибутивдин өз конфигурациясында күйгүзүңүз. forward чынжырынын эсептегичтерин да окуңуз, эгер ал туннел трафигин таштаса, так ошол интерфейске уруксат берип, чынжырдын саясатына тийбеңиз.

forward чынжырын эсептегичтер менен окуу бир буйрук алат жана башка эрежеге кол тийгизээрден мурун калган мүмкүнчүлүктөрдүн жарымын жокко чыгарат.

Эмне үчүн физикалык карта эч качан дал келбейт

Көпүрө — tap түзмөгү менен бир физикалык интерфейстен куралган программалык коммутатор. Кардардын кадры ошол коммутаторго кирип, физикалык тармакка картадагы пакет катары эмес, көпүрөнүн мүчөсү катары чыгат. Ошондуктан ядро пакетти көпүрөгө жана анын портуна таандык кылат, ошондуктан сиз ойлогон карта дал келүүдө эч качан көрүнбөйт. Физикалык интерфейсте эч нерсе бузулган эмес; ал жөн гана ядро ошол пакетке таандык кылган түзмөк эмес.

Адамдар туш болгон кийинки маселе ушул эле түзүлүштөн келет: көпүрөдөгү кадрларды чыпкалоо IP чыпкалоодон өзүнчө механизм. Талап кадр деңгээлиндеги чектөө болсо, ал көпүрө чыпкалоого таандык, IP таблицасынын эрежесине эмес.

Аны башынан аягына чейин далилдеп, анан туруктуу кылыңыз

Бир кардарды күйгүзүп, сервердин жергиликтүү тармагындагы бир нерсеге ping жасаңыз; бул жол эч кандай котормоосуз багыттоону машыктырат. Анан masquerade эрежеси милдеттүү колдонулушу үчүн ачык бир нерсе сурап, эсептегичти дагы окуңуз: ал ушул сынак үчүн кыймылдашы керек, мурункусу үчүн эмес. Туннел түзмөгүндө алынган жазуу кадрдын кайда пайда болорун жана кайсы даректи алып жүргөрүн бирге көрсөтөт.

Акыркы кадам: иштеген эрежелерди кайра жүктөө окуган конфигурацияга салыңыз жана бул хосттун көпүрөсү чындап колдонгон түзмөктүн атын жазып алыңыз. Кол менен тергизилген нерселердин баары кайра жүктөөдөн кийин жоголот, ал эми ошол эле бузулуу аны түшүндүрө турган эч нерсе калбай кайтып келет.

Эгер кайра жазгандан кийин эсептегич дагы кыймылдабаса, эрежедеги булак диапазонун кардар чындап алган дарек менен салыштырыңыз, анткени көпүрөлүү сервер сиз ойлобогон диапазондон даректерди бериши мүмкүн.

Тектеш макалалар