[Сетевые технологии, Сетевое оборудование] Яндекс облако и MikroTik MultiWAN
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Приветствую читатели, в этой статье хотел бы поделиться опытом настройки внутренней сети яндекс облака и маршрутизацией в интернет через RouterOS MikroTik.
Есть VPC которая администрируется внутренними сервисами и раздает внешние ip внутренним ВМ через шлюз подсети за NAT’ом, что не очень удобно для централизованного администрирования.
Схема внутренней сети и получения внешнего ip в яндекс облаке выглядит следующим образом:
Привязать для всей подсети один внешний постоянный ip можно через NAT-instance или любую ВМ настроив forward, но пробрасывать порты в сеть придётся через изменения конфигурации в самой ВМ и так для каждой подсети. Нужна была реализация управления сетями/подсетями и доступом в одном месте (на момент написания статьи группа безопасности VPC находилась в стадии Preview).
Если коротко, то хотел реализовать такую схему:
Перейду сразу к описанию процесса настройки.
Для примера берем настройки в облаке такие:
Internal1-a – 10.1.0.0/24
Internal2-a – 10.1.1.0/24
Internal1-b – 10.1.2.0/24
Internal2-b – 10.1.3.0/24
Internal1-c – 10.1.4.0/24
Internal2-c – 10.1.5.0/24
Это минимум который нам нужен, т. к. в облаке привязанный внешний ip роутится через шлюз
По умолчанию в облаке для любой подсети
Gateway – X.X.X.1
Internal DNS – X.X.X.2
Создаем ВМ с образом RouterOS.
В облаке выбираем Cloud Marketplace -> Сетевая инфраструктура -> Cloud Hosted Router и сразу добавляем внешние ip адреса к каждому сетевому интерфейсу
RouterOS
Ether1 – 10.1.0.254
Ether2 – 10.1.1.254
Создаем ВМ и подключаемся к ether1 через консоль или клиентом winbox. Создаем пользователя с полными правами, отключаем пользователя admin и добавляем rsa public key.
Далее настраиваем все через CLI. Все действия можно сделать и в winbox, меню соответствует команде, заходим в меню ip выбираем route и т.д.
Если посмотрим в таблицу маршрутизации, то увидим маршруты
/ip route print
Flags: X - disabled, A - active, D - dynamic, C - connect, S - static, r - rip,
b - bgp, o - ospf, m - mme, B - blackhole, U - unreachable, P - prohibit
# DST-ADDRESS PREF-SRC GATEWAY DISTANCE
0 ADS 0.0.0.0/0 10.1.0.1 1
1 ADC 10.1.1.0/24 10.1.1.254 ether2 0
2 ADC 10.1.0.0/24 10.1.0.254 ether1 0
По умолчанию маршрут в интернет идет с порта ether1 через шлюз 10.1.0.1 который за NAT выкидывает во внешнюю сеть. Если сейчас опросить все внешние ip адреса, то ответит только первый.
Поскольку у нас 2 внешних адреса находятся за шлюзом внутренних сетей, к которым подключены 2 порта, то нужно прописать дополнительные маршруты указав разные значения distance и добавить маршруты к дополнительным подсетям.
Добавляем маршруты
/ip route
add dst-address=0.0.0.0/0 gateway=10.1.1.1 distance=2
add dst-address=10.1.2.0/24 gateway=10.1.0.1 distance=1
add dst-address=10.1.3.0/24 gateway=10.1.1.1 distance=1
add dst-address=10.1.5.0/24 gateway=10.1.1.1 distance=1
add dst-address=10.1.4.0/24 gateway=10.1.0.1 distance=1
По умолчанию зоны доступности подсетей b и c должны быть доступны через шлюз подсети зоны доступности a.
Настраиваем firewall.
Входящие соединения внутренних сетей
/ip firewall filter
add chain=input action=accept src-address=10.1.5.0/24
add chain=input action=accept src-address=10.1.1.0/24
add chain=input action=accept src-address=10.1.3.0/24
add chain=input action=accept src-address=10.1.2.0/24
add chain=input action=accept src-address=10.1.0.0/24
add chain=input action=accept src-address=10.1.4.0/24
Разрешаем ping
/ip firewall filter
add chain=input action=accept protocol=icmp
Разрешаем проброс вперед
/ip firewall filter
add chain=forward action=accept src-address=10.1.5.0/24 \
dst-address=0.0.0.0/0
add chain=forward action=accept src-address=10.1.1.0/24 \
dst-address=0.0.0.0/0
add chain=forward action=accept src-address=10.1.3.0/24 \
dst-address=0.0.0.0/0
add chain=forward action=accept src-address=10.1.2.0/24 \
dst-address=0.0.0.0/0
add chain=forward action=accept src-address=10.1.0.0/24 \
dst-address=0.0.0.0/0
add chain=forward action=accept src-address=10.1.4.0/24 \
dst-address=0.0.0.0/0
Остальные входящие соединения сбрасываем
/ip firewall filter add chain=input action=drop log=no
Меняем очередность правил
/ip firewall filter move numbers="[old rule no]" \
destination="[new rule no]"
Любуемся результатом
/ip firewall filter print
Реализация выхода в интернет в данном случае через шлюз внутренней сети и у нас нет портов с прямым внешним ip адресом, поэтому реализуем разделение через MultiWAN. Очень хорошо этот метод описан в презентации РЕАЛИЗАЦИЯ MULTIWAN (ссылка на презентацию в конце статьи)
В конфигурации ВМ отсутствуют WAN порты, которые нужно добавить в конфигурацию firewall mangle, поэтому создадим 2 записи в interface list
/interface list
add name="WAN1"
add name="WAN2"
Настраиваем firewall mangle
/ip firewall mangle
add chain=input action=mark-connection \
new-connection-mark=con-WAN1 passthrough=yes in-interface-list=WAN1
add chain=input action=mark-connection \
new-connection-mark=con-WAN2 passthrough=yes in-interface-list=WAN2
add chain=output action=mark-routing \
new-routing-mark=WAN1 passthrough=yes connection-mark=con-WAN1
add chain=output action=mark-routing \
new-routing-mark=WAN2 passthrough=yes connection-mark=con-WAN2
Добавляем маршруты
/ip route
add dst-address=0.0.0.0/0 gateway=10.1.0.1 distance=1 routing-mark=WAN1
add dst-address=0.0.0.0/0 gateway=10.1.1.1 distance=1 routing-mark=WAN2
Добавляем правила маршрутизации, все что не попадает под правило идет через порт ether1, добавлять можно как подсети, так и отдельные хосты
/ip route rule
add src-address=10.1.3.0/24 action=lookup-only-in-table table=WAN2
add src-address=10.1.5.0/24 action=lookup-only-in-table table=WAN2
На данном этапе все 2 внешних ip отзываются, но внутренние сети не работают правильно или вообще не работают.
Настроим маршрутизацию для каждого из двух контуров в консоли яндекс облака:
Virtual Private Cloud -> Облачные сети -> в каждой Подсети выключаем NAT в интернет -> Таблицы маршрутизации -> Создать, если создано изменить -> добавляем маршрут Префикс назначения: 0.0.0.0/0, Next hop: 10.1.0.1/10.1.1.1 для каждого контура свой шлюз -> сохраняем.
Осталось последнее действие, нужно замаскировать все подсети под внутренний адрес роутера
/ip firewall nat
add chain=srcnat action=masquerade src-address=10.1.0.0/24 dst-address=0.0.0.0/0
add chain=srcnat action=masquerade src-address=10.1.1.0/24 dst-address=0.0.0.0/0
add chain=srcnat action=masquerade src-address=10.1.2.0/24 dst-address=0.0.0.0/0
add chain=srcnat action=masquerade src-address=10.1.3.0/24 dst-address=0.0.0.0/0
add chain=srcnat action=masquerade src-address=10.1.4.0/24 dst-address=0.0.0.0/0
add chain=srcnat action=masquerade src-address=10.1.5.0/24 dst-address=0.0.0.0/0
Теперь каждая ВМ в своей подсети выходит в интернет строго со своим внешним ip прописанным в таблице маршрутизации.
В итоге реализовали следующую схему:
Можно запускать клиентов/партнеров/внешние сервисы к внутренним ВМ через два внешних ip адреса:
/ip firewall nat
add chain=dstnat action=netmap to-addresses=10.1.5.20 \
to-ports=10050 protocol=tcp src-address=7.7.7.1 in-interface-list=WAN2 port=10055
add chain=dstnat action=netmap to-addresses=10.1.0.5 \
to-ports=3306 protocol=tcp src-address=7.7.7.2 in-interface-list=WAN1 port=11050
где 7.7.7.1/7.7.7.2 внешние ip клиентов.
Далее настраиваем по своему усмотрению, создаем ipsec, режим сети в фаерволе, настраиваем входящие соединения.
Минимум по настройки разделения подсетей и направление трафика через конкретный внешний адрес выполнен.
Лицензию для MikroTik RouterOS необходимо приобрести, иначе скорость портов будет 100 Мбит/с и ограничения по функционалу
https://wiki.mikrotik.com/wiki/Manual:License
Спасибо за внимание!
Используемые источники:
РЕАЛИЗАЦИЯ MULTIWAN
===========
Источник:
habr.com
===========
Похожие новости:
- [Информационная безопасность, Системное администрирование, Cisco, Сетевые технологии] Cisco ISE: Создание пользователей, добавление LDAP серверов, интеграция с AD. Часть 2
- [Сетевые технологии, Читальный зал, История IT] Жизнь в паутине: сетевые истории диких времён
- [Системное администрирование, Сетевые технологии, Облачные сервисы, Сетевое оборудование] Построение сетевой инфраструктуры на базе Nebula. Часть 1 — задачи и решения
- [Asterisk, IT-инфраструктура, Сетевое оборудование, Сетевые технологии] I want to break free. Обзор беспроводной DECT гарнитуры Snom A170
- [Криптография, Сетевые технологии, C++, Разработка под Windows, Обработка изображений] Древний костыль на старом костыле
- [Сетевые технологии, Старое железо, Сетевое оборудование] Старый ламповый телевизор ежедневно приводил к падению ADSL-соединения в целой деревне
- [Серверное администрирование, Процессоры, Сетевое оборудование] Arm представила серверные платформы Neoverse V1 Zeus и N2 Perseus
- [Информационная безопасность, Сетевые технологии] Защитить удаленку (и не только) с помощью Netflow
- [Информационная безопасность, Сетевые технологии, Системное администрирование] OSINT или как посмотреть на свою сеть глазами хакера
- [DNS, IPv6, Интернет вещей, Сетевые технологии] Конференция ENOG17 состоится online
Теги для поиска: #_setevye_tehnologii (Сетевые технологии), #_setevoe_oborudovanie (Сетевое оборудование), #_yandex.cloud, #_mikrotik_multiwan, #_setevye_tehnologii (
Сетевые технологии
), #_setevoe_oborudovanie (
Сетевое оборудование
)
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 20:29
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Приветствую читатели, в этой статье хотел бы поделиться опытом настройки внутренней сети яндекс облака и маршрутизацией в интернет через RouterOS MikroTik. Есть VPC которая администрируется внутренними сервисами и раздает внешние ip внутренним ВМ через шлюз подсети за NAT’ом, что не очень удобно для централизованного администрирования. Схема внутренней сети и получения внешнего ip в яндекс облаке выглядит следующим образом: Привязать для всей подсети один внешний постоянный ip можно через NAT-instance или любую ВМ настроив forward, но пробрасывать порты в сеть придётся через изменения конфигурации в самой ВМ и так для каждой подсети. Нужна была реализация управления сетями/подсетями и доступом в одном месте (на момент написания статьи группа безопасности VPC находилась в стадии Preview). Если коротко, то хотел реализовать такую схему: Перейду сразу к описанию процесса настройки. Для примера берем настройки в облаке такие: Internal1-a – 10.1.0.0/24
Internal2-a – 10.1.1.0/24 Internal1-b – 10.1.2.0/24 Internal2-b – 10.1.3.0/24 Internal1-c – 10.1.4.0/24 Internal2-c – 10.1.5.0/24 Это минимум который нам нужен, т. к. в облаке привязанный внешний ip роутится через шлюз По умолчанию в облаке для любой подсети Gateway – X.X.X.1
Internal DNS – X.X.X.2 Создаем ВМ с образом RouterOS. В облаке выбираем Cloud Marketplace -> Сетевая инфраструктура -> Cloud Hosted Router и сразу добавляем внешние ip адреса к каждому сетевому интерфейсу RouterOS
Ether1 – 10.1.0.254 Ether2 – 10.1.1.254 Создаем ВМ и подключаемся к ether1 через консоль или клиентом winbox. Создаем пользователя с полными правами, отключаем пользователя admin и добавляем rsa public key. Далее настраиваем все через CLI. Все действия можно сделать и в winbox, меню соответствует команде, заходим в меню ip выбираем route и т.д. Если посмотрим в таблицу маршрутизации, то увидим маршруты /ip route print
Flags: X - disabled, A - active, D - dynamic, C - connect, S - static, r - rip, b - bgp, o - ospf, m - mme, B - blackhole, U - unreachable, P - prohibit # DST-ADDRESS PREF-SRC GATEWAY DISTANCE 0 ADS 0.0.0.0/0 10.1.0.1 1 1 ADC 10.1.1.0/24 10.1.1.254 ether2 0 2 ADC 10.1.0.0/24 10.1.0.254 ether1 0 По умолчанию маршрут в интернет идет с порта ether1 через шлюз 10.1.0.1 который за NAT выкидывает во внешнюю сеть. Если сейчас опросить все внешние ip адреса, то ответит только первый. Поскольку у нас 2 внешних адреса находятся за шлюзом внутренних сетей, к которым подключены 2 порта, то нужно прописать дополнительные маршруты указав разные значения distance и добавить маршруты к дополнительным подсетям. Добавляем маршруты /ip route
add dst-address=0.0.0.0/0 gateway=10.1.1.1 distance=2 add dst-address=10.1.2.0/24 gateway=10.1.0.1 distance=1 add dst-address=10.1.3.0/24 gateway=10.1.1.1 distance=1 add dst-address=10.1.5.0/24 gateway=10.1.1.1 distance=1 add dst-address=10.1.4.0/24 gateway=10.1.0.1 distance=1 По умолчанию зоны доступности подсетей b и c должны быть доступны через шлюз подсети зоны доступности a. Настраиваем firewall. Входящие соединения внутренних сетей /ip firewall filter
add chain=input action=accept src-address=10.1.5.0/24 add chain=input action=accept src-address=10.1.1.0/24 add chain=input action=accept src-address=10.1.3.0/24 add chain=input action=accept src-address=10.1.2.0/24 add chain=input action=accept src-address=10.1.0.0/24 add chain=input action=accept src-address=10.1.4.0/24 Разрешаем ping /ip firewall filter
add chain=input action=accept protocol=icmp Разрешаем проброс вперед /ip firewall filter
add chain=forward action=accept src-address=10.1.5.0/24 \ dst-address=0.0.0.0/0 add chain=forward action=accept src-address=10.1.1.0/24 \ dst-address=0.0.0.0/0 add chain=forward action=accept src-address=10.1.3.0/24 \ dst-address=0.0.0.0/0 add chain=forward action=accept src-address=10.1.2.0/24 \ dst-address=0.0.0.0/0 add chain=forward action=accept src-address=10.1.0.0/24 \ dst-address=0.0.0.0/0 add chain=forward action=accept src-address=10.1.4.0/24 \ dst-address=0.0.0.0/0 Остальные входящие соединения сбрасываем /ip firewall filter add chain=input action=drop log=no
Меняем очередность правил /ip firewall filter move numbers="[old rule no]" \
destination="[new rule no]" Любуемся результатом /ip firewall filter print
Реализация выхода в интернет в данном случае через шлюз внутренней сети и у нас нет портов с прямым внешним ip адресом, поэтому реализуем разделение через MultiWAN. Очень хорошо этот метод описан в презентации РЕАЛИЗАЦИЯ MULTIWAN (ссылка на презентацию в конце статьи) В конфигурации ВМ отсутствуют WAN порты, которые нужно добавить в конфигурацию firewall mangle, поэтому создадим 2 записи в interface list /interface list
add name="WAN1" add name="WAN2" Настраиваем firewall mangle /ip firewall mangle
add chain=input action=mark-connection \ new-connection-mark=con-WAN1 passthrough=yes in-interface-list=WAN1 add chain=input action=mark-connection \ new-connection-mark=con-WAN2 passthrough=yes in-interface-list=WAN2 add chain=output action=mark-routing \ new-routing-mark=WAN1 passthrough=yes connection-mark=con-WAN1 add chain=output action=mark-routing \ new-routing-mark=WAN2 passthrough=yes connection-mark=con-WAN2 Добавляем маршруты /ip route
add dst-address=0.0.0.0/0 gateway=10.1.0.1 distance=1 routing-mark=WAN1 add dst-address=0.0.0.0/0 gateway=10.1.1.1 distance=1 routing-mark=WAN2 Добавляем правила маршрутизации, все что не попадает под правило идет через порт ether1, добавлять можно как подсети, так и отдельные хосты /ip route rule
add src-address=10.1.3.0/24 action=lookup-only-in-table table=WAN2 add src-address=10.1.5.0/24 action=lookup-only-in-table table=WAN2 На данном этапе все 2 внешних ip отзываются, но внутренние сети не работают правильно или вообще не работают. Настроим маршрутизацию для каждого из двух контуров в консоли яндекс облака: Virtual Private Cloud -> Облачные сети -> в каждой Подсети выключаем NAT в интернет -> Таблицы маршрутизации -> Создать, если создано изменить -> добавляем маршрут Префикс назначения: 0.0.0.0/0, Next hop: 10.1.0.1/10.1.1.1 для каждого контура свой шлюз -> сохраняем. Осталось последнее действие, нужно замаскировать все подсети под внутренний адрес роутера /ip firewall nat
add chain=srcnat action=masquerade src-address=10.1.0.0/24 dst-address=0.0.0.0/0 add chain=srcnat action=masquerade src-address=10.1.1.0/24 dst-address=0.0.0.0/0 add chain=srcnat action=masquerade src-address=10.1.2.0/24 dst-address=0.0.0.0/0 add chain=srcnat action=masquerade src-address=10.1.3.0/24 dst-address=0.0.0.0/0 add chain=srcnat action=masquerade src-address=10.1.4.0/24 dst-address=0.0.0.0/0 add chain=srcnat action=masquerade src-address=10.1.5.0/24 dst-address=0.0.0.0/0 Теперь каждая ВМ в своей подсети выходит в интернет строго со своим внешним ip прописанным в таблице маршрутизации. В итоге реализовали следующую схему: Можно запускать клиентов/партнеров/внешние сервисы к внутренним ВМ через два внешних ip адреса: /ip firewall nat
add chain=dstnat action=netmap to-addresses=10.1.5.20 \ to-ports=10050 protocol=tcp src-address=7.7.7.1 in-interface-list=WAN2 port=10055 add chain=dstnat action=netmap to-addresses=10.1.0.5 \ to-ports=3306 protocol=tcp src-address=7.7.7.2 in-interface-list=WAN1 port=11050 где 7.7.7.1/7.7.7.2 внешние ip клиентов. Далее настраиваем по своему усмотрению, создаем ipsec, режим сети в фаерволе, настраиваем входящие соединения. Минимум по настройки разделения подсетей и направление трафика через конкретный внешний адрес выполнен. Лицензию для MikroTik RouterOS необходимо приобрести, иначе скорость портов будет 100 Мбит/с и ограничения по функционалу https://wiki.mikrotik.com/wiki/Manual:License Спасибо за внимание! Используемые источники: РЕАЛИЗАЦИЯ MULTIWAN =========== Источник: habr.com =========== Похожие новости:
Сетевые технологии ), #_setevoe_oborudovanie ( Сетевое оборудование ) |
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 20:29
Часовой пояс: UTC + 5