AWS Client VPN шеткі нүктесінің DNS: шешілген IP-ні бекіту неге сәтсіз
AWS Client VPN шеткі нүктесінің атауын шешкен мекенжайыңызбен ауыстырыңыз, кейін туннель жұмысын тоқтатады. Экспортталған атауды және оның кездейсоқ префиксін сақтаңыз.
Өткен аптада dig +short сізге AWS Client VPN профиліңіздегі шеткі нүкте атауы үшін бір мекенжай берді, және туннель қосылды. Бұл аптада сол профиль ноутбугіңізде 'Connecting' күйінде тұр, ал әріптесіңіздің тиіспеген көшірмесі әлі жұмыс істеп тұр. Ештеңе бұғатталмады және сертификаттың мерзімі бітпеді. Біреу шеткі нүктенің хост атауын сол шешілген мекенжаймен ауыстырды, және қызмет енді ол жерде жауап бермейді. Экспортталған атау — сол өзгеріске төтеп беру үшін құрылған бөлік.
Профиліңіздегі атау сұралатын атау болмауы мүмкін
Client VPN-нан экспортталған профильдерде әдетте remote-random-hostname болады. Бұл опция қосулы кезде клиент бір реттік белгі жасайды, оны нүкте арқылы шеткі нүкте атауымен қосады және құрама атауды шешеді. Шеткі нүкте аймағындағы wildcard жазба кез келген белгіге жауап береді, сондықтан ойдан шығарылған префикс те шешіледі және сұрауды қолмен қайталауға тырысқанда бұл тәсіл көрінбейді.
Сондықтан шеткі нүкте атауын терминалға қойып, жауап алғанда, сіз клиент қосылу кезінде қолданатын атаудан өзгеше атауды шештіңіз. Бұл сәйкессіздік профильде түзетілетін ақау емес. Белгі әдейі қайта жасалады: опция кэштердің ескірген жауапты ұстауын болдырмайды және ол ешқашан машинаңызды немесе сессияңызды анықтамайды.
Клиент опцияны мүлдем елемейтін үйлесімділік жағдайына тап болдым. AWS шешімді құжаттайды: нақты шеткі нүкте атауын сақтап, алдына кездейсоқ жол мен нүкте қосыңыз, оны қоюға арналған мән емес, атау үлгісі ретінде қарастырыңыз. Мұны ескі клиентке қолдану орынды; префиксті жолды шеткі нүкте ретінде қатты кодтау орынды емес.
Неге сақталған жауап дұрыс қала алмайды
Client VPN шеткі нүкте мекенжайларын AWS басқарады және олар уақыт өте өзгереді, мұны үздік тәжірибелер құжаты ашық айтады. Тіркелген жауап — бір шешімнің суреті. Оны қатты кодтайтын профиль қызмет көшкен бойда пайдаланудан шығарылған хостқа бағытталған профильге айналады, ал сәтсіздік сирек DNS сияқты көрінеді: қосылу уақытының аяқталуын немесе тоқтаған handshake аласыз, сондықтан адамдар маршруттау мен сертификаттардың соңынан жүгіреді.
/etc/hosts ішіндегі сол жауап сол мерзімді қосымша мәселемен мұраға алады. hosts жазбасы қайта жүктеулерден, қайта экспорттаудан және 'клиентті қайта орнату' түзетулерінен аман қалады, сондықтан мекенжай көшкен сайын сәтсіздік қайтады. Мен біреуін апталап зиянсыз жатқанын, содан кейін оны тасымалдаған барлық машинаны істен шығарғанын көрдім, ал жаңа орнатулар қалыпты қосылып жатты. Бұл бөліну, бір топ сәтсіздікке ұшырап, екіншісі сол аккаунтта дұрыс болуы — алатын ең арзан белгі.
Рандомизация ауқымын дұрыс шектеңіз. Ол әр қосылу әрекетіне жасалады. Орнатылған туннель өз шеткі нүктесін қайта шешпейді, сессия ортасында серверді ауыстырмайды, жеке қолданба сұрауларының әрқайсысы жаңа VPN хост таңдамайды. Тек келесі әрекет қайта шешеді, сондықтан түстен кейін бойы жұмыс істеген сессия ертеңгі таң туралы ештеңе айтпайды.
Туннель көтерілгенде қызмет нені тексереді
Client VPN қосылған мекенжайыңыздың шеткі нүктенің DNS атауы үшін шешілген мекенжайға сәйкес болуын талап етеді. Осы бір талап байланысы жоқ көрінетін бірнеше сәтсіздікті түсіндіреді: басқа жерге сілтейтін теңшелген DNS жазбасы, нақты шеткі нүкте мекенжайына бағыттайтын теңшелген frontend және шикі мекенжайға қайта жазылған профиль. AWS теңшелген жазба мен бағыттаудың үйлесімін жаңа AWS клиенттерімен сәтсіздік ретінде құжаттайды. Тексеру тар; бұл әрбір бүркеншік атқа тыйым салынды деген үкім емес.
Бұл VPN протоколдары туралы жалпы ереже де емес. Сандық remote қарапайым OpenVPN орналастыруында толық жарамды және көпшілігі осылай жұмыс істейді. Шектеу басқарылатын құрылымнан келеді, оның астындағы протоколдан емес.
Бұл сертификатты тексеруді босаңсуға дұрыс емес рефлекс жасайды. Мекенжай ауысқаннан кейін профиль істен шықса, серверді тексеруді өшіру шешімді немесе мекенжай сәйкестігі талабын түзетудің орнына қатені жылжытады және кез келген нәрсеге сенетін клиент қалдырады. Экспортталған CA-ны, серверді тексеруді және өзара аутентификация параметрлерін қалай келсе, солай сақтаңыз.
Рұқсат тізімдері, шығу және жеке DNS — үш бөлек мәселе
Ноутбук қосылмас бұрын тағайындауға рұқсат беруі тиіс firewall ережесі сыртқы тыңдаушыға қатысты. Желі иесіне шеткі нүкте атауын, көлікті және конфигурацияланған портты беріңіз, содан кейін олардың бақылауы қызметтің DNS мінез-құлқын ұстай ала ма, соны сұраңыз. Бір тіркелген мекенжайды ұстайтын ереже — жазылмаған мерзімі бар сурет. Егер бақылау тек өзгермейтін тағайындауларды қабылдаса, жауапты үнсіз қатты кодтаудың орнына бұл алшақтықты енгізу алдында шешіңіз.
Туннель көтерілгеннен кейінгі сұраулар үшін тұрақты бастауыш мекенжай қажет серіктестің басқа талабы бар: шығу. Веб-сайттың көретіні қолданба маршруты мен бөлінген туннель саясатына байланысты, клиент қосылған мекенжайға емес. Бөлінген туннель трафигі AWS-ке мүлде тимей қалуы мүмкін.
Туннель ішіндегі жеке DNS үшінші қабат. Клиенттерге берілетін шешуші қосылудан кейін ішкі атауларға жауап береді; туннель пайда болмайынша ол жария шеткі нүктені шеше алмайды. Шеткі нүктені шешу сәтсіздігі мен ішкі қолданбаны шешу сәтсіздігі әртүрлі кезеңдерде болады, оларды араластыру сізді дұрыс емес журналға жібереді.
Мекенжай тобы сол тізімге жатады. IPv4 жауабы IPv6 немесе қос қабатты шеткі нүктенің рұқсат етілген жолы туралы ештеңе айтпайды, сондықтан бір топта алынған сурет екіншісіне дәлел емес.
Ештеңені бекітпей байланысты тексеріңіз
Профильден экспортталған күйінде бастап, оның шын мәнінде не сұрайтынын оқыңыз:
grep -nE '^remote|remote-random-hostname' profile.ovpn
dig +short cvpn-endpoint-ID.prod.clientvpn.REGION.amazonaws.com
ss -tnp | grep -E ':(443|1194)'Сосын үш нәрсені салыстырыңыз: профильдегі шеткі нүкте атауы, клиенттің жаңа әрекет үшін хабарлаған мекенжайы және атаудың дәл қазір неге шешілуі. Шешілетін атау жазбаның жауап беретінін ғана дәлелдейді; көлік пен аутентификация бөлек, шеткі нүкте ping-ге жауап беруге міндетті емес. Ортаңғы тармақтың жалғыз көзі — клиенттің өз журналы, сондықтан оны әрекет кезінде тіркеңіз, кейін емес.
| What you see | Usual cause | Next check |
|---|---|---|
| One machine fails, others connect | Pinned address or stale hosts entry on that machine | Diff its profile and hosts file against a working copy |
| Everyone fails at once, no config change | The endpoint address rotated | Confirm the current endpoint configuration with the account owner |
| Tunnel up, internal names fail | Client DNS policy, not endpoint resolution | Inspect the resolver pushed after connection |
Бүгін жауап берген мекенжай бүгін туралы дәлел; атау — қызмет жарамды ұстайтын нәрсе. Бақылауды жазыңыз, оны шеткі нүктенің иесіне жіберіңіз және профильді атауға бағытталған күйде қалдырыңыз.
Екі әдеттен бас тартыңыз: тоқтаған handshake-тан өту үшін сертификат тексеруін өшіру және біреуі жабысады деп шеткі нүкте атауының алдына белгілерді үю. Белгі wildcard жазба арқылы шешіледі, әйтпесе мәселе басқа жерде. Дұрыс конфигурацияланған профиль әлі де істен шықса, ұзынырақ хост атауын емес, нақты сұрауды және қосылу оқиғасын жіберіңіз.
Жабпас бұрын: профиль әлі де экспортталған шеткі нүкте атауын алып жүр, ешбір hosts файлы мекенжайды бекітпейді, клиент журналындағы remote ағымдағы шешімге сәйкес, ал firewall ережесі мекенжайды емес, шеткі нүктені атайды. Бұл да келесі адамға тапсырылатын күй.