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

Төрт баскыч, бир ийгиликсиздик

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

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

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

Платформаны болжолдоонун ордуна ийгиликсиз машинада жөндөөнү ырастаңыз. Иштеген машиналарда маршрут эч качан жетишпеген бөлүк болгон эмес, ошондуктан аларга tailnet тарабы саламат экенин далилдөөгө жол бериңиз. Tailscale'дин субтармак маршруттагычтары тууралуу документтери бекитүүнү, клиенттин маршрутту кабыл алуусун жана саясат баскычын камтыйт.

Маршрутту клиент иштеген жерден текшериңиз

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

tailscale status
tailscale debug prefs | grep -i route
ip route get 10.20.0.42

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

Linux'то маршруттарды кабыл алуу үчүн желе коюлган деп болжолдоонун ордуна аны менен кайра туташыңыз: tailscale up --accept-routes. Башка желелер менен кошулган клиент аларды өзгөртүлгөнгө чейин сактайт, ошондуктан дагы бирин кошордон мурун учурдагы жөндөөнү текшериңиз. Өзгөртүүдөн кийин биринчи буйрукту кайра аткарсаңыз, маршрут таблицада көрүнүшү керек.

Жөнөтүүнү жана кайтуу жолун далилдеңиз

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

sysctl net.ipv4.ip_forward
iptables -t nat -L POSTROUTING -n -v
tcpdump -ni any host 10.20.0.42 and port 443

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

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

Ресурс үчүн кирүү эрежесин окуңуз

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

tailscale status --json | head -40
tailscale ping <router-name-or-tailnet-ip>
ping -c 3 10.20.0.42

Абалдын чыгышы клиенттин өз даректерин жана ал көрө алган өнөктөштөрдү аныктайт, саясаттын булак тандоочусу ошолорго дал келиши керек. tailscale ping tailnet жолун субтармак маршруттагычынын өзүнө чейин далилдейт; ал өнөктөш аттарын жана tailnet даректерин чечет, жарыяланган субтармактын ичиндеги хостторду эмес. Үчүнчү буйрук субтармак маршруту аркылуу кадимки ICMP жаңырыгын жөнөтөт, ошондуктан анын жыйынтыгы маршруттагычты эмес, багыттоону сүрөттөйт. tailnet деңгээлиндеги баш тартуу адатта баш тартуу катары кайтат, ал эми чыгып эч качан кайтпаган пакет убакыт бүтүп бүтөт.

Ийгиликсиз ат — ийгиликсиз даректен башка суроо; маршрутту күнөөлөөдөн мурун хостту түз чечиңиз. Уруксатты бүтүндөй субтармакка эмес, ресурстун чыныгы муктаждыгына жараша жазыңыз. Бир колдонмо иштеши үчүн бүтүндөй /24 ачуу — тар сурам кийин эч ким жоюуга батынгыс кенен уруксатка айланган жол.

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

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