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

1. Бараанды жана булакты жазып алыңыз

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

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

2. Ядродон кайсы маршрутту тандаганын сураңыз

Маршруттар таблицасын окуп, жоопту божомолдобоңуз. Стек койгон суроонун өзүн ошол эле булак дареги менен коюңуз: Linux боюнча ip route get 10.20.4.10 from 10.8.0.2 же PowerShell боюнча Find-NetRoute -RemoteIPAddress 10.20.4.10. Чыгуу чындап колдонула турган маршрутту атайт жана ал таблицаны окуганда күткөнүңүздөн көп учурда башка болот.

Дал келген маршруттардын ичинен адатта так префикс жеңет: экөөнүн ичиндеги дарек үчүн /24 /16дан басым болот. Узундугу бирдей дал келүүлөрдүн арасында төмөнкү метрика жеңет, ал эми өчүк байланышка орнотулган маршрут өткөрүлүп кетет. Бирдей /24тү бирдей метрика менен тараткан эки туннел башка учур: ядро эки маршрутту тең сактап, алардын арасынан тандайт, ошондуктан жыйынтык клиенттердин туташуу тартибине баш ийбей, кезектешип өзгөрүшү мүмкүн. Дүйшөмбүдө-иштейт-шейшембиде-иштен-чыгат үлгүсүн дал ушул абал жаратат жана башка тартипте кайра туташуу аны өзгөртпөйт.

3. Саясат эрежеси издөөнү башка жакка буруп койгон жокпу, текшериңиз

Маршруттар таблицасына кайрылганга чейин ядро өзүнүн саясат эрежелеринен өтөт. Эреже белгиленген булактан, колдонуучудан же өрт дубалынын белгисинен келген трафикти такыр башка таблицага жөнөтүшү мүмкүн, ошондуктан негизги таблицадагы жеңүүчү префикс ошол агым үчүн эч качан каралбашы мүмкүн. ip rule show аларды баалоо ирети менен тизмелейт, ал эми ip route show table 100 тандалган таблицада чындап эмне бар экенин көрсөтөт.

Бул жерде эки тузак бар. Бош таблицаны көрсөткөн эреже кийинки эрежеге түшүп кеткен издөөнү жаратат, ошондуктан эреже эч нерсе кылбагандай көрүнөт. Экинчиси — артыкчылык номеринин өзү: эрежелер өсүү ирети менен окулат, ал эми курулган маанилер 0 local, 32766 main жана 32767 default болуп эсептелет. Номери 32767ден кичине эреже баарын кармаган демейки эрежеден мурун каралат. Номери 32767ден чоң эреже анын артында турат жана ага мурунку эч бир таблица жооп бербегенде гана жетет, буга mainдеги кадимки демейки маршрут тоскоол болот, ошондуктан иш жүзүндө эч качан жетпейт жана орнотулгандай көрүнүп, үнсүз эч нерсе кылбайт. Эгер клиент эреже менен маршрутту жазса, экөөнү тең текшериңиз жана кайра туташкандан кийин дагы текшериңиз, анткени кайра жазылган профиль башка артыкчылыктагы экинчи эрежени кошуусу мүмкүн.

4. Маршруттык теңдикти кайталанган дарек планынан бөлүңүз

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

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

5. Чечүүчү маршрут менен макул экенин ырастаңыз

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

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

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

Оңдоодон кийин кайра туташыңыз жана профиль редакторуна ишенүүнүн ордуна клиент чындап эмнени орнотконун карап чыгыңыз. Эрежелерди, таблицаларды жана андан келип чыккан ip route get жообун кайра окуңуз. Экинчи клиент туташканда өз маршрутун кайра орнотуп, кагылышты кайра жаратышы мүмкүн, ошондуктан абалды текшерүү акыркы клиент туташкандан кийин болушу керек, андан мурун эмес.

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

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