OpenVPN рассылае multicast кожнаму кліенту, а не падпісчыкам
Сервер у прасторы карыстальніка капіруе пакет групы на кожнага кліента, а не на падпісчыка. Сплануйце рассылку, дакажыце яе лічыльнікамі тунеля, затым абмяжуйце схему.
"Падтрымлівае multicast" адказвае на пытанне пратаколу і пакідае пытанне ёмістасці некранутым. Аперацыйна важна, колькі копій сервер выпускае на адзін пакет групы і якія тунелі іх нясуць. Адна падпісаная праграма, што атрымлівае паток, даказвае толькі тое, што дастаўка дзесьці працуе. Яна не даказвае, што незацікаўленыя кліенты былі пазбаўлены ад паласы прапускання.
Тры пытанні ўнутры адной заявы пра магчымасць
Сяброўства ў групе пытае, ці далучыўся атрымальнік да групы. Дастаўка праз тунель пытае, ці перасякаў пакет тунель наогул. Палітыка капіравання пытае, колькі копій зрабіў сервер і каму. Заява пастаўшчыка можа быць праўдзівай для першага і маўчаць пра трэцяе, а менавіта там і жыве кошт.
Трымайце іх асобна, калі ацэньваеце памер канала. Толькі трэцяе пытанне задае бюджэт зыходнага трафіку на баку сервера.
Што сервер у прасторы карыстальніка робіць з пакетам групы
У традыцыйным серверы OpenVPN 2.6 у прасторы карыстальніка прыбылы пакет шырокавяшчальнага або multicast тыпу класіфікуецца на ўваходным шляху TUN/TAP і перадаецца працэдуры шырокавяшчальнага разгалінавання, а не пашуку па групе. Гэтая працэдура перабірае асобнікі кліентаў, прапускае адпраўніка і любы прыпынены асобнік, прымяняе сваю праверку VLAN там, дзе яна настроена, і ставіць копію ў чаргу для кожнага астатняга кліента. Ніводзін крок у гэтым цыкле не звяртаецца да табліцы сяброўства. Гэта капіраванне ў шырокавяшчальным стылі, і гэта ўвесь механізм.
Разглядайце гэта як уласцівасць таго шляху кода, а не як універсальны закон. Паскораныя шляхі даных, іншыя рэалізацыі і розныя версіі могуць паводзіць сябе інакш, і нішто з гэтага не робіць TAP патрабаваннем або рамонтам.
Сплануйце копіі да таго, як нешта мераць
Вазьміце хуткасць карыснай нагрузкі і памножце на колькасць прыдатных кліентаў. Паток, што дасылае адзін мегабіт за секунду дваццаці кліентам, стварае дваццаць мегабіт за секунду нагрузкі, якая пакідае сервер, да інкапсуляцыі, перадачы і любых выдаткаў на кліента. Гэтая арыфметыка — бюджэт, а не вымярэнне вашага разгортвання.
ip -s link show tun0Прачытайце лічыльнік байтаў перадачы да і пасля фіксаванага інтэрвалу з адным вядомым актыўным адпраўніком. Падзяліце на інтэрвал і параўнайце з хуткасцю нагрузкі, памножанай на колькасць кліентаў. Лік, блізкі да хуткасці аднаго патоку, азначае, што капіраванне абмежаванае; лік, блізкі да памножанай хуткасці, азначае, што кожны кліент атрымлівае копію.
Лічыльнік уключае і ваш уласны трафік тунеля, таму трымайце акно тэсту кароткім, а хост у іншым стане ціхім. Дакладнасць менш важная за парадак велічыні, і гэта ўсё, што трэба, каб адрозніць адну копію ад дваццаці.
Тэст з двума кліентамі, які вырашае пытанне абсягу
Падключыце адзін кліент, які павінен атрымліваць паток, і другі, які не павінен. Запусціце адпраўнік, затым назірайце за лічыльнікамі тунеля другога кліента на працягу таго ж інтэрвалу. Рост на другім кліенце — прамое сведчанне шырокага капіравання, што б ні казаў спіс магчымасцей.
Адфільтруйце захоп па адрасе групы, каб не чытаць старонні трафік, і абмяжуйце яго інтэрфейсам тунеля. Захоп фізічнага інтэрфейса на занятым хосце стварае файл, які ніхто не можа інтэрпрэтаваць, і можа захаваць даныя карыстальнікаў, якія вы не збіраліся збіраць.
Затым памяняйце ролі. Калі вынік ідзе за атрымальнікам, а не за групай, вы бачыце нешта, што ўлічвае сяброўства, і папярэдняе меркаванне было памылковым на вашу карысць.
Выбар абмежаванай схемы замест зняцця абмежаванняў
Калі разгалінаванне занадта шырокае, выпраўленне — гэта падтрыманая схема абмежаванага размеркавання, а не выдаленне ўсіх кантроляў, якія ў вас ёсць. Варыянты ўключаюць перанос пункта размеркавання бліжэй да атрымальнікаў, выкарыстанне мадэлі падпіскі, прывязанай да крыніцы, якая нясе ідэнтычнасць крыніцы разам з групай, або падзел патоку так, каб незацікаўленыя сайты ніколі не апынуліся на адной мяжы размеркавання.
Трымайце ідэнтычнасць крыніцы і групы асобна ад простага факту, што пункт прызначэння з'яўляецца multicast. Атрымальнік, які пазнае групу, але не крыніцу, — гэта іншы падпісчык, чым той, хто запытаў пэўны канал. Змешванне двух робіць наступнае планаванне ёмістасці здагадкай.
Мадэль канала multicast, прывязаная да крыніцы — гэта арыенцір для гэтага адрознення. Якую б схему вы ні выбралі, запішыце набор прыдатных аднагодкаў, уладальніка капіравання і лічыльнік, які вы прачытаеце наступным разам; менавіта гэты запіс ператварае нечаканасць з паласой прапускання ў вядомы кошт.