Адзін і той жа ідэнтыфікатар IKEv2 на двух iPhone? Яны падключаюцца па чарзе
Адзін профіль, скапіяваны на дзве прылады, дае шлюзу аднаго peer замест двух. Назірайце, як табліца peer запаўняецца і пусцее, потым выдайце значэнне для кожнай прылады.
Два тэлефоны, адзін профіль і карціна, якая выглядае звышнатуральнай, пакуль хтосьці не паглядзіць на шлюз. Адна прылада трымае тунель, другая падключаецца, і першая губляе яго за секунды. Першая перападключаецца, другая адвальваецца. Эканомію батарэі, Wi-Fi-роўмінг і NAT аператара вінавацяць, а сапраўдная прычына сядзіць у тэкставым полі, скапіяваным разам з усім астатнім. IKEv2 вызначае peer па імені, і абодва тэлефоны прад'яўляюць адно і тое ж імя.
Асоба — гэта ключ, пад якім сервер захоўвае вас
Унутры абмену IKEv2 кожны бок заяўляе, хто ён: ініцыятар шле лакальны ідэнтыфікатар, адказваючы адказвае сваім, а таксама правярае заяўленую ініцыятарам асобу на адпаведнасць палітыцы. Шлюз захоўвае стан па асобе, а не па прыладзе, бо прылада — не тое, што ён бачыць. Таму два тэлефоны з адным ідэнтыфікатарам прыходзяць як адзін peer, і другі абмен мусіць перазапісаць першы. Праблема з'яўляецца толькі тады, калі абедзве ў выкарыстанні, таму тэст з адным тэлефонам ніколі яе не паўтарае.
Нішто з гэтага не памылка кліента. Кліент адправіў менавіта тое, што профіль сказаў яму адправіць.
Як сутыкненне выглядае з боку шлюза
Глядзіце на спіс peer, пакуль абодва тэлефоны ўключаны і выкарыстоўваюцца. Сутыкненне паказвае адзін запіс, адрас якога змяняецца, калі тэлефоны мяняюцца, а лічыльнік актыўных сесій ніколі не дасягае двух. Разрыў па запыце выглядае інакш, і адрозніць іх дапамагае адно назіранне, а не тэорыя.
| Observation | Shared identity | Idle teardown |
|---|---|---|
| Peer entries while both are awake | One, with a changing address | One per phone, or none |
| What triggers the drop | The other device connecting | Time without traffic |
| What restores it | The other device disconnecting | Any app needing the tunnel |
Запішыце абедзве падзеі з адзнакамі часу, пакуль гэта адбываецца. Разрыў, які супадае з падключэннем іншага апарата, паказвае на ідэнтыфікатар, а разрыў праз адзін інтэрвал прастою пасля апошняга пакета — на таймер.
Адкуль бяруцца дублікаты
Экспарт адной працоўнай канфігурацыі і праўка толькі адраса сервера ствараюць другі файл, у якім усё яшчэ ёсць асоба першага файла. Гэта звычайны шлях да такой няўдачы, і ён звычайна здараецца, калі спешна падключаюць невялікую групу.
Назвы палёў робяць гэта лёгкім прапусціць. Аддалены ідэнтыфікатар называе шлюз, якога чакае тэлефон, і капіяваць яго правільна. Лакальны ідэнтыфікатар называе гэты апарат для шлюза, і капіяванне гэтага значэння — уся праблема.
Выдавайце значэнне для кожнай прылады
Выкарыстоўвайце нешта ўнікальнае для апарата і стабільнае на ўвесь яго тэрмін службы, напрыклад ідэнтыфікатар прылады з інвентара або значэнне, якое ваша сістэма кіравання генеруе для кожнай рэгістрацыі. Этыкетка аддзела, агульнае імя сэрвіснага ўліковага запісу або адрас электроннай пошты карыстальніка сутыкаюцца, як толькі ў гэтай асобы з'яўляецца другая прылада.
Генеруйце карысную нагрузку для кожнай прылады, а не распаўсюджвайце адзін файл. Запісвайце, якое значэнне належыць якому апарату, каб замена не аднаўляла стары профіль і не вяртала новы тэлефон адразу ў тое ж сутыкненне.
Праверце і бок сервера. Шлюз, які суадносіць асобу з фіксаваным адрасам тунеля, можа ўсё яшчэ сутыкацца, калі два розныя ідэнтыфікатары атрымліваюць адно і тое ж прызначэнне, таму пераканайцеся, што ў пуле ёсць месца і што прызначэнні не замацаваныя за карыстальнікам.
Праверце, калі абодва тэлефоны ўключаны
Падключыце першы, дасягніце прыватнага рэсурсу, потым падключыце другі і пакіньце абодва ў прастоі на хвіліну. Абедзве сесіі павінны захавацца, а спіс peer — паказваць дзве асобы. Потым заблакуйце і разблакуйце кожны тэлефон, каб пацвердзіць, што выпадак прастою па-ранейшаму працуе.
Калі адна сесія ўсё яшчэ разрываецца раз на дзень, а іншае нічога не падключаецца, асоба больш не падазроная. Пераходзьце да таймераў прастою і лімітаў сесій сервера замест чарговай праўкі профілю.