Обхід блокування сайтів з боку провайдера Mikrotik (RouterOS) за допомогою Policy Based Routing
Трапляються такі ситуації, коли провайдер блокує доступ до деяких ресурсів. Найчастіше блокування ресурсів здійснюється на базі URL, IP і DNS, багато що, звичайно ж, залежить від типу та можливостей обладнання, що застосовується самим провайдером.
Блокування по DNS зводиться до заборони, виключення чи заміні кінцевого IP для заданого домену. Насправді, цей спосіб блокування обходиться досить легко, шляхом заміни DNS провайдера на сторонні, наприклад Google DNS (8.8.8.8, 8.8.4.4), Yandex DNS (базовий: 77.88.8.8, 77.88.8.1; безпечний: 77.8.8.8. 77.88.8.2, сімейний 77.88.8.7, 77.88.8.3) або будь-який інший, який вашій душі догідний.
Серйозні провайдери можуть використовувати так званий DPI (Deep packet inspection), який по суті є глибоким аналізом пакетів. DPI здатний блокувати ресурси не тільки через IP або DNS, але і при використанні проксі-серверів (Proxy) або інших каналів передачі.
Що стосується DPI, все набагато складніше, т.к. система аналізує не тільки заголовки пакетів, кінцевого одержувача і т.д., але і вміст пакету, копаючись в даних, що передаються, тим самим може навіть порушувати законодавство, якщо, звичайно ж, в угоді користувача немає дрібного шрифту. Можливості DPI дуже широкі і за бажання провайдер може навіть заборонити вам використовувати OpenVPN.
Сьогодні ми не розглядатимемо всі методи обходу всіх видів блокування, а лише розглянемо один із варіантів реалізації обходу, який запропонований в офіційній документації Mikrotik (Policy Based Routing).
Передбачається, що заздалегідь у вас вже повинен бути маршрутизатор на RouterOS, якщо такого немає - за вигідною ціною маршрутизатори Mikrotik можна придбати в інтернет-магазині Gigahertz.

Найбільш простийваріант обходу – використовувати сервери VPN. Причому заблоковані ресурси можна відкривати через VPN, а всі інші – через провайдера.
Цей метод має ряд переваг. Одна з головних переваг цього методу полягає в тому, що ви будете використовувати лише частину пропускної здатності VPN. Справа в тому, що сервіси VPN зазвичай знаходяться далеко за кордоном і канали до них сильно завантажені, тому направляючи через тунель весь трафік, швидкість доступу падатиме, причому як для заблокованих ресурсів, так і для всіх інших.
Всі діапазони у вигляді команд для Mikrotik, для простоти додавання. Дехто запитає, а чому не об'єднати всі ресурси в один список? Відповідь дуже проста, при зміні одного інтернет-ресурсу, ви будете змушені переглядати весь список, т.к. за одними підмережами ви орієнтуватися буде складно.
Адреси можна додавати як вручну через термінал ізWinBox > New Terminal.
Список підмереж для ресурсів ВКонткте
Або попередньо завантаживши на згадку мікротика необхідні списки як командних файлів з роздільною здатністю RSC. Файли Mikrotik завантажуються шляхом звичайного петаскування на вікноWinBox > Files. Або за допомогою кнопки Upload, якщо Drag-n-Drop з якихось причин не працює. Після цього імпортуєте списки командою: Де vkcom.rsc - назва файлу зі списком.
Список підмереж для ресурсів Яндекса (в т.ч. КіноПошук)
Список підмереж для Однокласники.ru
Список підмереж для ресурсів Mail.ru

Маркування пакетів
Щоб відібрати лише заблоковані ресурси, необхідно знайти і промаркувати необхідні пакети. Робиться це уIP – Firewall – Mangle.
При створеннівказуємо такі параметри:
src-address=192.168.106.0/24 (локальна підмережа)

Створення підключення VPN
Як приклад скористаємося безкоштовним сервісом VPN PPTP – SuperFreeVPN. Наприклад виберемо сервер, що у Лондоні (Великобританія) – IP 77.92.68.65 (uk.superfreevpn.com), логін free, пароль 1891. Зверніть увагу, тип підключення PPTP чи L2TP. Мінусом саме даного сервісу і те, що він постійно змінює паролі для підключення до серверу, ми використовуємо його лише як приклад.

Створення підключення до VPN здійснюється в розділіPPP – Interface, натискаємо синій плюс та вибираємо необхідний тип підключення.

Важливо! Не використовуйте опцію "Add Default Route", інакше весь трафік піде через VPN.
Зверніть увагу, деякі сервери можуть, як вимагати шифрування, так і не використовувати його зовсім, тому якщо з'єднання не вдалося - перевірте профіль підключення (PPP - Profiles). Для L2TP, у кращому випадку, використовується MPPE 128-bit, який вже давно скомпрометований.

Більшість безкоштовних серверів може бути нестабільні як у плані доступності, і у плані швидкості. До того ж, ніхто не гарантує збереження ваших особистих даних. З огляду на вищесказане, до вибору постачальника послуг варто підійти відповідально. Принаймні завжди використовуйте захищене з'єднання (HTTPS) під час роботи з сайтами.
Налаштування маскарадингу
Сам Mikrotik вже знає про новий шлюз, а щоб ресурсами VPN-каналу змогли користуватися інші користувачі локальної мережі, необхідно налаштувати маскарадинг.
Робиться це у розділіIP – Firewall – NAT. Для out-interfaceобов'язково слід зазначити правильну назву вашого VPN-підключення.
Додавання статичних маршрутів
Після налаштування маскарадингу переходимо до завершального кроку – створення статичних маршрутів. Робиться це у розділіIP – Routers.


Як дізнатися IP певного сайту?
Як найпростіший варіант, з під Windows (виклик командного рядка – комбінація Win+R) можна використовувати стандартну команду:
Редагування, оновлення та додавання нових ресурсів

Ну і, звичайно, щоб почати обробку нового списку, необхідно створити новий мангл (промаркувати пакети) і статичний маршрут для нового списку (загальний принцип описаний вище).
Що робити, якщо Policy Based Routing повільно працює?
На деяких конфігураціях може виникнути проблема, суть якої полягає в тому, що при прямому підключенні по VPN на ПК все працює швидко, але якщо налаштувати Policy Based Routing за вищезгаданим прикладом у Mikrotik, сайти починають відкриваються повільно.
Проблемавирішуєтьсявідключенням FastTrackв IP - Firewall - Filter Rules.


Що робити, якщо провайдер замінює DNS-записи?
Для того, щоб показувати клієнту сторінку-Заглушку, замість кінцевого URL, провайдери практикують заміну DNS-записів. Перевірити це дуже легко: відкриваємо командний рядок і робимо tracert для необхідного домену, після чого перевіряємо whois для кінцевого IP, який асоційований з доменним ім'ям. Якщо IP не належить кінцевому ресурсу, то має місце заміна DNS-запису.
У разі, якщо ви використовуєте DNS провайдера, при підключенні за VPN, для кінцевого домену буде використовуватися IP, наданий провайдером. Тому, при зверненні до домену навіть через VPN, зрештою, ви потрапите назад на сторінку із заглушкою (якщо це зовнішній IP) або отримаєте помилку "сервер не знайдений" (якщо IP недоступний). У цьому випадку необхідно відмовитись від використання DNS провайдера (use-peer-dns=no), наприклад:

Або через інтерфейс Winbox: зайти в підменю IP - DHCP Client, вибрати своє підключення до Інтернету та відключити в його профілі опцію "Use Peer DNS".
Далі необхідно задіяти сторонні DNS-сервери, наприклад Google DNS (8.8.8.8, 8.8.4.4), Яндекс DNS (77.88.8.8, 77.88.8.1) та/або будь-який інший сервер:
Після чого виконуємо очищення кешу DNS-записів:
Або у Winbox: розділ IP - DNS - Cache - Flush Cache.
Що робити, якщо провайдер перехоплює звернення до стороннього DNS?
На практиці можливі випадки, коли провайдер перехоплює звернення до зовнішніх DNS-сервісів (використовуючи DNAT), повертаючи при цьому клієнту змінену відповідь від сервера, в якому можна відразу підставити сторінку із заглушкою. У цьому випадку всі звернення до зовнішнього DNS також необхідно загортати до VPN, наприклад:
Є в даного методу і мінус: при підключенні до сервера VPN за dns-ім'ям може виникнути проблема, пов'язана з неможливістю отримання IP, т.к.підключення по імені, а відповіді від DNS приймаються лише усередині тонелю.