VPN маршрутундагы кийинки секирик: дарбаза эмне үчүн жергиликтүү жеткиликтүү болушу керек
Маршруттун via дареги сиз жөнөткөн байланыш сызыгында жеткиликтүү болушу керек. Өткөрүп берүүнү көзөмөлдөңүз, издөөнү текшериңиз жана трафикти ээлеген хосттон сынаңыз.
VPN тармагына барган маршрут чаташтырууга оңой эки даректи алып жүрөт: пакет жетүүгө аракет кылган багыт префикси жана аны бир кадам жакындата турган кийинки секирик. LAN хостунда бул кийинки секирик ошол эле байланыш сызыгында чындап жете алган маршрутизатор болушу керек. Алыскы VPN дареги кийинки секирик эмес, ал сиздин оюңуздагы багытка канчалык так туура келсе да.
Бул колдонмо кадимки учурду камтыйт: 192.168.20.0/24 дагы ноутбук, LAN дареги 192.168.20.5 болгон VPN дарбазасы жана ошол дарбазанын артындагы алыскы тармак 10.70.0.0/24. Төмөнкү бардык буйруктар, эгер башкача айтылбаса, сиз ноутбукта деп эсептейт.
Эки дарек, бир маршрут
Көздөлгөн жазуу — 10.70.0.0/24 via 192.168.20.5. Префикс пакеттин кайда бараарын айтат; via дареги аны ал жакка ким алып бараарын айтат. Ядро дарбазасына сиз атаган интерфейс аркылуу жете албаган маршрутту орнотуудан баш тартат, жана бул баш тартуу — бүт мааниси: жеткиликтүү болушу үчүн туннел керек болгон кийинки секирик туннелди курган кийинки секирик боло албайт.
Ошондуктан биринчи текшерүү «дарбаза иштеп жатабы» эмес, «дарбаза ушул байланыш сызыгындабы». Ноутбуктун өз ички тармагы, анын ARP же кошуна жазуусу жана маршруттагы интерфейс — баары дал келиши керек. Тек 10.70.0.0/24 ичинде гана бар дарек экинчи маршруттун багыты боло алат, бирок биринчисинин via эч качан боло албайт.
Кийинки секирик дарбазаны эмнеге милдеттендирет
Маршрутту ноутбукка орнотуу биринчи өткөрүп берүүнү гана чечет. Андан кийин дарбазага өз жолу керек: күйгүзүлгөн багыттоо, 10.70.0.0/24 үчүн туннелдик маршрут жана ким пайдалана аларын аныктаган каалаган кирүү саясаты. Linux боюнча бул net.ipv4.ip_forward=1 жана туннелдик маршрут; анын алдындагы коргоо дубалына багытталган агымга уруксат берген эреже керек.
Кайтаруу багыты — адамдар унутуучу бөлүк. Алыскы тарапта 192.168.20.0/24 жакка кайтаруу маршруту болушу керек, же долбоор ноутбуктун булагын алыскы тарап билген нерсеге айландыруусу керек. Дарбазадан иштеген ping дарбаза алыскы тармакка жете аларын далилдейт; ноутбуктун пакеттери кайтар жолдо аман калабы, ал жөнүндө эч нерсе айтпайт.
Издөөнү жөнөткөн хосттон текшериңиз
Ядродон кайсы кийинки секирикти тандаарын сураңыз жана жооптогу интерфейсти окуңуз:
ip route get 10.70.0.10
ip route show 10.70.0.0/24
ip neigh show 192.168.20.5
Эгер издөө дарбазаны жана LAN интерфейсин билдирсе, биринчи бөлүк көздөлгөндөй конфигурацияланган. Эгер ал туннелдик түзмөктү билдирсе, таблицада эртерээк нерсе тактыраак жана жеңип жатат. Эгер маршрут такыр орнотулбаса, ядро дарбаза жеткиликсиз экенин айтат, жана бул билдирүү каалаган пакетти кармоодон пайдалуураак.
Андан кийин сыноону туура жерден кайталаңыз. Дарбазада түзүлгөн сурам дарбазанын өз булак дарегин колдонот, бул жоголгон кайтаруу маршрутун же белгилүү булактарга гана уруксат берген саясатты жашырышы мүмкүн. ip-route колдонмосу багытты, дарбазаны жана onlink кайра аныктоосун бөлөт, жана кайра аныктоону колдонуудан мурун түшүнүүгө татыктуу.
Жеткиликтүүлүктү жасалма көрсөтүү үчүн onlink колдонбоңуз
onlink ядрого дарбазанын жеткиликтүүлүк текшерүүсүн өткөрүп жиберип, баары бир ал жакка жөнөтүүнү айтат. Ал жол түзбөйт, жок дарек үчүн ARP чечпейт жана алыскы маршрутизаторду сиздин Ethernet сегментиңизде жооп берүүгө мажбурлабайт. Ал жооп берген, бирок туташкан ички тармакта отурбаган дарбазалар үчүн мыйзамдуу, ал эми сиз түшүндүрбөгөн катаны унчукпай коюу үчүн колдонулса — тузак.
Эгер маршрут onlink менен гана орнотулса, кийинки суроо — дарбаза эмне үчүн сиз ойлогон жерде эмес. Туура эмес VLAN, туура эмес интерфейстеги экинчи дарек же акыркы октеттеги ката басуу — булардын баары муну жаратат, жана алардын ар бири трафик ага баштаганда кайтаруу жолун да бузат.
Чек-чек туннелдери Ethernet эмес
Туннелдик түзмөк ARP жасабайт жана көбүнчө кошуналардын маанилүү ички тармагы болбойт. Анын маршруттары көбүнчө 10.70.0.0/24 dev tun0 сыяктуу көрүнөт, такыр via жок, анткени өнөктөш — жалгыз экинчи чектик чекит. LAN стилиндеги via ны ошол таблицага көчүрүү ядро четке кагышы мүмкүн болгон маршрутту же, андан жаманы, өнөктөш эч качан жооп бербеген дарекке көрсөткөн маршрутту жаратат.
Колдонмодо эки моделди өзүнчө кармаңыз: LAN маршрутунун жеткиликтүү дарбазасы бар, туннелдик маршруттун интерфейси жана өнөктөшү бар. WireGuard, OpenVPN жана IPsec баары бир аз башка формаларды көрсөтөт, ошондуктан бир хосттон жалпылоонун ордуна чындап колдонгон форманы жазып алыңыз.
Кошуңуз, ырастаңыз, артка кайтарыңыз
Бүт өзгөртүү — үч буйрук жана бир текшерүү, жана ал дал ушундай тартипте жазылышы керек:
sudo ip route add 10.70.0.0/24 via 192.168.20.5
ip route get 10.70.0.10
ping -c 3 10.70.0.10
sudo ip route del 10.70.0.0/24 via 192.168.20.5
Жолду ырастаңыз, бир багытты ырастаңыз, андан кийин өзгөртүү хостту сиз күтпөгөн түрдө жеткиликсиз кылса, өчүрүү сабын даяр кармаңыз. Эгер маршрут кайра жүктөөдөн кийин сакталышы керек болсо, аны shell профилине эмес, хосттун тармактык конфигурациясына коюңуз жана ага таянбастан мурун кайра жүктөөнү сынаңыз. Өзүн кошкон shell ичинде гана бар маршрут — эки жолу оңдой турган маршрут.