Ответ от сервера идентификации задерживается l2 как исправить
Перейти к содержимому

Ответ от сервера идентификации задерживается l2 как исправить

  • автор:

Saved searches

Use saved searches to filter your results more quickly

Cancel Create saved search

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.

SysMsgId.ini

Latest commit

History

3139 lines (3139 loc) · 181 KB

SysMsgId.ini

File metadata and controls

3139 lines (3139 loc) · 181 KB
//для L2PacketHack 3.5+
// Список системных сообщений LA2
// by (c) x33team
// соучастники:
// Be3geBJIa3 (allcheats.ru)
0 =Соединение с сервером потеряно.
1 =Сервер будет отключен через $s1 сек. Пожалуйста, выйдите из игры.(Выход из игры: $)
2 =Пользователя $1s не существует.
3 =Пользователь $1s не в игре.
4 =Невозможно принять в клан самого себя.
5 =Клан $1s уже существует.
6 =Клана $1s не существует.
7 =Вы уже состоите в клане $1s.
8 =Вы уже состоите в другом клане.
9 =$1s не является главой клана.
10 =$1s уже состоит в клане.
11 =Нет заявок на вступление в клан.
12 =Информация о заявках на вступление в клан не точна.
13 =Вы не можете расформировать клан, т.к. подали заявку на осаду замка.
14 =Вы не можете расформировать клан, т.к. владеете замком или холлом клана.
15 =Вы в зоне осады.
16 =Вы вне зоны осады.
17 =Осада замка началась.(Начало осады!)
18 =Осада замка закончилась.(Конец осады!)
19 =Сменился владелец замка!
20 =Ворота открыты.(Ворота открывают)
21 =Ворота разрушены.(Ворота разрушены)
22 =Цель находится слишком далеко.
23 =Недостаточно HP.
24 =Недостаточно MP.
25 =Восстановление HP.
26 =Восстановление MP.
27 =Чтение заклинания прервано.
28 =Получено: $s1 аден.
29 =Получено: $s1 ($s2 шт.)
30 =Получено: $s1.
31 =Вы не можете двигаться, когда сидите.
32 =Вы не можете вступить в битву. Пожалуйста, перейдите к ближайшей точке перезапуска.
33 =Невозможно двигаться во время чтения заклинания.
34 =Добро пожаловать в мир Lineage II.
35 =Нанесено $s1 урона.
36 =$s1 наносит Вам $s2 урона.
37 =$s1 наносит Вам $s2 урона.
38 =Начинается ивент TGS2002!
39 =Ивент TGS2002 закончился. Большое спасибо за участие!
40 =Из-за того, что это TGS демо, персонаж возродится немедленно.
41 =Вы натягиваете тетиву.
42 =Вы увернулись от атаки противника $s1.
43 =Вы промахнулись.
44 =Критический удар!
45 =Получено: $s1 опыта.
46 =Вы используете: $s1.
47 =Используется: $s1.
48 =$s1: идет перезарядка.
49 =Надето: $s1.
50 =Нет цели.
51 =Вы не можете использовать это на себя.
52 =Получено: $s1 аден.
53 =Присвоено: $s1 ($s2 шт.)
54 =Присвоено: $s1.
55 =Нельзя поднять: $s1 аден.
56 =Нельзя поднять: $s1.
57 =Нельзя поднять: $s1 ($s2 шт.)
58 =Нельзя получить: $s1 аден.
59 =Нельзя получить: $s1.
60 =Нельзя получить: $s1 ($s2 шт.)
61 =Ничего не произошло.
62 =$s1: улучшение удалось.
63 =+$s1 $s2: улучшение удалось.
64 =$s1: произошла кристаллизация.
65 =+$s1 $s2: произошла кристаллизация.
66 =$s1 приглашает Вас в группу. Вы согласны?
67 =$s1 приглашает Вас в клан $s2. Вы согласны?
68 =Выйти из клана $s1? После этого нельзя вступить в другой клан в течение 24 ч.

69 =Исключить из клана персонажа $s1? После этого нельзя принимать в клан других персонажей в течение 24 ч.

70 =Распустить клан $s1?
71 =$s1: сколько шт. выкинуть?
72 =$s1: сколько шт. переместить?
73 =$s1: сколько шт. уничтожить?
74 =$s1 — уничтожить?
75 =Логин не существует.
76 =Неправильный пароль.
77 =Нельзя создать персонажа. Удалите уже существующего и повторите попытку.
78 =Удалить персонажа $s1?
79 =Такое имя уже используется.
80 =Введите имя персонажа (максимум 16 символов).
81 =Выберите расу.
82 =Выберите профессию.
83 =Выберите пол.
84 =Вы не можете атаковать в мирной зоне.
85 =Вы не можете атаковать цель в мирной зоне.
86 =Введите логин.
87 =Введите пароль.
88 =Другая версия протокола. Пожалуйста, завершите программу.
89 =Другая версия протокола. Пожалуйста, продолжайте.
90 =Невозможно соединиться с сервером.
91 =Выберите прическу.
92 =Закончился эффект: $s1.
93 =Недостаточно SP.
94 =Copyright NCsoft Corporation. All Rights Reserved.
95 =Получено: $s1 опыта и $s2 SP.
96 =Уровень увеличен!
97 =Невозможно переместить предмет.
98 =Невозможно выбросить предмет.
99 =Невозможно передать/продать предмет.
100 =$s1 предлагает сделку. Принять?
101 =Во время боя нельзя выйти из игры.
102 =Во время боя нельзя перезапустить игру.
103 =Игрок с данным именем уже в игре.
104 =Нельзя надевать предметы во время использования умений.
105 =Вы приглашаете в группу персонажа $s1.
106 =Вы присоединились к группе.
107 =$s1 присоединяется к группе.
108 =$s1 выходит из группы.
109 =Неверная цель.
110 =Вы ощущаете эффект: $s1.
111 =Вы удачно блокировали удар.
112 =Стрелы закончились.
113 =$s1: нельзя сейчас использовать.
114 =Вы зашли в Тень Древа Жизни.
115 =Вы вышли из Тени Древа Жизни.
116 =Вы зашли в мирную зону.
117 =Вы вышли из мирной зоны.
118 =Вы предложили сделку персонажу $s1.
119 =$s1 отказывается от сделки.
120 =$s1: обмен начался.
121 =$s1 подтверждает сделку.
122 =Нельзя изменять предметы, если сделка подтверждена.
123 =Обмен успешно завершен.
124 =$s1 отменяет сделку.
125 =Завершить игру?
126 =Выйти в меню выбора персонажа?
127 =Связь с сервером прервалась. Пожалуйста, зайдите в игру позже.
128 =Не удалось создать персонажа.
129 =Все ячейки в инвентаре заняты.
130 =Все ячейки в хранилище заняты.
131 =$s1 заходит в игру.
132 =$s1 добавляется в список друзей.
133 =$s1 удаляется из списка друзей.
134 =Пожалуйста, проверьте список друзей.
135 =$s1 не отвечает на Ваше приглашение.
136 =Вы не ответили на приглашение персонажа $s1.
137 =Больше нет предметов, привязанных к ярлыку.
138 =Не удалось назначить ярлык.
139 =Умение $s2 не подействовало на цель $s1.
140 =Недостаточно MP, действие умения прекращено.
141 =Нельзя изменять предметы, если сделка подтверждена.
142 =Вы уже обмениваетесь с другим персонажем.
143 =$s1 обменивается с другим персонажем.
144 =Неправильная цель.
145 =Этого персонажа нет в игре.
146 =Блокировка чата снята.
147 =Чат заблокирован.
148 =Нельзя использовать квестовые предметы.
149 =Во время сделки нельзя поднимать/использовать предметы.
150 =Нельзя выбросить/уничтожить предметы во время сделки.
151 =Слишком далеко, нельзя выбросить предмет.
152 =Нельзя пригласить выбранную цель.
153 =$s1 занимается чем-то другим.
154 =Приглашать в группу может только ее лидер.
155 =Группа заполнена.
156 =Поглощение удачно только на 50%.
157 =Поглощение персонажа $s1 не оказало на Вас воздействия.
158 =Неудачная атака.
159 =Магия персонажа $s1 не оказала на Вас воздействия.
160 =$s1 уже состоит в другой группе.
161 =Персонажа нет в игре.
162 =Хранилище находится слишком далеко.
163 =Нельзя уничтожить предмет, задано неверное количество.
164 =Ожидание ответа.
165 =Нельзя добавить себя в список друзей.
166 =Нельзя создать список друзей. Попробуйте позже.
167 =$s1 уже находится в списке друзей.
168 =$s1 хочет добавить Вас в список друзей.
169 =Принять дружбу? 0/1 (1 — да, 0 — нет)
170 =Персонажа, которого Вы хотите добавить в друзья, нет в игре.
171 =$s1 не входит в Ваш список друзей.
172 =Недостаточно денег для оплаты хранилища.
173 =Недостаточно денег для оплаты услуги.
174 =У персонажа в инвентаре нет места.
175 =HP полностью восстановились, и умение дезактивировалось.
176 =Игрок заблокировал принятие личных сообщений.
177 =Принятие сообщений заблокировано.
178 =Принятие сообщений разблокировано.
179 =Нельзя выбросить здесь предмет.
180 =Дней до удаления: $s1. Отменить удаление?
181 =Цели не видно.
182 =Отменить текущий квест?
183 =На сервере слишком много игроков. Попробуйте зайти позже.
184 =Попробуйте зайти позже.
185 =Выберите персонажа, которого хотите пригласить в группу.
186 =Выберите персонажа, которого хотите пригласить в клан.
187 =Выберите персонажа, которого хотите исключить.
188 =Введите название клана.
189 =Клан создан.
190 =Не удалось создать клан.
191 =$s1 исключается из клана.
192 =$s1: исключение не удалось.
193 =Клан расформирован.
194 =Не удалось расформировать клан.
195 =Вы вступили в клан.
196 =$s1 отказывается вступить в клан.
197 =Вы покинули клан.
198 =Не удалось покинуть клан $s1.
199 =Вы исключены из клана и можете вступить в другой только через 24 ч.
200 =Вы вышли из группы.
201 =$s1 исключается из группы.
202 =Вас исключили из группы.
203 =Группа расформирована.
204 =Неправильное имя. Попробуйте еще раз.
205 =Неправильное имя персонажа. Попробуйте еще раз.
206 =Введите название клана, которому хотите объявить войну.
207 =$s2 из клана $s1 объявляет Вам войну. Согласиться?
208 =Укажите расширение файла и путь к нему.
209 =Неверный размер рисунка. Пожалуйста, поменяйте размер на 16*12.
210 =Файл не найден. Пожалуйста, введите заново точный путь к нему.
211 =Файл — формат bmp, 256 цветов, размер 16*12.
212 =Вы не состоите в клане.
213 =Недоступно. Пожалуйста, попробуйте позже.
214 =Титул изменен.
215 =Началась война с кланом $s1.(Война кланов нач)
216 =Война с кланом $s1 закончилась.(Война кланов зак)
217 =Вы выиграли войну с кланом $s1!(Наш клан победил)
218 =Вы капитулировали в войне с кланом $s1.(Наш клан проигра)
219 =Глава клана убит. Вы проиграли войну с кланом $s1.(Наш клан проигра)
220 =До окончания войны: $s1 мин.(Война кланов зак)
221 =Время войны истекло. Война закончилась.(Война закончена!)
222 =$s1 вступает в клан.
223 =$s1 выходит из клана.
224 =$s1 не отвечает. Приглашение на вступление в клан отменено.
225 =Вы не ответили персонажу $s1. Приглашение на вступление в клан отменено.
226 =Клан $s1 не ответил. Объявление войны отменено.
227 =Вы не ответили клану $s1. Война не была объявлена.
228 =Предложение завершить войну отклонено.
229 =Пока Вы не можете создать клан.
230 =Нельзя создать новый клан в течение 10 дней после расформирования предыдущего.
231 =После исключения персонажа из клана нужно подождать 24 ч, перед тем как принять другого.
232 =Нельзя вступить в новый клан в течение 24 ч после выхода из предыдущего.
233 =Клан переполнен.
234 =Цель должна состоять в клане.
235 =Вы не можете распоряжаться правами.
236 =Это может сделать только глава клана.
237 =Невозможно найти главу клана.
238 =Не в клане.
239 =Глава клана не может покинуть клан.
240 =Сейчас идет война кланов.
241 =Главы клана $s1 нет в игре.
242 =Выберите цель.
243 =Нельзя объявить войну союзному клану.
244 =У Вас нет прав на объявление войны.
245 =С момента отказа от войны не прошло 5 дней. Продолжить?
246 =Этот клан уже воюет.
247 =Вы уже воевали с кланом $s1. Перед повторным объявлением войны должно пройти 5 дней.
248 =В клане $s1 слишком мало персонажей. Невозможно объявить войну.
249 =Капитулировать в войне с кланом $s1?
250 =Вы сдались клану $s1. Война закончена.
251 =Вы уже в состоянии войны. Нельзя объявить войну другому клану.
252 =Введите название клана, которому хотите сдаться.
253 =Введите название клана, которому предлагаете мир.
254 =Глава клана не может сдаться.
255 =Клан $s1 предлагает мир. Согласиться?
256 =Введите звание.
257 =Предложить мир клану $s1?
258 =Вы не участвуете в войне.
259 =Выберите члена клана из списка.
260 =После окончания войны кланов не прошло 5 дней, репутация клана понизилась.
261 =Неверное название клана.
262 =Неверная длина названия клана.
263 =Вы уже подали заявку на расформирование клана.
264 =Нельзя расформировать клан во время войны.
265 =Нельзя расформировать клан во время осады.
266 =Нельзя расформировать клан, владеющий холлом/замком.
267 =Нет заявки на расформирование клана.
268 =Персонаж уже состоит в клане.
269 =Вы не можете исключить себя.
270 =Вы уже капитулировали.
271 =Изменение титулов возможно при уровне клана 3 и выше.
272 =Установка эмблемы доступна при уровне клана 3 и выше.
273 =Объявление войны возможно при уровне клана 3 и выше.
274 =Уровень клана увеличен.
275 =Не удалось увеличить уровень умений клана.
276 =Не хватает материалов, чтобы выучить умение.
277 =Выучено умение: $s1.
278 =Недостаточно SP для изучения умения.
279 =Недостаточно аден.
280 =Нет предметов на продажу.
281 =Недостаточно денег для оплаты хранилища.
282 =В хранилище нет предметов.
283 =Вы зашли в боевую зону.
284 =Вы вышли из боевой зоны.
285 =Победил клан $s1!
286 =Ваша база атакована.
287 =Противники пытаются захватить Вашу базу.
288 =Врата замка разрушены.(Врата разрушены!)
289 =Нельзя поставить еще одну базу.
290 =Невозможно поставить базу здесь.
291 =Клан $s1 завоевал $s2!
292 =$s1 объявляет время осады замка.
293 =Регистрация на осаду замка $s1 завершена.
294 =Ваш клан не участвует в осаде. Нельзя создать базу.
295 =Осада замка $s1 отменена из-за отсутствия заявок.
296 =Получено $s1 урона из-за падения с высоты.
297 =Получено $s1 урона от удушья.
298 =Вы выронили: $s1.
299 =$s1 получает: $s2 ($s3 шт.)
300 =$s1 получает: $s2.
301 =Исчезло: $s1 ($s2 шт.)
302 =Исчезло: $s1.
303 =Выберите предмет для улучшения.
304 =Член клана $s1 зашел в игру.
305 =Персонаж отказался присоединиться к группе.
306 =Удаление персонажа не удалось.
307 =Нельзя торговать со Смотрителем Склада.
308 =Персонаж отказался присоединиться к клану.
309 =Исключение члена клана прошло успешно.
310 =Исключение члена клана не удалось.
311 =Предложение войны между кланами принято.
312 =Предложение войны между кланами отклонено.
313 =Предложение о завершении войны принято.
314 =Капитуляция не удалась.
315 =Нельзя выйти из войны.
316 =Нельзя выйти из группы.
317 =Нельзя исключить персонажа из группы.
318 =Нельзя расформировать группу.
319 =Нельзя открыть дверь.
320 =Вам не удалось открыть дверь.
321 =Не заперто.
322 =Укажите цену продажи.
323 =Ваша сила увеличена до $s1 уровня.
324 =Ваша сила достигла максимального уровня.
325 =Труп уже исчез.
326 =Выберите цель из списка.
327 =Нельзя ввести больше 80 символов.
328 =Максимальная длина заголовка — 128 символов.
329 =Максимальный объем текста — 3000 символов.
330 =Максимальная длина ответа — 128 символов.
331 =Получено: $s1 SP.
332 =Хотите возродиться?
333 =Получено $s1 урона от барьера Ядра.
334 =Введите сообщение.
335 =$s1: отменено.
336 =$s1: продолжить кристаллизацию?
337 =Заряд Души не соответствует рангу оружия.
338 =Недостаточно Зарядов Души.
339 =Нельзя использовать Заряд Души.
340 =Личная лавка открыта.
341 =Недостаточно материалов.
342 =Ваше оружие наполнено силой.
343 =Цель не оценена. Не удалось ничего присвоить.
344 =Сила духов недоступна.
345 =Чат включен.
346 =Чат отключен.
347 =Неверное количество предметов.
348 =Неверная цена предмета.
349 =Личная лавка закрыта.
350 =Предмет продан.
351 =Неверное количество предмета.
352 =Неверный предмет.
353 =Нельзя купить.
354 =Улучшение отменено.
355 =Нельзя улучшить в этих условиях.
356 =Воскрешение отменено.
357 =Цель уже оценена.
358 =До окончания осады замка: $s1 ч.
359 =До окончания осады замка: $s1 мин.
360 =До окончания осады замка: $s1 сек.(Конец осады: $s1)
361 =Сверхудар!
362 =Получено дополнительно $s1 опыта за сверхудар.
363 =До разблокировки чата: $s1 мин.
364 =Введите имя персонажа для поиска.
365 =Вы уверены?
366 =Выберите цвет волос.
367 =Нельзя удалить персонажа, состоящего в клане.
368 =Надето: +$s1 $s2.
369 =Получено: +$s1 $s2.
370 =Нельзя поднять: +$s1 $s2.
371 =Получено: +$s1 $s2.
372 =Нельзя получить: +$s1 $s2.
373 =+$s1 $s2 — уничтожить?
374 =+$s1 $s2 — кристаллизировать?
375 =Вы уронили: +$s1 $s2.
376 =$s1 получает: +$s2 $s3.
377 =+$s1 $s2 исчезает.
378 =$s1 покупает: $s2.
379 =$s1 покупает: +$s2 $s3.
380 =$s1 покупает: $s2 ($s3 шт.).
381 =Нельзя подключиться к серверу петиций.
382 =В данный момент на игре нет Игровых мастеров.
383 =Запрос о завершении консультации на сервере петиций подтвержден.
384 =Клиента нет в игре.
385 =Запрос о начале консультации на сервер обращений подтвержден.
386 =Минимальный размер сообщения — 6 символов.
387 =Служба поддержки ответила на Вашу заявку. \nПожалуйста, прокомментируйте качество обслуживания.
388 =На данный момент не ведется консультаций.
389 =Ваша заявка принята. \n — Номер заявки: $s1.
390 =Вы не можете подать больше 1 заявки.
391 =Заявка №$s1 отменена.
392 =На данный момент ведется консультация.
393 =Не удалось отменить заявку. Пожалуйста, попробуйте позже.
394 =Беседа с игроком $s1 началась.
395 =Беседа с игроком $s1 закончилась.
396 =Измените временный пароль на сайте и зайдите в игру.
397 =Аккаунт не оплачен.
398 =Истекло оплаченное время игры на Вашем аккаунте.
399 =Ошибка системы.
400 =$s1 — выбросить?
401 =У Вас слишком много квестов.
402 =Безбилетный проезд запрещен.
403 =Превышен лимит аден.
404 =Уровень умения «Создать Предмет» слишком низок для регистрации рецепта.
405 =Общая стоимость слишком высока.
406 =Заявка принята.
407 =Петиция находится в стадии проверки.
408 =Установка осады
409 =Выбор времени: $s1 ч $s2 мин $s3 сек.
410 =Регистрация осады
411 =Время регистрации: $s1 ч $s2 мин $s3 сек.
412 =Начало осады: $s1 ч $s2 мин $s4 сек.
413 =Окончание осады: $s1 ч $s2 мин $s5 сек.
414 =Ожидание осады
415 =В процессе осады
416 =Нельзя обменять.
417 =Снято: $s1.
418 =Цена предмета слишком высока по сравнению со стандартной. Пожалуйста, измените цену.
419 =До окончания использования: $s1 мин.
420 =Время истекло.
421 =Этот аккаунт уже в игре.
422 =Превышен лимит веса.
423 =Вы отменили процесс улучшения.
424 =Несоответствие условий свитка улучшения.
425 =Уровень умения «Создать Предмет» слишком низок для регистрации рецепта.

426 =От администрации компьютерного клуба поступила жалоба, что Ваша учетная запись была замечена на компьютере с неоплаченным временем.

427 =Пожалуйста, свяжитесь со службой поддержки.

428 =В соответствии с политикой компании, Ваш аккаунт был заблокирован за подозрение в нелегальной деятельности/присвоении чужих данных. Если Вы не считаете себя виновным, посетите наш сайт и обратитесь в службу поддержки для подачи апелляции.

429 =В соответствии с политикой компании, Ваш аккаунт был заблокирован за ложный доклад о присвоении аккаунта. Такие доклады могут навредить честным игрокам. За дополнительной информацией обратитесь в службу поддержки на сайте.

430 =(перевод не нужен)

431 =Ваш аккаунт был заблокирован за нарушение Пользовательского Соглашения. В случае несоблюдения условий соглашения со стороны пользователя компания имеет право заблокировать его учетную запись. За дополнительной информацией обратитесь в службу поддержки

432 =Ваш аккаунт был заблокирован на 7 дней (со дня оглашения) в соответствии с Пользовательским Соглашением за проведение денежных операций (или их попытку) с игровыми предметами, персонажами (аккаунтами) или игровой валютой. Через 7 дней Ваш аккаунт автом

433 =Ваш аккаунт был заблокирован в соответствии с Пользовательским Соглашением за обмен (или попытку обмена) игровых предметов/персонажей на наличные деньги или предметы из другой игры. За дополнительной информацией обратитесь в службу поддержки на сайте.\

434 =Ваш аккаунт был заблокирован в соответствии с Пользовательским Соглашением за непристойное поведение или мошенничество. За дополнительной информацией обратитесь в службу поддержки на нашем сайте.

435 =Ваш аккаунт был заблокирован в соответствии с Пользовательским Соглашением за непристойное поведение. За дополнительной информацией обратитесь в службу поддержки на нашем сайте.

436 =Ваш аккаунт был заблокирован в соответствии Пользовательским Соглашением за злоупотребление игровой системой и использование ошибок игры с целью получения выгоды. Использование ошибок нарушает игровой баланс. За дополнительной информацией обратитесь в

437 =Ваш аккаунт был заблокирован в соответствии с Пользовательским Соглашением за использование нелегального программного обеспечения. За дополнительной информацией обратитесь в службу поддержки на нашем сайте.

438 =Ваш аккаунт был заблокирован в соответствии с Пользовательским Соглашением за попытку выдать себя за представителя службы поддержки или штатного сотрудника компании. За дополнительной информацией обратитесь в службу поддержки на нашем сайте.

439 =В соответствии с Пользовательским Соглашением и политикой компании этот аккаунт заблокирован по просьбе владельца. Если у Вас есть вопросы по поводу аккаунта, обратитесь в службу поддержки на нашем сайте.

440 =Вы зарегистрированы как несовершеннолетний, и Ваш аккаунт был заблокирован по просьбе ваших родителей или опекунов. За дополнительной информацией обратитесь в службу поддержки на нашем сайте.

441 =В соответствии с Пользовательским Соглашением данный аккаунт был заблокирован. Если у Вас есть вопросы касательно этого аккаунта, обратитесь в службу поддержки на нашем сайте.

442 =Ваш аккаунт был заблокирован в соответствии с Пользовательским Соглашением за присвоение платы другого аккаунта. За дополнительной информацией обратитесь в службу поддержки на нашем сайте.

443 =Подлинность Вашего аккаунта не была подтверждена, потому его действие сейчас приостановлено. Для подтверждения подлинности, пожалуйста, вышлите нам данные аккаунта, Ваши личные данные, копию документа, удостоверяющего Вашу личность, и контактную информ

Новые возможности Windows Server 2016

В этой статье описаны некоторые новые функции Windows Server 2016, которые, скорее всего, окажут наибольшее влияние во время работы с этим выпуском.

Службы вычислений

Область виртуализации охватывает продукты для виртуализации и средства разработки, развертывания и поддержки Windows Server для ИТ-специалистов.

Общие

Преимущества для физических и виртуальных машин — повышена точность времени благодаря усовершенствованию служб синхронизации Win32 Time и Hyper-V Time. В Windows Server теперь можно разместить службы, которые будут соответствовать растущим стандартам точности времени (1 мс относительно времени UTC).

Hyper-V

Виртуализация сети Hyper-V (HNV) — это базовый стандартный блок обновленного решения Программно-определяемой сети (SDN) Корпорации Майкрософт и полностью интегрирован в стек SDN. Windows Server 2016 включает следующие изменения для Hyper-V:

  • Windows Server 2016 теперь включает программируемый коммутатор Hyper-V. Сетевой контроллер Майкрософт отправляет политики HNV вниз к агенту узла, работающему на каждом узле, с помощью протокола управления базами данных Open vSwitch (OVSDB) в качестве интерфейса southBound (SBI). Агент узла сохраняет эту политику с помощью настройки схемы VTEP и программ сложных правил потока в подсистему выполнения потоков в коммутаторе Hyper-V. Подсистема потоков в коммутаторе Hyper-V совпадает с тем, что использует Azure. Весь стек SDN через сетевой контроллер и поставщик сетевых ресурсов также согласуется с Azure, что делает его производительность сравнимой с общедоступным облаком Azure. В подсистеме потоков Майкрософт коммутатор Hyper-V оснащен для обработки правил потока без отслеживания состояния и отслеживания состояния с помощью простого механизма действия сопоставления, определяющего способ обработки пакетов в коммутаторе.
  • Теперь HNV поддерживает инкапсуляцию протокола Virtual eXtensible Local Area Network (VXLAN). HNV использует протокол VXLAN в режиме распространения MAC через сетевой контроллер Майкрософт для сопоставления IP-адресов клиента с ip-адресами физической подложки. Разгрузки задач NVGRE и VXLAN поддерживают сторонние драйверы для повышения производительности.
  • Windows Server 2016 включает подсистему балансировки нагрузки программного обеспечения (SLB) с полной поддержкой трафика виртуальной сети и простого взаимодействия с HNV. Подсистема потоков производительности реализует подсистему балансировки нагрузки в плоскости данных v-Switch, а затем сетевой контроллер управляет им для сопоставлений виртуальных IP-адресов или динамических IP-адресов (DIP).
  • HNV реализует правильные заголовки Ethernet L2, чтобы обеспечить взаимодействие с сторонними виртуальными и физическими (модуль), которые зависят от отраслевых протоколов. Корпорация Майкрософт гарантирует, что все передаваемые пакеты имеют соответствующие значения во всех полях для обеспечения взаимодействия. HNV требует поддержки кадров Jumbo (MTU > 1780) в физической сети L2, чтобы учитывать затраты на пакеты, введенные протоколами инкапсуляции, такими как NVGRE и VXLAN. Поддержка Jumbo Frame гарантирует, что гостевые Виртуальные машины подключены к виртуальная сеть HNV поддерживают 1514 MTU.
  • Поддержка контейнеров Windows добавляет улучшения производительности, упрощенное управление сетями и поддержку контейнеров Windows в Windows 10. Дополнительные сведения см. в разделе «Контейнеры:Docker», «Windows» и «Тенденции».

Nano Server

Новые возможности сервера Nano Server. Теперь Nano Server имеет обновленный модуль для создания образов Nano Server, включая больше разделения функций физического узла и гостевой виртуальной машины и поддержки различных выпусков Windows Server.

Существуют также улучшения консоли восстановления, включая разделение правил брандмауэра для входящего и исходящего трафика и возможность восстановления конфигурации WinRM.

Экранированные виртуальные машины

Windows Server 2016 предоставляет новые экранированные виртуальные машины на основе Hyper-V для защиты любой виртуальной машины поколения 2 от скомпрометированной структуры. В число функций, реализованных в Windows Server 2016, входят следующие:

  • Новый режим Поддержка шифрования обеспечивает более надежную защиту, чем для обычной виртуальной машины, но менее надежную, чем режим Экранирование. При этом он поддерживает vTPM, шифрование дисков, шифрование трафика динамической миграции и другие компоненты, в том числе такие преимущества непосредственного администрирования структуры, как подключение консоли виртуальной машины и Powershell Direct.
  • Полная поддержка для преобразования существующих неэкранированных виртуальных машин второго поколения в экранированные виртуальные машины, в том числе автоматическое шифрование дисков.
  • Диспетчер виртуальных машин Hyper-V теперь отображает структуры, в которых авторизованы для выполнения экранированные виртуальные машины. Это позволяет администратору структуры открыть предохранитель ключа (KP) экранированной виртуальной машины и просмотреть структуры, в которых ей разрешено выполнение.
  • Вы можете переключать режимы аттестации на выполняющиеся службы защиты узла. Теперь вы можете немедленно переключаться между менее безопасной, но более простой аттестацией для Active Directory и аттестацией для доверенного платформенного модуля.
  • Комплексные средства диагностики на основе Windows PowerShell, которые позволяют обнаружить неверные настройки или ошибки в защищенных узлах Hyper-V и службе защиты узла.
  • Среда восстановления, которая обеспечивает средства безопасного устранения неполадок и восстановления экранированных виртуальных машин в обычной структуре их выполнения. Она предоставляет тот же уровень защиты, что и собственно экранированная виртуальная машина.
  • Поддержка службы защиты узла для существующего безопасного Active Directory — вы можете указать службе защиты узла использовать существующий лес Active Directory вместо создания собственного экземпляра Active Directory.

Дополнительные сведения и инструкции по работе с экранированными виртуальными машинами см. в статье Защищенная структура и экранированные виртуальные машины.

Идентификация и доступ

Новые компоненты удостоверения повышают уровень защиты окружений Active Directory для организаций, а также помогают перейти к развертываниям только для облачной среды и гибридным развертываниям, в которых некоторые приложения и службы размещены в облаке, а другие — на локальном компьютере.

Службы сертификатов Active Directory

Для служб сертификатов Active Directory (AD CS) в Windows Server 2016 увеличена поддержка аттестации ключей доверенного платформенного модуля. Теперь можно использовать KSP смарт-карты для аттестации ключей. Для устройств, не присоединенных к домену, теперь можно использовать регистрацию NDES, чтобы получить сертификат, который можно аттестовать для ключей в доверенном платформенном модуле.

Доменные службы Active Directory

Доменные службы Active Directory содержат усовершенствования, которые помогут организациям обеспечить безопасность сред Active Directory и повысить эффективность выполнения задач по управлению удостоверениями для корпоративных и персональных устройств. Дополнительные сведения см. в статье Новые возможности доменных служб Active Directory (AD DS) в Windows Server 2016.

службы федерации Active Directory;

В состав служб федерации Active Directory (AD FS) в Windows Server 2016 включены новые возможности, которые позволяют настраивать AD FS для проверки подлинности пользователей, хранящихся в каталогах LDAP. Дополнительные сведения см. в статье Новые возможности служб федерации Active Directory.

Прокси-сервер веб-приложения

Последняя версия прокси-службы веб-приложения обеспечивает новые возможности для публикации и предварительной проверки подлинности дополнительных приложений, а также удобство работы пользователей. Ознакомьтесь с полным списком новых возможностей, включающих предварительную проверку подлинности многофункциональных клиентских приложений, таких как Exchange ActiveSync, и домены с подстановочными знаками для упрощения публикации приложений SharePoint. Дополнительные сведения см. в статье Прокси-служба веб-приложения в Windows Server 2016.

Администрирование

Область управления и автоматизации содержит средства и справочную информацию, которые необходимы ИТ-специалистам для запуска выпуска Windows Server 2016 и управления им, в том числе Windows PowerShell.

Windows PowerShell 5.1 содержит важные новые компоненты, в том числе поддержку разработки с использованием классов и новые средства безопасности, которые расширяют возможности использования, повышают удобство использования и упрощают комплексное управление средами для Windows. Подробные сведения см. в статье Заметки о выпуске Windows Management Framework (WMF) 5.x.

Новые функции в Windows Server 2016: возможность запускать PowerShell.exe локально на сервере Nano Server (теперь доступ не только удаленный), новые командлеты для локальных пользователей и групп для замены графического интерфейса пользователя, реализована поддержка отладки PowerShell, а также поддержка ведения и расшифровки журнала безопасности и JEA в Nano Server.

Ниже приведены некоторые другие новые функции администрирования.

Настройка требуемого состояния (DSC) PowerShell в Windows Management Framework (WMF) 5

Windows Management Framework 5 включает в себя обновления для настройки требуемого состояния (DSC) Windows PowerShell, службы удаленного управления Windows (WinRM) и инструментария управления Windows (WMI).

Дополнительные сведения о тестировании возможностей DSC в Windows Management Framework 5 см. в серии записей блога Validate features of PowerShell DSC (Проверка компонентов PowerShell DSC). Чтобы скачать Windows Management Framework 5.1, перейдите в этот раздел.

Унифицированное управление пакетами PackageManagement для обнаружения программного обеспечения, установки и инвентаризации

Windows Server 2016 и Windows 10 включает новую функцию PackageManagement (раньше она называлась OneGet). С ее помощью ИТ-специалисты и разработчики могут автоматизировать удаленные или локальные операции обнаружения, установки и инвентаризации ПО. При этом не важно, какая технология установщика используется и где это ПО расположено.

Усовершенствования PowerShell для облегчения цифровых расследований и снижения угроз безопасности

Чтобы помочь группе, расследующей нарушения безопасности (ее иногда называют «blue team»), мы добавили функции ведения журналов PowerShell и другие функциональные возможности цифровых расследований, а также возможности для сокращения числа уязвимостей в скриптах, например ограниченный режим в PowerShell и безопасные API CodeGeneration.

Дополнительные сведения см. в статье, посвященной PowerShell на стороне синих.

Сеть

Эта область сети охватывает сетевые продукты и компоненты, позволяющие ИТ-специалистам проектировать, развертывать и обслуживать Windows Server 2016.

Программно-определяемая сеть

Теперь доступны зеркалирование и маршрутизация трафика для новых или существующих виртуальных модулей. Вместе с распределением брандмауэра и групп безопасности сети вы получаете возможность динамически сегментировать и защищать рабочие нагрузки так же, как в Azure. Кроме того, вы можете развертывать целый стек программно конфигурируемой сети (SDN) и управлять ими с помощью System Center Virtual Machine Manager. И, наконец, с помощью Docker вы можете управлять сетью контейнеров Windows Server и связывать политики SDN не только с виртуальными машинами, но и с контейнерами. Дополнительные сведения см. в статье, посвященной планированию инфраструктуры программно-конфигурируемой сети.

Повышенная производительность TCP

Начальный период перегрузки (ICW) по умолчанию был увеличен с 4 до 10, а также была реализована функция TCP Fast Open (TFO). TFO сокращает время, необходимое для установки TCP-соединения, а увеличенный период ICW позволяет передавать более крупные объекты в рамках начальной отправки. Такое сочетание может значительно снизить время, необходимое для передачи интернет-объекта между клиентом и облаком.

Чтобы улучшить поведение TCP при восстановлении после потери пакетов, мы реализовали функции Tail Loss Probe (TLP) и Recent Acknowledgement (RACK). TLP позволяет преобразовать время ожидания повторной передачи в быстрое восстановление, а RACK сокращает время, необходимое быстрому восстановлению для повторной передачи потерянного пакета.

Безопасность и контроль

Область безопасности и контроля включает решения и компоненты в области безопасности, которые ИТ-специалисты могут развертывать в центре обработки данных и облачном окружении. Общие сведения о безопасности в Windows Server 2016 см. в статье Безопасность и контроль.

Администрирование по принципу «необходимого минимума»

Just Enough Administration в Windows Server 2016 — это технология безопасности, позволяющая делегировать администрирование всех компонентов, которыми можно управлять через Windows PowerShell. Возможности включают в себя поддержку выполнения с сетевым удостоверением, подключения через PowerShell Direct, безопасное копирование файлов из конечных точек JEA или в них, а также настройку консоли PowerShell для запуска в контексте JEA по умолчанию. Дополнительные сведения см. в статье о JEA на GitHub.

Credential Guard

Для защиты секретов Credential Guard использует безопасность на основе виртуализации, чтобы только привилегированное системное ПО могло получать доступ к этим данным. Дополнительные сведения см. в разделе «Защита производных учетных данных домена с помощью Credential Guard».

Credential Guard для Windows Server 2016 включает следующие обновления для сеансов пользователей, вошедшего в систему:

  • Kerberos и New Technology LAN Manager (NTLM) используют безопасность на основе виртуализации для защиты секретов Kerberos amd NTLM для сеансов пользователей, вошедшего в систему.
  • Диспетчер учетных данных защищает сохраненные учетные данные домена с помощью безопасности на основе виртуализации. Учетные данные входа и сохраненные учетные данные домена не передаются удаленным узлам с помощью удаленного рабочего стола.
  • Вы можете включить Credential Guard без блокировки единого расширяемого интерфейса встроенного ПО (UEFI).

Удаленный Credential Guard

Credential Guard поддерживает сеансы RDP, чтобы учетные данные пользователя оставались на стороне клиента и не предоставлялись на стороне сервера. Это также обеспечивает единый вход для удаленного рабочего стола. Дополнительные сведения см. в разделе «Защита производных учетных данных домена с помощью Credential Guard в Защитнике Windows».

Remote Credential Guard для Windows Server 2016 включает следующие обновления для пользователей, вошедшего в систему:

  • Remote Credential Guard сохраняет секреты Kerberos и NTLM для учетных данных пользователя, выполнившего вход на клиентском устройстве. Все запросы проверки подлинности с удаленного узла для оценки сетевых ресурсов, так как пользователю требуется клиентское устройство использовать секреты.
  • Remote Credential Guard защищает предоставленные учетные данные пользователя при использовании удаленного рабочего стола.

Защита домена

Теперь для защиты домена требуется домен Active Directory.

Поддержка устройства, присоединенного к домену, для проверки подлинности с помощью открытого ключа

Если присоединенное к домену устройство может зарегистрировать связанный открытый ключ с контроллером домена Windows Server 2016 (DC), устройство может пройти проверку подлинности с помощью открытого ключа с помощью проверки подлинности Kerberos PKINIT в контроллере домена Windows Server 2016.

Присоединенные к домену устройства с привязанными открытыми ключами, зарегистрированными в контроллере домена Windows Server 2016, теперь могут проходить проверку подлинности на контроллере домена Windows Server 2016 с помощью протоколов Шифрования открытого ключа Kerberos для начальной проверки подлинности (PKINIT).

Центры распространения ключей (KDCs) теперь поддерживают проверку подлинности с помощью доверия ключей Kerberos.

Дополнительные сведения см. в статье «Новые возможности проверки подлинности Kerberos».

Поддержка расширения PKINIT Freshness

Клиенты Kerberos теперь пытаются использовать расширение свежести PKINIT для входа на основе открытого ключа.

Теперь KDCs поддерживают расширение свежести PKInit. Однако по умолчанию они не предлагают расширение свежести PKINIT.

Дополнительные сведения см. в статье «Новые возможности проверки подлинности Kerberos».

Скользящий открытый ключ только секреты NTLM пользователя

Начиная с уровня функциональных возможностей домена Windows Server 2016 (DFL), контроллеры домена теперь поддерживают развертывание секретов NTLM для пользователя только с открытым ключом. Эта функция недоступна на более низких уровнях функционирования домена (DFLs).

Добавление контроллера домена, включенного до обновления 8 ноября 2016 г. в домен, поддерживающий развертывание секретов NTLM, может привести к сбою контроллера домена.

Для новых доменов эта функция включена по умолчанию. Для существующих доменов необходимо настроить его в Администратор центре Active Directory.

В центре Администратор istrative Active Directory щелкните правой кнопкой мыши домен в левой области и выберите «Свойства«. Выберите элемент проверка box Enable rolling of expiring NTLM secret во время входа для пользователей, которым требуется использовать Windows Hello для бизнеса или смарт-карта для интерактивного входа. После этого нажмите кнопку «ОК «, чтобы применить это изменение.

Разрешение сетевого NTLM, если пользователь ограничен определенными устройствами, присоединенными к домену

Теперь контроллеры домена могут поддерживать разрешение сети NTLM, если пользователь ограничен определенными устройствами, присоединенными к домену, в Windows Server 2016 DFL и выше. Эта функция недоступна в DFLs под управлением более ранней операционной системы, чем Windows Server 2016.

Чтобы настроить этот параметр, в политике проверки подлинности выберите разрешить проверку подлинности сети NTLM, если пользователь ограничен выбранными устройствами.

Дополнительные сведения см. в разделе «Политики проверки подлинности» и силосы политик проверки подлинности.

Device Guard (целостность кода)

Device Guard обеспечивает целостность кода режима ядра (KMCI) и целостность кода пользовательского режима (UMCI) путем создания политик, которые указывают, какой код может выполняться на сервере. См. сведения в статье Windows Defender Application Control and virtualization-based protection of code integrity (Управление приложениями в Защитнике Windows и безопасность целостности кода на основе виртуализации).

Защитник Windows

Обзор Защитника Windows для Windows Server 2016. В Windows Server 2016 установлено и включено по умолчанию ПО защиты от вредоносных программ Windows Server Antimalware, однако пользовательский интерфейс для этого ПО не установлен. Тем не менее, Windows Server Antimalware будет обновлять определения для антивредоносного ПО и защищать компьютер без пользовательского интерфейса. Если вам требуется пользовательский интерфейс для Windows Server Antimalware, его можно установить после установки операционной системы, воспользовавшись мастером добавления ролей и компонентов.

Защита потока управления

Защита потока управления (CFG) — это компонент безопасности платформы, предназначенный для борьбы с уязвимостями на базе повреждения памяти. Дополнительные сведения см. в статье Защита потока управления.

Хранилище

служба хранилища в Windows Server 2016 включает новые функции и улучшения программно-определяемого хранилища, а также для традиционных файловых серверов. Ниже представлено лишь несколько новых функций, дополнительные сведения см. в статье Новые возможности хранилища в Windows Server 2016.

Локальные дисковые пространства

Локальные дисковые пространства позволяют создавать масштабируемые хранилища с высоким уровнем доступности с помощью серверов с локальным хранилищем. Они упрощают развертывание и администрирование программно-определяемых систем хранения данных и открывают возможность использования дисковых устройств новых классов, например SATA SSD и NVMe. Ранее для кластерных дисковых пространств с общими дисками это было невозможно.

Дополнительные сведения см. в статье Локальные дисковые пространства.

Реплика хранилища

служба хранилища реплика позволяет выполнять синхронизацию реплика хранения между серверами или кластерами для аварийного восстановления и растяжения отказоустойчивого кластера между сайтами. Синхронная репликация позволяет зеркально отображать данные в физических расположениях с отказоустойчивыми томами, что полностью предотвращает потерю данных на уровне файловой системы. Асинхронная репликация позволяет использовать физические расположения за пределами города, но при этом вероятна потеря данных.

Дополнительные сведения см. в статье Реплика хранилища.

Качество обслуживания хранилища

Функцию качества обслуживания хранилища (QoS) теперь можно использовать для централизованного отслеживания общей производительности хранилища, а также для создания политик управления с помощью Hyper-V и кластеров CSV в Windows Server 2016.

Дополнительные сведения см. в статье Качество обслуживания хранилища.

Отказоустойчивая кластеризация

Windows Server 2016 включает множество новых функций и улучшений для нескольких серверов, сгруппированных в один отказоустойчивый кластер с помощью функции отказоустойчивой кластеризации. Дополнения приведены ниже; более полный список см. в статье Новые возможности отказоустойчивой кластеризации в Windows Server 2016.

Последовательное обновление ОС кластера

Последовательное обновление ОС кластера позволяет администратору обновлять ОС узлов кластера с Windows Server 2012 R2 до Windows Server 2016, не останавливая рабочие нагрузки Hyper-V или масштабируемого файлового сервера. Благодаря этой функции можно избежать штрафов за простои, которые полагаются согласно соглашениям об уровне обслуживания.

Облако-свидетель.

Облако-свидетель — это новый тип свидетеля кворума отказоустойчивого кластера в Windows Server 2016, который использует Microsoft Azure в качестве точки арбитража. Облако-свидетель, как любой другой свидетель кворума, получает голос и может участвовать в подсчете кворума. Вы можете настроить облако-свидетель в качестве свидетеля кворума с помощью мастера настройки кворума кластера.

Дополнительные сведения см. в статье Развертывание облака-свидетеля.

Служба работоспособности

Служба работоспособности улучшает повседневные операции, мониторинг и обслуживание ресурсов кластера в локальных дисковых пространствах.

Дополнительные сведения см. в статье Служба работоспособности.

Разработка приложений

Службы IIS 10.0

Новые возможности веб-сервера IIS 10.0 в Windows Server 2016:

  • Поддержка протокола HTTP/2 в стеке сети и интеграция с IIS 10.0, благодаря которой веб-сайты IIS 10.0 могут автоматически обрабатывать запросы HTTP/2 для поддерживаемых конфигураций. Если сравнивать с результатами использования HTTP/1.1, увеличена эффективность повторного использования подключений, уменьшена задержка, улучшено время загрузки веб-страниц.
  • Возможность запускать службы IIS 10.0 и управлять ими в Nano Server. Сведения об IIS на сервере Nano Server.
  • Поддержка заголовков узла с подстановочными знаками, благодаря которой администраторы могут настроить веб-сервер для домена так, чтобы этот веб-сервер обрабатывал запросы и для поддоменов.
  • Новый модуль PowerShell (IISAdministration) для управления IIS.

Дополнительные сведения см. в разделе IIS.

Координатор распределенных транзакций (MSDTC)

В Microsoft Windows 10 и Windows Server 2016 добавлены три новые возможности:

  • Диспетчер ресурсов может использовать новый интерфейс для метода Rejoin, чтобы определить результат сомнительной транзакции после перезагрузки базы данных из-за ошибки. Дополнительные сведения см. в статье о IResourceManagerRejoinable::Rejoin.
  • Максимальный размер DSN-имени увеличен с 256 до 3072 байтов. Дополнительные сведения см. в статьях об IDtcToXaHelperFactory::Create, IDtcToXaHelperSinglePipe::XARMCreate и IDtcToXaMapper::RequestNewResourceManager.
  • Улучшенная трассировка позволяет задать раздел реестра, чтобы включить путь к файлу образа в имя файла tracelog, чтобы можно было определить, какой файл tracelog следует проверка. Дополнительные сведения о настройке диагностической трассировки для MSDTC на компьютере под управлением Windows см. в этой статье.

DNS-сервер

Windows Server 2016 содержит следующие обновления для DNS-сервера.

Политики DNS

Политики DNS можно настроить, чтобы указать, как DNS-сервер отвечает на запросы DNS. Вы можете настроить ответы DNS на основе IP-адреса клиента, времени дня и нескольких других параметров. Политики DNS могут включать dns с учетом расположения, управление трафиком, балансировку нагрузки, разделенный мозг DNS и другие сценарии. Дополнительные сведения см. в руководстве по сценарию политики DNS.

RRL

Вы можете включить ограничение скорости отклика (RRL) на DNS-серверах, чтобы предотвратить использование DNS-серверов для инициирования атаки распределенного отказа в обслуживании (DDoS) на DNS-клиенте. RRL не позволяет DNS-серверу отвечать на слишком много запросов одновременно, что защищает его во время сценариев, когда ботнет отправляет несколько запросов одновременно, чтобы попытаться нарушить работу сервера.

Поддержка DANE

Вы можете использовать поддержку проверки подлинности на основе DNS именованных сущностей (DANE) (RFC 6394 и RFC 6698), чтобы указать, какой центр сертификации dns-клиентов должен ожидать сертификатов от доменных имен, размещенных на DNS-сервере. Это предотвращает форму атаки «злоумышленник в середине», в которой злоумышленник поврежден кэш DNS и указывает DNS-имя на собственный IP-адрес.

Поддержка неизвестной записи.

Вы можете добавить записи, которые DNS-сервер не поддерживает явно с помощью функции неизвестной записи. Запись неизвестна, если DNS-сервер не распознает его формат RDATA. Windows Server 2016 поддерживает неизвестные типы записей (RFC 3597), поэтому вы можете добавлять неизвестные записи в зоны DNS-сервера Windows в двоичном формате в формате провода. Сопоставитель кэширования окон уже может обрабатывать неизвестные типы записей. DNS-сервер Windows не выполняет обработку для неизвестных записей, но может отправлять их в ответ на полученные запросы.

Корневые подсказки IPv6

Теперь DNS-сервер Windows включает в себя корневые подсказки IPv6, опубликованные центром назначения номеров Интернета (IANA). Поддержка корневых подсказок IPv6 позволяет выполнять интернет-запросы, использующие корневые серверы IPv6 для разрешения имен.

Поддержка Windows PowerShell

Windows Server 2016 включает новые команды, которые можно использовать для настройки DNS в PowerShell. Дополнительные сведения см. в модуле DnsServer Windows Server 2016 и модуле Windows Server 2016 DnsClient.

DNS-клиент

Служба DNS-клиента теперь обеспечивает расширенную поддержку компьютеров с несколькими сетевыми интерфейсами.

Многодомовые компьютеры также могут использовать привязку службы DNS-клиента для улучшения разрешения сервера:

  • При использовании DNS-сервера, настроенного в определенном интерфейсе для разрешения DNS-запроса, DNS-клиент привязывается к интерфейсу перед отправкой запроса. Эта привязка позволяет DNS-клиенту указать интерфейс, в котором должно выполняться разрешение имен, оптимизируя обмен данными между приложениями и DNS-клиентом через сетевой интерфейс.
  • Если DNS-сервер, который вы используете, был назначен параметром групповой политики из таблицы политики разрешения имен (NRPT), служба DNS-клиента не привязывается к указанному интерфейсу.

Изменения в службе DNS-клиента в Windows 10 также присутствуют на компьютерах под управлением Windows Server 2016 и более поздних версий.

Службы удаленного рабочего стола

Службы удаленных рабочих столов (RDS) внесли следующие изменения для Windows Server 2016.

Совместимость приложений

RDS и Windows Server 2016 совместимы со многими приложениями Windows 10, создавая интерфейс пользователя, почти идентичный физическому рабочему столу.

База данных SQL Azure

Брокер удаленного рабочего стола (RD) Подключение ion Broker теперь может хранить все сведения о развертывании, такие как состояния подключения и сопоставления узлов пользователей, в общей базе данных Azure язык SQL (SQL). Эта функция позволяет использовать высокодоступную среду без использования группы доступности AlwaysOn SQL Server. Дополнительные сведения см. в статье «Использование базы данных SQL Azure для удаленного рабочего стола» Подключение среды высокого уровня доступности брокера.

Графические улучшения

Дискретное назначение устройств для Hyper-V позволяет сопоставлять единицы обработки графики (GPU) на хост-компьютере непосредственно с виртуальной машиной. Все приложения на виртуальной машине, которым требуется больше GPU, чем виртуальная машина может предоставить, могут использовать сопоставленный GPU. Мы также улучшили виртуальные машины RemoteFX vGPU, включая поддержку OpenGL 4.4, OpenCL 1.1, разрешение 4K и виртуальные машины Windows Server. Дополнительные сведения см. в разделе «Дискретное назначение устройства».

Улучшения брокера Подключение удаленных рабочих столах

Мы улучшили, как RD Подключение ion Broker обрабатывает подключение во время штормов входа, которые являются периодами запросов на высокий вход от пользователей. Брокер Подключение удаленных рабочих столах теперь может обрабатывать более 10 000 одновременных запросов на вход! Улучшения обслуживания также упрощают обслуживание развертывания, быстро добавляя серверы в среду после того, как они будут готовы вернуться в сеть. Дополнительные сведения см. в разделе «Улучшенная производительность брокера удаленного рабочего стола Подключение ion».

Изменения протокола RDP 10

Протокол удаленного рабочего стола (RDP) 10 теперь использует кодек H.264/AVC 444, который оптимизирует как видео, так и текст. Этот выпуск также включает поддержку удаленного взаимодействия пера. Эти новые возможности позволяют удаленному сеансу чувствовать себя как локальный сеанс. Дополнительные сведения см. в улучшениях RDP 10 AVC/H.264 в Windows 10 и Windows Server 2016.

Личные рабочие столы сеансов

Личные рабочие столы сеансов — это новая функция, которая позволяет размещать собственный личный рабочий стол в облаке. Администратор устративные привилегии и выделенные узлы сеансов удаляют сложность сред размещения, в которых пользователи хотят управлять удаленным рабочим столом, например локальным рабочим столом. Дополнительные сведения см. в разделе «Личные рабочие столы сеансов».

System Design 101

В шпаргалке на высоком уровне рассматриваются такие вещи, как протоколы коммуникации, DevOps, CI/CD, архитектурные паттерны, базы данных, кэширование, микросервисы (и монолиты), платежные системы, Git, облачные сервисы etc. Особую ценность представляют диаграммы — рекомендую уделить им пристальное внимание. Полагаю, шпаргалка будет интересна всем, кто хоть как-то связан с разработкой программного обеспечения и, прежде всего, веб-приложений. Буду признателен за помощь в уточнении/исправлении понятий, терминологии, логики/алгоритмов работы систем (в рамках того, что по этому поводу содержится в оригинале), а также в обнаружении очепяток.

Выражаю благодарность Анне Неустроевой за помощь в редактировании материала.

Возможно, немного другой формат шпаргалки покажется вам более удобным.

  • Протоколы
    • REST и GraphQL
    • gRPC
    • Webhook
    • Производительность API
    • HTTP 1.0 -> HTTP 1.1 -> HTTP 2.0 -> HTTP 3.0 (QUIC)
    • SOAP, REST, GraphQL и RPC
    • Сначала код и сначала API
    • Коды статусов HTTP
    • Шлюз API
    • Эффективное и безопасное API
    • Инкапсуляция TCP/IP
    • Почему NGINX называют «обратным» прокси?
    • Алгоритмы балансировки нагрузки
    • URL, URI и URN
    • CI/CD простыми словами
    • Технический стек Netflix (конвейер CI/CD)
    • MVC, MVP, MVVM, MVVM-C и VIPER
    • 18 основных архитектурных паттернов
    • 8 структур данных, улучшающих работу баз данных
    • Выполнение инструкции SQL в базе данных
    • Теорема CAP
    • Типы памяти и хранилищ данных
    • Визуализация запроса SQL
    • Язык SQL
    • Кэширование данных
    • Причины высокой производительности Redis
    • Случаи использования Redis
    • Стратегии кэширования
    • Типичная микросервисная архитектура
    • Лучшие практики микросервисов
    • Типичный технический стек микросервисов
    • Причины высокой производительности Kafka
    • Почему кредитную карту называют «самым выгодным продуктом банка»? Как VISA/Mastercard делают деньги?
    • Принцип работы VISA
    • DevOps, SRE и Platform Engineering
    • Что такое Kubernetes?
    • Docker и Kubernetes
    • Принцип работы Docker
    • Принцип работы команд Git
    • Принцип работы Git
    • Git merge и git rebase
    • Популярные облачные сервисы по состоянию на 2023 год
    • Облачная нативность
    • Визуализация файлов JSON
    • Автоматические преобразование кода в архитектурные диаграммы
    • Файловая система Linux
    • 18 основных команд Linux
    • Принцип работы HTTPS
    • OAuth 2.0 простыми словами
    • 4 наиболее распространенных механизмов аутентификации
    • Сессия, куки, JWT, SSO и OAuth
    • Безопасное хранение паролей в базе данных и их валидация
    • JWT (JSON Web Token) простыми словами
    • Принцип работы Google Authenticator и других типов двухфакторной аутентификации
    • Технический стек Netflix
    • Архитектура Twitter по состоянию на 2022 год
    • Эволюция архитектуры Airbnb в течение последних 15 лет
    • Монорепозиторий и микрорепозитории
    • Архитектура Stack Overflow
    • Почему Amazon Prime Video Monitoring перешел с бессерверной архитектуры на монолит? Как это может сэкономить 90% стоимости?
    • Как Disney Hotstar удалось собрать 5 миллиардов смайлов во время турнира?
    • Как Discord хранит триллионы сообщений?
    • Как работают прямые видеотрансляции на YouTube, TikTok Live или Twitch?

    Протоколы

    Архитектура (дизайн) определяет, как разные компоненты приложения взаимодействуют друг с другом. Она обеспечивает эффективность, надежность и легкость интеграции с другими системами путем предоставления стандартного подхода к проектированию и разработке API. Наиболее популярными архитектурами являются следующие:

    • SOAP:
      • зрелый, всесторонний, основанный на XML
      • хорошо подходит для корпоративных приложений
      • популярный, легкий в реализации, основанный на методах HTTP
      • хорошо подходит для веб-сервисов
      • язык запросов (query language), позволяющий запрашивать данные избирательно (частично)
      • меньше нагрузка на сеть, более быстрые ответы от сервера
      • современный, высокопроизводительный, основанный на буферах протоколов (protocol buffers)
      • хорошо подходит для микросервисов
      • двусторонний, позволяет обмениваться данными в реальном времени, соединение остается открытым
      • хорошо подходит для обмена данными небольшого размера
      • основанный на событиях и коллбэках HTTP, асинхронный
      • хорошо подходит для систем уведомлений

      REST и GraphQL

      Сравнение REST и GraphQL:

      • GraphQL – это язык запросов для API, разработанный Meta. Он предоставляет полное описание данных в API и позволяет клиенту запрашивать только то, что ему нужно
      • сервер GraphQL является посредником между клиентом и сервером. GraphQL может агрегировать несколько запросов REST в один запрос (и request, и query в переводе на русский означают «запрос»). Сервер GraphQL организует ресурсы в граф (отсюда и название)
      • GraphQL поддерживает запросы, мутации (модификация ресурсов) и подписки (получение уведомлений о модификациях)

      gRPC

      RPC (Remote Procedure Call – удаленный вызов процедур) называется «удаленным», поскольку обеспечивает взаимодействие между удаленными сервисами, когда они находятся на разных серверах в микросервисной архитектуре. С точки зрения пользователя это выглядит, как вызов локальной функции.

      На диаграмме представлен поток данных (flow) gRPC:

      1. Клиент отправляет REST-запрос. Тело запроса (request body) содержит данные в формате JSON (как правило).
        2-4. Сервис заказов (order service) (клиент gRPC) получает запрос, преобразует его и отправляет запрос RPC сервису оплаты (payment service) (сервер gRPC). gRPC кодирует данные клиента в двоичный формат и отправляет их в низкоуровневый транспортный слой (transport layer).
      2. gRPC отправляет пакеты данных (data packages) по сети с помощью HTTP2. Благодаря двоичной кодировке и сетевым оптимизациям gRPC может быть до 5 раз быстрее JSON.
        6-8. Сервис оплаты получает пакеты данных по сети, декодирует их и вызывает серверное приложение.
        9-11. Результат, полученный от серверного приложения, кодируется и отправляется в транспортный слой.
        12-14. Сервис заказов получает пакеты данных, декодирует их и отправляет результат клиентскому приложению.

      Webhook

      Сравнение Polling (опроса) и Webhook:

      Предположим, что у нас есть электронный магазин. Клиенты отправляют заказы в сервис заказов через шлюз API (API Gateway), а сервис заказов обращается к сервису оплаты для выполнения денежных транзакций. Сервис оплаты, в свою очередь, обращается к внешнему провайдеру сервиса оплаты (Payment Service Provider, PSP) для завершения транзакции.

      Существует 2 способа взаимодействия с внешним PSP.

      1. Короткий опрос

      После отправки платежного запроса PSP, сервис оплаты продолжает опрашивать PSP о статусе платежа (путем периодической отправки запросов) до тех пор, пока PSP не сообщит о завершении операции.

      Короткий опрос имеет следующие недостатки:

      • постоянные запросы статуса расходуют ресурсы сервиса оплаты
      • внешний сервис взаимодействует напрямую с сервисом оплаты, что создает уязвимости безопасности
      2. Веб-хуки

      Веб-хук регистрируется во внешнем сервисе. Мы как бы просим внешний сервис сообщить нам об изменениях по запросу по указанному URL. После выполнения операции, PSP отправляет запрос HTTP для обновления статуса платежа.

      Ресурсы сервиса оплаты больше не расходуются на опрос.

      Веб-хуки часто называют реверсивными (reverse) API или push-API, поскольку сервер отправляет запрос HTTP клиенту, а не наоборот.

      При использовании веб-хуков следует уделять пристальное внимание следующим вещам:

      • API должно быть правильно спроектировано для взаимодействия с внешним сервисом
      • в шлюзе API должны быть установлены определенные правила безопасности
      • во внешнем сервисе следует регистрировать правильный URL

      Производительность API

      5 распространенных способов улучшения производительности API:

      Эту оптимизацию применяют в случае большого объема данных. Результат отправляется клиенту по частям (чанкам — chunks) для улучшения отзывчивости сервиса.

      Синхронное логирование работает с диском при каждом вызове и может замедлить систему. Асинхронное логирование отправляет логи в буфер без блокировки (lock-free buffer) и сразу возвращается. Логи записываются на диск с определенной периодичностью. Это существенно снижает нагрузку на ввод/вывод.

      Мы можем сохранять часто запрашиваемые данные в кэше и возвращать их клиентам без повторного обращения к базе данных. Доступ к данным, хранящемся в памяти Redis, например, гораздо быстрее, чем доступ к БД.

      Сжатие полезной нагрузки

      Запросы и ответы могут сжиматься с помощью GZIP и других алгоритмов сжатия. Чем меньше размер данных, тем быстрее они передаются по сети. Таким образом, сжатие ускоряет загрузку и скачивание данных.

      При доступе к ресурсам нам часто приходится загружать данные из БД. Открытие нового подключения к БД – дорогая операция, с точки зрения производительности, поэтому для доступа к БД следует использовать пул открытых (набор существующих) подключений (connection pool). Пул подключений отвечает за управление жизненным циклом соединений.

      HTTP 1.0 -> HTTP 1.1 -> HTTP 2.0 -> HTTP 3.0 (QUIC)

      • HTTP 1.0 был завершен и полностью задокументирован в 1996. Каждый запрос к серверу требует отдельного соединения TCP
      • HTTP 1.1 был опубликован в 1997. TCP-соединение может оставаться открытым для повторного использования (постоянное подключение), но проблема блокировки HOL (head-of-line) остается. Блокировка HOL означает, что когда исчерпан лимит параллельных запросов, новые запросы ждут завершения предыдущих
      • HTTP 2.0 был опубликован в 2015. Он решает проблему HOL путем мультиплексирования запросов на уровне приложения (application layer), но HOL остается на транспортном уровне (transport layer, например, TCP). Как видно на диаграмме, HTTP 2.0 представил концепцию «потоков» (streams) HTTP — абстракция, позволяющая разным запросам HTTP использовать одно соединение TCP. Потоки могут отправляться в разном порядке
      • первый черновик HTTP 3.0 был опубликован в 2020. В качестве нижележащего транспортного протокола вместо TCP в нем используется QUIC, что решает проблему HOL в транспортном слое

      QUIC основан на UDP. Он обеспечивает первоклассную поддержку потоков в транспортном слое. Потоки QUIC используют одно соединение QUIC, поэтому не требуется затрат на рукопожатия (handshakes) и холодные запуски для создания новых соединений. Потоки QUIC доставляются независимо, поэтому в большинстве случаев потеря пакетов в одном потоке не влияет на пакеты в другом потоке.

      SOAP, REST, GraphQL и RPC

      Существуют разные архитектурные стили API, каждый со своими паттернами и стандартами обмена данными:

      Сначала код и сначала API

      Разница между подходами к разработке «Сначала код» и «Сначала API» (Code First, API First):

      • Микросервисы повышают сложность системы. Разные функции системы обслуживаются отдельными сервисами. Хотя такая архитектура облегчает разделение обязанностей, реализация взаимодействия между сервисами является дополнительным вызовом.

      При написании кода следует помнить о сложности системы и аккуратно определять границы (зоны ответственности) сервисов.

      • Отдельные команды разработчиков должны говорить на одном языке. Каждая команда отвечает только за свои компоненты и сервисы. Рекомендуется заранее проектировать дизайн API на уровне организации.

      Для валидации дизайна API перед написанием кода можно использовать фиктивные запросы и ответы.

      • В целом, микросервисная архитектура повышает качество ПО и продуктивность разработчиков. Грамотно спроектированное API позволяет быстрее запускать проект и делает процесс разработки более плавным.

      Улучшается опыт разработки, поскольку разработчики могут сосредоточиться на реализации функционала вместо того, чтобы постоянно заниматься настройкой и интеграцией.

      Снижается вероятность возникновения неприятных сюрпризов на последних этапах жизненного цикла проекта.

      Наличие спроектированного API позволяет писать тесты, не дожидаясь разработки. Отсюда один шаг к разработке на основе тестов (Test Driven Design, TDD).

      Коды статусов HTTP

      Коды ответов(статусов) HTTP делятся на 5 категорий:

      1. Информационные (100-199).
      2. Коды успеха (200-299).
      3. Коды перенаправления (300-399).
      4. Коды ошибок на стороне клиента (400-499).
      5. Коды ошибок на стороне сервера (500-599).

      Шлюз API

      1. Клиент отправляет запрос HTTP в шлюз API (API Gateway).
      2. Шлюз разбирает (парсит) и проверяет атрибуты запроса.
      3. Шлюз выполняет проверки по белому/черному списку ресурсов.
      4. Шлюз обращается к провайдеру идентификации (поставщику удостоверений – Identity Provider) для аутентификации и авторизации.
      5. К запросу применяются правила ограничения частоты запросов (rate limit). При превышении лимита запрос отклоняется.
        6 и 7. После выполнения проверок шлюз определяет сервис, совпадающий с путем роута (route path).
      6. Шлюз преобразует запрос в подходящий протокол и передает его серверным микросервисам.
        9-12. Шлюз отвечает за обработку ошибок, а также провалов, связанных с тем, что решение проблемы требует больше времени (разрыв цепочки — circuit break). Для логирования и мониторинга здесь также может использоваться стек ELK (Elastic-Logstash-Kibana). Здесь же можно реализовать кэширование данных.

      Эффективное и безопасное API

      Типичные проекты/схемы API на примере корзины товаров:

      Обратите внимание, что дизайн API – это не только дизайн URL. Необходимо правильно выбирать названия ресурсов, идентификаторы и паттерны путей (path patterns). Также важно устанавливать правильные заголовки HTTP и эффективные правила ограничения частоты запросов (rate limit).

      Инкапсуляция TCP/IP

      Как данные передаются по сети? Почему в сетевой модели OSI (Open Systems Interconnection – взаимосвязь открытых систем) так много уровней?

      На диаграмме показано, как данные инкапсулируются и распаковываются при передаче по сети.

      1. Когда устройства А передает данные устройству Б по протоколу HTTP, сначала на уровне приложения (application layer) в запрос добавляется заголовок HTTP.
      2. Затем к данным добавляются заголовки TCP или UDP. Они инкапсулируются в сегменты TCP на транспортном уровне (transport layer). Заголовок содержит порт источника (source port), порт назначения (destination port) и номер последовательности (sequential number).
      3. Затем на сетевом уровне (network layer) добавляется заголовок IP. Он содержит адреса IP источника/назначения.
      4. На уровне связи данных (data link layer) в датаграмму (datagram) IP добавляется заголовок MAC с MAC-адресами источника и получателя.
      5. Инкапсулированные кадры (фреймы – frames) попадают на физический уровень (physical layer) и передаются по сети в двоичном виде.
        6-10. При получении битов по сети устройство Б выполняет процесс распаковки, обратный процессу инкапсуляции. Заголовки удаляются слой за слоем, после чего устройство Б может читать данные.

      У каждого уровня своя задача. Каждый уровень извлекает инструкции из соответствующего заголовка, что избавляет от необходимости владеть полной информацией о данных.

      Почему NGINX называют «обратным» прокси?

      Разница между прямым (forward) и обратным (reverse) прокси:

      Прямой прокси – это сервер, находящийся между пользователем и Интернетом.

      Прямой прокси обычно используется для:

      1. Защиты клиентов.
      2. Преодоления ограничений браузера.
      3. Блокировки доступа к определенным ресурсам.

      Обратный прокси – это сервер, принимающий запросы от клиента, передающий их веб-серверу и возвращающий результат клиенту после обработки запроса сервером.

      Обратный прокси хорошо подходит для:

      1. Защиты сервера.
      2. Балансировки нагрузки.
      3. Кэширования статических ресурсов.
      4. Кодирования и декодирования подключений SSL.

      Алгоритмы балансировки нагрузки

      6 наиболее распространенных алгоритмов балансировки нагрузки:

      1. Циклический (round robin) – запросы клиента передаются разным экземплярам сервиса по порядку. Как правило, сервисы не владеют состоянием (stateless).
      2. Липкий (sticky) циклический – улучшение циклического алгоритма. Если первый запрос Алисы передается сервису А, последующие запросы Алисы также передаются этому сервису.
      3. Взвешенный (weighted) циклический – администратор присваивает веса каждому сервису. Чем больше вес, тем больше запросов может обработать сервис.
      4. Хэш – данный алгоритм применяется функцию хэширования к IP или URL входящего запроса. Хэш определяет сервис, которому передается запрос.
      1. Наименьшее количество соединений (least connections) – новый запрос передается экземпляру с наименьшим количеством параллельных подключений.
      2. Наименьшее время ответа (least response time) – новый запрос передается экземпляру с наименьшим временем ответа.

      URL, URI и URN

      Сравнение URL, URI и URN:

      URI расшифровывается как Uniform Resource Identifier (единый идентификатор ресурса). Он определяет логический или физический ресурс в вебе. URL и URN являются подтипами URI. URL определяет локацию (местонахождения) ресурса, а URN — название ресурса.

      URI состоит из следующих частей:

      URL расшифровывается как Uniform Resource Locator (единый указатель ресурсов) и является ключевой концепцией HTTP. Он представляет собой уникальный адрес ресурса в вебе. URL может использоваться с другими протоколами, такими как FTP и JDBC.

      URN расшифровывается как Uniform Resource Name (единое имя ресурса). URN не могут использоваться для локализации ресурса. Простым примером является сочетание пространства имен (namespace) и специфичной для него строки.

      CI/CD

      CI/CD простыми словами

      SDLC (software development life cycle – процесс разработки ПО) состоит из нескольких основных этапов: разработка, тестирование, деплой и поддержка. CI/CD автоматизирует и интегрирует эти этапы для обеспечения более быстрых и надежных релизов.

      Отправка («пуш») кода в репозиторий запускает сборку и тесты. Запускаются тесты непрерывной цепочки (End-to-end, e2e) для валидации кода. Если тестирование проходит успешно, код автоматически разворачивается в стейдже/продакшне. В противном случае, код возвращается на доработку. Эта автоматизация обеспечивает получение быстрой обратной связи разработчиками и снижает риск попадания багов в продакшн.

      Разница между CI и CD

      Continuous Integration (CI) (непрерывная интеграция) автоматизирует процессы сборки, тестирования и объединения («мержа»). Она запускает тесты при каждой фиксации («коммите») кода для обнаружения проблем с интеграцией на ранних стадиях. Это способствует частой фиксации кода и быстрой обратной связи.

      Continuous Delivery (CD) (непрерывная доставка) автоматизирует процессы релиза, такой как изменение инфраструктуры и деплой. Она обеспечивает надежность релизов в любое время с помощью автоматизированного конвейера. CD может также включать необходимость ручного тестирования и подтверждения («апрува») перед деплоем в продакшн.

      Типичный конвейер (pipeline) CI/CD состоит из нескольких этапов:

      • разработчик фиксирует изменения в коде
      • сервер CI регистрирует изменения и запускает сборку
      • код компилируется и тестируется (юнит-тесты, интеграционные тесты etc.)
      • отчет о тестировании отправляется разработчику
      • при успешном тестировании артефакты разворачиваются в промежуточной среде (стейдж)
      • перед релизом могут запускаться дополнительные тесты
      • система CD разворачивает утвержденные изменения в продакшне

      Технический стек Netflix (конвейер CI/CD)

      Планирование: инженеры Netflix используют JIRA для планирования и Confluence для документации.

      Написание кода: основным серверным языком является Java, другие языки используются для разных целей по мере необходимости.

      Сборка: для сборки в основном используется Gradle, для поддержки разных случаев разработаны специальные плагины Gradle.

      Упаковка: пакет и зависимости помещаются в Amazon Machine Image (AMI) для релиза.

      Тестирование: подчеркивает направленность культуры продакшна на создание инструментов хаоса.

      Деплой: Netflix использует собственный Spinnaker для деплоя.

      Мониторинг: метрики мониторинга аккумулируются в Atlas, а для обнаружения аномалий используется Kayenta.

      Отчет об инциденте: инциденты сортируются по приоритету, для обработки инцидентов используется PagerDuty.

      Архитектурные паттерны

      MVC, MVP, MVVM, MVVM-C и VIPER

      • MVC, самый старый паттерн, появился почти 50 лет назад
      • каждый паттерн имеет «view» (V), отвечающий за отображение содержимого и обработку пользовательского ввода
      • большинство паттернов включает «model» (M) для управления данными
      • «controller», «presenter» и «view-model» являются посредниками между слоем отображения и моделью

      18 основных архитектурных паттернов

      Паттерны – это многократно используемые решения распространенных проблем дизайна, обеспечивающие более плавный и эффективный процесс разработки. Они являются проектами/схемами для разработки лучших структур ПО. Наиболее популярными паттернами являются следующие:

      • Abstract Factory (абстрактная фабрика): создатель семьи – создает группы связанных элементов
      • Builder (строитель): мастер лего – создает объекты поэтапно, разделяет создание и отображение
      • Prototype (прототип): создатель клонов – создает копии полностью готовых объектов
      • Singleton (одиночка): единственный и неповторимый – специальный класс, который может иметь только один экземпляр
      • Adapter (адаптер): универсальный плагин – соединяет вещи с разными интерфейсами
      • Bridge (мост): подключатель функций – связывает объекты с функциями
      • Composite (композитор): строитель деревьев – формирует древовидные структуры из простых и сложных частей
      • Decorator (декоратор): настройщик – добавляет возможности в объекты без изменения их ядра
      • Facade (фасад): единый центр обслуживания – представляет целую систему с помощью одного простого интерфейса
      • Flyweight (легковес): хранитель пространства – эффективно распределяет небольшие повторно используемые элементы
      • Proxy (прокси): запасной актер – представляет другой объект, управляет доступом к нему или выполнение операций с ним
      • Chain of Responsibility (цепочка ответственности): эстафета запроса – запрос обрабатывается цепочкой объектов
      • Command (команда): обертка задачи – преобразует запрос в объект, готовый к выполнению операции
      • Iterator (итератор): исследователь коллекций – предоставляет доступ к коллекции элементов по одному
      • Mediator (посредник): коммуникационный хаб – упрощает взаимодействие между разными классами
      • Memento (запоминатель): капсула времени – сохраняет и восстанавливает состояние объекта
      • Observer (наблюдатель): издатель новостей – уведомляет классы об изменениях других объектов
      • Visitor (посетитель): умелый гость – добавляет новые операции в класс без его модификации

      База данных

      Выбор правильной БД для проекта – задача не из простых. Изучение огромного количества возможностей БД, рассчитанных на решение конкретных задач, может быстро утомить.

      Надеемся, что наша диаграмма, как минимум, облегчит начало вашего пути в этом направлении.

      8 структур данных, улучшающих работу баз данных

      Ответ на этот вопрос зависит от того, как БД используется. Индексы данных могут храниться в памяти или на диске. Форматы данных могут быть разными: числа, строки, географические координаты etc. Система может часто читаться или писаться (write-heavy, read-heavy). Все эти факторы влияют на выбор формата индексов БД.

      Наиболее популярные структуры данных, использующиеся для индексации:

      • Skiplist: индексы хранятся в памяти. Используется в Redis
      • Hash index (хэшированный индекс): популярная реализация структуры данных «Карта» (или «Коллекция») (map)
      • SSTable: иммутабельная (неизменяемая) реализация «Карты», хранящаяся на диске
      • LSM дерево: Skiplist + SSTable. Хорошо подходит для частой записи
      • B-дерево: индексы хранятся на диске. Согласованная производительность чтения/записи
      • Inverted index (инвертированный индекс): хорошо подходит для индексации документов. Используется в Lucene
      • Suffix tree (суффиксное дерево): хорошо подходит для поиска строковых паттернов (string patterns)
      • R-дерево: разнонаправленный поиск, такой как поиск ближайшего соседа

      Выполнение инструкции SQL в базе данных

      Разные БД имеют разную архитектуру. Некоторые общие подходы:

      1. Инструкция SQL отправляется в БД через транспортный протокол (например, TCP).
      2. Инструкция передается парсеру команды (command parser), который выполняет ее синтаксический и семантический анализ и генерирует дерево запроса (query tree).
      3. Дерево запроса передается оптимизатору (optimizer). Оптимизатор создает план выполнения (execution plan).
      4. План выполнения передается исполнителю (executor). Исполнитель извлекает данные для выполнения.
      5. Методы доступа (access methods) предоставляют логику получения данных, необходимых для выполнения, извлечения данных из движка хранилища (storage engine).
      6. Методы доступа определяют, является ли инструкция доступной только для чтения. Если да (SELECT), инструкция передается менеджеру буфера (buffer manager) для дальнейшей обработки. Менеджер буфера ищет данные в кэше или файлах.
      7. Если инструкцией является UPDATE или INSERT, она передается менеджеру транзакций (transaction manager) для дальнейшей обработки.
      8. В ходе транзакции данные блокируются (lock mode). За это отвечает менеджер блокировки (lock manager). Блокировка обеспечивает соответствие транзакции принципам ACID.

      Теорема CAP

      Теорема CAP является одним из самых известных терминов в компьютерной науке, но разные разработчики понимают ее по-разному.

      Теорема CAP утверждает, что распределенная система не может одновременно соответствовать всем трем критериям.

      Consistency (согласованность): все клиенты видят одни и те же данные, независимо от того, к какому узлу (node) они подключены.

      Availability (доступность): любой клиент, запросивший данные, получает ответ, даже если какие-то узлы вышли из строя.

      Partition Tolerance (устойчивость к разделению): разделение означает нарушение коммуникации между двумя узлами. Устойчивость означает, что система продолжает работать, несмотря на разделения.

      Формулировка «2 из 3» может быть полезной, но также может вводить в заблуждение.

      1. Выбор базы данных – нелегкая задача. В данном случае нельзя опираться только на теорему CAP. Например, компании не выбирают Cassandra для приложений чата просто потому, что Cassandra является системой AP. Однако Cassandra имеет характеристики, которые делают ее неплохим выбором для хранения сообщений (см. историю Discord в конце).
      2. CAP ограничивает лишь небольшую часть возможностей: идеальная доступность и согласованность при наличии разделения, которое встречается довольно редко.
      3. Теорема утверждает, что возможна 100% доступность и согласованность. На самом деле, речь чаще всего идет о выборе между задержкой и согласованностью при отсутствии сетевого разделения. См. теорему PACELC.

      Является ли теорема CAP полезной?

      Я думаю, что да, поскольку она открывает дискуссию о компромиссах, но это лишь часть всей истории. При выборе БД нам необходимо погружаться в детали с точки зрения функционала приложения.

      Типы памяти и хранилищ данных

      Визуализация запроса SQL

      Инструкции SQL выполняются БД следующим образом:

      • разбор инструкции и ее валидация
      • преобразование SQL во внутренний формат, такой как реляционная алгебра (relational algebra)
      • оптимизация внутреннего представления и создания плана выполнения (execution plan) на основе индексации
      • выполнение плана и возвращение результата

      Выполнение инструкции SQL является сложным процессом, включающем множество соображений, таких как:

      • использование индексов и кэшей
      • порядок объединения таблиц
      • управление конкурентностью
      • управление транзакциями

      Язык SQL

      SQL (Structured Query Language – язык структурированных запросов) был стандартизирован в 1986. В течение следующих 40 лет он стал доминирующим языком для систем управления реляционными базами данных. Последний стандарт называется ANSI SQL 2016.

      SQL включает в себя 5 основных компонентов:

      • DDL: data definition language (язык определения данных) — CREATE, ALTER, DROP
      • DQL: data query language (язык запроса данных) — SELECT
      • DML: data manipulation language (язык манипуляции данными) — INSERT, UPDATE, DELETE
      • DCL: data control language (язык управления данными) — GRANT, INVOKE
      • TCL: transaction control language (язык управления транзакциями) — COMMIT, ROLLBACK

      Разработчик бэкенда должен хорошо знать все эти компоненты. Аналитик данных может ограничиться DQL. Все зависит от того, чем вы занимаетесь.

      Кэш

      Кэширование данных

      Кэширование данных в типичной архитектуре:

      Кэширование данных выполняется на нескольких уровнях:

      1. Клиентские приложения: ответы HTTP могут кэшироваться браузером. Мы запрашиваем данные по HTTP в первый раз, данные возвращаются с политикой истечения срока действия (expiry policy) в заголовке HTTP. Мы запрашиваем данные повторно, клиентское приложение пытается извлечь данные из кэша браузера.
      2. CDN (Content Delivery Network – сеть доставки контента): CDN кэшируют статические веб-ресурсы. Клиенты могут извлекать данные из ближайшего узла CDN.
      3. Балансировщик нагрузки (Load Balancer): балансировщик нагрузки также может кэшировать данные.
      4. Брокер сообщений (Message Broker): брокер сначала записывает сообщения на диск, потребители извлекают их по необходимости. Данные кэшируются в кластерах Kafka, например, в течение времени, определяемого политикой удержания (retention policy).
      5. Сервисы: в сервисах существуют разные уровни кэша. Если данные не кэшированы в кэше CPU, сервис пытается извлечь данные из памяти. Иногда имеется второй слой кэша с хранением данных на диске.
      6. Распределенный кэш (Distributed Cache): Redis, например, хранит в памяти пары ключ-значение для различных сервисов. Операции чтения/записи в Redis выполняются значительно быстрее по сравнению с базой данных.
      7. Полнотекстовый поиск (Full-text Search): Elastic, например, хорошо подходит для поиска документов или отчетов (логов). Поисковый движок выполняет индексацию копии данных.
      8. БД: в БД существуют разные уровни кэша:
        • WAL (Write-ahead Log – журнал упреждающей записи) – данные записываются в WAL перед построением B-дерева
        • Bufferpool – область памяти, выделяемая для кэширования результатов запросов
        • материализованное представление (Materialized View) – предварительное вычисление результатов запросов и их сохранение в таблицах БД для повышения производительности
        • журнал транзакций (Transaction Log) – фиксация всех транзакций и обновлений БД
        • журнал репликации (Replication Log) – фиксация состояния репликации кластера БД

      Причины высокой производительности Redis

      1. Redis – это хранилище данных, основанное на RAM. Доступ к оперативной памяти как минимум в 1000 раз быстрее доступа к диску.
      2. Для повышения эффективности выполнения запросов в Redis используется мультиплексирование ввода/вывода и однопоточный цикл выполнения.
      3. В Redis используется несколько эффективных низкоуровневых структур данных.

      Другим популярным решением для хранения данных в памяти является Memcached.

      Случаи использования Redis

      Redis может использоваться не только для кэширования.

      • Сессии – распределение сессии пользователя между разными сервисами
      • кэш — кэширование объектов или страниц
      • распределенная блокировка (Distributed Lock) – строка Redis может использоваться для блокировки распределенных сервисов
      • счетчик – подсчет количества лайков или чтений статьи
      • ограничение частоты запросов (Rate Limit) – ограничение частоты запросов на основе IP пользователя
      • генератор глобальных идентификаторов
      • корзина товаров – хэш Redis может использоваться для представления пар ключ-значение в корзине товаров
      • вычисление вовлеченности пользователя (User Retention) – Bitmap может использоваться для представления ежедневного входа пользователя в систему и его вовлеченности
      • очередь сообщений (Message Queue)
      • ранжирование–- для сортировки статей может использоваться ZSet

      Стратегии кэширования

      Проектирование крупномасштабных систем обычно предполагает правильных выбор стратегии кэширования. Топ-5 самых популярных стратегий:

      Микросервисная архитектура

      Типичная микросервисная архитектура

      Типичная микросервисная архитектура состоит из следующих частей:

      • балансировщик нагрузки (Load Balancer) – распределяет входящий трафик между сервисами
      • CDN (Content Delivery Network — сеть доставки контента) – группа географически распределенных серверов, содержащих статический контент для быстрой доставки. Клиенты сначала запрашивают данные из CDN и только после этого обращаются непосредственно к сервису
      • шлюз API (API Gateway) – обрабатывает входящие запросы и передает их соответствующим сервисам. Он общается с провайдером идентификации (Identity Provider – поставщик удостоверений) и другими службами
      • провайдер идентификации – обработка аутентификации и авторизации пользователей
      • реестр служб (Service Registry) – отвечает за регистрацию микросервисов для использования другими компонентами системы, такими как шлюз API
      • управление — мониторинг сервисов
      • микросервисы – проектируются и разворачиваются в разных доменах (domains). У каждого домена своя база данных. Шлюз API общается с микросервисами через REST или другие протоколы, микросервисы одного домена общаются между собой через RPC
      • могут быстро проектироваться, разворачиваться и масштабироваться горизонтально
      • каждый домен может независимо поддерживаться отдельной командой
      • бизнес-требования могут кастомизироваться под каждый домен и, как следствие, лучше поддерживаться

      Лучшие практики микросервисов

      9 лучших практик разработки микросервисов:

      1. У каждого микросервиса должно быть свое хранилище данных.
      2. Код каждого сервиса должен быть примерно на одном уровне завершенности.
      3. Каждый сервис должен собираться независимо от других.
      4. У каждого сервиса должно быть своя зона ответственности.
      5. Сервисы должны разворачиваться с помощью контейнеров.
      6. Сервисы не должны хранить состояние (должны быть stateless).
      7. Должен применяться доменно-ориентированный дизайн.
      8. Микрофронтенды.
      9. Окрестрация сервисов.

      Типичный технический стек микросервисов

      • Определение API – определение коммуникации между фронтендом и бэкендом. Для этого может использоваться Postman или OpenAPI.
      • разработка – для разработки фронтенда чаще всего используется React, для разработки бэкенда — Python/PHP/Java/GO etc. Шлюз API (API Gateway) конфигурируется в соответствии с определением API.
      • непрерывная интеграция (Continuous Integration, CI) – для автоматизированного тестирования часто используется JUnit и Jenkins. Код упаковывается в образ Docker и разворачивается в виде микросервисов.
      • Для балансировки нагрузки часто используется Nginx. Cloudflare предоставляет CDN (Content Delivery Network — сеть доставки контента)
      • шлюз API
      • облачная инфраструктура — микросервисы разворачиваются в облаке: AWS, Microsoft Azure, Google GCP etc. Для кэширования данных чаще всего используется Redis, для полнотекстового поиска – Elastic Search
      • взаимодействие между сервисами -–для этого используются брокеры сообщений (Message Broker) вроде Kafka или RPC
      • хранение данных – реляционные, нереляционные базы данных, облачные хранилища etc.
      • управление и мониторинг — для управления микросервисами используются такие инструменты, как Prometheus, Elastic Stack, Kubernetes etc.

      Причины высокой производительности Kafka

      На производительность Kafka влияет множество архитектурных решений. 2 основных:

      1. Последовательный ввод/вывод (Sequential IO).
      2. Принцип нулевого копирования (Zero Copy Principle).

      Диаграмма иллюстрирует, как данные передаются между производителем (producer) и потребителем (consumer), а также что означает принцип нулевого копирования.

      1.1-1.3. Производитель записывает данные на диск.

      1. Потребитель читает данные без нулевого копирования.
        2.1. Данные загружаются с диска в кэш операционной системы.
        2.2. Данные копируются из кэша ОС в приложение Kafka.
        2.3. Приложение Kafka копирует данные в буфер сокета (socket buffer).
        2.4. Данные копируются из буфера сокета на сетевую карту.
        2.5. Сетевая карта отправляет данные потребителю.
      2. Потребитель читает данные с нулевым копированием.
        3.1. Данные загружаются с диска в кэш ОС.
        3.2. Кэш ОС копируется сразу на сетевую карту с помощью команды sendfile() .
        3.3. Сетевая карта отправляет данные потребителю.

      Нулевое копирование — это сохранение нескольких копий данных в контекстах приложения и ядра (kernel).

      Платежные системы

      Почему кредитную карту называют «самым выгодным продуктом банка»? Как VISA/Mastercard делают деньги?

      Экономическая составляющая оплаты товара с помощью кредитной карты:

      1. Держатель карты платит 100$ за товар.
      2. Продавец получает более высокие продажи и должен компенсировать банку-эмитенту (банку, выпустившему карту) и карточной сети (card network) расходы на обеспечение сервиса оплаты. Банк-эквайер (банк, которому принадлежит платежный терминал) устанавливает продавцу комиссию, которая называется «комиссией за скидку продавца» (merchant discount fee).
        3-4. Эквайер удерживает 0,25$ в качестве эквайринговой наценки (acquiring markup) и 1,75$ выплачиваются эмитенту в качестве комиссии за обмен (interchange fee). Комиссия за скидку продавца должна покрывать комиссию за обмен. Комиссия за обмен устанавливается карточной сетью, поскольку согласование эквайером комиссии с каждым продавцом было бы неэффективным.
      3. Карточная сеть согласовывает сетевые оценки и комиссии с каждым банком, который оплачивает расходы сети каждый месяц. Например, VISA взимает оценку 0,11% плюс 0,0195$ за каждую операцию.
      4. Держатель карты платит банку-эмитенту за его услуги.
      • Эмитент платит продавцу, даже если держатель карты не платит эмитенту
      • эмитент платит продавцу перед тем, как держатель карты платит эмитенту
      • эмитент несет другие операциональные расходы, такие как управление аккаунтами потребителей, предоставление инструкций, обнаружение мошенничества, управление рисками, клиринг и расчеты etc.

      Принцип работы VISA

      VISA, Mastercard и American Express выступают в роли карточных сетей (card networks) для клиринга и расчета средств. Банк-эквайер и банк-эмитент могут быть (и часто являются) разными банками. Если бы банки выполняли транзакции одну за другой без посредника, каждый банк должен был бы устанавливать транзакцию с другими банками. Это неэффективно.

      На диаграмме показана роль VISA в процессе оплаты с помощью кредитной карты. Этот процесс на самом деле состоит из двух процессов. Когда пользователь использует карту, запускается процесс авторизации. Когда продавец хочет получить деньги в конце дня происходит процесс захвата и расчетов (capture and settlement).

      1. Эмитент предоставляет карту потребителю.
      2. Держатель карты хочет совершить покупку и прикладывает карту к торговому (Point of Sale, POS) терминалу в магазине.
      3. POS отправляет транзакцию эквайеру, которому принадлежит терминал.
        3 и 4. Эквайер отправляет транзакцию в карточную сеть, которая также называется карточной схемой (card scheme). Сеть отправляет транзакцию эмитенту для подтверждения.
        4.1, 4.2 и 4.3. Эмитент замораживает деньги при подтверждении транзакции. Подтверждение или отказ отправляются эквайеру, а также – в терминал.

      Захват и расчеты

      1 и 2. Продавец хочет получить деньги в конце дня, он нажимает «захват» (capture) на терминале. Транзакции отправляются эквайеру группой (batch). Эквайер отправляет группу в карточную сеть.

      1. Сеть выполняет клиринг для транзакций от разных эквайеров и рассылает файлы разным эмитентам. Клиринг — это процесс, при котором учитываются взаимозачетные транзакции, поэтому общее количество транзакций уменьшается. Сеть берет на себя бремя общения с каждым банком и получает взамен комиссию за обслуживание (service fee).
      2. Эмитенты подтверждают корректность клиринговых файлов и переводят деньги эквайерам.
      3. Эквайер переводит деньги в банк продавца.

      DevOps

      DevOps, SRE и Platform Engineering

      Концепция DevOps была представлена в 2009 Patrick Debois и Andrew Shafer на конференции «Agile». Они стремились сократить разрыв между разработкой ПО и его эксплуатацией, продвигая культуру сотрудничества и общую ответственность за весь жизненный цикл разработки ПО.

      Концепция SRE, или Site Reliability Engineering (проектирование надежности объекта), была впервые разработана компанией Google в начале 2000-х для решения операционных задач управления крупномасштабными и сложными системами. Google разработала методы и инструменты SRE, такие как система управления кластерами Borg и система мониторинга Monarch, чтобы повысить надежность и эффективность своих сервисов.

      Platform Engineering (разработка платформ) — это более новая концепция, основанная на SRE. Считается, что это расширение практик DevOps и SRE с упором на предоставление комплексной платформы для разработки продуктов, которая поддерживает всю бизнес-логику.

      Все эти концепции связаны с тенденцией улучшения совместной работы, автоматизации и эффективности разработки и эксплуатации ПО.

      Что такое Kubernetes?

      Kubernetes (K8s) – это система оркестрации контейнеров. Она используется для деплоя и управления контейнерами. Ее дизайн во многом вдохновлен Borg – внутренней системой Google.

      Кластер (cluster) K8s состоит из набора рабочих машин (worker machines), называющихся узлами (nodes), которые запускают контейнеризованные приложения. Каждый кластер имеет хотя бы один рабочий узел.

      На рабочих узлах размещаются модули (pods), которые являются компонентами рабочей нагрузки приложения. Контрольный уровень (control plane) управляет рабочими узлами и модулями в кластере. В продакшне уровень управления обычно работает на нескольких компьютерах, а в кластере, как правило, работает несколько узлов, что обеспечивает отказоустойчивость и высокую доступность.

      Компоненты уровня управления

      1. Сервер API – общается со всеми компонентами кластера. Все операции над модулями выполняются через него.
      2. Планировщик (Scheduler) — следит за полезной нагрузкой модулей и загружает создаваемые модули.
      3. Менеджер контроллеров (Controller Manager) – запускает контроллеры, включая Node Controller, Job Controller, EndpointSlice Controller и ServiceAccount Controller.
      4. Etcd – хранилище ключ-значение, используемое в качестве резервного хранилища данных всех кластеров.
      1. Модули. Модуль – это группа контейнеров и наименьшая единица, которой оперирует K8s. Модули имеют один IP-адрес, применяемый ко всем контейнерам модуля.
      2. Kubelet – агент, запускающийся на каждом узле кластера. Он обеспечивает запуск контейнеров в модуле.
      3. Kube Proxy – сетевой прокси, запускающийся в каждом узле кластера. Он перенаправляет трафик, приходящий в узел из сервиса. Он перенаправляет запросы для обработки в нужные контейнеры.

      Docker и Kubernetes

      Что такое Docker?

      Docker – это опенсорсная платформа, позволяющая упаковывать, распределять и запускать приложения в изолированных контейнерах. Она фокусируется на контейнеризации, предоставлении легковесных окружений, инкапсулирующих приложения и их зависимости.

      Что такое Kubernetes?

      Kubernetes, часто именуемый K8s, – это опенсорсная платформа для оркестрации контейнеров. Она предоставляет фреймворк для автоматизации деплоя, масштабирования и управления контейнеризованными приложениями посредством кластера узлов.

      Docker действует на уровне отдельных контейнеров на одном хосте операционной системы. Мы должны вручную управлять каждым хостом, устанавливать сети, политики безопасности и хранилище для нескольких связанных контейнеров, что может представлять некоторую сложность.

      Kubernetes действует на уровне кластера. Он управляет несколькими контейнеризованными приложениями через несколько хостов, обеспечивая автоматизацию таких задач, как балансировка нагрузки, масштабирование и обеспечение ожидаемого состояния приложений.

      Если быть кратким, то Docker фокусируется на контейнеризации и запуске контейнеров на отдельных хостах, а Kubernetes специализируется на управлении и оркестрации контейнеров в масштабе посредством кластера хостов.

      Принцип работы Docker

      На следующей диаграмме представлена архитектура Docker и то, что происходит при выполнении команд docker build , docker pull и docker run :

      Архитектура Docker включает в себя 3 основных компонента:

      • клиент (client) – клиент общается с демоном (daemon)
      • хост (host) – демон регистрирует запросы API и управляет объектами, такими как образы (images), контейнеры, сети и тома (volumes)
      • реестр (registry) – место хранения образов. DockerHub — публичный/открытый реестр образов

      В качестве примера рассмотрим процесс выполнения команды docker run :

      1. Из реестра извлекается соответствующий образ.
      2. Создается контейнер.
      3. Контейнеру выделяется область файловой системы для чтения/записи.
      4. Создается сетевой интерфейс, контейнер подключается к дефолтной сети.
      5. Контейнер запускается.

      Git

      Принцип работы команд Git

      Важно, где хранится наш код. Обычно предполагается, что он хранится либо на удаленном сервере, таком как Github, либо на нашей локальной машине. Но это не совсем так. Git поддерживает 3 локальных хранилища на нашей машине, так что наш код может быть обнаружен в 4 местах:

      • Рабочая директория (working directory) – место редактирования файлов
      • промежуточная область (staging area) – временная локация для хранения файлов до следующей фиксации (commit)
      • локальный репозиторий – содержит зафиксированный код
      • удаленный репозиторий – удаленный сервер, на котором хранится код

      Большинство команд Git осуществляет перемещение кода из одной локации в другую.

      Принцип работы Git

      Git – это распределенная система контроля версий.

      Каждый разработчик поддерживает локальную копию основного репозитория, редактирует и фиксирует (commit) локальную копию.

      Фиксация является очень быстрой, поскольку эта операция не затрагивает удаленный репозиторий.

      Если с удаленным репозиторием что-то случилось, файлы могут быть восстановлены из локальных репозиториев.

      Git merge и git rebase

      Разница между командами git merge и git rebase :

      Когда мы вливаем (merge) изменения из одной ветки (branch) в другую, мы можем использовать git merge или git rebase .

      Данная команда создает новый коммит G в основной (main) ветке. G содержит историю как основной, так и функциональной (feature) ветки.

      Merge является недеструктивным (non-destructive) – ни основная, ни функциональная ветка не модифицируются.

      Rebase перемещает историю функциональной ветки в начало (head) основной ветки. Это приводит к созданию новых коммитов E, F и G для каждого коммита функциональной ветки.

      Преимуществом rebase является линейная история фиксации изменений (коммитов).

      Rebase может быть опасным при нарушении «золотого правила rebase», которое гласит «никогда не используй rebase для публичных веток».

      Облачные сервисы

      Популярные облачные сервисы по состоянию на 2023 год

      Облачная нативность

      Диаграмма показывает эволюцию архитектуры и процессов с 1980-х:

      Организации могут создавать и запускать масштабируемые приложения в публичных, приватных и гибридных облаках с помощью нативных облачных (cloud native) технологий.

      Это означает, что приложения проектируются под возможности облака, что делает их устойчивыми к нагрузке и легкомасштабируемыми.

      Облачная нативность включает 4 аспекта:

      1. Процесс разработки – эволюционировал от водопада (waterfall) до Agile и DevOps.
      2. Архитектура приложения – архитектура эволюционировала от монолитов к микросервисам. Каждый сервис является небольшим, адаптируемым к ограниченным ресурсам облачных контейнеров.
      3. Деплой – сначала приложения разворачивались на физических серверах. В 2000-х приложения нечувствительные к задержке стали разворачиваться на виртуальных серверах. Облачная нативность позволяет упаковывать приложения в образы Docker и разворачивать их в контейнерах.
      4. Инфраструктура приложения – приложения массово разворачиваются в облачной инфраструктуре вместо локальных серверов.

      Инструменты, повышающие продуктивность разработки

      Визуализация файлов JSON

      Файлы JSON, содержащие вложенные структуры, сложно читать.

      JsonCrack генерирует граф данных на основе файла JSON, что сильно облегчает изучение его структуры.

      Сгенерированные диаграммы можно скачивать в виде изображений.

      Автоматические преобразование кода в архитектурные диаграммы

      • визуализация архитектуры облачной системы с помощью Python
      • рендеринг диаграмм в Jupiter Notebook
      • инструменты проектирования не требуются
      • поддерживаются следующие провайдеры: AWS, Azure, GCP, Kubernetes, Alibaba Cloud, Oracle Cloud etc.

      Linux

      Файловая система Linux

      Файловая система Linux раньше напоминала неорганизованный город, где люди строили свои дома там, где им заблагорассудится. Однако в 1994 был введен стандарт иерархии файловой системы (Filesystem Hierarchy Standard, FHS) Linux.

      Внедряя такой стандарт, как FHS, ПО может обеспечить единообразную структуру в разных дистрибутивах Linux. Тем не менее, не все дистрибутивы Linux строго придерживаются этого стандарта. Они часто включают уникальные элементы или рассчитаны на удовлетворение конкретных потребностей. Начните с изучения названного стандарта. Используйте такие команды, как cd для навигации и ls для просмотра содержимого каталога. Представьте файловую систему в виде дерева, которое начинается с корня (root, /). Со временем это станет для вас второй натурой, превратив вас в опытного администратора Linux.

      18 основных команд Linux

      Команды Linux – это инструкции для взаимодействия с операционной системой. Они помогают управлять файлами, директориями, системными процессами и другими аспектами системы. Для эффективной работы с основанными на Linux системами необходимо уверенно владеть этими командами.

      Популярные команды Linux:

      • ls – показывает список файлов и директорий
      • cd – меняет текущую директорию
      • mkdir – создаёт директорию
      • rm – удаляет файлы или директории
      • cp – копирует файлы или директории
      • mv – перемещает или переименовывает файлы или директории
      • chmod – меняет разрешения файла или директории
      • grep – ищет паттерн в файлах
      • find – ищет файлы или директории
      • tar – управляет архивными файлами Tarball
      • vi – редактирует файлы с помощью текстовых редакторов
      • cat – показывает содержимое файлов
      • top – показывает процессы и используемые ресурсы
      • ps – показывают информацию о процессе
      • kill – завершает процесс с помощью сигнала
      • du – вычисляет используемое пространство файла
      • ifconfig – настраивает сетевые интерфейсы
      • ping – тестирует соединение между хостами

      Безопасность

      Принцип работы HTTPS

      Hypertext Transfer Protocol Secure (безопасный протокол передачи гипертекста, HTTPS) – это расширение Hypertext Transfer Protocol (протокола передачи гипертекста, HTTP). HTTPS передает зашифрованные данные с помощью Transport Layer Security (безопасность транспортного уровня, TLS). Если данные будут перехвачены, все, что получит злоумышленник, — это двоичный код.

      Как шифруются и расшифровываются данные?

      1. Клиент и сервер устанавливают соединение TCP.
      2. Клиент отправляет серверу приветствие (client hello). Сообщение содержит необходимые алгоритмы шифрования (наборы шифров – cipher suites) и последнюю поддерживаемую версию TLS. Сервер отвечает приветствием (server hello), сообщающим, поддерживает ли он данные алгоритмы и версию TLS. Затем сервер отправляет клиенту сертификат SSL. Сертификат содержит открытый ключ, название хоста, дату истечения срока действия etc. Клиент валидирует сертификат.
      3. После проверки сертификата SSL клиент генерирует ключ сессии (session key) и шифрует его с помощью открытого ключа. Сервер получает зашифрованный ключ и расшифровывает его с помощью закрытого ключа.
      4. Теперь, когда клиент и сервер имеют один и тот же ключ сессии (симметричное шифрование), данные могут передаются по защищенному двунаправленному каналу.

      Почему HTTPS переключается на симметричное шифрование при передаче данных?

      На это существует 2 основные причины:

      1. Безопасность – асимметричное шифрование работает только в одном направлении. Это означает, что любой сможет расшифровать данные, передаваемые сервером клиенту, с помощью открытого ключа.
      2. Экономия ресурсов сервера: асимметричное шифрование добавляет много расходов на вычисления. Оно не подходит для передачи данных в длительных сеансах.

      OAuth 2.0 простыми словами

      OAuth 2.0 — это мощная и безопасная платформа, которая позволяет приложениям безопасно взаимодействовать друг с другом от имени пользователей без передачи их конфиденциальных учетных данных:

      Сущностями, участвующими в OAuth, являются пользователь, сервер и поставщик удостоверений/провайдер идентификации (Identity Provider, IDP).

      При использовании OAuth мы получаем токен OAuth, который представляет нашу личность и разрешения (permissions). Этот токен может делать несколько важных вещей:

      • Single Sign-On (единый вход, SSO) – токен OAuth позволяет войти в несколько служб или приложений, используя всего один логин, что делает жизнь проще и безопаснее
      • авторизация в разных системах – токен OAuth позволяет распределять права авторизации или доступа в разных системах, поэтому нам не нужно выполнять вход в каждую систему по-отдельности
      • доступ к профилю пользователя – приложения с токеном OAuth могут получить доступ к определенным частям профиля пользователя согласно предоставленным разрешениям.

      OAuth 2.0 предназначен для обеспечения безопасности данных пользователя, а также обеспечения бесперебойной и легкой работы с различными приложениями и сервисами.

      4 наиболее распространенных механизмов аутентификации

      1. Ключи SSH – криптографические ключи, которые используются для безопасного доступа к удаленным системам и серверам.
      2. Токены OAuth – токены, предоставляющие ограниченный доступ к пользовательским данным сторонним приложениям.
      3. Сертификаты SSL – цифровые сертификаты, которые обеспечивают безопасную и зашифрованную связь между серверами и клиентами.
      4. Реквизиты для входа (credentials) – информация, предоставленная пользователем, которая используется для проверки и предоставления доступа к различным системам и сервисам.

      Сессия, куки, JWT, SSO и OAuth

      Все эти термины относятся к управлению идентификацией пользователей. При посещении сайта мы указываем, кто мы (идентификация). Наша личность проверяется (аутентификация), и нам предоставляются определенные разрешения (авторизация). На сегодняшний день существует множество решений и этот список продолжает расти.

      • WWW-аутентификация – самый простой метод. Браузер запрашивает имя пользователя и пароль. Из-за невозможности контролировать жизненный цикл авторизации сегодня этот способ используется редко
      • контроль жизненного цикла авторизации выполняется с помощью файлов куки (cookie), содержащих данные сессии. Сервер поддерживает хранилище сессий, а браузер сохраняет идентификатор сессии. Файлы куки обычно не подходят для мобильных приложений
      • для решения проблемы совместимости можно использовать токены. Клиент отправляет токен на сервер, а сервер проверяет его. Недостатком является то, что токен необходимо шифровать и расшифровывать, что может занимать много времени
      • JWT (JSON Web Token) – это стандартный способ представления токенов. Такие токены можно проверить и им можно доверять, поскольку они содержат цифровую подпись. Поскольку JWT содержит подпись, нет необходимости сохранять информацию о сессии на стороне сервера
      • SSO (Single Sign-On – единый вход) позволяет войти в систему один раз для авторизации на нескольких сайтах. Для хранения межсайтовой информации в нем используется CAS (Central Authentication Service — центральная служба аутентификации)
      • OAuth позволяет предоставлять доступ к определенной части наших учетных данных сторонним приложениям

      Безопасное хранение паролей в базе данных и их валидация

      • хранение паролей в виде обычного текста – плохая идея, поскольку любой, у кого есть внутренний доступ, может их увидеть
      • непосредственное хранения хэшей паролей является недостаточным с точки зрения безопасности, поскольку оно подвержено атакам с предварительными вычислениями (precomputation attacks), таким как радужные таблицы (rainbow tables)
      • для смягчения атаки с предварительным вычислением при хэшировании паролей используется соль (salt)

      Согласно рекомендациям OWASP, «соль – это уникальная, случайно сгенерированная строка, которая добавляется к каждому паролю в процессе хэширования».

      Хранение пароля и соли

      1. Результат хэширования должен быть уникальным для каждого пароля.
      2. В БД записывается результат выполнения функции hash(password + salt) .
      1. Клиент вводит пароль.
      2. Система извлекает соль из БД.
      3. Система добавляет соль к паролю и хэширует его. Получаем хэшированное значение H1.
      4. Система сравнивает H1 и H2, где H2 — это хэш, хранящийся в БД. Если H1 и H2 совпадают, введенный пользователем пароль является валидным.

      JWT (JSON Web Token) простыми словами

      Представьте, что у нас есть специальная коробка под названием JWT. Внутри этой коробки лежит три вещи: заголовок (header), полезная нагрузка (payload) и подпись (signature).

      Заголовок похож на этикетку на внешней стороне коробки. Он сообщает нам, что это за тип коробки и как она защищена. Обычно он записывается в виде JSON, который представляет собой всего лишь способ организации информации с помощью фигурных скобок (<>) и двоеточий (:).

      Полезная нагрузка – фактическое сообщение или информация, которую мы хотим отправить. Это может быть наше имя, возраст или любые другие данные, которыми мы хотим поделиться. Он также записывается в формате JSON, поэтому его легко понять и с ним легко работать.

      Подпись – это то, что делает JWT безопасным. Это как особая печать, известная только отправителю. Подпись создается с использованием секретного кода (пароля). Подпись гарантирует, что никто не может изменить содержимое JWT без ведома отправителя.

      При отправке JWT на сервер, мы помещаем в поле заголовок, полезную нагрузку и подпись. Затем мы отправляем его на сервер. Сервер читает заголовок и полезную нагрузку, чтобы понять, кто мы и что хотим сделать.

      Принцип работы Google Authenticator и других типов двухфакторной аутентификации

      Google Authenticator используется для входа в учетную запись, когда включена двухфакторная аутентификация.

      Google Authenticator – это программный аутентификатор, реализующий службу двухэтапной проверки.

      Данный процесс состоит из 2 этапов:

      1. Пользователь включает двухэтапную аутентификацию Google.
      2. Пользователь использует аутентификатор для входа в систему etc.

      1 и 2. Боб открывает веб-страницу, чтобы включить двухэтапную проверку. Страница запрашивает секретный ключ. Служба аутентификации генерирует секретный ключ для Боба и сохраняет его в базе данных.

      1. Служба аутентификации возвращает URI клиенту. URI состоит из эмитента ключа (key issuer), имени пользователя и секретного ключа. URI отображается в виде QR-кода на странице.
      2. Боб использует Google Authenticator для сканирования сгенерированного QR-кода. Секретный ключ записывается в аутентификатор.

      1 и 2. Боб хочет войти на сайт с двухэтапной проверкой Google. Для этого ему нужен пароль. Каждые 30 секунд Google Authenticator генерирует шестизначный пароль, используя алгоритм TOTP (Time-based One Time Password – одноразовый пароль на основе времени). Боб использует пароль для входа на сайт.
      3 и 4. Клиент отправляет пароль, введенный Бобом, на сервер для аутентификации. Служба аутентификации считывает секретный ключ из базы данных и генерирует шестизначный пароль, используя тот же алгоритм TOTP, что и клиент.

      1. Служба аутентификации сравнивает два пароля, сгенерированные клиентом и сервером, и возвращает результат сравнения клиенту. Боб может продолжить процесс входа в систему, только при совпадении паролей.

      Может ли другое лицо получить секретный ключ?

      Секретный ключ должен передаваться по протоколу HTTPS. Клиент-аутентификатор и БД сохраняют секретный ключ, поэтому он должен быть зашифрован.

      Может ли хакер угадать шестизначный пароль?

      Очень маловероятно. Пароль состоит из 6 цифр, поэтому сгенерированный пароль имеет 1 000 000 потенциальных комбинаций. Плюс пароль меняется каждые 30 секунд. Если хакеры хотят угадать пароль за 30 секунд, им необходимо вводить 30 000 комбинаций в секунду.

      Реальные системы

      Технический стек Netflix

      Диаграмма основана на исследованиях многих инженерных блогов Netflix и проектов с открытым исходным кодом.

      Для разработки нативных мобильных приложений используется Swift и Kotlin, для разработки веб-приложений – React.

      Для взаимодействия клиента и сервера используется GraphQL.

      Для разработки сервисов бэкенда используется ZUUL, Eureka, фреймворк Spring Boot и другие технологии.

      В качестве БД используются EV Cache, Cassandra, CockroachDB и другие.

      Для сообщений и потоковой передачи данных используются Apache Kafka и Fink.

      В качестве хранилища видео используются S3 и Open Connect.

      Для обработки данных используются Flink и Spark. Данные визуализируются с помощью Tableau. Для обработки структурированной информации хранилища данных используется Redshift.

      Для процессов, связанных с CI/CD, используются такие инструменты, как JIRA, Confluence, PagerDuty, Jenkins, Gradle, Chaos Monkey, Spinnaker, Atlas и другие.

      Архитектура Twitter по состоянию на 2022 год

      Это настоящая архитектура Твиттера. Она опубликована Илоном Маском и перерисована нами для лучшей читабельности.

      Эволюция архитектуры Airbnb в течение последних 15 лет

      Архитектура Airbnb прошла через 3 основных стадии:

      Airbnb начинался как простая торговая площадка для гостиниц и гостей. Она была разработана с помощью Ruby on Rails в виде монолита.

      • отсутствие постоянной команды разработчиков + бесхозный код
      • медленный деплой
      • сервис получения данных
      • сервис бизнес-логики
      • сервис рабочих процессов
      • сервис агрегации UI (User Interface — пользовательский интерфейс)

      Каждый сервис разрабатывается и поддерживается отдельной командой.

      • сотнями сервисов и зависимостей сложно управлять

      Микро- и макросервисы (2020-настоящее время)

      Гибридная модель микро- и макросервисов фокусируется на унификации API.

      Монорепозиторий и микрорепозитории

      Что лучше? Почему разные компании выбирают разные варианты?

      Концепция монорепозитория не нова; Linux и Windows были разработаны с использованием этой концепции. Чтобы улучшить масштабируемость и скорость сборки, Google разработал специальную внутреннюю цепочку инструментов и строгие стандарты качества кодирования, чтобы обеспечить единообразие разработки и деплоя.

      Amazon и Netflix являются основными представителями философии микросервисов. При таком подходе код сервиса естественным образом разделяется на отдельные репозитории. Он масштабируется быстрее, но в дальнейшем могут возникнуть проблемы с управлением многочисленными сервисами.

      В монорепозитории каждый сервис представляет собой директорию, и каждая директория имеет конфигурацию BUILD и контроль разрешений OWNERS. Каждый участник сервиса несет ответственность за свою директорию.

      С другой стороны, в микрорепозитории каждый сервис отвечает за свой репозиторий, при этом конфигурация сборки и разрешений обычно устанавливаются для всего репозитория.

      В монорепозитории зависимости распределяются по всей кодовой базе, поэтому при обновлении версии любой зависимости обновляется версия всего кода.

      В микрорепозитории зависимости являются уникальными для каждого репозитория. Версии зависимостей обновляются в соответствии с графиками сервисов.

      В монорепозитории есть стандарт регистрации. Процесс проверки кода Google известен тем, что устанавливает высокую планку, обеспечивая единый стандарт качества для монорепозитория, независимо от сервиса.

      Микрорепозиторий может либо использовать собственный стандарт, либо принять общий стандарт, включив в него лучшие практики. Для сервиса он может масштабироваться быстрее, но качество кода может быть немного другим. Для управления микросервисами инженеры Google разработали Bazel, а Meta – Buck. Среди инструментов с открытым исходным кодом можно называть Nix, Lerna и другие.

      С годами у микросервисов появилось больше поддерживаемых инструментов, включая Maven и Gradle для Java, NPM для NodeJS, CMake для C/C++ и другие.

      Архитектура Stack Overflow

      Какая архитектура реализована в Stack Overflow?

      Если ваш ответ – локальные серверы и монолит, вы, скорее всего, провалите собеседование, но именно так оно и устроено!

      • Для разделения системы на небольшие компоненты используются микросервисы
      • у каждого сервиса своя база данных, активно используется кэш
      • сервисы сегментированы (sharded)
      • сервисы взаимодействуют друг с другом асинхронно через очереди сообщений
      • сервисы реализованы с использованием источников событий (Event Sourcing) с CQRS
      • широко используются распределенные системы, такие как итоговая согласованность (eventual consistency), теорема CAP etc.

      Stack Overflow обрабатывает весь трафик с помощью всего 9 локальных веб-серверов, и это монолит! Никакие облачные решения в нём не используются.

      Почему Amazon Prime Video Monitoring перешел с бессерверной архитектуры на монолит? Как это может сэкономить 90% стоимости?

      Сравнение архитектуры до и после перехода:

      Что такое служба видеомониторинга Amazon Prime?

      Сервису Prime Video необходимо следить за качеством тысяч прямых трансляций. Инструмент мониторинга автоматически анализирует потоки данных в режиме реального времени и выявляет проблемы с качеством, такие как повреждение блоков (block corruption), зависание видео и проблемы с синхронизацией. Это важный процесс для удовлетворения клиентов.

      Мониторинг состоит из 3 компонентов: медиаконвертер, детектор дефектов и сервис уведомлений в реальном времени.

      Недостатки старой архитектуры

      Старая архитектура была основана на Amazon Lambda, который позволял быстро создавать сервисы. Однако использование архитектуры в больших масштабах было нерентабельным. Две самые дорогостоящие операции:

      1. Рабочий процесс оркестрации – пошаговые функции (step functions) AWS взимают с пользователей плату за переходы состояний, а оркестрация выполняет несколько переходов состояний каждую секунду.
      2. Передача данных между распределенными компонентами — промежуточные данные хранятся в Amazon S3, чтобы их можно было загрузить на следующем этапе. Чем больше объем данных, тем дороже загрузка.

      Монолит экономит 90% стоимости

      Монолитная архитектура предназначена для решения проблем стоимости. Компонентов по-прежнему 3, но медиаконвертер и детектор дефектов развертываются в одном процессе, что экономит затраты на передачу данных по сети. Удивительно, но изменение архитектуры привело к экономии средств на 90%!

      Это интересный и уникальный пример, поскольку микросервисы сегодня являются популярным и модным выбором в техноиндустрии. Разделение компонентов на распределенные микросервисы сопряжено с дополнительными расходами.

      Технический директор Amazon Вернер Фогельс сказал следующее: «Создание эволюционирующих программных систем – это стратегия, а не религия. Поэтому необходимо периодически непредвзято пересматривать архитектуру системы».

      Бывший вице-президент Amazon по устойчивому развитию Адриан Кокрофт: «Команда Prime Video следовала по пути, который я называю «Сначала бессерверные»… Я не сторонник только бессерверных технологий».

      Как Disney Hotstar удалось собрать 5 миллиардов смайлов во время турнира?

      1. Клиенты отправляют смайлы через стандартные HTTP-запросы. Вы можете думать о Golang Service как о типичном веб-сервере. Golang выбран потому, что он хорошо поддерживает параллелизм. Потоки в Golang легкие.
      2. Поскольку объем данных очень велик, в качестве буфера используется Kafka (брокер сообщений).
      3. Смайлы агрегируются службой потоковой обработки под названием Spark. Он собирает данные каждые 2 секунды (интервал настраивается). В зависимости от интервала приходится идти на некоторые компромиссы. Более короткий интервал означает, что смайлы доставляются другим клиентам быстрее, но это также означает, что требуется больше вычислительных ресурсов.
      4. Агрегированные данные записываются в другой Kafka.
      5. Потребители PubSub (издатель/подписчик) извлекают агрегированные смайлы из Kafka.
      6. Смайлы доставляются клиентам в режиме реального времени через инфраструктуру PubSub. Инфраструктура PubSub интересна. Hotstar рассмотрела следующие протоколы: Socketio, NATS, MQTT и gRPC и остановилась на MQTT.

      Похожий подход к архитектуре применяется LinkedIn, который обрабатывает миллион лайков в секунду.

      Как Discord хранит триллионы сообщений?

      Эволюция хранения сообщений в Discord:

      MongoDB ➡️ Cassandra ➡️ ScyllaDB.

      В 2015 первая версия Discord была построена на основе одной реплики MongoDB. Примерно в ноябре 2015 MongoDB хранила 100 миллионов сообщений, и оперативная память больше не вмещала данные и индексы. Задержка стала непредсказуемой. Возникла необходимость переместить хранение сообщений в другую базу данных. Была выбрана Cassandra.

      В 2017 у Discord было 12 узлов (nodes) Cassandra, на которых хранились миллиарды сообщений.

      На начало 2022 было 177 узлов с триллионами сообщений. На этом этапе задержка стала непредсказуемой, а выполнение операций по техническому обслуживанию стало слишком дорогим.

      Причин возникновения такой ситуации несколько:

      • Cassandra использует дерево LSM для внутренней структуры данных. Чтение обходится дороже, чем запись. На сервере с сотнями пользователей может выполняться множество одновременных операций чтения, что приводит к образованию горячих точек
      • обслуживание кластеров, например сжатие SSTables, влияет на производительность
      • паузы в сборке мусора могут приводить к значительным скачкам задержки

      ScyllaDB – это база данных, совместимая с Cassandra, написанная на C++. Discord изменил свою архитектуру, включив в нее монолитный API, сервис данных, написанный на Rust, и ScyllaDB в качестве основного хранилища данных.

      Задержка чтения p99 в ScyllaDB составляет 15 мс по сравнению с 40-125 мс в Cassandra. Задержка записи p99 составляет 5 мс по сравнению с 5-70 мс в Cassandra.

      Как работают прямые видеотрансляции на YouTube, TikTok Live или Twitch?

      Прямая трансляция отличается от обычной потоковой передачи данных, поскольку видеоконтент отправляется по сети в режиме реального времени, обычно с задержкой всего в несколько секунд.

      Вот что делает это возможным:

      1. Необработанные (raw) видеоданные захватываются микрофоном и камерой. Данные передаются на сервер.
      2. Видеоданные сжимаются и кодируются. Например, алгоритм сжатия разделяет фон и другие элементы видео. После сжатия видео кодируется в соответствии со стандартами, такими как H.264. Это сильно уменьшает размер видеоданных.
      3. Закодированные данные делятся на мелкие части (чанки — chunks), обычно длиной в несколько секунд, поэтому для их загрузки или потоковой передачи требуется гораздо меньше времени.
      4. Сегментированные данные отправляются на сервер потоковой передачи (streaming server). Сервер потоковой передачи должен поддерживать различные устройства и условия сети. Это называется «адаптивной потоковой передачей битрейта» (Adaptive Bitrate Streaming). Это означает, что на шагах 2 и 3 необходимо создать несколько файлов с разным битрейтом.
      5. Данные потоковой передачи в реальном времени передаются на пограничные серверы (edge servers), поддерживаемые CDN (Content Delivery Network – сеть доставки контента). Миллионы зрителей могут смотреть видео с ближайшего пограничного сервера. CDN значительно снижает задержку времени передачи данных.
      6. Устройства зрителей декодируют и распаковывают видеоданные и воспроизводят видео в плеере.
        7 и 8. Если видео необходимо сохранить для повторного воспроизведения, закодированные данные отправляются в хранилище, откуда впоследствии извлекаются без обращения к CDN.

      Стандартные протоколы для прямой трансляции:

      • RTMP (Real-Time Messaging Protocol – протокол обмена сообщениями в реальном времени) – изначально был разработан Macromedia для передачи данных между Flash-плеером и сервером. Теперь он используется для потоковой передачи видеоданных через Интернет. Обратите внимание, что приложения для видеоконференций, такие как Skype, используют протокол RTC (Real-Time Communication – связь в реальном времени) для снижения задержки.
      • HLS (HTTP Live Streaming — прямая трансляция по HTTP) — этот протокол требует кодировки данных в H.264 или H.265. Устройства Apple поддерживают только это протокол
      • DASH (Dynamic Adaptive Streaming over HTTP – динамическая адаптивная потоковая передача данных через HTTP)

      И HLS, и DASH поддерживают потоковую передачу с адаптивным битрейтом.

      Ответ от сервера идентификации задерживается l2 как исправить

      Зона в UserGate — это логическое объединение сетевых интерфейсов. Политики безопасности UserGate используют зоны интерфейсов, а не непосредственно интерфейсы. Это дает необходимую гибкость политикам безопасности, а также существенно упрощает управление отказоустойчивым кластером. Зоны одинаковы на всех узлах кластера, то есть данная настройка является глобальной для кластера. Рекомендуется объединять интерфейсы в зоне на основе их функционального назначения, например, зона LAN-интерфейсов, зона интернет-интерфейсов, зона интерфейсов, подключенных к сети партнера и т.п. По умолчанию UserGate поставляется со следующими зонами:

      Наименование Описание
      Management Зона для подключения доверенных сетей, из которых разрешено управление UserGate.
      Trusted Зона для подключения доверенных сетей, например, LAN-сетей.
      Untrusted Зона для интерфейсов, подключенных к недоверенным сетям, например, к интернету.
      DMZ Зона для интерфейсов, подключенных к сети DMZ .
      Cluster Зона для интерфейсов, используемых для работы кластера.
      VPN for Site-to-Site Зона, в которую помещаются все клиенты типа Офис-Офис, подключаемые к UserGate по VPN.
      VPN for remote access Зона, в которую помещаются все мобильные пользователи, подключаемые к UserGate по VPN.

      Администраторы UserGate могут изменять настройки зон, созданных по умолчанию, а также создавать дополнительные зоны.

      ПримечаниеМожно создать не более 255 зон.
      Для создания зоны необходимо выполнить следующие шаги:

      • Агрегировать — если установлено, то считаются все пакеты, входящие в интерфейсы данной зоны. Если не установлено, то считаются пакеты отдельно для каждого IP-адреса.
      • Порог уведомления — при превышении количества запросов над указанным значением происходит запись события в системный журнал.
      • Порог отбрасывания пакетов — при превышении количества запросов над указанным значением UserGate начинает отбрасывать пакеты и записывает данное событие в системный журнал.

      Рекомендованные значения для порога уведомления — 300 запросов в секунду, для порога отбрасывания пакетов — 600 запросов в секунду. Рекомендуется включать защиту от флуда на всех интерфейсах, за исключением интерфейсов зоны Cluster.

      Необходимо увеличить пороговое значение отбрасывания пакетов для протокола UDP, если через интерфейсы зоны проходит трафик таких сервисов, как IP-телефония или L2TP VPN.

      Исключения защиты от DoS — позволяет указать список IP-адресов серверов, которые необходимо исключить из защиты. Это может быть полезно, например, для сервиса IP-телефонии, так как он шлет большое количество UDP-пакетов.

      Важно! UserGate позволят произвести более гранулированную защиту от DoS атак. Для получения дополнительной информации обратитесь в раздел Защита от DoS атак.

      Внимание! Зоны и правила защиты от DoS атак работают по разному, это две независимые системы: Первыми срабатывают зоны. Они обрабатывают входящий и исходящий трафик. Правила защиты от DoS атак распространяются только на транзитный трафик. Таким образом, если идёт атака на ваш внешний IP, то надо использовать защиту на зоне. Здесь сразу отсекается паразитный трафик.

      Шаг 3. Настроить параметры контроля доступа зоны (опционально).

      Указать предоставляемые UserGate сервисы, которые будут доступны клиентам, подключенным к данной зоне. Для зон, подключенных к неконтролируемым сетям, таким, как интернет, рекомендуется отключить все сервисы.

      • Ping — позволяет пинговать UserGate.
      • SNMP — доступ к UserGate по протоколу SNMP (UDP 161).
      • Captive-портал и страница блокировки — необходимы для показа страницы авторизации Captive-портала и страницы блокировки (TCP 80, 443, 8002).
      • XML-RPC для управления — позволяет управлять продуктом по API (TCP 4040).
      • Кластер — сервис, необходимый для объединения нескольких узлов UserGate в кластер (TCP 4369, TCP 9000-9100).
      • VRRP — сервис, необходимый для объединения нескольких узлов UserGate в отказоустойчивый кластер (IP протокол 112).
      • Консоль администрирования — доступ к веб-консоли управления (TCP 8001).
      • DNS — доступ к сервису DNS-прокси (TCP 53, UDP 53).
      • HTTP(S)-прокси — доступ к сервису HTTP(S)-прокси (TCP 8090).
      • Агент авторизации — доступ к серверу, необходимый для работы агентов авторизации Windows и терминальных серверов (UDP 1813).
      • SMTP(S)-прокси — сервис фильтрации SMTP-трафика от спама. Необходим только при публикации почтового сервера в интернет. Более подробно смотрите раздел Защита почтового трафика.
      • POP3(S)-прокси — сервис фильтрации POP3-трафика от спама. Необходим только при публикации почтового сервера в интернет. Более подробно смотрите раздел Защита почтового трафика.
      • CLI по SSH — доступ к серверу для управления им с помощью CLI (command line interface), порт TCP 2200.
      • VPN — доступ к серверу для подключения к нему клиентов L2TP VPN (UDP 500, 4500).
      • SCADA — сервис фильтрации АСУ ТП-трафика. Необходим только при контроле АСУ ТП-трафика. Более подробно смотрите раздел Правила АСУ ТП.
      • Reverse-прокси — сервис, необходимый для публикации внутренних ресурсов с помощью Reverse-прокси. Более подробно смотрите раздел Публикация HTTP/HTTPS-ресурсов с помощью reverse-прокси.
      • Web-портал— сервис, необходимый для публикации внутренних ресурсов с помощью SSL VPN. Более подробно смотрите раздел Веб-портал.
      • Log Analyzer — сервис для подключения к анализатору журналов Log Analyzer (TCP 2023 и 9713).
      • OSPF — сервис динамической маршрутизации OSPF. Более подробно смотрите раздел OSPF.
      • BGP— сервис динамической маршрутизации BGP. Более подробно смотрите раздел BGP.
      • NTP service — разрешает доступ к сервису точного времени, запущенному на сервере UserGate.

      Подробнее о требованиях сетевой доступности читайте в Приложение 1. Требования к сетевому окружению.

      Шаг 4. Настроить параметры защиты от IP-спуфинг атак (опционально).

      Атаки на основе IP-спуфинга позволяют передать пакет из внешней сети, например, из Untrusted, во внутреннюю, например, в Trusted. Для этого атакующий подменяет IP-адрес источника на предполагаемый адрес внутренней сети. В таком случае ответы на этот пакет будут пересылаться на внутренний адрес.

      Для защиты от подобных атак администратор может указать диапазоны IP-адресов, адреса источников которых допустимы в выбранной зоне. Сетевые пакеты с адресами источников, отличными от указанных, будут отброшены.

      С помощью чекбокса Инвертировать администратор может указать адреса источников, которые не могут быть получены на интерфейсах данной зоны. В этом случае будут отброшены пакеты с указанными диапазонами IP-адресов источников. Например, для зоны Untrusted можно указать диапазоны «серых» IP-адресов 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 и включить опцию Инвертировать.

      Настройка интерфейсов

      Раздел Интерфейсы отображает все физические и виртуальные интерфейсы, имеющиеся в системе, позволяет менять их настройки и добавлять VLAN-интерфейсы. Раздел отображает все интерфейсы каждого узла кластера. Настройки интерфейсов специфичны для каждого из узлов, то есть не глобальны.

      Кнопка Редактировать позволяет изменять параметры сетевого интерфейса:

      • Включить или отключить интерфейс.
      • Указать тип интерфейса — Layer 3 или Mirror. Интерфейсу, работающему в режиме Layer 3, можно назначить IP-адрес и использовать его в правилах межсетевого экрана, контентной фильтрации и других правилах, это стандартный режим работы интерфейса. Интерфейс, работающий в режиме Mirror, может получать трафик со SPAN-порта сетевого оборудования для его анализа.
      • Назначить зону интерфейсу.
      • Назначить профиль Netflow для отправки статистических данных на Netflow коллектор.
      • Изменить физические параметры интерфейса — MAC-адрес и размер MTU.
      • Выбрать тип присвоения IP-адреса — без адреса, статический IP-адрес или динамический IP-адрес , полученный по DHCP .
      • Настроить работу DHCP-релея на выбранном интерфейсе. Для этого необходимо включить DHCP-релей, указать в поле Адрес UserGate IP-адрес интерфейса, на котором добавляется функция релея, и указать один или несколько серверов DHCP , куда необходимо пересылать DHCP-запросы клиентов.

      Кнопка Добавить позволяет добавить следующие типы логических интерфейсов:

      Создание интерфейса VLAN

      С помощью кнопки Добавить VLAN администратор может создавать сабинтерфейсы. При создании VLAN необходимо указать следующие параметры:

      Включено

      Название

      Название VLAN . Название присваивается автоматически на основе имени физического порта и тега VLAN .

      Описание

      Опциональное описание интерфейса.

      Тип интерфейса

      Указать тип интерфейса — Layer 3 или Mirror. Интерфейсу, работающему в режиме Layer 3, можно назначить IP-адрес и использовать его в правилах межсетевого экрана, контентной фильтрации и других правилах, это стандартный режим работы интерфейса. Интерфейс, работающий в режиме Mirror, может получать трафик со SPAN-порта сетевого оборудования для его анализа.

      Тег VLAN

      Номер сабинтерфейса. Допускается создание до 4094 интерфейсов.

      Имя узла

      Имя узла в кластере, на котором создается данный VLAN .

      Интерфейс

      Физический интерфейс, на котором создается VLAN .

      Зона

      Зона, которой принадлежит VLAN .

      Профиль Netflow

      Профиль Netflow для отправки статистических данных на Netflow коллектор. О профилях Netflow можно прочитать в главе Профили Netflow.

      Сеть

      Способ присвоения IP-адреса — без адреса, статический IP-адрес или динамический IP-адрес , полученный по DHCP .

      DHCP-релей

      Настройка работы DHCP-релея на VLAN-интерфейсе. Необходимо включить DHCP-релей, указать в поле Адрес UserGate IP-адрес интерфейса, на котором добавляется функция релея, и указать один или несколько серверов DHCP , куда необходимо пересылать DHCP-запросы клиентов.

      Объединение интерфейсов в бонд

      С помощью кнопки Добавить бонд-интерфейс администратор может объединить несколько физических интерфейсов в один логический агрегированный интерфейс для повышения пропускной способности или для отказоустойчивости канала. При создании бонда необходимо указать следующие параметры:

      Включено

      Название

      Имя узла

      Узел кластера UserGate, на котором будет создан бонд.

      Зона

      Зона, к которой принадлежит бонд.

      Профиль Netflow

      Профиль Netflow для отправки статистических данных на Netflow коллектор. О профилях Netflow можно прочитать в главе Профили Netflow.

      Интерфейсы

      Один или более интерфейсов, которые будут использованы для построения бонда.

      Режим

      Режим работы бонда должен совпадать с режимом работы на том устройстве, куда подключается бонд. Может быть:

      • Round robin. Пакеты отправляются последовательно, начиная с первого доступного интерфейса и заканчивая последним. Эта политика применяется для балансировки нагрузки и отказоустойчивости.
      • Active backup. Только один сетевой интерфейс из объединенных будет активным. Другой интерфейс может стать активным только в том случае, когда упадет текущий активный интерфейс. При такой политике MAC-адрес бонд-интерфейса виден снаружи только через один сетевой порт, во избежание появления проблем с коммутатором. Эта политика применяется для отказоустойчивости.
      • XOR. Передача распределяется между сетевыми картами используя формулу: [(«MAC-адрес источника» XOR «MAC-адрес назначения») по модулю «число интерфейсов»]. Получается, одна и та же сетевая карта передает пакеты одним и тем же получателям. Опционально распределение передачи может быть основано и на политике «xmit_hash». Политика XOR применяется для балансировки нагрузки и отказоустойчивости.
      • Broadcast. Передает все на все сетевые интерфейсы. Эта политика применяется для отказоустойчивости.
      • IEEE 802.3ad — режим работы, установленный по умолчанию, поддерживается большинством сетевых коммутаторов. Создаются агрегированные группы сетевых карт с одинаковой скоростью и дуплексом. При таком объединении передача задействует все каналы в активной агрегации согласно стандарту IEEE 802.3ad. Выбор, через какой интерфейс отправлять пакет, определяется политикой; по умолчанию используется XOR-политика, можно также использовать «xmit_hash» политику.
      • Adaptive transmit load balancing. Исходящий трафик распределяется в зависимости от загруженности каждой сетевой карты (определяется скоростью загрузки). Не требует дополнительной настройки на коммутаторе. Входящий трафик приходит на текущую сетевую карту. Если она выходит из строя, то другая сетевая карта берет себе MAC-адрес вышедшей из строя карты.
      • Adaptive load balancing. Включает в себя предыдущую политику плюс осуществляет балансировку входящего трафика. Не требует дополнительной настройки на коммутаторе. Балансировка входящего трафика достигается путем ARP-переговоров. Драйвер перехватывает ARP-ответы, отправляемые с локальных сетевых карт наружу, и переписывает MAC-адрес источника на один из уникальных MAC-адресов сетевой карты, участвующей в объединении. Таким образом, различные пиры используют различные MAC-адреса сервера. Балансировка входящего трафика распределяется последовательно (round-robin) между интерфейсами.

      MII monitoring period (мсек)

      Устанавливает периодичность MII-мониторинга в миллисекундах. Определяет, как часто будет проверяться состояние линии на наличие отказов. Значение по умолчанию — 0 — отключает MII-мониторинг.

      Down delay (мсек)

      Определяет время (в миллисекундах) задержки перед отключением интерфейса, если произошел сбой соединения. Эта опция действительна только для мониторинга MII (miimon). Значение параметра должно быть кратным значениям miimon. Если оно не кратно, то округлится до ближайшего кратного значения. Значение по умолчанию 0.

      Up delay (мсек)

      Задает время задержки в миллисекундах, перед тем как поднять канал при обнаружении его восстановления. Этот параметр возможен только при MII-мониторинге (miimon). Значение параметра должно быть кратным значениям miimon. Если оно не кратно, то округлится до ближайшего кратного значения. Значение по умолчанию 0.

      LACP rate

      Определяет, с каким интервалом будут передаваться партнером LACPDU-пакеты в режиме 802.3ad. Возможные значения:

      • Slow — запрос партнера на передачу LACPDU-пакетов каждые 30 секунд.
      • Fast — запрос партнера на передачу LACPDU-пакетов каждую 1 секунду.

      Failover MAC

      Определяет, как будут прописываться MAC-адреса на объединенных интерфейсах в режиме active-backup при переключении интерфейсов. Обычным поведением является одинаковый MAC-адрес на всех интерфейсах. Возможные значения:

      • Отключено — устанавливает одинаковый MAC-адрес на всех интерфейсах во время переключения.
      • Active — MAC-адрес на бонд-интерфейсе будет всегда таким же, как на текущем активном интерфейсе. MAC-адреса на резервных интерфейсах не изменяются. MAC-адрес на бонд-интерфейсе меняется во время обработки отказа.
      • Follow — MAC-адрес на бонд-интерфейсе будет таким же, как на первом интерфейсе, добавленном в объединение. На втором и последующем интерфейсе этот MAC не устанавливается, пока они в резервном режиме. MAC-адрес прописывается во время обработки отказа, когда резервный интерфейс становится активным, он принимает новый MAC (тот, что на бонд-интерфейсе), а старому активному интерфейсу прописывается MAC, который был на текущем активном.

      Xmit hash policy

      Определяет хэш-политику передачи пакетов через объединенные интерфейсы в режиме XOR или IEEE 802.3ad. Возможные значения:

      • Layer 2 — использует только MAC-адреса для генерации хэша. При этом алгоритме трафик для конкретного сетевого хоста будет отправляться всегда через один и тот же интерфейс. Алгоритм совместим с IEEE 802.3ad.
      • Layer 2+3 — использует как MAC-адреса, так и IP-адреса для генерации хэша. Алгоритм совместим с IEEE 802.3ad.
      • Layer 3+4 — используются IP-адреса и протоколы транспортного уровня (TCP или UDP) для генерации хэша. Алгоритм не всегда совместим с IEEE 802.3ad, так как в пределах одного и того же TCP- или UDP-взаимодействия могут передаваться как фрагментированные, так и нефрагментированные пакеты. Во фрагментированных пакетах порт источника и порт назначения отсутствуют. В результате в рамках одной сессии пакеты могут дойти до получателя не в том порядке, так как отправляются через разные интерфейсы.

      Сеть

      Способ присвоения IP-адреса — без адреса, статический IP-адрес или динамический IP-адрес , полученный по DHCP .

      DHCP-релей

      Настройка работы DHCP-релея на бонд-интерфейсе. Необходимо включить DHCP-релей, указать в поле Адрес UserGate IP-адрес интерфейса, на котором добавляется функция релея, и указать один или несколько серверов DHCP , куда необходимо пересылать DHCP-запросы клиентов.

      Создание моста (bridge)

      Сетевой мост работает на канальном уровне сетевой модели OSI (L2), при получении из сети кадра сверяет MAC-адрес последнего и, если он не принадлежит данной подсети, передает (транслирует) кадр дальше в тот сегмент, которому предназначался данный кадр; если кадр принадлежит данной подсети, мост ничего не делает.

      Интерфейс мост можно использовать в UserGate аналогично обычному интерфейсу. Кроме этого, через мост можно настроить фильтрацию передаваемого контента на уровне L2 без внесения изменений в сетевую инфраструктуру компании. Простейшая схема использования UserGate в качестве решения, обеспечивающего контентную фильтрацию на уровне L2, выглядит следующим образом:

      image3

      Рисунок 4 Использование моста

      Примечание Для работы виртуальной машины VMWare в данном режиме, необходимо в настройках групп портов, подключенных к мосту, перевести параметры безопасности Promiscuous mode, MAC address changes, Forged transmits в режим Accept.

      При создании моста можно указать режим его работы — Layer 2 или Layer 3.

      ПримечаниеОдновременное использование мостов L2 и L3 на устройствах UserGate невозможно — это ограничения архитектуры.

      При выборе режима Layer 2 создаваемому мосту не нужно назначать IP-адрес и прописывать маршруты и шлюзы для его корректной работы. В данном режиме мост работает на уровне MAC-адресов, транслируя пакет из одного сегмента в другой. В этом случае невозможно использовать правила АСУ ТП и Mail security. Контентная фильтрация работает в этом режиме.

      Внимание! Функционал DNS-фильтрации и мост L2 в текущей версии несовместимы — при включении DNS-фильтрации DNS-запросы через мост проходить перестают.

      При выборе режима Layer 3 создаваемому мосту необходимо назначить IP-адрес и указать маршруты в сети, подключенные к интерфейсам моста. В данном режиме могут быть использованы все механизмы фильтрации, доступные в UserGate.

      Если мост создается в ПАК UserGate, в котором используется сетевая карта, поддерживающая режим байпас, то можно объединить 2 интерфейса в байпас мост . Байпас мост автоматически переключает два выбранных интерфейса в режим байпас (закорачивает их, пропуская весь трафик мимо UserGate) в случаях если:

      • Электропитание ПАК UserGate отключено.
      • Система внутренней диагностики обнаружила проблему в работе ПО UserGate.

      Более подробно о сетевых интерфейсах, поддерживающих режим байпас смотрите в спецификации на оборудование ПАК UserGate.

      С помощью кнопки Добавить мост администратор может объединить несколько физических интерфейсов в новый тип интерфейса — мост . Необходимо указать следующие параметры:

      Включено

      Включает интерфейс мост .

      Название

      Имя узла

      Узел кластера UserGate, на котором создать интерфейс мост .

      Тип интерфейса

      Указать тип интерфейса — Layer 3 или Layer 2.

      Зона

      Зона, к которой принадлежит интерфейс мост .

      Профиль Netflow

      Профиль Netflow для отправки статистических данных на Netflow коллектор. О профилях Netflow можно прочитать в главе Профили Netflow.

      Интерфейсы моста

      Два интерфейса, которые будут использованы для построения моста.

      Интерфейсы байпас моста

      Пара интерфейсов, которые можно использовать для построения байпас моста. Требуется поддержка оборудования ПАК UserGate.

      STP (Spanning Tree Protocol)

      Включает использование STP для защиты сети от петель.

      Forward delay

      Задержка перед переключением моста в активный режим (Forwarding), в случае если включен STP.

      Maximum age

      Время, по истечении которого STP-соединение считается потерянным.

      Сеть

      Способ присвоения IP-адреса — без адреса, статический IP-адрес или динамический IP-адрес , полученный по DHCP .

      DHCP-релей

      Настройка работы DHCP-релея на bridge-интерфейсе. Необходимо включить DHCP-релей, указать в поле Адрес UserGate IP-адрес интерфейса, на котором добавляется функция релея, и указать один или несколько серверов DHCP , куда необходимо пересылать DHCP-запросы клиентов.

      Интерфейс PPPOE

      PPPoE (Point-to-point protocol over Ethernet) — сетевой протокол канального уровня передачи кадров PPP через Ethernet. С помощью кнопки Добавить, выбрав Добавить PPPoE, администратор может создать PPPoE интерфейс. При создании необходимо указать следующие параметры:

      Включено

      Включает интерфейс PPPoE.

      Имя узла

      Узел кластера UserGate, на котором создать интерфейс PPPoE.

      Интерфейс

      Указать интерфейс, на котором будет создаваться интерфейс PPPoE.

      Зона

      Зона, к которой принадлежит интерфейс PPPoE.

      Профиль Netflow

      Профиль Netflow для отправки статистических данных на Netflow коллектор. О профилях Netflow можно прочитать в главе Профили Netflow.

      MTU

      Размер MTU. По умолчанию установлено значение 1492 байт, подходящее для стандартного размера кадра Ethernet.

      Логин

      Имя пользователя для соединения PPPoE.

      Пароль

      Пароль пользователя для соединения PPPoE.

      Переподключаться автоматически

      Включает переподключение соединения при обрыве связи.

      Тип аутентификации

      Протоколы аутентификации, использующиеся в протоколе PPP:

      • CHAP — Challenge Handshake Authentication Protocol — протокол аутентификации с косвенным согласованием. Является алгоритмом проверки подлинности и предусматривает передачу не самого пароля пользователя, а косвенных сведений о нём.
      • PAP — Password Authentication Protocol — протокол простой проверки подлинности, предусматривающий отправку имени пользователя и пароля на сервер удалённого доступа открытым текстом (без шифрования).

      Интервал между попытками подключения (сек.)

      Интервал времени в секундах после разрыва соединения перед повторным запуском.

      Маршрут по умолчанию

      Устанавливает интерфейс PPPoE в качестве маршрута по умолчанию.

      Интервал проверки соединения (сек.)

      Интервал проверки соединения.

      Количество неуспешных проверок

      Количество неуспешных проверок соединения, после которого UserGate считает, что соединение отсутствует и разрывает его.

      Использовать DNS-сервер провайдера

      Если опция включена, то UserGate использует DNS-серверы, выданные провайдером.

      Количество попыток подключения

      Количество неуспешных попыток подключения, после которых попытки автосоединения будут прекращены.

      PPPoE сервис

      Имя сервиса необходимо прописывать в случае предоставления провайдером. Если имя сервиса не используется, поле необходимо оставить пустым.

      Интерфейс VPN

      VPN-интерфейс — это виртуальный сетевой адаптер, который будет использоваться для подключения клиентов VPN. Данный тип интерфейса является кластерным, это означает, что он будет автоматически создаваться на всех узлах UserGate, входящих в кластер конфигурации. При наличии кластера отказоустойчивости клиенты VPN будут автоматически переключаться на запасной сервер в случае обнаружения проблем с активным сервером без разрыва существующих VPN-соединений.

      Внимание! Редактирование кластерного интерфейса возможно только для узла кластера cluster(даже если кластер не собран и узел всего один).

      В разделе Сеть ➜ Интерфейсы нажмите кнопку Добавить и выберите Добавить VPN. Задайте следующие параметры:

      Название

      Название интерфейса, должно быть в виде tunnelN, где N — это порядковый номер VPN-интерфейса.

      Описание

      Зона

      Зона, к которой будет относится данный интерфейс. Все клиенты, подключившиеся по VPN к серверу UserGate, будут также помещены в эту зону.

      Профиль Netflow

      Профиль Netflow, используемый для данного интерфейса. Не обязательный параметр.

      Профиль Netflow

      Профиль Netflow для отправки статистических данных на Netflow коллектор. О профилях Netflow можно прочитать в главе Профили Netflow.

      Режим

      Тип присвоения IP-адреса — без адреса, статический IP-адрес или динамический IP-адрес , полученный по DHCP . Если интерфейс предполагается использовать для приема VPN-подключений (Site-2-Site VPN или Remote access VPN, то необходимо использовать статический IP-адрес . Для использования интерфейса, используемого в роли клиента, необходимо выбрать Динамический режим.

      MTU

      Размер MTU для выбранного интерфейса.

      По умолчанию в системе уже созданы 3 VPN-интерфейса:

      • tunnel1, который рекомендовано использовать для Remote access VPN.
      • tunnel2, который рекомендовано использовать для серверной части Site-to-Site VPN.
      • tunnel3, который рекомендовано использовать для клиентской части Site-to-Site VPN.

      Интерфейс туннель

      Интерфейс туннель — это виртуальный сетевой адаптер, который может использоваться для создания соединения точка-точка через IP-сеть. Поддерживаются следующие типы туннельных интерфейсов:

      • GRE — протокол туннелирования сетевых пакетов, разработанный компанией Cisco Systems. Его основное назначение — инкапсуляция пакетов сетевого уровня в IP-пакеты. Номер протокола в IP — 47.
      • IPIP — это протокол IP-туннелирования, который инкапсулирует один IP-пакет в другой IP-пакет. Инкапсуляция одного IP пакета в другой IP пакет, это добавление внешнего заголовка с Source IP — точкой входа в туннель, и Destination IP — точкой выхода из туннеля.
      • VXLAN — это протокол туннелирования Layer 2 Ethernet кадров в UDP-пакеты, порт 4789.

      Для создания туннельного интерфейса в разделе Сеть ➜ Интерфейсы нажмите кнопку Добавить и выберите Добавить туннель. Задайте следующие параметры:

      Включено

      Включение или выключение данного интерфейса.

      Название

      Название интерфейса, должно быть в виде greN, где N — это порядковый номер туннельного интерфейса.

      Описание

      Зона

      Зона, к которой будет относится данный интерфейс.

      Режим

      Режим работы туннеля — GRE, IPIP, VXLAN.

      MTU

      Размер MTU для выбранного интерфейса.

      Локальный IP

      Локальный адрес point-to-point интерфейса.

      Удаленный IP

      Удаленный адрес point-to-point интерфейса.

      IP интерфейса

      IP-адрес , назначенный туннельному интерфейсу.

      VXLAN ID

      Идентификатор VXLAN. Только для типа туннеля VXLAN.

      Настройка Netflow

      Netflow — сетевой протокол, предназначенный для учёта сетевого трафика, разработанный компанией Cisco Systems, поддерживаемый в настоящее время многими вендорами. Для сбора информации о трафике по протоколу Netflow требуются следующие компоненты:

      • Сенсор — собирает статистику по проходящему через него трафику и передает ее на коллектор.
      • Коллектор — получает от сенсора данные и помещает их в хранилище.
      • Анализатор — анализирует собранные коллектором данные и формирует пригодные для чтения человеком отчёты (часто в виде графиков).

      Сервер UserGate может выступать в качестве сенсора. Для сбора и отправки статистики о трафике, проходящем через определенный сетевой интерфейс UserGate, необходимо выполнить следующие действия:

      Шаг 1. Создать профиль Netflow.

      В разделе Библиотеки ➜ Профили Netflow нажать на кнопку Добавить и создать профиль Netflow. Подробнее о профиле Netflow смотрите раздел Профили Netflow.

      Шаг 2. Назначить созданный профиль Netflow сетевому интерфейсу, на котором необходимо собирать статистику.

      В разделе Сеть ➜ Интерфейсы в настройках конкретного сетевого интерфейса указать созданный профиль Netflow.

      Настройка шлюзов

      Для подключения NGFW к интернету необходимо указать IP-адрес одного или нескольких шлюзов. Если для подключения к интернету используется несколько провайдеров, то необходимо указать несколько шлюзов. Настройка шлюза уникальна для каждого из узлов кластера.

      Пример настройки сети с двумя провайдерами:

      • Интерфейс eth1 с IP-адресом 192.168.11.2 подключен к интернет-провайдеру 1. Для выхода в интернет с этого провайдера необходимо добавить шлюз с IP-адресом 192.168.11.1
      • Интерфейс eth2 с IP-адресом 192.168.12.2 подключен к интернет-провайдеру 2. Для выхода в интернет с этого провайдера необходимо добавить шлюз с IP-адресом 192.168.12.1

      При наличии двух или более шлюзов возможны 2 варианта работы:

      Балансировка трафика между шлюзами

      Установить флажок Балансировка и указать Вес каждого шлюза. В этом случае весь трафик в интернет будет распределен между шлюзами в соответствии с указанными весами (чем больше вес, тем большая доля трафика идет через шлюз).

      При распределении трафика между шлюзами с разными весами происходит:

      1.Вычисление хэша от адресов источника и назначения.

      Трафик распределяется с учётом весов. Пусть настроены 2 шлюза:

      Тогда сессии между шлюзами будут распределяться согласно n1/w1 = n2/w2.

      Основной шлюз с переключением на запасной

      Выбрать один из шлюзов в качестве основного и настроить Проверку сети, нажав на одноименную кнопку в интерфейсе. Проверка сети проверяет доступность хоста в интернет (с помощью ping) с указанной в настройках периодичностью, и в случае, если хост перестает быть доступен, переводит весь трафик на запасные шлюзы в порядке их расположения в консоли(в случае если в текущей сессии не менялся порядок сортировки отбражаемых шлюзов,смена порядка сортировки не влияет на процесс выбора шлюза).

      По умолчанию проверка доступности сети настроена на работу с публичным DNS-сервером Google (8.8.8.8), но может быть изменена на любой другой хост по желанию администратора.

      Состояние шлюза (доступен — зеленый, не доступен — красный) определяется следующим образом:

      Проверка сети отключена

      Шлюз считается доступным, если NGFW может получить его MAC-адрес с помощью ARP-запроса. Проверка наличия доступа в интернет через этот шлюз не производится.

      Если MAC-адрес шлюза не может быть определен, шлюз считается недоступным.

      Проверка сети включена

      Шлюз считается доступным, если:

      • NGFW может получить его MAC-адрес с помощью ARP-запроса.
      • Проверка наличия доступа в интернет через этот шлюз завершилась успешно.

      В противном случае шлюз считается недоступным.

      Настройка DHCP

      Служба DHCP (Dynamic Host Configuration Protocol) позволяет автоматизировать процесс выдачи сетевых настроек клиентам в локальной сети. В сети с DHCP-сервером каждому сетевому устройству можно динамически назначать IP-адрес , адрес шлюза, DNS .

      UserGate может также выступать в качестве DHCP-релея, обеспечивая передачу DHCP-запросов от клиентов, находящихся в различных сетях, на центральный DHCP-сервер. Более подробно о настройке DHCP-релея можно посмотреть в разделе Настройка интерфейсов.

      В UserGate можно создать несколько диапазонов адресов для выдачи по DHCP . DHCP работает на каждом узле отказоустойчивого кластера независимо. Для обеспечения отказоустойчивости сервиса DHCP в кластере необходимо настроить DHCP на обоих узлах, указав непересекающиеся диапазоны IP-адресов.

      Для создания диапазона DHCP необходимо нажать на кнопку Добавить и указать следующие параметры:

      Включено

      Включает или отключает использование данного диапазона DHCP .

      Узел

      Узел кластера, на котором создается данный диапазон.

      Интерфейс

      Интерфейс сервера, на котором будут раздаваться IP-адреса из создаваемого диапазона.

      Диапазон IP

      Диапазон IP-адресов, выдаваемый клиентам DHCP .

      Маска

      Маска подсети , выдаваемая клиентам DHCP .

      Время аренды

      Время в секундах, на которое выдаются IP-адреса.

      Домен

      Название домена, выдаваемое клиентам DHCP .

      Шлюз

      IP-адрес шлюза, выдаваемый клиентам DHCP .

      Серверы имен

      IP-адрес DNS-серверов, выдаваемых клиентам DHCP .

      Зарезервированные адреса

      MAC-адреса и сопоставленные с ними IP-адреса.

      Игнорируемые MAC

      Список MAC-адресов, игнорируемых DHCP-сервером.

      DHCP PXE boot

      Адрес сервера и имя загрузочного файла, передаваемого на запрос PXE boot.

      DHCP опции

      Номер опции и ее значение (список опций доступен в Приложение 5. Опции DHCP ).

      Выданные IP-адреса отображаются в панели Арендованные адреса. Администратор может освободить любой выданный адрес, выделив адрес и нажав на кнопку Освободить.

      ПримечаниеЧтобы выдача адресов по DHCP работала на интерфейсе, который находится в зоне с включенной защитой от IP-спуфинга, необходимо в свойствах зоны во вкладке Защита от IP-спуфинга указать диапазоны выдаваемых IP-адресов, а также адрес 0.0.0.0.

      Примечание Если в настройках DHCP не указывать DNS сервера, то NGFW будет отдавать в качестве DNS сервера адрес, совпадающий с адресом шлюза

      Настройка DNS

      Данный раздел содержит настройки сервисов DNS и DNS-прокси.

      Для корректной работы продукта необходимо, чтобы NGFW мог разрешать доменные имена в IP-адреса. Укажите корректные IP-адреса серверов DNS в настройке Системные DNS-серверы.

      Сервис DNS-прокси позволяет перехватывать DNS-запросы от пользователей и изменять их в зависимости от нужд администратора. Сервис работает как в явном режиме, так и для перехвата транзитных запросов. Для явного режима необходимо разрешить доступ к сервису DNS на соответствующей зоне. Для перехвата транзитных запросов в этой зоне необходимо активировать следующие настройки в разделе DNS-прокси

      Кэширование DNS

      Включает или отключает кэширование ответов DNS . Рекомендуется оставить включенным для ускорения обслуживания клиентов.

      DNS-фильтрация

      Включает или отключает фильтрацию DNS-запросов.

      При включении DNS-фильтрации NGFW проверяет и перехватывает запросы, отправляя их дальше от своего IP-адреса. Если запрос соответствует запрещающему правилу контентной фильтрации, то он будет заблокирован.

      Для работы фильтрации необходимо приобрести лицензию на модуль ATP.

      Внимание! Функциональность DNS-фильтрации и мост L2 в текущей версии несовместимы — при включении DNS-фильтрации DNS-запросы через мост проходить перестают.

      Рекурсивные DNS-запросы

      Разрешает или запрещает серверу осуществлять рекурсивные DNS-запросы. Рекомендуется оставить эту опцию включенной.

      Максимальный TTL для DNS-записей

      Устанавливает максимально возможное время жизни для записей DNS .

      Лимит количества DNS-запросов в секунду на пользователя

      Устанавливает ограничение на количество DNS-запросов в секунду для каждого пользователя. Запросы, превышающие данный параметр, будут отброшены. Значение по умолчанию — 100 запросов в секунду. Не рекомендуется ставить большие значения для данного параметра, поскольку DNS-флуд ( DNS DoS attacks) является довольно частой причиной отказа обслуживания DNS-серверов.

      Только A и AAAA DNS-записи для не идентифицированных пользователей (защита от VPN поверх DNS )

      Если защита включена, то UserGate отвечает только на запросы на записи A и AAAA от неизвестных пользователей. Это позволяет эффективно блокировать попытки организации VPN поверх протокола DNS .

      С помощью правил DNS-прокси можно указать серверы DNS , на которые пересылаются запросы на определенные домены. Данная опция может быть полезна в случае, если внутри компании используется локальный домен, не имеющий связи с интернетом и использующийся для внутренних нужд компании, например, домен Active Directory.

      Чтобы создать правило DNS-прокси, необходимо выполнить следующие шаги:

      Шаг 1. Добавить правило.

      Нажать на кнопку Добавить, задать Название и Описание (опционально).

      Шаг 2. Указать список доменов.

      Задать список доменов, которые необходимо перенаправлять, например, localdomain.local. Допускается использование ‘*’ для указания шаблона доменов.

      Шаг 3. Указать DNS-серверы.

      Задать список IP-адресов DNS-серверов, куда необходимо пересылать запросы на указанные домены.

      Кроме этого, с помощью DNS-прокси можно задавать статические записи типа host (A-запись). Чтобы создать статическую запись, необходимо выполнить:

      Шаг 1. Добавить запись.

      Нажать на кнопку Добавить, задать Название и Описание (опционально).

      Шаг 2. Указать FQDN.

      Задать Fully Qualified Domain Name (FQDN) статической записи, например, www.example.com.

      Шаг 3. Указать IP-адреса.

      Задать список IP-адресов, которые NGFW будет возвращать при запросе данного FQDN.

      Виртуальные маршрутизаторы

      В крупных сетях зачастую множество логических сетей используют для прохождения трафика одни и те же сетевые устройства. Данный трафик должен быть разделен на сетевых устройствах, в первую очередь для уменьшения риска несанкционированного доступа между сетями.

      Виртуальные маршрутизаторы или Virtual Routing and Forwarding ( VRF ) обеспечивают разделение трафика путем разделения сетевых интерфейсов в независимые группы. Трафик из одной группы интерфейсов не может попасть в другие группы интерфейсов.

      Каждый виртуальный маршрутизатор имеет свою собственную таблицу маршрутизации. Таблица маршрутизации виртуального роутера может содержать запись о маршрутах, заданных статически или полученных с помощью протоколов динамической маршрутизации — BGP, OSPF, RIP.

      В рамках разных виртуальных маршрутизаторов допускается использовать одинаковые IP-сети (IP overlapping).

      Интерфейсы, не вошедшие ни в один из виртуальных маршрутизаторов, автоматически назначены в виртуальный маршрутизатор — Виртуальный маршрутизатор по умолчанию.

      Виртуальные маршрутизаторы имеют следующие ограничения:

      Следующие сервисы могут быть использованы только в Виртуальном маршрутизаторе по умолчанию:

      • WCCP.
      • ICAP.
      • DNS .
      • Авторизация .
      • Балансировка нагрузки
      • Любой сетевой трафик, генерируемый самим устройством — проверка лицензии, скачивание обновлений, отправка журналов, отправка почтовых сообщений, SMS сообщений, SNMP трапов и т.п.
      • Действие правил NAT, DNAT, Port forwarding распространяются на все виртуальные маршрутизаторы.
      • Зоны глобальны, то есть настройки зоны, и принадлежность интерфейсов к зонам распространяются на все виртуальные маршрутизаторы.

      ПримечаниеВиртуальный маршрутизатор по умолчанию необходим для корректной работы NGFW. Он используется для проверки лицензии, получения обновлений, работы DNS-служб.

      Для добавления виртуального маршрутизатора необходимо выполнить следующие действия:

      Примечание! Следующие префиксы не могут быть использованы для задания имени виртуального маршрутизатора: port, gre, egress, ingress, tun, tap, erspan, ppp, bond, bridge, pimreg.

      Шаг 1. Создать виртуальный маршрутизатор.

      В разделе Сеть ➜ Виртуальные маршрутизаторы нажмите добавить и задайте имя и описание нового виртуального маршрутизатора. Укажите имя узла, на котором создается данный виртуальный маршрутизатор при наличии кластера.

      Шаг 2. Добавить интерфейсы в созданный виртуальный маршрутизатор.

      В закладке Интерфейсы укажите интерфейсы, которые должны быть помещены в данный виртуальный маршрутизатор. Интерфейсы, добавленные в другие виртуальные маршрутизаторы, не могут быть добавлены; любой из интерфейсов может принадлежать только одному виртуальному маршрутизатору. В виртуальный маршрутизатор разрешается добавлять интерфейсы всех типов — физические, виртуальные ( VLAN ), бондинг, VPN и другие.

      Шаг 3. Добавить статические маршруты (опционально).

      Добавьте маршруты (кроме маршрута по умолчанию), которые будут применены к трафику в данном виртуальном маршрутизаторе. Подробнее читайте в разделе Статические маршруты.

      Маршрут по умолчанию добавляется в разделе Сеть ➜ Шлюзы. Подробнее о настройке шлюзов читайте в разделе Настройка шлюзов.

      Шаг 4. Добавить динамические маршруты, получаемые с помощью протокола маршрутизации OSPF (опционально).

      Настройте протокол OSPF для построения динамической карты маршрутов. Более подробно смотрите раздел руководства OSPF.

      Шаг 5. Добавить динамические маршруты, получаемые с помощью протокола маршрутизации BGP (опционально).

      Настройте протокол BGP для построения динамической карты маршрутов. Более подробно смотрите раздел руководства BGP.

      Шаг 6. Добавить динамические маршруты, получаемые с помощью протокола маршрутизации RIP (опционально).

      Настройте протокол RIP для построения динамической карты маршрутов. Более подробно смотрите раздел руководства RIP.

      Шаг 7. Настроить мультикастинг (опционально).

      Настройте параметры мультикастинга в данном виртуальном маршрутизаторе. Более подробно смотрите раздел руководства Мультикастинг.

      Статические маршруты

      Данный раздел позволяет указать маршрут в сеть, доступную за определенным маршрутизатором. Например, в локальной сети может быть маршрутизатор, который объединяет несколько IP-подсетей. Маршрут применяется локально к тому узлу кластера и в тот виртуальный маршрутизатор, в котором он создается.

      Для добавления маршрута необходимо выполнить следующие шаги:

      Шаг 1. Выбрать виртуальный маршрутизатор.

      При наличии нескольких виртуальных маршрутизаторов выберите необходимый.

      Шаг 2. Задать название и описание данного маршрута.

      В разделе Сеть ➜ Виртуальные маршрутизаторы выберите в меню Статические маршруты, нажмите кнопку Добавить. Укажите имя для данного маршрута. Опционально можно задать описание маршрута.

      Шаг 3. Указать тип данного маршрута.

      Возожно указать следующие типы маршрутов:

      • Unicast — стандартный тип маршрута. Пересылает трафик, адресованный на адреса назначения, через заданный шлюз.
      • Blackhole — трафик отбрасывается (теряется), не сообщая источнику о том, что данные не достигли адресата.
      • Unreachable — трафик отбрасывается. Источнику отправляется ICMP сообщение host unreachable (type 3 code 1).
      • Prohibit — трафик отбрасывается. Источнику отправляется ICMP сообщение host unreachable (type 3 code 13).

      Шаг 4. Указать адрес назначения.

      Задайте подсеть, куда будет указывать маршрут, например, 172.16.20.0/24 или 172.16.20.5/32.

      Шаг 5. Указать шлюз.

      Задайте IP-адрес шлюза, через который указанная подсеть будет доступна. Этот IP-адрес должен быть доступен с NGFW.

      Шаг 6. Указать интерфейс.

      Выберите интерфейс, через который будет добавлен маршрут. Если оставить значение Автоматически, то NGFW сам определит интерфейс, исходя из настроек IP-адресации сетевых интерфейсов.

      Шаг 7. Указать метрику.

      Задайте метрику маршрута. Чем меньше метрика, тем приоритетней маршрут, если маршрутов несколько в данную сеть несколько.

      Протоколы динамической маршрутизации

      Протоколы динамической маршрутизации используются для передачи информации о том, какие сети в настоящее время подключены к каждому из маршрутизаторов. Маршрутизаторы общаются, используя протоколы маршрутизации. NGFW обновляет таблицу маршрутизации в ядре в соответствии с информацией, которую он получает от соседних маршрутизаторов.

      Динамическая маршрутизация не меняет способы, с помощью которых ядро осуществляет маршрутизацию на IP-уровне. Ядро точно также просматривает свою таблицу маршрутизации, отыскивая маршруты к хостам, маршруты к сетям и маршруты по умолчанию. Меняется только способ помещения информации в таблицу маршрутизации: вместо добавления маршрутов вручную они добавляются и удаляются динамически.

      ПримечаниеЕсли в системе настроены статические шлюзы, то маршруты по умолчанию, полученные от протоколов динамической маршрутизации, игнорируются.

      NGFW поддерживает работу трех протоколов маршрутизации — OSPF, BGP, RIP.

      Внимание!Перед настройкой и использовании протоколов динамической маршрутизации необходимо задать соответствующие разрешения на вкладках Контроль доступа нужных зон.

      OSPF

      Протоколы динамической маршрутизации используются для передачи информации о том, какие сети в настоящее время подключены к каждому из маршрутизаторов. Маршрутизаторы общаются, используя протоколы маршрутизации. NGFW обновляет таблицу маршрутизации в ядре в соответствии с информацией, которую он получает от соседних маршрутизаторов. Динамическая маршрутизация не меняет способы, с помощью которых ядро осуществляет маршрутизацию на IP-уровне. Ядро точно также просматривает свою таблицу маршрутизации, отыскивая маршруты к хостам, маршруты к сетям и маршруты по умолчанию. Меняется только способ помещения информации в таблицу маршрутизации — вместо добавления маршрутов вручную они добавляются и удаляются динамически. Маршруты добавляются только в тот виртуальный маршрутизатор, в котором настроен протокол OSPF.

      OSPF (Open Shortest Path First) — протокол динамической маршрутизации, основанный на технологии отслеживания состояния канала (link-state) и использующий для нахождения кратчайшего пути алгоритм Дейкстры.

      Протокол OSPF распространяет информацию о доступных маршрутах между маршрутизаторами одной автономной системы (АС). Подробно о работе протокола OSPF читайте в соответствующей технической документации.

      ПримечаниеПри работе протокола OSPF в кластере отказоустойчивости в режиме Active-Passive, узел, который обладает ролью Slave, автоматически назначает стоимость для всех своих интерфейсов и для списков редистрибуции в 2 раза выше, чем установленная на узле стоимость. Тем самым обеспечивается приоритет Master-узла в маршрутизации трафика.

      Для настройки OSPF в NGFW необходимо выполнить следующие шаги:

      Шаг 1. Выбрать виртуальный маршрутизатор.

      При наличии нескольких виртуальных маршрутизаторов выберите необходимый.

      Шаг 2. Включить OSPF-роутер.

      В консоли NGFW в разделе Сеть ➜ Виртуальные маршрутизаторы выберите в меню OSPF и настройте OSPF-роутер.

      При настройке OSPF-роутера необходимо указать следующие параметры:

      Включено

      Включает или выключает использование данного OSPF-роутера.

      Идентификатор роутера

      IP-адрес роутера. Должен быть уникальным и задан в формате IPv4 (для удобства может совпадать с одним из IP-адресов, назначенным сетевым интерфейсам NGFW, относящимся к данному виртуальному маршрутизатору).

      Redistribute

      Распространять другим OSPF-роутерам маршруты в непосредственно подключенные к NGFW сети (connected) или статические маршруты, добавленные администратором для данного виртуального маршрутизатора (kernel).

      Метрика

      Установить метрику распространяемым маршрутам.

      Default originate

      Оповещать другие роутеры о том, что данный роутер имеет маршрут по умолчанию.

      При настройке интерфейсов OSPF укажите следующие параметры:

      Включено

      Включает или отключает использование данного интерфейса.

      Интерфейс

      Выбор одного из существующих в системе интерфейсов, на котором будет работать OSPF. Для выбора доступны только интерфейсы, входящие в данный виртуальный маршрутизатор.

      Стоимость

      Стоимость канала данного интерфейса. Данное значение передается в LSA (объявления о состоянии канала, link-state advertisement) соседним маршрутизаторам и используется ими для вычисления кратчайшего маршрута. Значение по умолчанию 1.

      Приоритет

      Целое число от 0 до 255. Чем больше значение, тем выше шанс у маршрутизатора стать назначенным маршрутизатором (designated router) в сети для рассылки LSA. Значение 0 делает назначение для данного маршрутизатора невозможным. Значение по умолчанию 1.

      Интервал hello

      Время в секундах, через которое маршрутизатор посылает hello-пакеты. Это время должно быть одинаковым на всех маршрутизаторах в автономной системе. Значение по умолчанию 10 секунд.

      Интервал dead

      Интервал времени в секундах, по истечении которого соседний маршрутизатор считается неработающим. Время исчисляется от момента приема последнего пакета hello от соседнего маршрутизатора. Значение по умолчанию 40 секунд.

      Интервал повторения

      Устанавливает временный интервал перед повторной отсылкой пакета LSA. Значение по умолчанию 5 секунд.

      Задержка передачи

      Устанавливает примерное время, требуемое для доставки соседним маршрутизаторам обновления состояния каналов (link state). Значение по умолчанию 1 секунда.

      Аутентификация

      Вкл

      Включает требование аутентификации каждого принимаемого роутером OSPF-сообщения. Аутентификация обычно используется для предотвращения инъекции фальшивого маршрута от нелегитимных маршрутизаторов.

      Тип авторизации

      • Plain — передача ключа в открытом виде для аутентификации роутеров. Необходимо указать значение поля Ключ.
      • Digest — использование MD5-хеша для ключа для аутентификации OSPF-пакетов. Необходимо указать Ключ и MD5 key ID. Эти параметры должны быть идентичными на всех роутерах для нормальной работы.

      Значение параметра Ключ может содержать только буквы латинского алфавита, цифры и символ подчёркивания. Максимальное количество символов — 16.

      При настройке области OSPF укажите следующие параметры:

      Включено

      Включает или отключает использование данной области.

      Имя

      Имя для данной области.

      Стоимость

      Стоимость LSA, анонсируемых в stub-области.

      Идентификатор области

      Идентификатор зоны (area ID). Идентификатор может быть указан в десятичном формате или в формате записи IP-адреса. Идентификатор области должен совпадать для установления соседства OSPF.

      Тип авторизации

      • Нет — не требовать авторизацию OSPF-пакетов.
      • Plain — передача ключа в открытом виде для аутентификации OSPF-пакетов. Используется ключ, заданный в настройках интерфейсов.
      • Digest — использование MD5-хеша для ключа для аутентификации OSPF-пакетов. Используется ключ, заданный в настройках интерфейсов.

      Идентификация на уровне интерфейсов имеет приоритет над авторизацией на уровне зоны.

      Тип области

      Определяет тип области. Поддерживаются следующие типы областей:

      • Нормальная — обычная зона, которая создается по умолчанию. Эта зона принимает обновления каналов, суммарные маршруты и внешние маршруты.
      • Тупиковая (Stub) — тупиковая зона, не принимает информацию о внешних маршрутах для автономной системы, но принимает маршруты из других зон. Если маршрутизаторам из тупиковой зоны необходимо передавать информацию за границу автономной системы, то они используют маршрут по умолчанию. В тупиковой зоне не может находиться ASBR.
      • NSSA — Not-so-stubby. Зона NSSA определяет дополнительный тип LSA — LSA type 7. В NSSA зоне может находиться пограничный маршрутизатор (ASBR).

      Не суммировать

      Запрещает инжекцию суммированных маршрутов в тупиковые типы областей.

      Интерфейсы

      Выбор интерфейсов OSPF, на которых будет доступна данная зона.

      Виртуальные ссылки

      Специальное соединение, которое позволяет соединять, например, разорванную на части зону или присоединить зону к магистральной через другую зону. Настраивается между двумя ABR.

      Позволяет маршрутизаторам передать пакеты OSPF через виртуальные ссылки, инкапсулируя их в IP-пакеты. Этот механизм используется как временное решение или как backup на случай выхода из строя основных соединений.

      Можно указать идентификаторы маршрутизаторов, которые доступны через данную зону.

      BGP

      Протоколы динамической маршрутизации используются для передачи информации о том, какие сети в настоящее время подключены к каждому из маршрутизаторов. Маршрутизаторы общаются, используя протоколы маршрутизации. NGFW обновляет таблицу маршрутизации в ядре в соответствии с информацией, которую он получает от соседних маршрутизаторов. Динамическая маршрутизация не меняет способы, с помощью которых ядро осуществляет маршрутизацию на IP-уровне. Ядро точно также просматривает свою таблицу маршрутизации, отыскивая маршруты к хостам, маршруты к сетям и маршруты по умолчанию. Меняется только способ помещения информации в таблицу маршрутизации: вместо добавления маршрутов вручную они добавляются и удаляются динамически. Маршруты добавляются только в тот виртуальный маршрутизатор, в котором настроен протокол BGP.

      BGP (Border Gateway Protocol) — динамический протокол маршрутизации, относится к классу протоколов маршрутизации внешнего шлюза (англ. EGP — External Gateway Protocol). На текущий момент является основным протоколом динамической маршрутизации в интернете. Протокол BGP предназначен для обмена информацией о достижимости подсетей между автономными системами (АС), то есть группами маршрутизаторов под единым техническим и административным управлением, использующими протоколы внутридоменной маршрутизации для определения маршрутов внутри себя и протокол междоменной маршрутизации для определения маршрутов доставки пакетов в другие АС. Передаваемая информация включает в себя список АС, к которым имеется доступ через данную систему. Выбор наилучших маршрутов осуществляет исходя из правил, принятых в сети. Подробно о работе протокола BGP читайте в соответствующей технической документации.

      Для настройки BGP в NGFW необходимо выполнить следующие шаги:

      Шаг 1. Выбрать виртуальный маршрутизатор.

      При наличии нескольких виртуальных маршрутизаторов выберите необходимый.

      Шаг 2. Включить BGP-роутер.

      В консоли NGFW в разделе Сеть ➜ Виртуальные маршрутизаторы выберите в меню BGP и настройте BGP-роутер.

      Шаг 3. Задать фильтры и Routemap (опционально) для ограничения количества получаемых маршрутов.

      В разделе Фильтры нажать на кнопку Добавить и настроить параметры Routemap/фильтров. Добавить столько Routemap/фильтров, сколько необходимо для работы BGP в вашей организации.

      Шаг 4. Добавить хотя бы одного BGP-соседа (пира).

      В разделе BGP-соседи нажать на кнопку Добавить и настроить параметры маршрутизатора, относящегося к соседней АС. Добавить столько соседей, сколько необходимо.

      Важно! Согласно требованиям RFC-8212 для каждого соседа необходимо обязательно указать входящие и исходящие фильтры. Без входящих фильтров роутер не будет принимать маршруты с данного соседа, при отсутствии исходящих фильтров роутер не будет анонсировать маршруты на данного соседа.

      Если интерфейсу NGFW, с которого устанавливается подключение к соседу, назначено несколько IP-адресов, то при настройке BGP-соседа, в случае отсутствия правила NAT, принудительно устанавливающего адрес источника для BGP-сессии с этим соседом, в качестве адреса NGFW необходимо указывать основной (primary) IP-адрес , т.е. адрес, который стоит первым в списке в настройках интерфейса.

      При настройке BGP-роутера необходимо указать следующие параметры:

      Включено

      Включает или отключает использование данного BGP-роутера.

      Идентификатор роутера

      IP-адрес роутера. Должен совпадать с одним из IP-адресов, назначенным сетевым интерфейсам NGFW, относящимся к данному виртуальному маршрутизатору.

      Номер автономной системы (АС)

      Автономная система — это система IP-сетей и маршрутизаторов, управляемых одним или несколькими операторами, имеющими единую политику маршрутизации. Номер автономной системы задает принадлежность роутера к этой системе.

      Redistribute

      Позволяет распространять другим BGP-маршрутизаторам маршруты в непосредственно подключенные к NGFW-сети (connected), статические маршруты, добавленные администратором для данного виртуального маршрутизатора (kernel), или маршруты, полученные по протоколу OSPF.

      Multiple path

      Включает балансировку трафика на маршруты с одинаковой стоимостью.

      Сети

      Список сетей, относящихся к данной АС.

      Для добавления BGP-соседей нажмите кнопку Добавить и укажите следующие параметры:

      Включено

      Включает или отключает использование данного соседа.

      Host

      Описание

      Произвольное описание соседа.

      Удаленная ASN

      Номер автономной системы, к которой относится сосед.

      Вес

      Вес данных маршрутов, получаемых от данного соседа.

      TTL

      Максимальное количество хопов, разрешенное до этого соседа.

      Allowas-in

      По-умолчанию BGP маршрутизатор отбрасывает маршрут если видит в AS path собственный номер автономной системы. Эта директива позволяет маршрутизатору нарушить данное правило. Номер — указывает количество раз, которое может встречаться в AS Path номер AS BGP-соседа. Возможны значения от 0 до 10 (0 — origin).

      Анонсировать себя в качестве следующего перехода (next-hop-self) для BGP

      Заменять значение next-hop-self на собственный IP-адрес , если сосед является BGP.

      Multihop для eBPGP

      Указывает, что до этого соседа непрямое соединение (более одного хопа).

      Route reflector client

      Указывает, является ли этот сосед клиентом Route reflector.

      Soft reconfiguration

      Использовать soft reconfiguration (без разрыва соединений) для обновления конфигурации.

      Default originate

      Анонсировать этому соседу маршрут по умолчанию.

      Аутентификация

      Включает аутентификацию для данного соседа и задает пароль для аутентификации.

      Фильтры BGP-соседей

      Ограничивает информацию о маршрутах, получаемых от соседей или анонсируемых к ним.

      Routemaps

      Routemaps используются для управления таблицами маршрутов и указания условий, при выполнении которых маршруты передаются между доменами.

      Routemap позволяет фильтровать маршруты при перераспределении и изменять различные атрибуты маршрутов. Для создания routemap необходимо указать следующие параметры:

      ВниманиеДля анонсирования маршрутов они должны присутствовать в таблице маршрутизации!

      Название

      Имя для данного routemap.

      Действие

      Устанавливает действие для данного routemap, может принимать значения:

      • Разрешить — разрешает прохождение данных, попадающих под условия routemap.
      • Запретить — запрещает прохождение данных, попадающих под условия routemap.

      Сравнивать по

      Условия применения routemap, может принимать значения:

      • IP. Если выбрано данное условие, то в закладке IP-адреса надо добавить все необходимые IP-адреса для данного условия.
      • AS путь. Если выбрано данное условие, то в закладке AS-путь надо добавить все необходимые номера автономных сетей для данного условия. Допускается указывать регулярные выражения формата POSIX 1003.2, а также дополнительный символ подчеркивания (_), который интерпретируется как:
      • Пробел.
      • Запятая.
      • Начало строки.
      • Конец строки.
      • AS set delimiter { and }.
      • AS confederation delimiter ( and ).
      • Community. Если выбрано данное условие, то в закладке Community надо добавить строки всех необходимых BGP community для данного условия.

      Установить next hop

      Установить для отфильтрованных маршрутов значение next hop в указанный IP-адрес .

      Установить вес

      Установить для отфильтрованных маршрутов вес в указанное значение.

      Установить метрику

      Установить для отфильтрованных маршрутов метрику в указанное значение.

      Установить предпочтение

      Установить для отфильтрованных маршрутов предпочтение в указанное значение.

      Установить AS-prepend

      Установить значение AS-prepend — список автономных систем, добавляемых для данного маршрута.

      Community

      Установить значение для BGP community для отфильтрованных маршрутов.

      Фильтр позволяет фильтровать маршруты при перераспределении. При создании фильтров необходимо указать следующие параметры:

      Название

      Имя для данного фильтра.

      Действие

      Устанавливает действие для данного фильтра, может принимать значения:

      • Разрешить — разрешает прохождение данных, попадающих под условия фильтра.
      • Запретить — запрещает прохождение данных, попадающих под условия фильтра.

      Фильтровать по

      Условия применения фильтра, может принимать значения:

      • IP. Если выбрано данное условие, то в закладке IP-адреса надо добавить все необходимые IP-адреса для данного условия. Адреса могут быть указаны в следующих форматах:
        • 10.0.0.0/8 — только сеть 10.0.0.0/8.
        • 10.0.0.0/8::11 — маршруты, у которых первый октет 10 и префикс от 8 до 11.
        • 10.0.0.0/8:11:13 — маршруты, у которых первый октет 10 и префикс от 11 до 13.

        RIP

        Протоколы динамической маршрутизации используются для передачи информации о том, какие сети в настоящее время подключены к каждому из маршрутизаторов. Маршрутизаторы общаются, используя протоколы маршрутизации. NGFW обновляет таблицу маршрутизации в ядре в соответствии с информацией, которую он получает от соседних маршрутизаторов. Динамическая маршрутизация не меняет способы, с помощью которых ядро осуществляет маршрутизацию на IP-уровне. Ядро точно также просматривает свою таблицу маршрутизации, отыскивая маршруты к хостам, маршруты к сетям и маршруты по умолчанию. Меняется только способ помещения информации в таблицу маршрутизации: вместо добавления маршрутов вручную они добавляются и удаляются динамически. Маршруты добавляются только в тот виртуальный маршрутизатор, в котором настроен протокол RIP.

        RIP (Routing Information Protocol) — протокол дистанционно-векторной маршрутизации, который оперирует транзитными участками (хоп, hop) в качестве метрики маршрутизации. Подробно о работе протокола RIP читайте в соответствующей технической документации.

        Для настройки RIP в NGFW необходимо выполнить следующие шаги:

        Шаг 1. Выбрать виртуальный маршрутизатор.

        При наличии нескольких виртуальных маршрутизаторов выберите необходимый.

        Шаг 2. Включить RIP-роутер.

        В консоли NGFW в разделе Сеть ➜ Виртуальные маршрутизаторы выберите в меню RIP и настройте RIP-роутер.

        Шаг 3. Указать сети RIP.

        В консоли NGFW в разделе Сеть ➜ Виртуальные маршрутизаторы выберите в меню RIP и укажите сети RIP, для которых будет работать RIP протокол.

        Шаг 4. Настройте интерфейсы RIP.

        В консоли NGFW в разделе Сеть ➜ Виртуальные маршрутизаторы выберите в меню RIP и произведите настройку интерфейсов RIP.

        При настройке RIP-роутера необходимо указать следующие параметры:

        Включено

        Включает или выключает использование данного RIP-роутера.

        Версия RIP

        Определяет версию протокола RIP. Как правило используется версия протокола 2.

        Метрика по умолчанию

        Стоимость маршрута. Обычно метрика равна 1 и не может превышать 15.

        Административное расстояние

        Стоимость маршрутов, полученных с помощью протокола RIP. Значение по умолчанию для протокола RIP — 120. Используется для выбора маршрутов при наличии нескольких способов получения маршрутов (OSPF, BGP, статические).

        Отправлять себя в качестве маршрута по умолчанию

        Оповещать другие роутеры о том, что данный роутер имеет маршрут по умолчанию.

        Маршрутизатор RIP будет слать обновления маршрутной информации только с интерфейсов, для которых заданы сети RIP. Необходимо указать как минимум одну сеть для корректной работы протокола. При настройке сетей RIP администратор может указать сеть в виде CIDR, например, 192.168.1.0/24, либо указать сетевой интерфейс, с которого будут отправлять обновления.

        При настройке интерфейсов RIP укажите следующие параметры:

        Интерфейс

        Выберите интерфейс, который будет использоваться для работы протокола RIP. Для выбора доступны только те интерфейсы, которые входят в данный виртуальный маршрутизатор.

        Посылать версию

        Укажите версию протокола RIP, которую маршрутизатор будет отсылать.

        Принимать версию

        Укажите версию протокола RIP, которую маршрутизатор будет принимать.

        Пароль

        Строка для авторизации, которая будет посылаться и приниматься в пакетах RIP. Все роутеры, участвующие в обмене информации по протоколу RIP, должны иметь одинаковый пароль.

        Split horizon

        Метод предотвращения петель маршрутизации, при котором маршрутизатор не распространяет информацию о сети через интерфейс, на который прибыло обновление.

        Poison reverse

        Метод предотвращения петель маршрутизации, при котором маршрутизатор устанавливает стоимость маршрута в 16 и отсылает его соседу, от которого его получил.

        Пассивный режим

        Устанавливает режим работы интерфейса, при котором он принимает обновления RIP, но не отсылает их.

        Параметры редистрибуции маршрутов позволяют указать какие из маршрутов необходимо отправлять соседям. Возможно задать для редистрибуции маршруты, полученные через протоколы динамической маршрутизации OSPF, BGPG, а также маршруты в непосредственно подключенные к NGFW сети (connected) или маршруты, добавленные администратором в разделе Маршруты (kernel).

        Мультикастинг

        Технология IP мультикастинга позволяет существенно сократить передаваемый объем трафика, доставляя единый поток информации одновременно к тысячам и более потребителей, что особенно эффективно для доставки голосового и видео трафика. Традиционные методы доставки трафика — это unicast (доставка от точки к точке) и broadcast (широковещательная посылка трафика). Мультикастинг (multicast) позволяет доставить трафик к группе хостов (мультикаст-группа). Хосты (получатели), которые хотят получать данный трафик, должны вступить (присоединиться) к соответствующей мультикаст-группе. Для присоединения хостов к мультикаст-группе используется протокол Internet Group Management Protocol (IGMP). Мультикаст-группа идентифицируется групповым адресом. Для мультикастовых адресов выделена подсеть класса D с верхними 4 битами, установленными в 1110. Таким образом диапазон адресов для мультикаст-трансляций определен как 224.0.0.0 — 239.255.255.255.

        Далее маршрутизаторы должны обеспечить эффективную доставку трафика от источника трансляции к получателям. Protocol Independent Multicast (PIM) используется на маршрутизаторах для достижения данной цели.

        Маршрутизаторы в мультикастинговой среде можно разделить на First Hop Router (FHR), Rendezvous Point (RP), Last Hop Router (LHR). FHR находится ближе всего к источнику трансляции и отвечает за регистрацию источника трансляции в сети. RP является каталогом доступных мультикаст-источников для Any Source Multicast (ASM) режима. LHR находится ближе всего к приемнику мультикаст-трансляции. Клиенты (приемники трансляции) в локальных сетях, подключенных к LHR, используют протокол IGMP для регистрации себя в необходимой мультикаст-группе, посылая сообщение IGMP membership report.

        NGFW может быть использован в качестве LHR для локальных сетей, подключенных к нему. Для регистрации клиентов (приемников) NGFW поддерживает протоколы IGMPv3 и IGMPv2.

        Для взаимодействия с другими мультикаст-маршрутизаторами NGFW может использовать только режим работы PIM Sparse Mode (PIM-SM). Это режим, в котором мультикаст-трафик отсылается только на те приемники, которые явно запросили это. Приемники должны периодически подтверждать свое желание получать мультикаст-трафик.

        NGFW поддерживает режимы работы Source Specific Multicast (SSM) и Any Source Multicast (ASM).

        Режим работы Source Specific Multicast (SSM) используется, когда приемник трафика явно указывает известный ему адрес источника трансляции. В данном режиме используется следующая адресация:

        где src_ip — адрес источника трансляции, group_address — мультикастовый групповой адрес, port — порт. Например:

        Режим работы Any Source Multicast (ASM). В этом режиме приемник трансляции указывает мультикаст-группу, с которой хочет получать трансляцию. Для работы данного режима необходимо наличие маршрутизатора с ролью Rendezvous Point (RP). RP определяет источник трансляции для этой группы для данного приемника. После чего источник и приемник выбирают лучший сетевой путь для пересылки данного мультикаст-трафика. В данном режиме используется следующая адресация:

        где group_address — мультикастовый групповой адрес, port — порт. Например:

        Для настройки работы NGFW в качестве LHR мультикаст-роутера необходимо выполнить следующие шаги:

        Шаг 1. Настроить мультикаст-роутер.

        В консоли NGFW в разделе Сеть ➜ Виртуальные маршрутизаторы выберите в меню Мультикаст маршрутизатор и настройте его.

        Шаг 2. Указать интерфейсы, на которых должен работать данный роутер.

        В консоли NGFW в разделе Сеть ➜ Виртуальные маршрутизаторы выберите в меню Интерфейсы и произведите настройку интерфейсов. Будут доступны только те интерфейсы, которые относятся к данному виртуальному маршрутизатору.

        Шаг 3. Задать Rendezvous points для режима ASM (опционально).

        В консоли NGFW в разделе Сеть ➜ Виртуальные маршрутизаторы выберите в меню Rendezvous points и укажите их адреса.

        Шаг 4. Установить необходимые ограничения на доступные мультикаст-группы для режима ASM (опционально).

        В консоли NGFW в разделе Сеть ➜ Виртуальные маршрутизаторы выберите в меню Rendezvous points и укажите адреса разрешенных мультикаст-групп в закладке Разрешенные группы ASM. Если оставить этот список пустым, то будут разрешены все групповые адреса.

        Шаг 5. Установить необходимые ограничения на доступные мультикаст-группы для режима SSM (опционально).

        В консоли NGFW в разделе Сеть ➜ Виртуальные маршрутизаторы выберите в меню Разрешенные группы SSM и укажите адреса разрешенных мультикаст-групп Если оставить этот список пустым, то будут разрешены все групповые адреса.

        При настройке мультикаст роутера возможно указать следующие параметры:

        Включено

        Включает или выключает мультикаст роутер в данном виртуальном маршрутизаторе.

        Использовать ECMP

        Разрешает распределение трафика по нескольким маршрутам по технологии Equal Cost Multi Path (ECMP). Требуется наличие нескольких маршрутов до необходимого сетевого узла. Если данная опция отключена, то весь трафик на определенный хост назначения будет пересылаться только через один из роутеров (next hop).

        Использовать ECMP rebalance

        Если при включенной опции один из интерфейсов, через который отсылался трафик, отключился, то все существующие потоки будут перераспределены между оставшимися маршрутами (next hop). При отключенной опции перераспределяются только те потоки, которые передавались через отключенный интерфейс.

        JOIN/PRUNE интервал

        Интервал в секундах (60-600) отправки сообщений соседям PIM о мультикаст-группах, трафик которых маршрутизатор хочет принимать или более не хочет принимать.

        Интервал register suppress

        Интервал в секундах (5-60000), после которого маршрутизатор отсылает сообщение register suppress.

        Keep-alive таймер

        Интервал в секундах (31-60000), через который маршрутизатор будет посылать сообщения keepalive соседям, а также интервал, который маршрутизатор будет ждать, прежде чем будет считать соседа недоступным.

        При настройке интерфейсов можно задать следующие параметры:

        Включено

        Включает или отключает использование данного интерфейса для мультикастинга.

        Интерфейс

        Выберите интерфейс, который будет использоваться для работы мультикаста. Для выбора доступны только те интерфейсы, которые входят в данный виртуальный маршрутизатор.

        Интервал отправки HELLO сообщений

        Интервал отправки PIM HELLO сообщений в секундах (1-180). PIM Hello сообщения отправляются периодически со всех интерфесов, для которых включена поддержка мультикастинга. Эти сообщения позволяют узнать маршрутизатору о соседних маршрутизаторах, поддерживающих мультикастинг.

        Приоритет выбора DR

        Приоритет при выборе Designated router (DR) от 1 до 4294967295, с помощью которого администратор может управлять процессом выбора DR для локальной сети.

        Принимать IGMP

        Принимать сообщения IGMP report и IGMP query на данном интерфейсе.

        Использовать IGMPv2

        Использовать версию IGMP v2, по умолчанию используется IGMP v3.

        При настройке Rendevouz points можно указать следующие параметры:

        Включено

        Включает или отключает данный RP.

        Название

        Название данного RP.

        IP-адрес

        Unicast IP-адрес данного RP.

        Разрешенные руппы ASM

        Список разрешенных групповых адресов для any source multicast с данного RP. Любые сети из диапазона 224.0.0.0/4. Нет ограничений, если ничего не задано.

        Разрешенные группы SSM — настройка мультикаст роутера, определяющая список разрешенных групповых адресов для source specific multicast. Могут быть укзаны любые сети из диапазона 232.0.0.0/8. Нет ограничений, если ничего не задано.

        Исключения из SPT — настройка мультикаст роутера, задающая список IPv4 мультикаст-групп, исключенных из переключения на shortest path tree.

        Web Cache Communication Protocol (WCCP) — разработанный компанией Cisco протокол перенаправления контента. Предоставляет механизм перенаправления потоков трафика в реальном времени, имеет встроенные масштабирование, балансировку нагрузки, отказоустойчивость. При использовании WCCP, WCCP-сервер принимает HTTP-запрос от клиентского браузера и перенаправляет его на один или несколько WCCP-клиентов. WCCP-клиент получает данные из интернет и возвращает их в браузер клиента. Доставка данных клиенту может происходить как через WCCP-сервер, так и минуя его, в соответствии с правилами маршрутизации.

        NGFW может выступать в качестве WCCP-клиента. В качестве WCCP-сервера обычно выступает маршрутизатор. Для трафика, полученного через WCCP, можно применять все доступные механизмы фильтрации.

        Сервисная группа WCCP — это набор серверов WCCP (роутеры, коммутаторы) и клиентов WCCP (NGFW) с общими настройками перенаправления трафика. Сервера, указанные в одной сервисной группе, должны иметь идентичные настройки.

        Для настройки WCCP-клиента в NGFW необходимо выполнить следующие шаги:

        Шаг 1. Настройте WCCP сервер.

        Произведите настройку сервера WCCP в соответствии с инструкцией на WCCP-сервер.

        Шаг 2. Настроить сервисные группы WCCP.

        В консоли NGFW в разделе Сеть ➜ WCCP нажать на кнопку Добавить и создать одну или несколько сервисных групп WCCP.

        При создании сервисной группы укажите следующие параметры:

        Включено

        Включает или отключает данную сервисную группу.

        Название

        Имя сервисной группы.

        Описание

        Описание сервисной группы.

        Сервисная группа

        Числовой идентификатор сервисной группы. Идентификатор сервисной группы должен быть одинаков на всех устройствах, входящих в группу.

        Приоритет

        Приоритет группы. Если несколько сервисных групп применимы к трафику на сервере WCCP, то приоритет определяет порядок, в котором сервер будет распределять трафик на клиенты WCCP.

        Пароль

        Пароль, необходимый для аутентификации NGFW в сервисной группе. Пароль должен совпадать с паролем, указанным на серверах WCCP.

        Способ перенаправления трафика

        Определяет способ перенаправления трафика с серверов WCCP на NGFW. Возможны значения:

        • gre — используя туннель Generic Routing Encapsulation (GRE).
        • L2 — используя перенаправление L2. В этом случае роутер (WCCP сервер) изменяет MAC-адрес назначения в пакете на адрес NGFW.

        Перенаправление L2 как правило требует меньшее количество ресурсов, чем gre, но сервер WCCP и NGFW должны находиться в одном L2 сегменте. Не все типы серверов WCCP поддерживают работу с WCCP клиентами по L2.

        Важно! Для трафика, полученного через WCCP-туннель, в качестве IP источника NGFW будет использовать IP-адрес компьютера клиента, а зона источника не будет определена, поэтому в правилах фильтрации для зоны источника не следует явно указывать зону (оставить Any).

        Способ возврата трафика

        Определяет способ перенаправления трафика с NGFW на серверы WCCP. Возможны значения:

        • gre — используя туннель Generic Routing Encapsulation (GRE).
        • L2 — используя перенаправление L2. В этом случае NGFW (WCCP клиент) изменяет MAC-адрес назначения в пакете на адрес роутера (WCCP сервер).

        Перенаправление L2 как правило требует меньшее количество ресурсов, чем gre, но сервер WCCP и NGFW должны находиться в одном L2 сегменте. Не все типы серверов WCCP поддерживают работу с WCCP клиентами по L2.

        Порты для перенаправления

        Порты для перенаправления. Укажите здесь порты назначения трафика. При необходимости указать несколько портов, укажите их через запятую, например:

        Для перенаправления трафика на основании значений портов источника необходимо поставить флажок Порт источника.

        Важно! NGFW может применять фильтрацию только для перенаправленного TCP трафика с портами назначения 80, 443 (HTTP/HTTPS). Трафик, переданный на NGFW с другими портами, будет отправляться в интернет без фильтрации.

        Протокол

        Укажите протокол — TCP или UDP.

        Роутеры WCCP

        Укажите IP-адреса серверов WCCP (роутеры).

        Способ назначения

        При наличии в сервисной группе нескольких WCCP-клиентов способ назначения определяет распределение трафика от WCCP-серверов по WCCP-клиентам. Возможны варианты:

        • Хэш — распределение трафика на основе хэша, вычисляемому по указанным полям IP-пакета. Альтернативный хэш — если указан, то WCCP-сервер будет использовать его при превышении определенного количества пакетов, отправленных на WCCP-клиента с использованием обычного хэша. Поля IP-пакета, используемые для получения хэша, должны отличаться для вычисления основного и альтернативного хэшей.
        • Маска — распределение трафика на основе вычисления операции AND между маской и выбранным заголовком пакета. При выборе маски проконсультируйтесь с документацией производителя сервера WCCP.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *