Розглянемо одну з функцій (можливостей) маршрутизаторів MikroTik. Fasttrack – connection
Як каже нам вікі MikroTik, а саме звідти я беру опис основних функцій. FastTrack – це спеціальний обробник, або технологія в маршрутизаторах MikroTik, яка дозволяє прискорити обробку пакетів даних і підвищити ефективність роботи мережі. Вона допомагає зменшити навантаження на процесор маршрутизатора, дозволяючи зменшити затримки і підвищити швидкість маршрутизації шляхом обробки пакетів на більш низькому рівні. Для обробника використовується TCP і UDP з’єднання, позначені “fasttrack-connection”.
Зауважте, що не всі пакети з’єднання можуть бути FastTracked, тому, ймовірно, деякі пакети проходять повільним шляхом, навіть якщо з’єднання позначено для FastTrack. Тобто потрібно завжди враховувати той факт, що навіть якщо ви використовуєте fasttrack, то все рівно можуть бути пакети, які не підпадають під нього і будуть проходити стандартним маршрутом.
Пакети FastTrack-ed обходять:
firewall,
connection tracking,
simple queues,
IP accounting,
IPSec,
hotspot universal client,
VRF assignment
Обробник FasTrack також підтримує NAT джерела та призначення, тому спеціальні винятки для NAT з’єднань не потрібні. Адміністратор повинен переконатися, що FastTrack не заважає іншим конфігураціям, так каже нам вікі MikroTik.
Як це все працює навіщо потрібно і взагалі як налаштовується (Налаштування fasttrack-connection на MikroTik).
І так, навіщо взагалі цей fasttrack, якщо без нього і так все працює? Однією з проблем маршрутизаторів Mikrotik, особливо недорогих девайсів, є недостатня потужність процесора, що обмежує можливість реалізації багатьох складних мережевих сценаріїв. Це пов’язано з досить складним процесом обробки трафіку. Це можна зрозуміти подивившись на таблицю маршрутизації MikroTik. Очевидно, що причина в складному шляху обробки трафіку, який повністю лягає на плечі процесора.
Чи можна цього уникнути? Можна. Ще в RouterOS v6 з’явилася технологія – Fast Path (швидкий шлях), яка дозволяє направляти трафік по швидкому маршруту без обробки ядром ОС, що суттєво знижує навантаження на систему. Це якраз те що я вище говорив.
Основна ідея цієї технології полягає в тому, що пакети вже встановлених з’єднань, а також ті сегменти передачі трафіку, де не потрібна фільтрація та контроль, можна відправляти по швидкому шляху, тим самим зменшуючи навантаження на процесор і прискорюючи передачу даних. Fast Path – це розширення драйвера інтерфейсу, яке дозволяє йому безпосередньо взаємодіяти з деякими підсистемами RouterOS, обходячи інші.
Тут, як вказано у вікі MikroTik, може виникнути ситуація, коли один з інтерфейсів підтримує Fast Path, а інший – ні, Мається на увазі не тільки фізичні інтерфейси, але і віртуальні. У такому випадку можливі два варіанти:
якщо вхідний інтерфейс підтримує Fast Path, частина трафіку (наскільки це можливо) пройде через нього, а далі буде оброблятися через Slow Path (повільний шлях) з повною обробкою на процесорі.
Якщо ж вхідний інтерфейс не підтримує Fast Path, весь трафік пройде шляхом Slow Path, незалежно від того, чи підтримує Fast Path вихідний інтерфейс.
Ще один важливий момент: Fast Path можна використовувати лише для IPv4 TCP або UDP з’єднань. Інший трафік або протоколи будуть оброблятися через Slow Path. Узагалі, правильне застосування Fast Path може значно поліпшити ефективність і швидкість вашої мережі, знижуючи навантаження на маршрутизатор і покращуючи загальну продуктивність системи. Розумію що занадто закручено, тому давайте перейдемо до практики, де я думаю у вас прийде розуміння як воно все працює.
Практичне застосування Fast Path:
По-перше, перейдімо до розділу IP → Settings і переконаємося, що прапорці Allow Fast Path і Route Cache увімкнені. В нових моделях ці налаштування встановлені за замовчуванням, але все одно маємо переконатись. У такій конфігурації IPv4 TCP і UDP трафік, який відповідає вказаним вище умовам, буде автоматично направлений по швидкому шляху.
По-друге, для мостів за замовчуванням активується опція Fast Forward, яка дозволяє пакункам, що передаються через міст, використовувати швидкий шлях. Тут теж важливо враховувати кілька умов, які можуть впливати на швидкість проходження трафіку.
Вимкнення DHCP-snooping: Якщо включено DHCP-snooping, це може вплинути на ефективність Fast Forward. Тому цю функцію слід вимкнути. DHCP-snooping — це функція безпеки, яка запобігає атакам, що використовують підроблені DHCP-сервери. Ця функція може вплинути на ефективність Fast Forward, оскільки обробка DHCP-пакетів може додати додаткове навантаження на комутатор, що може перешкоджати оптимізації Fast Forward.
Відсутність VLAN: Внутрішні VLAN у мосту можуть завадити правильній роботі Fast Forward. VLAN можуть впливати на Fast Forward, оскільки вони змінюють обробку пакетів у комутаторі. Внутрішні VLAN (наприклад, ті, що використовуються для управлінських цілей) можуть додати додаткові етапи обробки пакетів, що може вплинути на Fast Forward.
Також, ми маємо брати до уваги важливу річ. Тунельні з’єднання наприклад такі як L2TP підтримують Fast Path, але, ми не зможемо використовувати IPsec для таких з’єднань. Це чітко вказано у вікі MikroTik.
Система не дозволяє створити інтерфейс, який би поєднував Fast Path і IPsec, тому нам доведеться відмовитися від Fast Path для цих типів з’єднань. Запам’ятайте цей момент, ми до цього ще повернемось.
Таким чином, наприклад при налаштуванні L2TP вам потрібно вибрати між швидкістю обробки трафіку за допомогою Fast Path і можливістю забезпечення додаткового захисту через IPsec. Для L2TP-з’єднань ви звісно можете одночасно активувати обидві опції, але при включеному IPsec, Fast Path буде ігноруватися. Тим не менше, категорично не рекомендується використовувати такі неоднозначні налаштування, оскільки при оновленні RouterOS поведінка системи може змінитися, що може призвести до несподіваних і непередбачених результатів.
Тепер давайте підсумуємо коротко все що я тут наговорив, перед тим як перейти до практики. RouterOS за замовчуванням автоматично використовує Fast Path там, де це можливо. Наша задача – розуміти, що впливає на можливість використання цієї технології, і правильно обирати між Fast Path та можливостями додаткового контролю і захисту трафіку.
Зазвичай, якщо це звісно не налаштування по замовчуванню, (по замовчуванню увімкнено fasttrack) то використовують такий набір правил, для форвард ланцюжка, правило яке дозволяє Established і Relered і нижче правило яке відкидає invalid пакети.
Для включення Fasttrack нам потрібно побудувати правила для Forward по іншому:
Перейдіть до IP → Firewall → Filter Rules.
Додайте нове правило:
Chain: forward Connection State: established, related (Важливий момент: Обов’язково вказуйте Connection State для цього правила. Якщо ви цього не зробите, ви відкриєте величезну дірку в безпеці, оскільки всі пакети будуть проходити повз брандмауер через швидкий шлях. Акцентую на цьому увагу, бо на практиці бувають випадки, коли адміністратори активували Fasttrack для всього транзитного трафіку без відповідних обмежень.) Action: Встановіть fasttrack connection на вкладці Action. Це правило відправить всі встановлені та пов’язані з’єднання через швидкий шлях, але при цьому ви втратите можливість обробки і контролю такого трафіку.
Також зверніть увагу, що на вкладках Filter Rules та Mangl, автоматично створюються правила, які неможливо видалити.
Додайте наступне правило: Chain: forward Connection State: established, related Action: Можна не переходити на вкладку Action, оскільки accept є дією за замовчуванням. Це правило потрібне для того, щоб, Fast Path працював лише для TCP і UDP з’єднань, а інший трафік оброблявся за цим правилом.
Ми пам’ятаємо і я про це вище казав, що частина пакетів, які підлягають Fasttrack, все ж буде направлена по повільному шляху і якщо не додати таке правило, то ці пакети можуть бути відкинуті, а нам цього не потрібно. Це найпростіша реалізація Fasttrack, яка використовується в більшості інструкцій, і саме вона викликає більшість проблем. Чому? Тому що наведене вище правило відправляє всі встановлені та пов’язані з’єднання через швидкий шлях, не враховуючи їхнього напрямку та призначення. Це призводить до того, що фільтрація та маркування трафіку брандмауером, черги та політики IPsec стають недоступними. І буває таке, що всі налаштування, які залежні від цих технологій, перестають працювати, або працюють некоректно.
Як це можна виправити?
Щоб ефективно використовувати Fasttrack і зменшити навантаження на пристрій, при цьому виключаючи деякі типи з’єднань, вам потрібно конкретизувати правила. Основна мета – застосувати Fasttrack для звичайного інтернет-трафіку, але уникнути використання Fasttrack для трафіку, де потрібен контроль або додаткові функції, такі як фільтрація або IPsec.
Щоб це реалізувати, ми можемо використати не одне, а два окремих правила і конкретизувати їх.
bridge1 є внутрішнім мостом, а ether1 — зовнішнім інтерфейсом, що підключений до Інтернету.
Що ці два правила нам дають? Тепер пакети, що направляються по швидкому шляху, обробляються тільки для трафіку між локальною мережею і Інтернетом. Інші з’єднання обробляються повністю ядром RouterOS, що дозволяє використовувати всі її можливості.
Тепер повернемось до нашого IpSec, як я вже казав вище і це заявлено у вікі MikroTik, fasttrack не може працювати з IpSec. Тому якщо ми використовуємо IpSec, відповідно, якщо не використовуємо то цього робити не потрібно, нам потрібно прописати додаткові правила у ланцюжку forward. Для правильного функціонування IPsec у мережі RouterOS
Це правило дозволяє обробку пакунків, що надходять через IPsec, і які мають IPsec політику in,ipsec. Вказівка ipsec-policy=in,ipsec означає, що це правило застосовується до пакунків, які вже були оброблені IPsec на вхідній стороні маршрутизатора. Іншими словами, пакети, які проходять через IPsec, але не можуть бути коректно прийняті або оброблені, отримають дозвіл на проходження.
Це правило дозволяє обробку пакунків, що виходять через IPsec, і які мають IPsec політику out,ipsec. Вказівка ipsec-policy=out,ipsec означає, що це правило застосовується до пакунків, які вже були оброблені IPsec на вихідній стороні маршрутизатора. Це дозволяє забезпечити, що пакети, які виходять через IPsec, також обробляються належним чином.
Також потрібно пам’ятати, про те, що правила IPsec мають розташовуватись вище правил Fasttrack у ланцюгу forward. Це гарантує, що трафік, зашифрований за допомогою IPsec, обробляється належним чином і не пропускається через Fasttrack, який може порушити обробку, або заблокувати його.
Також, важливо розуміти, що Fasttrack застосовується лише до транзитного трафіку, тобто до трафіку, який проходить через роутер, а не до трафіку, що надходить або виходить безпосередньо з самого роутера. Тобто Fasttrack не вплине на трафік, що обробляється в ланцюгах INPUT і OUTPUT. Він застосовується тільки до транзитного трафіку через ланцюг FORWARD.
Повне налаштування дефолтного ланцюжка Forward (fasttrack-connection) на MikroTik:
На цьому у мене все, ми розглянули Налаштування fasttrack-connection на пристроях MikroTik. Якщо у вас є питання, або зауваження напишіть про це в коментарях.