add mikrotik

states/02
thest1tch 2 years ago
parent 36c07e3514
commit 7666170c8f

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

@ -0,0 +1,77 @@
# Настройка работы с 4G модемом оператора
Открыть окно терминала в **winbox**
```plaintext
/system resource usb print
/system serial-terminal usb1 channel=1
```
Соединяемся на COM-порт модема и вводим там команду. Она нужна для включения локального эха, чтобы вы видели что вы набираете в терминале.
```plaintext
ATE1
```
Далее вводим команду, для того чтобы модем не сыпал в порт *RSSI (Received Signal Strength Indication)* и прочим.
```plaintext
AT^CURC=0
```
И наконец вводим команду смены композиции модема. ТЕ режим «без переключения». Т.е. в данном режиме первичная композиция модема (initial mode) отключена, т.е. задана как `FF - Dummy` (отсутствие переключения), а вторичная композиция (normal mode) задана как `10,12,16,A2`:
- 10 - модем
- 12 - PC UI
- 16 - RNDIS (у нас его нет)
- A2 - TF Card Reader.
```plaintext
AT^SETPORT="FF;10,12,16,A2"
```
После чего вынимаем модем из Mikrotik и вставляем его по новой. Модем будет находиться уже в рабочей композиции, поэтому соединение `ppp-out1`, когда он зарегистрируется в сети оператора должно подняться у вас в Mikrotik автоматически
Далее включаем 4G модем и отключаем режим CD-Rom:
```plaintext
AT^SETPORT="A1;10,12,13"OK
```
После чего выходим, нажав `Ctrl-A` и `Q`
```
Ctrl-A
[Q - quit connection] [B - send break] [A - send Ctrl-A prefix] [R - autoconfigure rate]
```
Теперь можете активировать интерфейс и работать с ним
## Настройка Mikrotik на 4G Megafon
Подключаем ПК к третьему порту **Mikrotik**(вообще можно использовать любой, кроме первого), переворачиваем устройство и видим на наклейке со штрих-кодом диапазон mac адресов, последний относится к пятому порту, вводим его в окно подключения **winbox**, либо используем как аргумент mactelnet. Пользователь admin, пароль отсутствует. Так же можно подучиться через поиск neighbors в окне подключения **winbox**
Появится предложение: сохранить базовую конфигурацию, либо обнулить устройство. Выбираем `Remove Configuration`. Устройство перезагрузится.
Далее проверяем что версия routerboard последняя, для этого идем в system → routerboard. Скачать последнюю версию можно по ссылке: [https://mikrotik.com/download](https://mikrotik.com/download)
Закачиваем последнюю версию на роутер, для этого открываем files и перетаскиваем сам файл прошивки
Далее идем в system → routerboard, нажимаем upgrade. Соглашаемся с обновлением. идем в system-reboot
После перезагрузки проверяем версию системы
Теперь, заливаем [конфигурашку](https://cloud.thest1tch.ru/s/tXTqRCwnGP9trRZ). В окне files выделяем скопированный файл конфигурации и жмем restore. Вводим пароль от нашего роутера
Готово
---
Список используемых ресурсов:
- список команд AT [https://3ginfo.ru/page53.html](https://3ginfo.ru/page53.html) и [http://4pda.ru/forum/lofiversion/index.php?t582284.html](https://4pda.ru/forum/lofiversion/index.php?t582284.html)
- перепрошивка модема [https://mr-allen.com/mikrotik/e3372s-lte-modem](https://mr-allen.com/mikrotik/e3372s-lte-modem) и [https://tugibaev.ru/2015/03/megafon-m150-2-mikrotik/](https://tugibaev.ru/2015/03/megafon-m150-2-mikrotik/)
- [https://buywifi.ru/blog/mikrotik/nastroyka-mikrotik-dlya-raboty-s-3g-lte-modemom/](https://buywifi.ru/blog/mikrotik/nastroyka-mikrotik-dlya-raboty-s-3g-lte-modemom/)
- [http://valec.ru/?p=316](http://valec.ru/?p=316)
- [https://dev.turn-guild.ru/?p=251](https://dev.turn-guild.ru/?p=251)
- [https://habr.com/ru/post/188424/](https://habr.com/ru/post/188424/)
- [https://trustoff.ru/page/45/vvodim-at-komandy-v-modem/](https://trustoff.ru/page/45/vvodim-at-komandy-v-modem/)
- [https://www.technotrade.com.ua/Articles/mikrotik\_3g-modem\_setup.php](https://www.technotrade.com.ua/Articles/mikrotik_3g-modem_setup.php)

@ -0,0 +1,14 @@
# Cloud Hosted Router
У MikroTik CHR статический IP
```plaintext
/ip address add interface=ether1 address=10.103.0.111 netmask=255.255.255.0
/ip route add gateway=10.103.0.254 dst-address=0.0.0.0/0 distance=1
```
У MikroTik CHR автоматический IP(dhcp)
```plaintext
/ip dhcp-client add disabled=no interface=ether1
```

@ -0,0 +1,92 @@
# DHCP
## DHCP Option
Это может понадобиться, когда необходимо, чтобы один из компьютеров в локальной сети получил нестандартный адрес DNS-Сервера, шлюза, NTP-Сервера и.т.д.. Или например, когда требуется для определенной сети установить нестандартную DHCP-опцию.
[Список RFC DHCP Options](https://www.iana.org/assignments/bootp-dhcp-parameters/bootp-dhcp-parameters.xhtml)
## Создадим DHCP опцию для DNS-Сервера.
```plaintext
/ip dhcp-server option
add code=6 name=AD_DC value="'192.168.5.10'"
```
Выведем активные подключения
```plaintext
/ip dhcp-server lease print
```
Установим dhcp опцию для конкретного хоста
```plaintext
/ip dhcp-server lease
set numbers=0 dhcp-option=AD_DC
```
## Настройка DNS-суффикса
Клиенты Windows поддерживают только доменное имя, в то время как Linux/Mac поддерживает только функцию поиска домена.
Windows, установка dhcp-опции для конкретной сети
```plaintext
/ip dhcp-server network print
/ip dhcp-server network
set 0 domain=local.net
```
Linux | Windows, установка dhcp-опции для конкретного хоста
```plaintext
/ip dhcp-server option
add code=119 name=Domain_Search value="'local.net'" | Linux
add code=15 name=Domain_Name value="'local.net'" | Windows
/ip dhcp-server lease print
/ip dhcp-server lease
set numbers=0 dhcp-option=Domain_Search
```
## Настройка выдачи статических маршрутов
[IP Address to HEX](https://ncalculators.com/digital-computation/ip-address-hex-decimal-binary.htm)
[Конвертор чисел HEX/BIN/DEC](https://lin.in.ua/tools/numconv.html)
DHCP Classless Route с Option 249 и Option 121.
## Option 249
**Дано:**
- MASK = 24 = 0x18
- DEST = 192.168.5.0 = C0A80500
- GW = 192.168.6.1 = C0A80601
**Пример:**
- `0x[MASK][DEST][GW]`
**Итог:**
- `0x18C0A80500C0A80601`
##  Option 121
( `0.0.0.0/0 [00] gw 192.168.6.1 [C0A80601]`) - необходимо добавить 00C0A80601
Должно получиться:
  `0x18C0A80500C0A8060100C0A80601`
 CLI:
```plaintext
/ip dhcp-server option add name=opt_249 code=249 value=0x18C0A80500C0A80601
/ip dhcp-server option add name=opt_121 code=121 value=0x18C0A80500C0A8060100C0A80601
/ip dhcp-server option sets add name=sets_249+121 options=opt_249,opt_121
/ip dhcp-server network print
/ip dhcp-server network set dhcp-option-set=sets_249+121 numbers=0
```

@ -0,0 +1,72 @@
# Hairpin Nat
Допустим нужно прокинуть 80 и 443 порт
`192.168.100.0/24` - наша подсеть
`WAN_IP` - внешний IP-адрес
`192.168.100.5` - сервер, куда делаем проброс
```
/ip firewall nat
add action=dst-nat chain=dstnat dst-address=WAN_IP dst-port=80 protocol=tcp to-addresses=192.168.100.5
add action=masquerade chain=srcnat dst-address=192.168.100.5 dst-port=80 protocol=tcp src-address=192.168.100.0/24
add action=dst-nat chain=dstnat dst-address=WAN_IP dst-port=443 protocol=tcp to-addresses=192.168.100.5
add action=masquerade chain=srcnat dst-address=192.168.100.5 dst-port=443 protocol=tcp src-address=192.168.100.0/24
```
## Подробности
Конфигурация нашей сети:
- Вы имеете IP адрес `WAN_IP` на интерфейсе WAN вашего маршрутизатора
- Вы имеете IP адрес `192.168.100.1/24` на интерфейсе LAN вашего маршрутизатора.
- Вы имеете www-сервер с адресом `192.168.100.5` в LAN сегменте.
- Адрес вашего компьютера находится в диапазоне адресов LAN. Для примера пусть это будет `192.168.100.15`
![](../../images/network/mikrotik-hnat_1.png)
Чтобы опубликовать web-сервер на внешнем ресурсе, создается правило dst-nat:
```
/ip firewall nat add action=dst-nat chain=dstnat dst-address=WAN_IP dst-port=80 protocol=tcp to-addresses=192.168.100.5
```
**in-interface** не указан потому, что правило должно срабатывать при обращении на порт 80 адреса `WAN_IP` с любого интерфейса
Вы это делаете и.. И у вас все замечательно работает снаружи сети (при обращении из Интернет), но обращение с вашего компьютера по адресу http://WAN_IP говорит «Нет ответа от сервера». Для того, чтобы понять, что же происходит, рисуем схему прохождения и преобразования пакета:
![](../../images/network/mikrotik-hnat_2.png)
Теперь распишем что происходит на каждом этапе.
1. Компьютер с адреса `192.168.100.15` пытается установить соединение с адресом `WAN_IP` по `80 порту` и отправляет пакет на маршрутизатор.
1. На маршрутизаторе срабатывает правило `dst-nat`, в результате чего адрес назначения пакета меняется на `192.168.100.5`, и пакет отправляется на www-сервер `192.168.100.5`.
1. Узел `192.168.100.5` получив пакет с адресом источника `192.168.100.15`, определяет, что они оба находятся в одной локальной сети и отвечает ему напрямую, минуя маршрутизатор.
**Проблема**
Компьютер, отправив пакет на адрес WAN_IP, вдруг получает ответ с адреса 192.168.100.5. Естественно этот пакет он игнорирует и соединение не устанавливается.
**Решение**
Чтобы решить эту проблему, необходимо, чтобы www-сервер получил пакет у которого адрес источника будет равен адресу маршрутизатора. Добавляем к нашей конфигурации правило, которое заменит адрес отправителя, адресом интерфейса маршрутизатора и получаем следующую конфигурацию:
```
/ip firewall nat
add action=dst-nat chain=dstnat dst-address=1.1.1.1 dst-port=80 protocol=tcp to-addresses=192.168.0.10
add action=masquerade chain=srcnat dst-address=192.168.0.10 dst-port=80 protocol=tcp src-address=192.168.0.0/24
```
Теперь у нас из конфигурация работает правильно. Схема для понимания:
![](../../images/network/mikrotik-hnat_3.png)
**Работа схемы**
1. Компьютер с адреса `192.168.100.15` пытается установить соединение с адресом WAN_IP по 80 порту и отправляет пакет на маршрутизатор.
1. На маршрутизаторе срабатывает правило `dst-nat`, в результате чего адрес назначения пакета меняется на `192.168.100.5` и правило `src-nat`, где адрес источника пакета меняется на адрес интерфейса маршрутизатора (`192.168.100.1`). После чего пакет отправляется на www-сервер `192.168.100.5`.
1. Узел `192.168.100.5` получив пакет с адресом источника `192.168.100.1` (адрес маршрутизатора), определяет, что они оба находятся в одной локальной сети и отвечает ему. В результате чего пакет попадает на маршрутизатор
1. Connection Tracker маршрутизатора получив такой пакет выполняет обратное преобразование адресов. Компьютер получает ожидаемый ответ с адреса `WAN_IP`
Вот такая схема трансляции адресов и является Hairpin NAT.
Нужно отметить что у схемы есть недостаток. Заключается он в том, что публикуемый сервер будет получать запросы от хостов локальной сети с адреса маршрутизатора. Что не всегда хорошо. Например, если Вы так опубликуете прозрачный proxy-сервер, вряд ли у вас получится собрать нормальную статистику.
Альтернативой такой схемы могут служить.
Вынос публикуемых, или вообще всех серверов в отдельную подсеть.
Использование так называемого **split-dns**. Когда компьютер находясь снаружи сети на запрос www.mydomain.com получит адрес `WAN_IP`, а находясь внутри сети на этот же запрос получит адрес `192.168.100.5`.
---
[Использованы материалы сайта](https://housecomputer.ru/devices/switch/mikrotik/Setting_up_NAT_-_hairpin/Setting_up_NAT_-_hairpin.html){ .md-button .md-button--primary }

@ -0,0 +1,46 @@
# Domain Overrides (Split-DNS)
Представим себе ваш MikroTik выступает в роли маршрутизатора удалённого филиала. На нём поднимается VPN до центрального филиала прописываются маршруты и прочее. У вас доменная авторизация все компьютеры в домене, естественно хорошей практикой на компьютерах прописать DNS сервера который обслуживают Active Directory службы. Но в таком случае если туннель по какой-то причине упадёт ваш филиал останется без интернета, а ведь интернета может не быть в центральном филиале. Да перестанут работать различные шары и прочее, конечно для этих целей существует как минимум RODC, но навсегда есть возможность установить подобный сервис в филиале ввиду множества различных проблем.
На практике:
- MikroTik: 192.168.5.1 - DNS-Сервер для локальной сети;
- Samba AD DC: 192.168.5.10 - DNS-Сервер обслуживающий зону local.net.
Необходимо, чтобы все запросы, связанные с зоной local.net, обслуживались DNS-Сервером 192.168.5.10.
В pfSense такая возможность присутствует из коробки и делается немного проще чем в MikroTik.
!!! note
Начиная с версии **RouterOS v6.47**, появилась возможность пересылки запросов с помощью встроенного DNS-сервера. Раньше это делалось костылями через L7.
## DNS Settings
Для поддержки Domain Overrides необходимо, чтобы на DNS-Сервере была включена опция **Allow Remote Requests**.
```plaintext
/ip dns
set allow-remote-requests=yes
```
## Настройка Firewall
Разрешаем работу DNS-Сервера на всех интерфейсах, кроме WAN.
```plaintext
/ip firewall filter
add action=accept chain=input protocol=udp dst-port=53 in-interface=!wan
add action=drop chain=input in-interface=wan
```
## Domain Overrides
Делается это в меню DNS через управление статическими записями. Обязательным условием для работы является отключенный DoH.
```plaintext
/ip dns static add forward-to=192.168.5.10 regexp="((^)|(\.))local.net$" type=FWD
- .*\\.local\\.net
- ^.+(local).net
- ^.+local.net
- ".*local\\.net"
```

@ -0,0 +1,34 @@
# UPnP
Именно эта штука и отвечает за то, что нужные порты будут открываться автоматически по запросу программы. Настройка достаточно простая и заключается всего нескольких нажатиях мышки.
Подключаемся к нашему Mikrotik через Winbox и открываем необходимый раздел:
**IP->UPnP**
![](../../images/network/mikrotik-upnp_1.png)
Здесь достаточно поставить галочку Enable, но после этого все-равно ничего работать не будет. А все потому, что надо микротику сказать, что есть внешний интерфейс, а что внутренний. Для этого, в открытом ранее окошке находим кнопку **Interfaces** и нажимаем ее.
Сейчас у нас ничего нет и окно пустое. Жмем синий плюсик и добавляем два интерфейса.
![](../../images/network/mikrotik-upnp_2.png)
**External**
 — это наш внешний интерфейс. У меня это pppoe-соединение с провайдером. У вас может быть так же, а если получаете по DHCP, то выбрать надо тот, где висит DHCP-клиент.
**Internal**
 — это наш внутренний интерфейс. У меня часть портов объединена в bridge, поэтому я выбираю интерфейс bridge-home. Вы же выбираете свой.
Теперь закрываем окошко настройки интерфейсов. Затем жмем Apply и Ok. Вот и все. После проделанных манипуляций порты на микротике будут открываться автоматически без вмешательства в его настройку.
То же самое можно сделать не только в графической оболочке, но и через терминал.
```plaintext
/ip upnp set enabled=yes show-dummy-rule=yes allow-disable-external-interface=no
/ip upnp interfaces add interface=pppoe-out1 type=external add interface=bridge-home type=internal
```
Проверить работает или нет довольно просто, для этого достаточно зайти в раздел IP->Firewall->NAT и посмотреть наличие новых правил с префиксом D. Если такие есть, значит все в порядке.
Loading…
Cancel
Save