Всем известно, что 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.
И теперь, если в заголовке запроса, будет упоминаться тот или иной 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 записей, может привести к высокой нагрузке на маршрутизатор. Поэтому не стоит злоупотреблять данной функцией.
Авторизуйтесь, чтобы добавить отзыв