VPN арқылы SQL Server атаулы данасы: 1433 порты емес, анықтау
Атаулы дана қосылу алдында SQL Browser-ден порт сұрайды. Егер атау VPN арқылы сәтсіз болып, бірақ tcp:host,port жұмыс істесе, олқылық анықтауда.
Көпшілік SQL Server хост атауын толық мекенжай деп, ал VPN-ді рұқсат етілген немесе етілмеген нәрсе деп қарайды. Іс жүзінде атаулы дана клиентті DNS-тен кейін екінші іздеу жасауға мәжбүр етеді, және туннель дәл сол іздеуді жиі бұзады. Айқын соңғы нүкте оны айналып өтеді, сондықтан tcp:host,port жұмыс істей алады, ал host\INSTANCE уақыт шегіне жетеді. Айырмашылық қызметті табу мен оны пайдалануға рұқсат алу арасында.
Аңыз: бір хост атауы бір порт дегенді білдіреді
Хост атауы мекенжайға шешіледі, және оның жұмысы сонда бітеді. Атаулы дана сервер TCP портына айналдыруы тиіс дана атауын қосады, ал клиент оны болжай алмайды. 1433 порты әдепкі дана үшін әдепкі болып табылады, машинадағы әрбір дананың қасиеті емес. Екеуін бір нәрсе деп қарағанда классикалық симптом пайда болады: ping жұмыс істейді, DNS жұмыс істейді, 1433 скандауы ештеңе көрсетпейді, және қорытынды желі SQL-ді блоктайды дегенге келеді.
Екінші болжам да осылай сәтсіз болады: TCP 1433-ті ашу жеткілікті деген. Егер дана басқа жерде тыңдаса, ашық 1433 тек онда басқа нәрсе бар екенін дәлелдейді. Порт тыңдаушыға сәйкес келуі керек, және тыңдаушы сервер жағындағы конфигурация бөлшегі екенін болжаудың орнына сұрау керек.
Клиент атаулы данамен шын мәнінде не істейді
Хостты шешкеннен кейін клиент UDP 1434 арқылы SQL Server Browser-ге анықтау сұранысын жібереді және атаулы дана қай портты пайдаланатынын сұрайды. Браузер қызметі сервердің өз тізілімінен жауап береді, содан кейін клиент сол портқа TCP қосылысын ашады. Кіруге әрекет жасалмай тұрып екі хаттама мен екі порт қатысады.
nslookup sqlhost.corp.example
nc -vzu sqlhost.corp.example 1434
Get-Service -Name SQLBrowser
Сондықтан тек UDP-ні блоктау өлі хостқа ұқсайтын уақыт шегін тудырады. Егер браузер қызметі тоқтатылған немесе өшірілген болса, анықтау сұранысы жауапсыз қалады, тіпті дерекқор қозғалтқышы жұмыс істеп, оның TCP порты ашық болса да. Егер дана статикалық портпен конфигурацияланған болса, клиент бәрібір сұрайды, егер оған соңғы нүкте тікелей берілмесе. Бұл ақаулардың әрқайсысы қолданбаның қате хабарламасында бірдей көрінеді, және оларға әртүрлі түзетулер қажет.
Браузер қызметі анықтауға арналған ыңғайлылық, дерекқор емес. Оны тоқтату қозғалтқышты тоқтатпайды, ал оны іске қосу дананың TCP портын ашпайды.
Неліктен атау жұмыс істемегенде айқын соңғы нүкте жұмыс істейді
Айқын соңғы нүкте іздеуді реттіліктен алып тастайды: клиент сіз атаған мекенжай мен портқа тікелей қосылады. Бұл ең алдымен диагностика, автоматты түрде тұрақты шешім емес, өйткені дана кейінірек динамикалық портқа қайта конфигурацияланса, порт өзгеруі мүмкін. Қорытынды жасамас бұрын екі форманы бір клиентпен және бір тіркелгімен салыстырыңыз.
sqlcmd -S "tcp:sqlhost.corp.example,51433" -U app_login -Q "SELECT @@SERVERNAME"
Test-NetConnection sqlhost.corp.example -Port 51433
Егер айқын форма сәтті болып, атаулы форма сәтсіз болса, олқылық анықтауда, және оны қалай жабуға болатынын өзіңіз таңдай аласыз: туннель арқылы UDP 1434-ке рұқсат беріңіз, немесе әкімшіден статикалық портты бекітуді және соңғы нүктені құжаттауды сұраңыз. Екеуі де әртүрлі қызмет көрсету шығындары бар әдейі қабылданған шешімдер. Ауқымдағы әрбір портты ашу олардың ешқайсысы емес, және ұзақ күннің соңында дәл осы нұсқа ұсынылады. Таңдауды қосылым жолдары тұратын жерге жазып қойыңыз.
Егер ешбір форма жұмыс істемесе, мәселе анықтаудан жоғарыда. Браузер қызметін кінәламас бұрын тыңдаушыны, маршрутты және дана шын мәнінде пайдаланатын порт үшін қатынау ережесін тексеріңіз.
Анықтаудан кейін: аутентификация мен сәйкестік бөлек
Кіру сәтсіздігі уақыт шегінен өзге оқиға, және VPN сәйкестігі туннель арқасында SQL кіруіне айналмайды. Клиент дұрыс портқа жеткенде, дерекқор қозғалтқышы өзінің аутентификациясын және рұқсаттарын қолданады. Екі кезеңді бір билетке араластыру анықтау мәселесінің дұрыс емес топқа берілу жолы. Бірдеңе өзгертер алдында қате нөмірін оқыңыз.
Егер драйвер сервер сертификатын тексеретін болса, құжатталған хост атауын сақтаңыз, өйткені сандық мекенжай арқылы қосылу бастапқы мәселені шешудің орнына сол тексеруді өзгертуі мүмкін. Жаңа Microsoft драйверлері әдепкі бойынша шифрлайды, сондықтан атау сәйкессіздігі сәтті TCP қосылысынан кейін сертификат қатесі ретінде көрінеді. Бұл жаңа сәтсіздік емес, ілгерілеу.
Бастартуға тиіс аңыз — SQL Server хост атауы толық мекенжай деген. Ол хост және атаулы дана үшін туннель тасымалдамауы мүмкін іздеу қосылады. Портты атаңыз, анықтау жолын атаңыз, және келесі сәтсіздік қай қабатты түзету керектігін айтады.