Всім відомо, що Mikrotik RouterOS , це досить гнучка, мережева операційна система з великим функціоналом і досить великою кількістю різноманітних функцій та протоколів. Однією з таких функцій, які стосуються розділу Firewall, є Layer7 protocol. І вона не заслужена обділена увагою, про неї мало інформації і навіть не всі знають, навіщо вона. Ось саме цю прогалину, ми сьогодні і постараємося заповнити, адже дана особливість відкриває досить широкі можливості щодо визначення виду трафіку та його подальшого сортування.
За своєю суттю, Layer7 protocol є методом пошуку збігів по регулярним виразам в ICMP, TCP і UDP потоках. І працює наступним чином: з кожного з'єднання беруться перші 10 пакетів або перші 2KB, в яких проводиться пошук збігів. Таким чином, ми можемо знаходити той чи інший вид трафіку і далі обробляти його в Firewall - забороняти, перенаправляти, маркувати з'єднання та інше.
Найчастіше, L7 використовують для блокування тих чи інших сайтів або роботи тих чи інших програм. Розглянемо, наприклад, блокування сайтів соціальних мереж за допомогою цієї функції.
Припустимо, що нам потрібно заблокувати відвідування сайтів ВКонтакте, Однокласники, Facebook та Twitter. Для цього ми спочатку створюємо регулярний вираз виду:
^.*(get|GET).+(vk.com|odnoklassniki.com|facebook.com|twitter.com).*$
Підключаємося до нашого маршрутизатора і переходимо в розділ IP-Firewall, де відкриваємо вкладку Layer7 Protocol і додаємо новий запис, кнопкою +.
Десь у полі Name, вписуємо ім'я нового запису, а в полі Regexp, вставляємо наш регулярний вираз.
І тепер, на його основі, ми можемо створювати правила Firewall на відповідній вкладці.
Тут ми додаємо правило, з наступними параметрами: Chain - forward, Layer7 Protocol - вибираємо створений раніше запис, і Action - drop.
мереж" src="https://lh3.googleusercontent.com/pGNFQ5DILNaYcmy8S0P--a3mxOHKUpPuv_HrRbzFQyq_TPCwEnefRbDi_-EXKkQJNxFqYwmI3v-iAksoJ8D_ZMb8 мереж" width="624px;" height="388px;" />
мереж, вкладка додаткові" src="https://lh4.googleusercontent.com/cztLJOP0N3vZ2A9F5ggFbaXwakBtKKaWrhmfRBfogC29IeMLY7LF9GrbGt2PvhDliWP8vBONUmbPTZ_05jytu мереж, вкладка додаткові" width="624px;" height="388px;" />
мереж, вкладка дія" src="https://lh3.googleusercontent.com/-Gj3hoZOiqxAFZrOxJtljNatJAzoH3VCn7WGZJgdYPLezeeJAWlnMYurJbFrULRsCyaLJQ_Ttl5xAO1651sUSij9dFbq мереж, вкладка дія" width="624px;" height="388px;" />
І тепер, якщо в заголовку запиту, згадуватиметься той чи інший URL, перерахований у регулярному виразі, цей запит буде відхилений.
Однак спектр можливого застосування Layer7 protocol не обмежується лише заборонами. Можна і навпаки, надати пріоритет тому чи іншому виду сполук, визначених за допомогою цієї функції. Наприклад, визначити телефонне з'єднання за протоколом SIP за допомогою регулярного виразу виду:
^(invite|register|cancel|message|subscribe|notify) sip[x09-x0d -~]*sip/[0-2].[0-9]
Після цього позначити всі пакети даного типу за допомогою правила на вкладці Mangle.
І створити правило, відповідно до якого, даним пакетам буде надано пріоритетну ширину каналу в 25Mbit/s у розділі Queues.
В цілому, Layer7 protocol - це досить цікавий інструмент, що надає вам широкі можливості для управління потоками трафіку у вашій мережі. Освоївши який, можна проводити найрізноманітніші маніпуляції з пакетами та з'єднаннями. Однак, наприкінці, хочеться попередити, що велика кількість L7 записів може призвести до високого навантаження на маршрутизатор. Тому не варто зловживати цією функцією.
Авторизуйтеся, щоб додати відгук