Mikrotik RouterOS; два провайдери - балансування, маршрутизація, firewall (без скриптів)

04.12.2012
Поділитись у:
*/?>

Ми вже розглядали варіант підключення двох провайдерів Інтернету до одного маршрутизатора, під керуванням операційної системи Mikrotik RouterOS . Однак це був найпростіший варіант. Який не завжди може підійти у тих чи інших умовах. Тому сьогодні, ми візьмемо низку конкретних прикладів налаштування маршрутизатора з умовою підключення до двох провайдерів, і детальніше зупинимося на деяких нюансах налаштування Firewall, NAT, маршрутизації та балансування навантаження або використання другого каналу як резервного.

І оскільки подальша розповідь буде з конкретними прикладами, то й почнемо її з конкретних умов. У нас є 2 провайдери. Зв'язок з обома встановлюється через протокол PPPoE. Як налаштувати з'єднання з провайдером, детально описано в цій статті, тому ми пропустимо цей процес. Позначивши лише те, що провайдер №1 у нас підключений до порту Ether1, ім'я його PPPoE підключення - ISP1. Провайдер №2, підключений до порту Ether2 та має ім'я PPPoE підключення - ISP2.

Єдиний момент, це те, що ми надалі самостійно створюватимемо правила маршрутизації, тому при створенні підключень до провайдерів, необхідно прибрати галочку з пункту Add Default Route на вкладці Dial Out для PPPoE з'єднання.

PPPoE client RouterOS

NAT

Щоб наша мережа правильно працювала та мала доступ до інтернету, нам необхідно налаштувати NAT. Для цього відкриваємо розділ IP -> Firewall, переходимо на вкладку NAT та кнопкою “+”, додаємо нове правило.

На вкладці General, ланцюжок Chain вибираємо scrnat. Значення поля Out. Interface, в даному випадку, ми залишаємо не заповненим, так як у нас два провайдери, і відповідно два різні інтерфейси.

New NAT Rule RouterOS

Потім на вкладці Action, як параметр для поля Action, ставимо значення masquerade.

New NAT Rule RouterOS

Зберігаємо правило кнопкою OK. Для тих, у кого префікс локальної мережі, відрізняється від 192.168.0.0/24, замість цього поставити свої адреси.

chain=forward src-address=192.168.0.0/24 action=accept

Дозволяємо доступ до роутера, тільки з локальної мережі, як і вище – 192.168.0.0/24 варто замінити своєю адресою.

chain=input src-address=192.168.0.0/24 action=accept

І насамкінець, забороняємо все інше

chain=input action=drop

chain=forward action=drop

Зрозуміло, що відкривати щоразу нове вікно, і заповнювати всі необхідні поля, це досить втомлює, тому, я рекомендую відкрити New Terminal і по одній задати команди, перелічені нижче. Це займе набагато менше часу.

New Terminal Firewall Rules RouterOS

ip firewall filter add chain=input protocol=icmp action=accept

ip firewall filter add chain=forward protocol=icmp action=accept

ip firewall filter add chain=input connection-state=established action=accept

ip firewall filter add chain=forward connection-state=established action=accept

ip firewall filter add chain=input connection-state=related action=accept

ip firewall filter add chain=forward connection-state=related action=accept

ip firewall filter add chain=input connection-state=invalid action=drop

ip firewall filter add chain=forward connection-state=invalid action=drop

ip firewall filter add chain=input protocol=udp action=accept

ip firewall filter add chain=forward protocol=udp action=accept

ip firewall filter add chain=forward src-address=192.168.0.0/24 action=accept

ip firewall filter add chain=input src-address=192.168.0.0/24 action=accept

ip firewall filter add chain=input action=drop

ip firewall filter add chain=forward action=drop

Але яким би методом ми це не робили, в результаті ми повинні отримати наступне.

Firewall Rules RouterOS

Routing

Останнім, але однією з найважливіших дій, залишилося створення маршрутів. Почнемо з того, що відзначимо наші з'єднання з провайдером. Це необхідно для того, щоб усі запити, що прийшли на інтерфейс того чи іншого провайдера, йшли саме на його інтерфейс. Це досить критично в тому випадку, якщо у нас за NAT, є якісь ресурси, до яких необхідно забезпечити доступ з глобальної мережі Інтернет. Наприклад, веб-сервер або поштовий сервер і т.д. Про те, як організувати роботу таких сервісів, ми вже розглядали у статті Розширені налаштування Mikrotik RouterOS: перенаправлення портів - dstna t.

Для цього нам необхідно створити два окремі правила, для кожного провайдера в розділі IP -> Firewall на вкладці Mangle.

На вкладці General, вибираємо ланцюжок Chain як forward, а як In.Interface вибираємо інтерфейс PPPoE підключення першого провайдера ISP1.

New Mangle Rule RouterOS

А на вкладці Action, як параметр Action, вибираємо mark connection і в полі New Connection Mark, що з'явилося нижче, вписуємо ім'я мітки для цього з'єднання, наприклад ISP1-con.

New Mangle Rule

Те саме, повторюємо для другого провайдера. Тільки як In.Interface вибираємо ISP2, а поле New Connection Mark, вписуємо мітку для другого з'єднання ISP2-con.

Тепер, щоб відправити відповідь на запит через інтерфейс того ж провайдера, нам необхідно створити ще 2 правила, які будуть позначати маршрути.

Тут же, створюємо нове правило в якому як ланцюжок Chain, вибираємо значення prerouting, в поле Scr.Address вписуємо префікс нашої локальної мережі 192.168.0.0/24, а Cjnnection Mark вибираємо мітку з'єднання першого провайдера ISP1-con.

New Mangle Rule RouterOS

Переходимо на вкладку Action і в полі Action, вибираємо mark routing, а в полі New Routing Mark, що з'явилося нижче, присвоюємо мітку для маршруту цього провайдера, наприклад ISP1-rt.

New Mangle Rule

Точно таке ж прищепило, створюємо і для другого з'єднання. Тільки, відповідно, як Connection Mark вибираємо ISP2-con, а як New Routing Mark, вписуємо ISP2-rt.

І тепер, якщо у нас є якісь ресурси, доступ до яких необхідно забезпечити виключно через інтерфейс того чи іншого провайдера, нам потрібно створити список цих ресурсів і позначити всі з'єднання з адресами цього списку, для подальшої правильної маршрутизації.

Наприклад, у провайдера №2 - ISP2 є локальні ресурси, що мають діапазон адрес 181.132.84.0/22. А через провайдера №1, пінг до ігрових серверів онлайн ігор набагато менше. І ми знаємо, що IP адреси цих серверів 90.231.6.37 і 142.0.93.168.

Переходимо на вкладку Address Lists розділу IP -> Firewall. І по одному додаємо ці IP адреси або підмережі повністю, з іменами to-ISP1 або to-ISP2, залежно від того, через якого провайдера має бути звернення до цих ресурсів.

New Address List RouterOS

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

Дізнатися про DNS адреси не складно, наприклад у самого провайдера на сайті в розділі з налаштування обладнання.

У результаті, ми повинні мати низку адрес для кожного зі списків

Address Lists RouterOS

Для того щоб позначити маршрути для цих списків, повертаємось на вкладку Mangle., де створюємо ще 2 правила. Для ISP1 і списку to-ISP1 правило буде виглядати так: на вкладці General, Chain - prerouting, Connection State - new.

New Mangle Rule RouterOS

На вкладці Advanced, Dst.Address List – наш список адрес для першого провайдера to-ISP1.

New Mangle Rule RouterOS

А на вкладці Action, Action – mark routing, New Routing Mark – ISP1-rt.

New Mangle Rule RouterOS

Повторюємо те саме, для списку адрес другого провайдера. Але відповідно як Dst.Address List, вказуємо список адрес для другого провайдера to-ISP2. А як позначка для маршруту New Routing Mark - ISP2-rt.

І приступаємо до найголовнішої частини налаштування маршрутизації - створення статичних правил маршрутизації в розділі IP -> Routes.

Тут, на вкладці Routes, створюємо новий маршрут.

Якщо канали наших обох провайдерів, практично рівні, то додаємо такий маршрут: але вкладці General, вікна створення маршруту, для Dst.Address пишемо 0.0.0.0/0, а в якості Getway вибираємо інтерфейси наших провайдерів ISP1 і ISP2. Всі інші параметри залишаємо без змін.

У такому варіанті навантаження на обох провайдерів буде розподілятися рівномірно.

New Route RouterOS

Якщо ж ми хочемо зробити так, щоб другий провайдер у нас був запасним, і "включався" тільки у випадку, коли не доступний або сильно завантажений перший, то створюємо два маршрути.

Перший Dst.Address – 0.0.0.0/0, Gateway – ISP1.

А другий Dst.Address – 0.0.0.0/0, Gateway – ISP2, Distance – 2.

New Route RouterOS

І ще, необхідно створити два окремі маршрути, для кожного з провайдерів, куди будуть йти помічені раніше маршрути. Відрізняються вони тим, що в полі Routing Mark буде вказана мітка, яку ми присвоювали раніше, для того чи іншого провайдера.

Перший матиме Dst.Address - 0.0.0.0/0, Gateway - ISP1, Routing Mark - ISP1-rt, а другий, відповідно Dst.Address - 0.0.0.0/0, Gateway - ISP2, Routing Mark - ISP2-rt

New Route RouterOS

Тепер робота з двома провайдерами, налаштована належним чином. Всі вхідні з'єднання позначаються і відповіді на них йдуть через інтерфейс, на який прийшов запит. Звернення до тих чи інших ресурсів, розподілені, і навантаження на обидва канали – збалансоване.

Олексій С., спеціально для LanMarket

logo
Mikrotik RouterOS; два провайдери - балансування, маршрутизація, firewall (без скриптів)
Відгуки покупців
Рейтинг покупців
0 / 5
На основі N оцінок покупців
0%
0%
0%
0%
0%
Відгук
Відмінно
Заголовок*
Достоїнства
Недоліки
Коментар*
Як вас звати

Відгук не знайдено


Повернення до списку


Авторизуйтеся, щоб додати відгук

x