Жооп туннелден эмес, LAN аркылуу чыгат: эмне үчүн жана кантип
Туннел аркылуу келген суроо жооп дагы ошол эле жол менен чыгат дегенди билдирбейт. Linux багытты издейт, адатта жергиликтүү кошумча тармак жеңет.
Шлюз аркылуу жарыяланган кызмат интернеттин көп бөлүгүнөн иштейт, бир кеңседен иштебейт. Бирөө туннелди текшерет, суроонун келе жатканын көрөт жана жооп ошол эле жол менен кайтышы керек деп тыянак чыгарат. Linux андай иштебейт, туннелди канча текшерсеңиз да жооп өзгөрбөйт. Жооп багыт боюнча маршрутталат, ал эми ошол бир ийгиликсиз чалуучу хост түз жете турган кошумча тармакта отурат.
Чыгуучу пакетти чындыгында эмне аныктайт
Ядро пакеттин багыты үчүн маршрут издейт, саясат эрежелерин артыкчылык тартибинде, анан дал келген эреже тандаган таблицаны карайт. Пакет келген интерфейстин эч кандай ролу жок, эгер аны маанилүү кылуу үчүн эреже же белги жазылбаса. Бул ушул хосттун маршруттоо фактысы, туннелдин кемчилиги эмес.
Ошондуктан туннелден алынган суроо физикалык интерфейстен чыгуучу жооп жаратышы мүмкүн, ал эми агым эч бир түзмөк ката билдирбестен бир багыттуу болуп калат. Туннел жөнүндө тыянак чыгарганга чейин эки багытты тең текшериңиз. Туура эмес багытка чыккан жооп туннелдин эсептегичтеринен жоголот, ошондуктан эки уч бир нерсе жөнөтүлдүбү дегенде макул болушпайт. Эрежеге тийгенге чейин кайсы эсептегич кыймылдаганын байкаңыз.
Жергиликтүү кошумча тармак эмне үчүн жеңет
Жергиликтүү тармакта дареги бар хост негизги таблицада ошол префикс үчүн туташкан маршрутка ээ, ал эми туташкан маршрут түз дал келүү болуп саналат. Чалуучу ошол эле кошумча тармактан келгенде, издөө туннел каралганга чейин эле жергиликтүү байланышты табат.
Дал ушул асимметрия диагностиканы баш аламан кылат. Кененирээк интернеттен келген чалуучулар иштейт, анткени алар эч кандай жергиликтүү маршрутка дал келбейт, ал эми кеңсе префиксин бөлүшкөн жалгыз чалуучу ийгиликсиз болот, жана бирөө сыноо үчүн дал ошону колдонот.
Теңтуштардын камтуусу орнотулган маршруттар менен бирдей эмес
Туннел тарапта, теңтуштун уруксат берилген диапазондору туннелге эмнени жөнөтүүгө болорун жана андан кайсы булактар кабыл алынаарын сүрөттөйт. Алар жергиликтүү маршруттоо таблицасы пакетти кайда жөнөтөрү тууралуу эч нерсе айтпайт.
Эгер туннел куралы хостко демейки маршрут орнотсо, ал байланышсыз трафикти жанама зыян катары туннелге тартып кетиши мүмкүн. Чечимди анын ордуна саясат эрежеси кабыл алышы керек жерде, куралдын маршрут орнотуу опциясы дал ошону болтурбоо үчүн бар, ал эми даректер, ачкычтар жана акыркы чекиттин жөндөөлөрү мурункудай эле калат. Ыңгайлуулук үчүн кошулган демейки маршрут хосттун өзүнүн жергиликтүү тармагын жоготуусунун кеңири тараган жолу.
Таблицаны булак дареги боюнча тандаңыз
Булакка негизделген эреже кызмат дарегинен келген жоопторду демейкиси туннель болгон жеке таблицага жөнөтөт, калганынын баары негизги таблицаны колдонууну улантат. Жергиликтүү колдонулбаган таблица жана артыкчылык сандарын тандаңыз жана бир нерсе киргизгенге чейин бардык эрежелерди окуңуз. Сакталган файлды эмес, тирүү эрежелерди окуңуз, анткени кайра жүктөөдөн кийин экөө айырмаланышы мүмкүн.
ip -6 route add default dev wg0 table 200
ip -6 rule add priority 32000 from 2001:db8:aa::20/128 lookup 200
ip -6 rule add priority 32001 from 2001:db8:aa::20/128 unreachableАкыркы сап жок маршрутту жергиликтүү байланышка кайтуунун ордуна көрүнүктүү түрдө ийгиликсиз кылат. Булак чындыгында хостко берилген болушу керек, ал эми кадимки жергиликтүү жана негизги издөөлөр мурунку орундарында калышы керек. Эреже таблицаны булак боюнча тандайт; ал таблицалардын ортосунда префикс узундуктарын салыштырбайт.
Алгач жолду, анан кызматты ырастаңыз
Түртүп алуудан божомолдоонун ордуна ядродон эмне кылаарын сураңыз, кызмат дарегин булак селектору катары колдонуп. Бул жерде туура жооп бүт пакет изин үнөмдөйт.
ip -6 route get 2001:db8:bb::30 from 2001:db8:aa::20Чыгарылыш туннелди аташы керек. Анан тийбеген булагыңызды сынап, анын дагы эле жергиликтүү байланышты алаарын ырастаңыз, ошондо өзгөрүү бир дарек менен чектелсин. Кененирээк селектор баштапкы даттануу тууралуу эч нерсени далилдемек эмес.
Бул эмнени оңдобойт
Шлюздөгү кайра жиберүүнү, брандмауэр эрежелерин жана ICMPv6 жүрүм-турумун мурдагыдай калтырыңыз, анткени булак маршруту алардын эч бирин алмаштырбайт. Жок Packet Too Big билдирүүсү кайсы таблица издөөдө жеңсе да чоң жоопторду бузат. Маршруттоо эрежелерин кошконго чейин муну оңдоңуз, болбосо симптом өзгөрүүдөн кийин да калат.
Ушундан бир нерсени колдонгонго чейин жарыялоо модели ырастаңыз. Өз backend байланышын ачкан тескери прокси өз булагын көрсөтөт жана чалуучуну сактабайт, ошондуктан бул кемчилик ал долбоордо болушу мүмкүн эмес. Ал жерде эрежени колдонуу эч нерсени чечпеген жана чыныгы себепти жашырган маршруттоо өзгөчөлүгүн кошмок.
Акырында, эреже сандарын жана таблицаны хосттун конфигурацияны башкарууга жазыңыз. Кол менен кошулган саясат эрежеси кийинки кайра курууда жоголот, ал эми кеңсе чалуучусу ошол эле даттануу менен кайтып келет.