OpenVPN TAP у macOS: праверце кліент, перш чым займацца адладкай
TAP перадае кадры Ethernet, а TUN — пакеты IP, і большасць сучасных кліентаў macOS адмовілася ад першага. Пацвердзіце рэжым, затым пераходзьце разам з уладальнікам сервера.
Стары профіль трапляе на сучасны Mac, кліент імпартуе яго без скаргаў, і злучэнне абрываецца або трафік не праходзіць зусім. Перш чым марнаваць паўдня на сертыфікаты, прачытайце радок прылады ў профілі. Калі там напісана dev tap, вы просіце ў кліента інтэрфейс тыпу Ethernet, і на macOS менавіта на гэтым запыце заканчваецца большасць такіх сеансаў.
Крок 1: пераканайцеся, што профіль сапраўды патрабуе TAP
Профілі пераймяноўваюць, перапакоўваюць і паўторна экспартуюць, таму правярайце менавіта той файл, які вы імпартавалі. Шукайце дырэктыву прылады і любы ўключаны файл, які можа яе перакрыць. Дзве радкі вываду вырашаюць пытанне ў большасці выпадкаў. Калі сустракаюцца і dev, і dev-type, перамагае пазнейшая дырэктыва, і менавіта такую дэталь хавае скапіяваны профіль.
grep -nE "^[[:space:]]*(dev|dev-type)[[:space:]]" client.ovpn
ls -l ~/Library/Application\ Support/ 2>/dev/null
Калі файл змяшчае dev tap або dev tap0, кліент павінен рэалізаваць інтэрфейс TAP. Калі ён змяшчае dev tun, астатняя частка артыкула не прымяняецца, і збой у іншым месцы.
Запішыце назву і версію кліента, версію macOS і адкуль узяўся профіль. Гэтыя тры факты вырашаюць, які з двух шляхоў ніжэй увогуле магчымы.
Крок 2: даведайцеся, што насамрэч змяняе рэжым прылады
Інтэрфейс TUN перадае пакеты IP. Кліент чытае і запісвае пакеты, адрасаваныя IP-партнёру, а аперацыйная сістэма маршрутызуе іх як любы іншы інтэрфейс.
Інтэрфейс TAP перадае кадры Ethernet, уключаючы шырокавяшчальныя і ARP. Менавіта гэта дазваляе серверу з мастом выдаваць адрасы праз DHCP, а кліенту — выяўляць прылады крыкам, таму некаторыя старыя схемы на гэтым і трымаюцца.
Кошт у тым, што TAP патрабуе драйвера, які прадстаўляе сістэме інтэрфейс Ethernet. Apple спыніла мадэль пашырэння ядра, на якую абапіраліся старыя драйверы TAP для Mac, а яго замяняльны API не з'яўляецца цудадзейна ў кліентах, якія ніколі не абнаўляліся для яго выкарыстання. Магчымасць платформы і адгружаны прадукт — розныя рэчы.
Крок 3: выберыце паміж сумяшчальным кліентам і міграцыяй
Ёсць два сумленныя шляхі. Першы — кліент, выдавец якога заяўляе для вашай версіі macOS і вашага абсталявання, што ён падтрымлівае патрэбную вам схему TAP. Не допіс на форуме чатырохгадовай даўніны і не заархіваваны ўсталёўшчык: актуальная заява плюс тэставае злучэнне.
Другі — перанос службы на TUN, што з'яўляецца зменай сервера не менш, чым зменай кліента. Патрэбны маршрутызаваная тапалогія, пул адрасоў, прасунутыя маршруты для аддаленых сетак і зваротны шлях ад гэтых сетак да пула.
Што не працуе, дык гэта змяніць tap на tun у лакальнай копіі і спадзявацца. Сервер усё яшчэ будуе мост, кліент цяпер размаўляе па IP, і нішто не ўзгадняецца.
Крок 4: сабярыце факты, перш чым змяняць працоўную службу
Пакіньце арыгінальны профіль некранутым і зрабіце копію для эксперыментаў. Файл, які можна аднавіць за хвіліну, каштоўнейшы за акуратную папку. Калі замена запрацуе, выдаліце копію свядома, а не пакідайце два профілі, якія выглядаюць аднолькава ў спісе. Гэтая адна звычка прадухіляе большую частку блытаніны пасля няўдалай міграцыі. Запішыце бягучыя паводзіны, каб можна было даказаць, што змянілася: ці ўздымаецца тунель, ці атрымлівае ён адрас, ці дасягаеце вы вядомага хоста і ці працуе развязанне імёнаў.
Задайце ўладальніку шлюза тры пытанні. Сервер працуе ў маставай ці маршрутызаванай тапалогіі? Якія аддаленыя прэфіксы павінны быць дасягальныя? І ці ёсць акно абслугоўвання для змены канфігурацыі, ці чакаецца, што ўсё запрацуе без дотыку да сервера?
Адказ на гэтыя пытанні вырашае, ці вырашаеце вы праблему кліента сёння папоўдні, ці плануеце змену сеткі на наступным тыдні.
Крок 5: праверце міграцыю з абодвух бакоў
Калі сервер мае маршрутызаваную канфігурацыю, а вы — адпаведны профіль, тэстуйце ў такім парадку: тунель усталёўваецца, кліент атрымлівае адрас з новага пула, хост на аддаленым баку адказвае, і імя развязваецца праз прасунутую наладу DNS.
Затым праверце тое, што раней залежала ад паводзін Ethernet. Калі праграма выяўляла прылады праз шырокавяшчанне, яна не знойдзе іх праз маршрутызаваны тунель, і ніякая канфігурацыя кліента гэтага не верне. Такой праграме патрэбны вядомы адрас, лакальны дапаможны хост або іншы метад выяўлення.
Скончыце тым, што адзін раз перападлучыцеся і перазагрузіцеся, бо профіль, які працуе толькі з першай спробы, звычайна азначае, што прасунутыя маршруты або налада DNS не прымяняюцца пры перападлучэнні.
Калі ўсё яшчэ не атрымліваецца, прачытайце першую памылку
Кліент, які не можа стварыць інтэрфейс, гаворыць пра гэта ў сваім журнале, звычайна ў першых некалькіх радках. Кліент, які стварае яго, а затым не можа прайсці аўтэнтыфікацыю, ужо цалкам мінуў пытанне прылады, і далейшае паляванне на TAP марнуе сеанс.
Трымайце арыгінальны профіль і працоўную канфігурацыю, пакуль замена не будзе даказаная. Адкаціць змену кліента хутка; перабіраць маставую сетку, якую хтосьці разабраў на здагадцы, — не.