Настройка маршрутизатора MikroTik hAP RB951Ui-2HnD
Содержание
- Содержание
- Введение
- Сброс к заводским настройкам
- Доступ к консоли
- Просмотр информации о маршрутизаторе
- Управление файлами
- Управление конфигурацией маршрутизатора
- Управление пакетами
- Режимы работы маршрутизатора
- Настройка начальных сведений о маршрутизаторе
- Настройка пользователей и паролей
- Просмотр состояния портов и интерфейсов
- Настройка интерфейсов VLAN
- Настройка мостовых интерфейсов
- Настройка VLAN на коммутируемых портах
- Настройка точки доступа WiFi
- Настройка IP-адреса, шлюза и статических маршрутов
- Настройка клиента PPPoE
- Настройка клиента DHCP
- Настройка сервера DHCP
- Постоянные IP-адреса для DHCP-клиентов
- Настройка DNS-записей
- Настройка фильтрации пакетов
- Настройка NAT
- Настройка проброса портов
- Настройка NAT-PMP
- Настройка UPnP
- Настройка SSH, отключение других сервисов
- Настройка часов
- Настройка SNMP
- Инструменты
- Дополнительные материалы
Введение
Профессиональным сетевым администраторам эта заметка покажется совершенно бесполезной, т.к. в ней описываются совершенно базовые вещи. Моя профессия связана с Linux-серверами, а не компьютерными сетями, но для общего развития я иногда пытаюсь изучать смежные области. В этой заметке собраны команды, которые могут пригодиться мне самому.
Интерфейс командной строки маршрутизатора НЕ похож на таковой у маршрутизторов Cisco. На маршрутизаторе нет деления на режимы просмотра и настройки, почти любая команда может переводить интерфейс в подрежим, если в ней не указано достаточное количество аргументов для формирования завершённой команды. Для того, чтобы ввести команду, не являющуюся продолжением команды в текущем подрежиме, нужно предварить её символом косой черты. Для просмотра текущих настроек, относящихся к команде, предусмотрено ключевое слово print, которое добавляется в конец команды.
Описываемый маршрутизатор оснащён 5 Ethernet-портами, работающими на скоростях 10 или 100 мегабит/с и WiFi-интерфейсом, работащим на частоте 2,4 гигагерца с максимальной скоростью до 300 мегабит/с. Способен принимать питание PoE на порту 1 и питать другое устройство, подключенное к порту 5.
Аналогичная модель RB951G-2HnD отличается от этого маршрутизатора тем, что её Ethernet-порты способны работать также на скорости 1 гигабит/с, а 5 порт не может питать другое устройство.
Сброс к заводским настройкам
Для сборса настроек маршрутизатора нужно:
- отключить от него питание,
- нажать кнопку сброса, помеченную текстом RES, канцелярской скрепкой,
- подать питание,
- подождать несколько секунд, пока не начнёт мигать светодиод, помеченный текстом ACT.
Доступ к консоли
Нужно подключить маршрутизатор к компьютеру, с которого ведётся настройка, любым портом, кроме первого. Первый порт выделен для подключения ко внешней сети и для настройки маршрутизатора в целях безопасноти не используется.
В конфигурации по умолчанию на маршрутизаторе настроен DHCP-сервер, который раздаёт настройки для устройств, подключенных к портам, кроме первого.
Если на компьютере, который используется для настройки маршрутизатора, установлен Linux, то для настройки сетевого интерфейса с помощью DHCP-сервера маршрутизатора можно воспользоваться командой следующего вида:
# dhclient eth0
В приведённой выше команде eth0
- имя сетевого интерфейса, к которому подключен маршрутизатор. Если посмотреть его настройки с помощью команды ip addr show eth0
, то можно увидеть, что компьютеру был выдан IP-адрес из сети 192.168.88.0/24:
# ip addr show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 60:a4:4c:0a:6e:3d brd ff:ff:ff:ff:ff:ff
altname enp3s0
inet 192.168.88.245/24 brd 192.168.88.255 scope global dynamic eth0
valid_lft 566sec preferred_lft 566sec
inet6 fe80::62a4:4cff:fe0a:6e3d/64 scope link
valid_lft forever preferred_lft forever
Конкретно в моём случае компьютеру выдался IP-адрес 192.168.88.245, хоть для настройки маршрутизатора это и не имеет особого значения. IP-адрес самого маршрутизатора должен быть 192.168.88.1.
В конфигурации по умолчанию на маршрутизаторе настроен пользователь admin
с пустым паролем. Для подключения к маршрутизатору воспользуемся клиентом SSH:
$ ssh admin@192.168.88.1
The authenticity of host '192.168.88.1 (192.168.88.1)' can't be established.
RSA key fingerprint is SHA256:Zskcf2u0CHcyRVhNuB9zfZ5S828TqzL1qCT2tBnmn/E.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '192.168.88.1' (RSA) to the list of known hosts.
MMM MMM KKK TTTTTTTTTTT KKK
MMMM MMMM KKK TTTTTTTTTTT KKK
MMM MMMM MMM III KKK KKK RRRRRR OOOOOO TTT III KKK KKK
MMM MM MMM III KKKKK RRR RRR OOO OOO TTT III KKKKK
MMM MMM III KKK KKK RRRRRR OOO OOO TTT III KKK KKK
MMM MMM III KKK KKK RRR RRR OOOOOO TTT III KKK KKK
MikroTik RouterOS 7.14.1 (c) 1999-2024 https://www.mikrotik.com/
Do you want to see the software license? [Y/n]:
Просмотр информации о маршрутизаторе
Для просмотра информации о маршрутизаторе предусмотрена команда:
[stupin@rb951] > /system resource print
uptime: 2d5h6m20s
version: 7.14.1 (stable)
build-time: 2024-03-08 12:50:23
factory-software: 6.34.3
free-memory: 83.5MiB
total-memory: 128.0MiB
cpu: MIPS 74Kc V4.12
cpu-count: 1
cpu-frequency: 600MHz
cpu-load: 1%
free-hdd-space: 109.8MiB
total-hdd-space: 128.0MiB
write-sect-since-reboot: 1744
write-sect-total: 1744
bad-blocks: 0%
architecture-name: mipsbe
board-name: RB951Ui-2HnD
platform: MikroTik
Управление файлами
Посмотреть файлы и каталоги, имеющиеся во флеш-памяти маршрутизатора, можно с помощью следующей команды
[stupin@rb951] > /file print
Columns: NAME, TYPE, SIZE, CREATION-TIME
# NAME TYPE SIZE CREATION-TIME
0 user-manager directory 2024-04-22 06:13:28
1 skins directory 1970-01-01 00:00:01
2 user-manager/sqldb file 80.0KiB 2002-01-01 01:00:03
3 user-manager/logsqldb file 6.0KiB 2002-01-01 01:00:03
4 um-before-migration.tar .tar file 17.5KiB 2002-01-01 01:00:03
5 auto-before-reset.backup backup 22.2KiB 1970-01-01 00:00:07
Создать новый файл можно следующим образом:
[stupin@rb951] > /file add name=test contents="Hello, world!"
Скопировать файл можно следующим образом:
[stupin@rb951] > /file add name=test2 copy-from=test
Удалить файл можно по имени или по номеру:
[stupin@rb951] > /file remove test
[stupin@rb951] > /file remove numbers=5
Кроме этого файлами можно управлять по протоколу SFTP - загружать, удалять, скачивать.
Управление конфигурацией маршрутизатора
Для просмотра текущей конфигурации можно воспользоваться такой командой:
[stupin@rb951] > /export compact
Ключевое слово compact
используется по умолчанию и его можно опустить. Оно обозначает, что будут выведены только те настройки, которые отличаются от конфигурации по умолчанию. Его противоположностью является ключевое слово verbose
, которое предписывает вывести полную конфигруацию, включая настройки по умолчанию:
[stupin@rb951] > /export verbose
Если собираетесь поделиться конфигурацией, например, при совместном разборе проблемы или при написании статьи для публичных ресурсов, можно указать ключевое слово hide-sensitive
, чтобы скрыть информацию, используемую в процессах аутентификации - пароли, хэши праолей, разделяемые ключи и секреты:
[stupin@rb951] > /export hide-sensitive
Копировать конфигурацию с экрана консоли не удобно, поэтому можно сохранить конфигруацию в файл, который потом можно будет скопировать с маршрутизатора, например, по протоколу SFTP:
[stupin@rb951] > /export hide-sensitive file="config"
К имени файла будет добавлено расширение .rsc
.
Просматривать и экспортировать можно не только всю конфигруацию целиком, но и часть конфигруации, относящуюся к одному и тому же разделу. Например, для просмотра конфигруации портов на мостовом интерфейсе можно перейти в соответствующий раздел и выполнить команду экспорта внутри него:
[stupin@rb951] > /interface bridge port
[stupin@rb951] interface bridge port> export
Для выхода из раздела конфигурации достаточно ввести команду, состоящую из одной косой черты:
[stupin@rb951] interface bridge port> /
[stupin@rb951] >
Сохранённые в файл настройки можно потом применить с помощью следующей команды:
[stupin@rb951] > /import file-name="config"
Команде можно указать номер строки, с которой нужно начать выполнение импорта, в поле from-line
. Для отладки может пригодиться также указать в команде ключевое слово verbose
- команды из файла будут выполняться по одной, каждая выполняемая команда будет сначала выведена на экран, а после её выполнения будет выведено сообщение об успешном выполнении или об ошибках выполнения команды.
Для сброса конфигурации к конфигурации по умолчанию предусмотрена команда:
[stupin@rb951] > /system reset-configuration
Этой команде можно указать одно из следующих ключевых слов:
keep-users
- не удалять пользователей, их пароли и ключи SSH,no-defaults
- выполнить полную очистку конфигруации, без применения конфигурации по умолчанию,skip-backup
- не выполнять автоматическое сохранение текущей конфигурации перед сбросом,run-after-reset
- после сброса выполнить файл с указанным именем, который был получен с помощью команды/export
.
Для резервного копирования и восстановления конфигурации маршрутизатора предусмотрены отдельные команды. Сохранить текущую конфигурацию во флеш-память без шифрования можно следующим образом:
[stupin@rb951] > /system backup save name=20240603 dont-encrypt=yes
Saving system configuration
Configuration backup saved
К имени файла резервной копии добавится расширение .backup
.
Для восстановления конфигурации маршрутизатора из резервной копии можно воспользоваться такой командой:
[stupin@rb951] > /system backup load name=20240603.backup password=""
Restore and reboot? [y/N]:
y
Restoring system configuration
System configuration restored, rebooting now
Управление пакетами
Прошивка маршрутизатора состоит из пакетов: основного и дополнительных. Найти их можно на странице MikroTik Routers and Wireless - Software.
Пакет должен соответствовать архитектуре микропроцессора маршрутизатора. Узнать эту архитектуру можно из поля architecture-name
, выдаваемого командой /system resource print
.
Посмотреть список уже установленных на маршрутизаторе пакетов можно с помощью такой команды:
[stupin@rb951] > /system package print
Columns: NAME, VERSION, BUILD-TIME, SIZE
# NAME VERSION BUILD-TIME SIZE
0 routeros 7.14.1 2024-03-08 12:50:23 9.9MiB
1 lte 6.48.1 2021-02-03 10:54:22 1944.1KiB
Установить новый пакет в систему можно по SFTP, например, вот так:
$ sftp 192.168.254.1
stupin@192.168.254.1's password:
Permission denied, please try again.
stupin@192.168.254.1's password:
Connected to 192.168.254.1.
sftp> ls
20240603.backup auto-before-reset.backup skins
um-before-migration.tar user-manager
sftp> put routeros-7.15-mipsbe.npk
Uploading routeros-7.15-mipsbe.npk to /routeros-7.15-mipsbe.npk
routeros-7.15-mipsbe.npk 100% 10MB 1.5MB/s 00:06
sftp> put wireless-7.15-mipsbe.npk
Uploading wireless-7.15-mipsbe.npk to /wireless-7.15-mipsbe.npk
wireless-7.15-mipsbe.npk 100% 1500KB 1.5MB/s 00:00
sftp> put lte-7.15-mipsbe.npk
Uploading lte-7.15-mipsbe.npk to /lte-7.15-mipsbe.npk
lte-7.15-mipsbe.npk 100% 1944KB 1.5MB/s 00:01
sftp> quit
Закачанные пакеты появятся в системе после перезагрузки маршрутизатора:
[stupin@rb951] > /system reboot
Reboot, yes? [y/N]:
y
system will reboot shortly
После перезагрузки можно увидеть, что в системе появились новые пакеты, а имевшиеся ранее обновились:
[stupin@rb951] > /system package print
Columns: NAME, VERSION, BUILD-TIME, SIZE
# NAME VERSION BUILD-TIME SIZE
0 routeros 7.15 2024-05-29 12:44:08 10.1MiB
1 lte 7.15 2024-05-29 12:44:08 1944.1KiB
2 wireless 7.15 2024-05-29 12:44:08 1500.1KiB
Установленные в систему пакеты можно отключать с помощью следующей команды:
[stupin@rb951] > /system package disable lte
Если после отключения пакета посмотреть список установленных пакетов, то можно увидеть, что пакет не отключен, а его отключение только запланировано:
[stupin@rb951] > /system package print
Columns: NAME, VERSION, SCHEDULED, BUILD-TIME
# NAME VERSION SCHEDULED BUILD-TIME
0 routeros 7.15 2024-05-29 12:44:08
1 lte 7.15 scheduled for disable 2024-05-29 12:44:08
2 wireless 7.15 2024-05-29 12:44:08
Отключение пакета произойдёт только после перезагрузки маршрутизатора. После перезагрузки отключенные пакеты будут обозначены буквой X:
[stupin@rb951] > /system package print
Flags: X - DISABLED
Columns: NAME, VERSION, BUILD-TIME, SIZE
# NAME VERSION BUILD-TIME SIZE
0 routeros 7.15 2024-05-29 12:44:08 10.1MiB
1 X lte 7.15 2024-05-29 12:44:08 1944.1KiB
2 wireless 7.15 2024-05-29 12:44:08 1500.1KiB
Включить отключенный пакет можно с помощью такой команды:
[stupin@rb951] > /system package enable lte
Так же, как и в случае отключения, включение пакета тоже будет отложено до перезагрузки маршрутизатора:
[stupin@rb951] > /system package print
Flags: X - DISABLED
Columns: NAME, VERSION, SCHEDULED, BUILD-TIME
# NAME VERSION SCHEDULED BUILD-TIME
0 routeros 7.15 2024-05-29 12:44:08
1 X lte 7.15 scheduled for enable 2024-05-29 12:44:08
2 wireless 7.15 2024-05-29 12:44:08
Режимы работы маршрутизатора
Маршрутизатор может работать в одном из двух режимов:
enterprise
- промышленный,home
- домашний.
Для просмотра текущего режима предусмотрена команда:
[stupin@rb951] > /system device-mode print
mode: enterprise
По умолчанию используется промышленный режим, в котором запрещены только функции контейнеризации - container
.
В домашнем режиме запрещены функции scheduler
, socks
, fetch
, bandwidth-test
, traffic-gen
, sniffer
, romon
, proxy
, hotspot
, email
, zerotier
, container
.
Для изменения режима предусмотрена команда:
[stupin@rb951] > /system device-mode update mode=home
update: please activate by turning power off or pressing reset or mode
button in 4m38s
-- [Q quit|D dump|C-z pause]
Но выполнение команды нужно подтвердить кратковременным нажатием кнопки RES на самом маршрутизаторе в течение 5 минут. После подтверждения маршрутизатор перезагружается. Если подтверждения не поступит, команда будет отменена.
Для изменения списка функций, доступных в режимах, предусмотрены команды следующего вида:
[stupin@rb951] > /system device-mode update mode=home email=yes
update: please activate by turning power off or pressing reset or mode
button in 4m38s
-- [Q quit|D dump|C-z pause]
[stupin@rb951] > /system device-mode update mode=enterprise zerotier=no
update: please activate by turning power off or pressing reset or mode
button in 4m38s
-- [Q quit|D dump|C-z pause]
Выполнение таких команд тоже нужно подтвердить кратковременным нажатием кнопки RES на маршрутизаторе до истчения 5 минутного интевала, после которого выполнение команды будет отменено.
Если после перезагрузки посмотреть режим работы маршрутизатора, то будет видно, что кроме строки режима в выводе команды появится дополнительная строчка с состоянием функции, отключенной (или включенной) по сравнению с функциями, разрешёнными выбранным режимом:
[stupin@rb951] > /system device-mode print
mode: home
email: yes
Если в конфигурации при загрузке были обнаружено использование отключенных функций, то отключенные функции не будут работать, а при попытке их использования будет выводиться ошибка вида:
failure: configuration flagged, check all router configuration for unauthorized changes and update device-mode
При этом в выводе команды просмотра режима устройства появится дополнительное поле flagged
со значением yes
, говорящее о том, что конфигурация устройства нарушает наложенные ограничения.
Включение флага является признаком возможного взлома. Необходимо проверить всю конфигурацию маршрутизатора на предмет появления непредусмотренных изменений.
Если в конфигурации не найдено признаков постороннего вмешательства, то флаг можно сбросить с помощи следующей команды:
[stupin@rb951] > /system device-mode update flagged=no
При этом потребуется подтвердить выполнение команды кратковременным нажатием на кнопку RES на корпусе маршрутизатора. После загрузки маршрутизатора флаг будет сброшен.
Настройка начальных сведений о маршрутизаторе
Посмотреть текущее имя маршрутизатора можно следующим образом:
[stupin@MikroTik] > /system identity print
name: MikroTik
Поменять это имя можно с помощью такой команды:
[stupin@MikroTik] > /system identity set name=rb951
Это же имя будет выдаваться по SNMP в качестве значения OID'а .1.3.6.1.2.1.1.5.0
- .sysName.0
.
Настройка контактов сетевого администратора;
[stupin@rb951] > /snmp set contact=vladimir@stupin.su
Это же значение будет выдаваться по SNMP в качестве значения OID'а .1.3.6.1.2.1.1.4.0
- .sysContact.0
.
Настройка местоположения устройства:
[stupin@rb951] > /snmp set location="Ufa"
Это же значение будет выдаваться по SNMP в качестве значения OID'а .1.3.6.1.2.1.1.6.0
- .sysLocation.0
.
Посмотреть значения контактов сетевого администратора и местоположения устройства, настроенные последними двумя командами, можно следующим образом:
[stupin@rb951] > /snmp print
enabled: yes
contact: vladimir@stupin.su
location: Ufa
engine-id-suffix:
engine-id: 80003a8c04
src-address: ::
trap-target:
trap-community: public
trap-version: 1
trap-generators: temp-exception
vrf: main
Настройка пользователей и паролей
Просмотр существующих пользователей:
[admin@MikroTik] > /user print
Flags: X - disabled
# NAME GROUP ADDRESS LAST-LOGGED-IN
0 stupin full jan/01/2002 01:07:32
Добавление нового пользователя:
[admin@MikroTik] > /user add name=stupin password=p4$$w0rd group=full
В качестве группы можно указать одну из существующих: read
- чтение, write
- запись или full
- полные права. В приведённом выше примере мы создаём администратора с полными правами доступа.
Удаление существующего пользователя (очень рекомендуется удалить пользователя по умолчанию admin):
[admin@MikroTik] > /user remove admin
Поменять пароль текущего пользователя можно с помощью команды:
[admin@MikroTik] > /password
Поменять пароль любого пользователя можно, указав его номер и новый пароль в команде следующего вида:
[admin@MikroTik] > /user set 0 password="!={Ba3N!40TуX+GvKBzjTLIUcx/,"
Просмотр состояния портов и интерфейсов
Посмотреть полный список портов и логических интерфейсов можно с помощью такой команды:
[stupin@rb951] > /interface print
Flags: R - RUNNING; S - SLAVE
Columns: NAME, TYPE, ACTUAL-MTU, L2MTU, MAX-L2MTU, MAC-ADDRESS
# NAME TYPE ACTUAL-MTU L2MTU MAX-L2MTU MAC-ADDRESS
0 RS ether1 ether 1500 1598 2028 CC:2D:E0:CB:84:C1
1 S ether2 ether 1500 1598 2028 CC:2D:E0:CB:84:C2
2 S ether3 ether 1500 1598 2028 CC:2D:E0:CB:84:C3
3 RS ether4 ether 1500 1598 2028 CC:2D:E0:CB:84:C4
4 S ether5 ether 1500 1598 2028 CC:2D:E0:CB:84:C5
5 RS wifi1 wlan 1500 1600 2290 CC:2D:E0:CB:84:C6
6 R domru vlan 1500 1594 CC:2D:E0:CB:84:C1
7 R domru-pppoe pppoe-out 1492
8 R lan bridge 1500 1598 CC:2D:E0:CB:84:C1
9 R lo loopback 65536 00:00:00:00:00:00
10 R ufanet vlan 1500 1594 CC:2D:E0:CB:84:C1
11 R wifi vlan 1500 1594 CC:2D:E0:CB:84:C1
Активные порты помечены буквой R. Порты, входящие в состав логического интерфейса, помечены буквой S.
В колонке TYPE выводится тип порта или интерфейса. Порты с типом ether мы посмотрели предыдущей командой. Ниже можно найти команды для просмотра портов типа vlan
и bridge
.
Посмотреть состояние портов Ethernet можно с помощью следующей команды:
[stupin@rb951] > /interface ethernet print
Flags: R - RUNNING; S - SLAVE
Columns: NAME, MTU, MAC-ADDRESS, ARP, SWITCH
# NAME MTU MAC-ADDRESS ARP SWITCH
0 ether1 1500 CC:2D:E0:CB:84:C1 enabled switch1
1 RS ether2 1500 CC:2D:E0:CB:84:C2 enabled switch1
2 S ether3 1500 CC:2D:E0:CB:84:C3 enabled switch1
3 S ether4 1500 CC:2D:E0:CB:84:C4 enabled switch1
4 S ether5 1500 CC:2D:E0:CB:84:C5 enabled switch1
Настройка интерфейсов VLAN
Для просмотра списка VLAN-интерфейсов маршрутизатора можно воспользоваться такой командой:
[stupin@rb951] > /interface vlan print
Columns: NAME, MTU, ARP, VLAN-ID, INTERFACE
# NAME MTU ARP VLAN-ID INTERFACE
0 domru 1500 enabled 4 lan
1 wifi 1500 enabled 5 lan
2 ufanet 1500 enabled 3 lan
Приведённые выше VLAN на портах были настроены с помощью следующих команд:
[stupin@rb951] > /interface vlan add name=ufanet interface=ether1 vlan-id=3
[stupin@rb951] > /interface vlan add name=domru interface=ether1 vlan-id=4
[stupin@rb951] > /interface vlan add name=wifi interface=ether1 vlan-id=5
Для удаления интерфейса можно воспользоваться командой следующего вида:
[stupin@rb951] > /interface vlan remove wifi
Настройка мостовых интерфейсов
Для просмотра портов, входящих в состав мостовых интерфейсов, можно воспользоваться такой командой:
[stupin@rb951] > /interface bridge port print
Flags: I - INACTIVE; H - HW-OFFLOAD
Columns: INTERFACE, BRIDGE, HW, PVID, PRIORITY, HORIZON
# INTERFACE BRIDGE HW PVID PRIORITY HORIZON
0 H ether1 lan yes 1 0x80 none
1 IH ether2 lan yes 1 0x80 none
2 IH ether3 lan yes 1 0x80 none
3 H ether4 lan yes 1 0x80 none
4 IH ether5 lan yes 1 0x80 none
5 wifi1 lan 1 0x80 none
Неактивные порты помечены буквой I, а порты, для которых имеется поддержка аппаратной коммутации пакетов, отмечены буковй H (та же самая информация дублируется в поле HW). В поле PVID указана метка VLAN, которая назначается пакетам, не имеющим метки.
Для создания нового мостового интерфейса с именем lan
можно воспользоваться такой командой:
[stupin@rb951] > /interface bridge add name=lan
Добавить в этот интерфейс порты можно следующим образом:
[stupin@rb951] > /interface bridge port add interface=ether2 bridge=lan
Для удаления портов из мостового интерфейса нужно указать номера строк в таблице, которую выводит команда /interface bridge port print
:
[stupin@rb951] > /interface bridge port remove numbers=3,2,1
Для удаления самого мостового интерфейса можно воспользоваться такой командой:
[stupin@rb951] > /interface bridge remove bridge
Однако, будьте внимательны - постарайтесь не удалять мостовой интерфейс, в котором есть порты, помому что в дальнейшем такой порт нельзя будет добавить в другой мостовой интерфейс:
[stupin@rb951] > /interface bridge port add interface=ether2 bridge=lan
failure: device already added as bridge port
Если это всё же случилось, то можно посмотреть порты, добавленные в какие-либо мостовые интерфейсы следующим образом:
[stupin@rb951] > /interface bridge port print
Flags: I - INACTIVE; H - HW-OFFLOAD
Columns: INTERFACE, BRIDGE, HW, PVID, PRIORITY, HORIZON
# INTERFACE BRIDGE HW PVID PRIORITY HORIZON
;;; defconf
0 I ether2 *7 1 0x80 none
1 I ether1 lan 1 0x80 none
2 H ether3 lan yes 1 0x80 none
3 IH ether4 lan yes 1 0x80 none
4 IH ether5 lan yes 1 0x80 none
Из таблицы можно увидеть, что порт ether2
состоит в мостовом интерфейсе *7
, соответствующем удалённому ранее мостовому интерфейсу. Чтобы удалить порт из удалённого мостового интерфейса, можно воспользоваться такой командой:
[stupin@rb951] > /interface bridge port remove numbers=0
Настройка VLAN на коммутируемых портах
Настройка VLAN на коммутируемых портах зависит от модели маршрутизатора и имеющихся в нём микросхем коммутации.
CRS1xx/CRS2xx не поддерживают аппаратную фильтрацию VLAN на коммутируемых портах, а для настройки функций VLAN нужно использовать команды группы /interface ethernet switch
.
CRS3xx поддерживают аппаратную фильтрацию VLAN на коммутируемых портах, а для настройки VLAN нужно использовать команды групп /interface bridge vlan
и /interface bridge port
. Часть функций, такие как ACL и QoS, настраиваются командами группы /interface ethernet switch
.
На остальных устройствах, имеющих микросхему коммутации, нужно сначала объединить порты с помощью команд группы /interface bridge port
, а затем настроить VLAN с помощью команд группы /interface ethernet switch
.
На странице Bridging and Switching / Switch Chip Features / Intorduction есть таблица моделей устройств, из которой по модели маршрутизатора можно определить микросхему коммутации, отвечающую за порты устройства. Так, в маршрутизаторе модели RB951Ui-2nD
за коммутацию портов ether1-ether5 отвечает микросхема Atheros8227
. Также микросхему коммутации, если она есть, можно узнать с помощью команды:
[stupin@rb951] > /interface ethernet switch print
Columns: NAME, TYPE
# NAME TYPE
0 switch1 Atheros-8227
Определить, имеется ли аппаратная поддержка VLAN на коммутируемых портах, можно с помощью таблицы моделей микросхем на той же странице Bridging and Switching / Switch Chip Features / Intorduction. Из строки Vlan table
таблицы видно, что микросхема коммутации Atheros8227
поддерживает таблицу коммутации размером 4096 VLAN.
Для управления маршрутизатором через сеть VLAN нужно настроить интерфейс VLAN на мостовом интерфейсе. Для управления тем, какие VLAN будут доходить до мостового интерфейса, используется виртуальный порт switch1-cpu
.
Создадим мостовой интерфейс, как это уже было описано в разделе о настройке мостовых интерфейсов:
[stupin@rb951] > /interface bridge add name=lan
Добавим порты в этот мостовой интерфейс:
[stupin@rb951] > /interface bridge port add bridge=lan interface=ether1
[stupin@rb951] > /interface bridge port add bridge=lan interface=ether2
[stupin@rb951] > /interface bridge port add bridge=lan interface=ether3
[stupin@rb951] > /interface bridge port add bridge=lan interface=ether4
[stupin@rb951] > /interface bridge port add bridge=lan interface=ether5
[stupin@rb951] > /interface bridge port add bridge=lan interface=wifi1
Теперь добавим интерфейсы VLAN в мостовой интерфейс:
[stupin@rb951] > /interface vlan add name=ufanet interface=lan vlan-id=3
[stupin@rb951] > /interface vlan add name=domru interface=lan vlan-id=4
[stupin@rb951] > /interface vlan add name=ubiquiti interface=lan vlan-id=5
И теперь можно приступить к настройке коммутации. Сначала добавим VLAN'ы на порты микросхемы коммутации:
[stupin@rb951] > /interface ethernet switch vlan add switch=switch1 vlan-id=0 ports=switch1-cpu,ether1,ether2,ether3,ether4,ether5
[stupin@rb951] > /interface ethernet switch vlan add switch=switch1 vlan-id=3 ports=switch1-cpu,ether1
[stupin@rb951] > /interface ethernet switch vlan add switch=switch1 vlan-id=4 ports=switch1-cpu,ether1
[stupin@rb951] > /interface ethernet switch vlan add switch=switch1 vlan-id=5 ports=switch1-cpu,ether1
Затем настроим режим работы каждого из портов:
[stupin@rb951] > /interface ethernet switch port set switch1-cpu default-vlan-id=0 vlan-mode=secure vlan-header=leave-as-is
[stupin@rb951] > /interface ethernet switch port set ether1 default-vlan-id=0 vlan-mode=secure vlan-header=leave-as-is
[stupin@rb951] > /interface ethernet switch port set ether2 default-vlan-id=0 vlan-mode=secure vlan-header=always-strip
[stupin@rb951] > /interface ethernet switch port set ether3 default-vlan-id=0 vlan-mode=secure vlan-header=always-strip
[stupin@rb951] > /interface ethernet switch port set ether4 default-vlan-id=0 vlan-mode=secure vlan-header=always-strip
[stupin@rb951] > /interface ethernet switch port set ether5 default-vlan-id=0 vlan-mode=secure vlan-header=always-strip
Поле vlan-mode
управляет режимом обработки пакетов в зависимости от наличия или отсутствия метки VLAN на входе в порт. Если на порту нужно принимать пакеты без меток, то выбор ограничен двумя вариантами:
disabled
- пропускать пакеты независимо от наличия и значения метки,fallback
- пропустить пакеты без меток и с метками, которых нет в таблице VLAN. Пакеты с метками, найденными в таблице VLAN, пропускать только если в таблице есть выходной порт для этой VLAN.
Если же порт не должен принимать пакеты без меток, то есть два варианта:
check
- отбрасывать пакеты без меток, а пакеты с метками пропускать только если они есть в таблице VLAN и есть выходной порт для этой VLAN,secure
- отбрасывать пакеты без меток, а пакеты с метками пропускать только если они есть в таблице VLAN и для них есть и входной и выходной порт.
Поле vlan-header
управляет режимом обработки пакетов в зависимости от наличия или отсуствия метки VLAN на выходе из порта:
add-if-missing
- к пакетам без метки добавляется метка по умолчанию, указанная в полеdefault-vlan-id
, на выход уходят только пакеты с метками, используется для транк-портов,always-strip
- перед выходом из порта с пакета удаляется метка, значение для портов доступа,leave-as-is
- отправить пакет, не добавляя и не удаляя метку VLAN, значение для гибридных портов.
VLAN с номерами 2-4094 можно без ограничений использовать на транковых портах и на портах доступа в любых сочетаниях. VLAN с номером 1 не стоит использовать, поскольку некоторое сетевое оборудование воспринимает такие пакеты как пакеты без метки. А вот при желании использовать гибридные порты нужно учитывать ряд ограничений микросхемы коммутации Atheros8227
.
Как можно заметить, среди возможных значений поля vlan-header
нет значения типа strip-if-default
. Из-за этого через гибридный порт можно отправить пакеты без метки только в том случае, если они были приняты без метки на другом порту или были сформированы прямо на мостовом интерфейсе маршрутизатора.
Порты могут принимать пакеты без меток только если поле vlan-mode
имеет значение disabled
или fallback
. Оба эти режима подразумевают, что пакеты без меток и с неизвестными метками будут доходить до выхода из всех остальных портов, в том числе до порта switch1-cpu
, делая возможной ситуацию, в которой маршрутизатор будет вынужден принимать пакеты, которые он вынужден будет просто отбросить. Чтобы всё-таки фильтровать пакеты, можно прибегнуть к трюку и использовать в таблице коммутации VLAN с номером 0. Пакеты с этим номером VLAN на выходе гибридных портов будут интерпретироваться как пакеты без метки, но имеющие отмеченный приоритет обслуживания - пакеты формата 802.1Q с нулевым значением VLAN интерпретируются как пакеты формата 802.1p. Таким образом можно будет исключить коммутацию паразитного трафика, но на гибридных портах можно будет использовать только одну VLAN - нулевую, а связать её можно будет только с портами доступа с нулевой VLAN.
На микросхемах коммутации моделей QCA8337
и Atheros8327
в поле vlan-header
всегда используется значение leave-as-is
, а нужно ли снять метку перед отправкой пакета, определяется по значению поля default-vlan-id
, поэтому указывать это поле на транк-порта не нужно. К сожалению это не наш случай.
Для просмотра таблицы коммутации на микросхеме коммутации можно воспользоваться следующей командой:
[stupin@rb951] > /interface/ethernet/switch/host/print
Flags: D - DYNAMIC
Columns: SWITCH, MAC-ADDRESS, PORTS, TIMEOUT, DROP, MIRROR
# SWITCH MAC-ADDRESS PORTS TIMEOUT DROP MIRROR
0 D switch1 6C:71:D9:59:58:28 switch1-cpu 1m no no
1 D switch1 CC:2D:E0:CB:84:C4 switch1-cpu 3m no no
2 D switch1 34:1C:F0:E9:7F:6E switch1-cpu 2m30s no no
3 D switch1 CC:2D:E0:CB:84:C1 switch1-cpu 3m30s no no
4 D switch1 E4:8D:8C:D6:C2:13 ether1 3m30s no no
5 D switch1 60:A4:4C:0A:6E:3D ether4 3m30s no no
Посмотреть таблицу коммутации, видимую со стороны маршрутизтора через порт микросхемы коммутации switch1-cpu
, можно следующим образом:
[stupin@rb951] > /interface/bridge/host/print
Flags: D - DYNAMIC; L - LOCAL; E - EXTERNAL
Columns: MAC-ADDRESS, ON-INTERFACE, BRIDGE
# MAC-ADDRESS ON-INTERFACE BRIDGE
0 D 34:1C:F0:E9:7F:6E wifi1 lan
1 D E 60:A4:4C:0A:6E:3D ether4 lan
2 D 6C:71:D9:59:58:28 wifi1 lan
3 DL CC:2D:E0:CB:84:C1 lan lan
4 DL CC:2D:E0:CB:84:C4 ether4 lan
5 DL CC:2D:E0:CB:84:C6 wifi1 lan
6 D E E4:8D:8C:D6:C2:13 ether1 lan
Настройка точки доступа WiFi
Сначала настраиваем профиль безопасности - алгоритм аутентификации и другие настройки для выбранного алгоритма. В приведённом ниже примере настраивается аутентификация с использованием общего ключа и указывается сам этот ключ:
[stupin@rb951] > /interface wireless security-profiles add name="wifi-profile" mode=dynamic-keys authentication-types=wpa2-psk wpa2-pre-shared-key="p4$$w0rd"
Для просмотра краткого списка профилей (по умолчанию выводится подробности со значениями всех настроенных опций) можно воспользоваться следующей командой:
[stupin@rb951] > /interface wireless security-profiles print brief
Flags: * - DEFAULT
Columns: NAME, MODE
# NAME MODE
0 * default none
1 wlan dynamic-keys
Профиль по умолчанию невозможно удалить. Для удаления других профилей можно воспользоваться командой с указанием номера удаляемого профиля из таблицы, выведенной предыдущей командой:
[stupin@rb951] > /interface wireless security-profiles remove numbers=1
Включаем WiFi-интерфейс:
[stupin@rb951] > /interface wireless enable wlan1
Для просмотра списка настроенных беспроводных интерфейсов можно воспользоваться командой:
[stupin@rb951] > /interface wireless print
Flags: X - disabled; R - running
0 name="wlan1" mtu=1500 l2mtu=1600 mac-address=CC:2D:E0:CB:84:C6 arp=enabled
interface-type=Atheros AR9300 mode=ap-bridge ssid="stupin.su" frequency=auto band=2ghz-b/g/n
channel-width=20/40mhz-Ce secondary-frequency="" scan-list=default wireless-protocol=802.11
vlan-mode=no-tag vlan-id=1 wds-mode=disabled wds-default-bridge=none wds-ignore-ssid=no
bridge-mode=enabled default-authentication=yes default-forwarding=yes default-ap-tx-limit=0
default-client-tx-limit=0 hide-ssid=no security-profile=wifi-profile compression=no
Удалить интерфейс из этого списка нельзя, поскольку это аппаратный интерфейс. Однако его можно отклюить с помощью одной из команд:
[stupin@rb951] > /interface wireless disable wlan1
[stupin@rb951] > /interface wireless disable numbers=0
Настроим саму точку доступа, указав интерфейс, профиль безопасности, режим работы, идентификатор и настройки выбора частоты:
[stupin@rb951] > /interface wireless set wlan1 band=2ghz-b/g/n channel-width=20/40mhz-Ce distance=indoors mode=ap-bridge ssid=stupin.su wireless-protocol=802.11 security-profile=wifi-profile frequency-mode=regulatory-domain country=russia3 frequency=auto
Переименовать интерфейс можно следующим образом:
[stupin@rb951] > /interface wireless set wlan1 name=wifi1
Если предполагается добавить интерфейс точки доступа в мостовой интерфейс, который был описан выше, может понадобиться назначить интерфейсу метку VLAN:
[stupin@rb951] > /interface/wireless/set wifi1 vlan-id=5 vlan-mode=use-tag
Для просмотра зарегистрированных на точке доступа клиентов можно воспользоваться следующей командой:
[stupin@rb951] > /interface wireless registration-table print
Columns: INTERFACE, MAC-ADDRESS, AP, SIGNAL-STRENGTH, TX-RATE, UPTIME
# INTERFACE MAC-ADDRESS AP SIGNAL-STRENGTH TX-RATE UPTIME
0 wifi1 6C:71:D9:59:58:28 no -39dBm@HT40-7 150Mbps-40MHz/1S/SGI 11m18s
1 wifi1 34:1C:F0:E9:7F:6E no -45dBm@1Mbps 300Mbps-40MHz/2S/SGI 9m16s
Настройка IP-адреса, шлюза и статических маршрутов
Для настройки IP-адреса на интерфейсе можно воспользоваться такой командой:
[stupin@rb951] > /ip address add address=192.168.254.1/24 interface=lan
Или то же самое можно сделать с указанием полной маски, а не длины префикса:
[stupin@rb951] > /ip address add address=192.168.254.1 netmask=255.255.255.0 interface=lan
Для удаления IP-адреса нужно сначала посмотреть список настроенных IP-адресов на интерфейсах маршрутизатора:
[stupin@rb951] > /ip address print
Flags: D - DYNAMIC
Columns: ADDRESS, NETWORK, INTERFACE
# ADDRESS NETWORK INTERFACE
0 192.168.254.1/24 192.168.254.0 lan
1 192.168.253.1/24 192.168.253.0 wifi
2 D 192.168.90.2/24 192.168.90.0 ufanet
3 D 192.168.89.2/32 192.168.89.1 domru-pppoe
Затем IP-адрес можно удалить, указав его номер в таблице:
[stupin@rb951] > /ip address remove numbers=1
Настройка клиента PPPoE
Для настройки PPPoE-клиента можно воспользоваться такой командой:
[stupin@rb951] > /interface pppoe-client add name="pppoe-domru" interface=domru disabled=no user="pppoe-user" password="pppoe-p4$$w0rd" add-default-route=yes default-route-distance=1 use-peer-dns=yes
Для просмотра настроенных PPPoE-клиентов можно воспользоваться такой командой:
[stupin@rb951] > /interface pppoe-client print
Flags: X - disabled, I - invalid; R - running
0 name="domru-pppoe" max-mtu=auto max-mru=auto mrru=disabled
interface=domru user="pppoe-user" password="pppoe-p4$$w0rd" profile=default
keepalive-timeout=10 service-name="" ac-name="" add-default-route=yes
default-route-distance=1 dial-on-demand=no use-peer-dns=yes
allow=pap,chap,mschap1,mschap2
Удалить настройки клиента можно, указав в следующей команде его номер из таблицы:
[stupin@rb951] > /interface pppoe-client remove numbers=0
Настройка клиента DHCP
Для настройка DHCP-клиента можно воспользоваться следующей командой:
[stupin@rb951] > /ip dhcp-client add interface=ufanet disabled=no add-default-route=yes default-route-distance=2 use-peer-dns=yes
Для просмотра настроенных DHCP-клиентов можно воспользоваться следующей командой:
[stupin@rb951] > /ip dhcp-client print
Columns: INTERFACE, USE-PEER-DNS, ADD-DEFAULT-ROUTE, STATUS, ADDRESS
# INTERFACE USE-PEER-DNS ADD-DEFAULT-ROUTE STATUS ADDRESS
0 ufanet yes yes bound 192.168.90.2/24
Для удаления DHCP-клиента нужно указать в приведённой ниже команде номер из таблицы выше:
[stupin@rb951] > /ip dhcp-client remove numbers=0
Настройка сервера DHCP
Для будущего DHCP-сервера нужно создать именованные диапазоны IP-адресов, из которых он сможет выдавать настройки клиенту:
[stupin@rb951] > /ip pool add name=lan-pool ranges=192.168.254.128-192.168.254.254
Для просмотра именованных диапазонов IP-адресов можно воспользоваться следующей командой:
[stupin@rb951] > /ip pool print
Columns: NAME, RANGES
# NAME RANGES
0 lan-pool 192.168.254.128-192.168.254.254
1 wifi-pool 192.168.253.128-192.168.253.254
Для удаления именованных диапазонов IP-адресов нужно указать их номера из вывода приведённой выше команды в команде следующего вида:
[stupin@rb951] > /ip pool remove numbers=0
Для настройки самого сервера нужно указать интерфейс, на котором он будет ожидать входящие запросы и пул IP-адресов, из которого он будет выдавать адреса клиентам:
[stupin@rb951] > /ip dhcp-server add name=lan-dhcp-server interface=lan server-address=192.168.254.1 address-pool=lan-pool
Настроенные DHCP-серверы можно просмотреть с помощью следующей команды:
[stupin@rb951] > /ip dhcp-server print
Columns: NAME, INTERFACE, ADDRESS-POOL, LEASE-TIME
# NAME INTERFACE ADDRESS-POOL LEASE-TIME
0 lan-dhcp-server lan lan-pool 30m
1 wifi-dhcp-server wifi wifi-pool 30m
Для удаления настроенного DHCP-сервера можно указать его номер из таблицы, выведенной приведённой выше командой, команде такого вида:
[stupin@rb951] > /ip dhcp-server remove numbers=0
Кроме IP-адресов DHCP-сервер может выдавать и другие настройки. Дополнительные настройки выбираются по соответствию выданного IP-адреса определённой сети. Для сопоставления настроек IP-сети можно воспользоваться следующей командой:
[stupin@rb951] > /ip dhcp-server network add address=192.168.254.0/24 domain=lo.stupin.su dns-none=no dns-server=192.168.254.1 gateway=192.168.254.1 ntp-server=192.168.254.1
Для просмотра сетей можно воспользоваться командой следующего вида:
[stupin@rb951] > /ip dhcp-server network print
Columns: ADDRESS, GATEWAY, DNS-SERVER, DOMAIN
# ADDRESS GATEWAY DNS-SERVER DOMAIN
0 192.168.253.0/24 192.168.253.1 192.168.253.1 wi.stupin.su
1 192.168.254.0/24 192.168.254.1 192.168.254.1 lo.stupin.su
Для удаления сетей можно указать номер удаляемой сети из вывода вышеприведённой команды в команде, указанной ниже:
[stupin@rb951] > /ip dhcp-server network remove numbers=0
Постоянные IP-адреса для DHCP-клиентов
Посмотреть выданные в настоящее время в аренду адреса можно с помощью команды:
[stupin@rb951] > /ip dhcp-server lease print
Flags: D - DYNAMIC
Columns: ADDRESS, MAC-ADDRESS, HOST-NAME, SERVER, STATUS, LAST-SEEN
# ADDRESS MAC-ADDRESS HOST-NAME SERVER STATUS LAST-SEEN
0 D 192.168.254.253 E4:8D:8C:D6:C2:12 MikroTik lan bound 10m53s
1 D 192.168.254.254 60:A4:4C:0A:6E:3D asus.wi.stupin.su lan bound 2m28s
Буквами D
помечены динамически выданные IP-адреса. Для того, чтобы переделать динамические записи в статические, нужно указать номера этих записей из вывода предыдущей команды в следующей:
[stupin@rb951] > /ip dhcp-server lease make-static numbers=1
Для ручного создания статической записи можно воспользоваться командой следующего вида:
[stupin@rb951] > /ip dhcp-server lease add server=lan use-src-mac=yes mac-address=00:22:15:5D:5D:30 address=192.168.254.3
Для удаления статической записи из таблицы нужно указать её номер приведённой ниже команде:
[stupin@rb951] > /ip dhcp-server lease remove numbers=1
Настройка DNS-записей
Для просмотра DNS-записей, настроенных на маршрутизаторе локально, можно воспользоваться следующей командой:
[stupin@rb951] > /ip dns static print
Columns: NAME, ADDRESS, TTL
# NAME ADDRESS TTL
0 eeepc.lo.stupin.su 192.168.254.3 1d
1 asus.lo.stupin.su 192.168.254.4 1d
2 dlink.lo.stupin.su 192.168.254.6 1d
3 usr.lo.stupin.su 192.168.254.7 1d
4 ata1.lo.stupin.su 192.168.254.8 1d
5 ata2.lo.stupin.su 192.168.254.9 1d
6 bbk1.lo.stupin.su 192.168.254.12 1d
7 bbk2.lo.stupin.su 192.168.254.20 1d
8 tcl.lo.stupin.su 192.168.254.21 1d
9 snr.lo.stupin.su 192.168.254.24 1d
10 acer.lo.stupin.su 192.168.254.27 1d
11 huawei.lo.stupin.su 192.168.254.28 1d
12 hp.lo.stupin.su 192.168.254.29 1d
13 apc1500.lo.stupin.su 192.168.254.32 1d
Для настройки DNS-записей A-типа можно воспользоваться командами следующего вида:
[stupin@rb951] > /ip dns static add name=acer.lo.stupin.su address=192.168.254.27
Записи других типов настраиваются аналогичным образом с той лишь разницей, что необходимо указать поле типа записи type
и значения остальных полей, соответствующих типу записи.
Для удаления записей можно воспользоваться следующей командой, указав ей номер строк из таблицы, подлежащих удалению:
[stupin@rb951] > /ip dns static remove numbers=13
Настройка фильтрации пакетов
Прежде чем перейти к описанию собственно настройки фильтрации пакетов, сначала опишу две полезные функции, которые могут пригодиться при настройке фильтрации пакетов.
Первая функция - это именованные списки адресов и сетей. Например, следующим образом можно создать список ata
из двух IP-адресов:
[stupin@rb951] /ip firewall address-list list=ata add address=192.168.254.8
[stupin@rb951] /ip firewall address-list list=ata add address=192.168.254.9
Для просмотра настроенных списков IP-адресов и сетей можно воспользоваться следующей командой:
[stupin@rb951] > /ip firewall address-list print
Columns: LIST, ADDRESS, CREATION-TIME
# LIST ADDRESS CREATION-TIME
0 ata 192.168.254.8 2024-06-27 22:45:30
1 ata 192.168.254.9 2024-06-27 22:45:30
2 apc 192.168.254.32 2024-06-27 22:45:30
3 tv 192.168.254.12 2024-06-27 22:45:30
4 tv 192.168.254.20 2024-06-27 22:45:30
5 tv 192.168.254.21 2024-06-27 22:45:30
Для просмотра только какого-то одного определённого списка можно воспользоваться командой следующего вида:
[stupin@rb951] > /ip firewall address-list print where list=ata
Columns: LIST, ADDRESS, CREATION-TIME
# LIST ADDRESS CREATION-TIME
0 ata 192.168.254.8 2024-06-27 22:45:30
1 ata 192.168.254.9 2024-06-27 22:45:30
Для удаления адреса из списка нужно указать номер строки, выведенный одной из двух приведённых выше команд, в показанной ниже команде:
[stupin@rb951] > /ip firewall address-list remove numbers=3,4,5
Вторая подобная функция - это именованные списки интерфейсов. Для создания нового списка интерфейсов предназначена команда следующего вида:
[stupin@rb951] > /interface list add name=local-interfaces
Для просмотра списков интерфейсов предусмотрена такая команда:
[stupin@rb951] > /interface list print
Flags: * - BUILTIN
Columns: NAME
# NAME
;;; contains all interfaces
0 * all
;;; contains no interfaces
1 * none
;;; contains dynamic interfaces
2 * dynamic
;;; contains static interfaces
3 * static
4 local-interfaces
Встроенные списки интерфейсов помечены звёздочкой:
all
- все интерфейсы,none
- пустой список,dynamic
- только динамические (например, создаваемые после установки подключений по протоколам PPPoE, PPtP и т.п.),static
- только статические (постоянные, не пропадающие при разрыве подключений).
Последним в списке фигурирует добавленный нами интерфейс local-interfaces
. Для удаления списков, созданных вручную (не встроенных), можно воспользоваться приведённой ниже командой, указав ей номер строки из предыдущей команды:
[stupin@rb951] > /interface list remove numbers=4
Для добавления интерфейсов в список предусмотрена подкоманда:
[stupin@rb951] > /interface list member add list=local-interfaces interface=lan
[stupin@rb951] > /interface list member add list=local-interfaces interface=wifi
Посмотреть пары "список интерфейсов - интерфейс" можно с помощью такой команды:
[stupin@rb951] > /interface list member print
Columns: LIST, INTERFACE
# LIST INTERFACE
0 local-interfaces lan
1 local-interfaces wifi
Для удаления интерфейсов из списков предусмотрена приведённая ниже команда, которой нужно указать номер строки из вывода указанной выше команды:
[stupin@rb951] > /interface list member remove numbers=1
Фильтрация трафика в RouterOS основана на подсистеме netfilter
из ядра Linux. Понимание устройства netfilter
очень полезно для понимания того, как устроена фильтрация трафика в RouterOS.
Как и в Linux, имеется три таблицы: для проставления отметок пакетов - mangle
, для преобразования портов и адресов - nat
и собственно для фильтрации трафика - filter
. В таблице filter
осуществляется фильтрация преобразованного трафика. В таблицах nat
и filter
в качестве условия действий над пакетом могут использоваться метки, назначенные пакету в таблице mangle
.
В таблицах mangle
есть цепочки правил PREROUTING
, INPUT
, OUTPUT
, FORWARD
, POSTROUTING
. В таблицах nat
есть цепочки правил PREROUTING
, INPUT
, OUTPUT
, POSTROUTING
. В таблице filter
есть цепочки INPUT
, OUTPUT
и FORWARD
. Трафик каждой цепочки сначала проходит через таблицу mangle
, где пакету может быть назначена метка. Затем трафик проходит через таблицу nat
, в которой может быть изменён адрес и/или порт отправителя или адрес и/или порт получателя.
Поступивший извне пакет сначала поступает в цепочку PREROUTING
, после чего транзитные пакеты уходят в цепочку FORWARD
, а предназначенные самому маршрутизатору поступают в цепочку INPUT
. Пакеты из маршрутизатора поступают в цепочку OUTPUT
, после чего они наравне с пакетами из цепочки FORWARD
проходят через цепочку POSTROUTING
и отправляются вовне.
В виде схемы это можно отобразить следующим образом:
-> [ mangle PREROUTING ] -> [nat PREROUTING] -.--------------------------------------> [mangle FORWARD] -----------------------------------------.-> [mangle POSTROUTING] -> [nat POSTROUTING] ->
`-> [mangle INPUT] -> [nat INPUT] -> [локальные приложения] -> [mangle OUTPUT] -> [nat OUTPUT] ->-'
Однако, фильтрация трафика в RouterOS и Linux не идентична - у RouterOS имеется ряд дополнительных функций. Одна из них, списки интерфейсов, уже была описана выше. Другая дополнительная функция - поддержка фильтрации трафика на аппаратном уровне. Первым правилом в каждой цепочке следует добавлять правило, задействующее фильтрацию трафика на аппаратном уровне. Следующее правило сообщает оборудованию об установленных TCP-подключениях и UDP-трафике и относящимся к ним подключениям (как отдельное подключение для передачи данных в протоколе FTP, относящееся к управляющему подключению):
[stupin@rb951] > /ip firewall filter add chain=forward action=fasttrack-connection connection-state=established,related
Следующим правилом должно следовать аналогичное правило, пропускающее трафик, относящийся к установленым подключениям, для которого отсутствует поддержка фильтрации на аппаратном уровне:
[stupin@rb951] > /ip firewall filter add chain=forward action=accept connection-state=established,related,untracked
Состояние untracked
не имеет аналогов в netfilter
из Linux. Под неотслеживаемыми пакетами подразумеваются те, что исключаются системой из обработки фильтром для снижения нагрузки на процессор маршрутизатора.
Далее отбрасывается трафик, не связанный с какими-либо новыми, установленными или относящимся к ним подключениям:
[stupin@rb951] > /ip firewall filter add chain=forward action=drop connection-state=invalid
После этого правила мы будем иметь дело только со вновь устанавливаемыми подключениями.
Далее можно добавлять в цепочки сосбтвенные правила. По умолчанию любая цепочка пропускает пакеты. Можно прибегнуть к одному из двух способов настройки фильтрации пакетов: - запретить нежелательный трафик, а весь остальной трафик пропускать, либо - разрешить только допустимый трафик, а весь остальной трафик запретить.
Во втором случае последним правилом в цепочке должно быть правило, запрещающее весь остальной трафик:
[stupin@rb951] > /ip firewall filter add chain=forward action=drop
Можно разрешить трафик только на основании IP-адресов отправителя и получателя, а также интерфейсов, не обращая внимания на протокол и номера портов:
[stupin@rb951] > /ip firewall filer add chain=forward action=accept src-address=192.168.253.0/24 dst-address=192.168.254.0/24 in-interface=wifi
[stupin@rb951] > /ip firewall filer add chain=forward action=accept src-address=192.168.254.0/24 dst-address=192.168.253.0/24 in-interface=lan
Вот так можно фильтрвать трафик в зависимости от протокола, номера порта с использованием именованны списков IP-адресов:
[stupin@rb951] > /ip firewall filer add chain=forward action=accept protocol=tcp src-address-list=laptop_lo in-interface=lan dst-port=21,22,25,53,80,110,143,443,587,993,995,5222,522>
[stupin@rb951] > /ip firewall filer add chain=forward action=accept protocol=udp src-address-list=laptop_lo in-interface=lan dst-port=53,123
Для просмотра списка правил можно воспользоваться следующей командой:
[stupin@rb951] > /ip firewall filter print
Flags: X - disabled, I - invalid; D - dynamic
0 D ;;; special dummy rule to show fasttrack counters
chain=forward action=passthrough
1 chain=forward action=fasttrack-connection hw-offload=yes connection-state=established,related
2 chain=forward action=accept connection-state=established,related,untracked
3 chain=forward action=drop connection-state=invalid
4 chain=forward action=accept src-address=192.168.253.0/24 dst-address=192.168.254.0/24 in-interface=wifi
5 chain=forward action=accept src-address=192.168.254.0/24 dst-address=192.168.253.0/24 in-interface=lan
6 chain=forward action=accept protocol=tcp src-address-list=laptop_wi in-interface=wifi
dst-port=21,22,25,53,80,110,143,443,587,993,995,5222,5223
7 chain=forward action=accept protocol=udp src-address-list=laptop_wi in-interface=wifi dst-port=53,123
8 chain=forward action=accept protocol=tcp src-address-list=laptop_lo in-interface=lan dst-port=21,22,25,53,80,110,143,443,587,993,995,5222,522>
9 chain=forward action=accept protocol=udp src-address-list=laptop_lo in-interface=lan dst-port=53,123
10 chain=forward action=accept protocol=tcp src-address-list=phone in-interface=wifi dst-port=21,22,25,53,80,110,143,443,587,993,995,5222,5223
11 chain=forward action=accept protocol=udp src-address-list=phone in-interface=wifi dst-port=53,123
12 chain=forward action=accept protocol=tcp src-address-list=tv in-interface=lan dst-port=80,443
13 chain=forward action=accept protocol=udp src-address-list=tv in-interface=lan dst-port=123
14 chain=forward action=accept protocol=tcp src-address-list=laptop_lo dst-address-list=minecraft in-interface=lan dst-port=34658
15 chain=forward action=accept protocol=tcp src-address-list=laptop_wi dst-address-list=minecraft in-interface=wifi dst-port=34658
16 chain=forward action=accept protocol=tcp src-address-list=phone dst-address-list=minecraft in-interface=wifi dst-port=34658
17 chain=forward action=drop
К сожалению, нельзя вставить новое правило куда-нибудь в середину таблицы - новое правило всегда попадает в её конец. Но можно изменить порядок правил. Для этого можно воспользоваться командой следующего вида:
[stupin@rb951] > /ip firewall filter move 17 destination=14
Правило под номером 17 будет переставлено в строку, где сейчас находится правило 14, а самое нынешнее правило 14 и следующие за ним будут сдвинуты на одну строку ниже.
Настройка NAT
Рассмотрим настройку только одной разновидности NAT - маскарадинга, подходящего для интерфейсов с IP-адресами, назначаемыми динамически. Для настройки трансляций можно воспользоваться командой следующего вида:
[stupin@rb951] > /ip firewall nat add chain=srcnat action=masquerade out-interface=domru-pppoe
Посмотреть настроенные NAT можно с помощью такой команды:
[stupin@rb951] > /ip firewall nat print
Flags: X - disabled, I - invalid; D - dynamic
0 I ;;; pppoe-domru not ready
chain=srcnat action=masquerade out-interface=domru-pppoe
1 chain=srcnat action=masquerade out-interface=ufanet
Удалить настроенный NAT можно, указав номер строки из предыдущей таблицы, в такой команде:
[stupin@rb951] > /ip firewall nat remove numbers=0
Настройка проброса портов
Для того, чтобы сервис, работающий в локальной сети за NAT, был доступен из внешней сети, можно добавить правило трансляции трафика. Например, чтобы запросы, поступающие на UDP-порт 16124 на интерфейс domru-pppoe
перенаправлялись на UDP-порт 161 узла 192.168.254.24 в локальной сети, можно добавить такое правило:
[stupin@rb951] > /ip firewall nat add chain=dstnat action=dst-nat in-interface=domru-pppoe protocol=udp dst-port=16124 to-addresses=192.168.254.24 to-ports=161
Чтобы трансляция осуществлялась только для определённого адреса в сети Интернет, например, 62.177.131.282, можно дополнить правило дополнительным критерием:
[stupin@rb951] > /ip firewall nat add chain=dstnat action=dst-nat in-interface=domru-pppoe src-address=62.177.131.282 protocol=udp dst-port=16124 to-addresses=192.168.254.24 to-ports=161
Если в системе настроена фильтрация пакетов, то нужно разрешить оттранслированный трафик. Например, для указанных выше двух правил трансляции портов, правила фильтрации можно добавить следующим образом соответственно:
[stupin@rb951] > /ip firewall filter add chain=forward action=accept in-interface=domru-pppoe out-interface=lan protocol=udp dst-address=192.168.254.24 dst-port=161
[stupin@rb951] > /ip firewall filter add chain=forward action=accept in-interface=domru-pppoe out-interface=lan src-address=62.177.131.282 protocol=udp dst-address=192.168.254.24 dst-port=161
Для того, чтобы не создавать вручную правила для каждого настроенного проброса порта, можно воспользоваться более универсальным решением и разрешить трафик для всех подключений, для которых имеется запись в таблице трансляций dstnat
:
[stupin@rb951] > /ip firewall filter add chain=forward action=accept in-interface=domru-pppoe connection-nat-state=dstnat connection-state=established,related
Настройка NAT-PMP
NAT-PMP или NAT Port Mapping Protocol - это протокол, который позволяет устанавливать связь между приложениями, каждое из которых работает в своей локальной сети, имеющей доступ в Интернет только через маршрутизатор, осуществляющий трансляцию адресов. Протокол позволяет приложению узнать у маршрутизатора внешний IP-адрес маршрутизатора и попросить его выполнить трансляцию порта с внешнего IP-адреса на компьютер в локальной сети, на котором работает это приложение. Соответствующий сервис запущен на маршрутизаторе и принимает запросы от приложений на UDP-порту 5351. Клиенты обращаются к сервису с UDP-порта 5350.
Этот протокол проще, чем UPnP IGD Protocol, поддерживающий аналогичные функции, и в отличие от него стандартизирован как RFC 6886. Протокол поддерживается многими Torrent-клиентами.
Включим NAT-PMP:
[stupin@rb951] > /ip nat-pmp set enabled=yes
Посмотрим состояние сервиса NAT-PMP и убедимся, что он включен:
[stupin@rb951] > /ip nat-pmp print
enabled: yes
Настроим внутренний интерфейс:
[stupin@rb951] > /ip nat-pmp interfaces add interface=lan type=internal
Настроим внешний интерфейс:
[stupin@rb951] > /ip nat-pmp interfaces add interface=domru-pppoe type=external
Если попробовать добавить ещё один внешний интерфейс, команда завершится ошибкой:
[stupin@rb951] > /ip/nat-pmp/interfaces/add interface=ufanet type=external
failure: only one external interface can be added to the list
Посмотреть список интерфейсов можно следующим образом:
[stupin@rb951] > /ip nat-pmp interfaces print
Columns: INTERFACE, TYPE
# INTERFACE TYPE
0 domru-pppoe external
1 lan internal
2 wifi internal
Настройка UPnP
UPnP IGD Protocol или Universal Plug and Play Internet Gateway Device Control Protocol - это протокол, который позволяет устанавливать связь между приложениями, каждое из которых работает в своей локальной сети, имеющей доступ в Интернет только через маршрутизатор, осуществляющий трансляцию адресов. Протокол позволяет приложению узнать у маршрутизатора внешний IP-адрес маршрутизатора и попросить его выполнить трансляцию порта с внешнего IP-адреса на компьютер в локальной сети, на котором работает это приложение. Соответствующий сервис запущен на маршрутизаторе и принимает запросы от приложений на UDP-порту 1900.
Например, этот протокол поддерживается многими приложениями, в числе которых игры, использующие DirectX, и Windows Messenger, который может использовать этот протокол для обмена файлами, совершения голосовых и видеозвонков.
Включим UPnP:
[stupin@rb951] > /ip upnp set enabled=yes
Посмотрим состояние сервиса UPnP и убедимся, что он включен:
[stupin@rb951] > /ip upnp print
enabled: yes
allow-disable-external-interface: no
show-dummy-rule: yes
Настроим внутренние интерфейсы:
[stupin@rb951] > /ip upnp interfaces add interface=lan type=internal
[stupin@rb951] > /ip upnp interfaces add interface=wifi type=internal
Настроим внешний интерфейс:
[stupin@rb951] > /ip upnp interfaces add interface=domru-pppoe type=external
Маршрутизатор позволяет указать и другие внешние интерфейсы, однако делать этого я не стал, т.к. активным должен быть только один из них.
Посмотреть список интерфейсов можно следующим образом:
[stupin@rb951] > /ip upnp interfaces print
Columns: INTERFACE, TYPE
# INTERFACE TYPE
0 lan internal
1 domru-pppoe external
2 wifi internal
Настройка SSH, отключение других сервисов
Для просмотра включенных в настоящее время сервисов можно воспользоваться такой командой:
[stupin@rb951] > /ip service print
Flags: X - DISABLED, I - INVALID
Columns: NAME, PORT, CERTIFICATE, VRF
# NAME PORT CERTIFICATE VRF
0 X telnet 23 main
1 X ftp 21
2 X www 80 main
3 ssh 22 main
4 X www-ssl 443 none main
5 X api 8728 main
6 X winbox 8291 main
7 X api-ssl 8729 none main
Отключенные сервисы обозначены буквой X.
Отключим все сервисы, кроме SSH:
[stupin@rb951] > /ip service disable api,api-ssl,ftp,telnet,winbox,www,www-ssl
Так же в системе имеются и другие сервисы, которые в конфигурации по умолчанию уже выключены. Это сервисы кэширующего прокси-сервера, SOCKS-прокси сервера, сервера UPnP и сервиса DynDNS. Посмотрим их состояние:
[stupin@rb951] > /ip proxy print
enabled: no
src-address: ::
port: 8080
anonymous: no
parent-proxy: ::
parent-proxy-port: 0
cache-administrator: webmaster
max-cache-size: unlimited
max-cache-object-size: 2048KiB
cache-on-disk: no
max-client-connections: 600
max-server-connections: 600
max-fresh-time: 3d
serialize-connections: no
always-from-cache: no
cache-hit-dscp: 4
cache-path: web-proxy
[stupin@rb951] > /ip socks print
enabled: no
port: 1080
connection-idle-timeout: 2m
max-connections: 200
version: 4
auth-method: none
[stupin@rb951] > /ip upnp print
enabled: no
allow-disable-external-interface: no
show-dummy-rule: yes
[stupin@rb951] > /ip cloud print
ddns-enabled: no
ddns-update-interval: none
update-time: yes
Для их отключения, если они включены, можно воспользоваться следующими командами:
[stupin@rb951] > /ip proxy set enabled=no
[stupin@rb951] > /ip socks set enabled=no
[stupin@rb951] > /ip upnp set enabled=no
[stupin@rb951] > /ip cloud set ddns-enabled=no update-time=no
Настройка часов
Для просмотра текущего времени маршрутизатора предусмотрена команда:
[stupin@rb951] > /system clock print
time: 01:08:26
date: 1970-01-05
time-zone-autodetect: yes
time-zone-name: manual
gmt-offset: +00:00
dst-active: no
Для настройки часов можно использовать следующую команду:
[stupin@rb951] > /system clock set time-zone-name=Asia/Yekaterinburg date="jun/04/2024" time="23:02:30"
В поле месяца используется сокращённое название месяца: jan
, feb
, mar
, apr
, may
, jun
, jul
, aug
, sep
, oct
, nov
, dec
.
Похоже, что порядок указания значений важен. Лучше указывать поле часового пояса первым, т.к. при установке даты и времени используется текущий часовой пояс, настроенный в системе, а после изменения текущие дата и время пересчитываются для соответствия новому часовому поясу. Это может привести к неожиданным последствиям.
Вместо преднастроенного часового пояса можно использовать значение manual
, которое используется при ручной настройке часового пояса.
Для ручной настройки часового пояса предусмотрена команда:
[stupin@rb951] > /system clock manual set time-zone="+05:00" dst-delta="+01:00" dst-start="2024-03-31 03:00:00" dst-end="2024-10-27 03:00:00"
Поле time-zone
соответствует смещению зимнего времени, поле dst-delta
- смещению летнего времени относительно зимнего, а dst-start
и dst-end
соответствует периоду действия летнего времени.
Для просмотра текущего часового пояса, настроенного в ручном режиме, можно воспользоваться командой следующего вида:
[stupin@rb951] > /system clock manual print
time-zone: +05:00
dst-delta: +01:00
dst-start: 2024-03-31 03:00:00
dst-end: 2024-10-27 03:00:00
Настройка SNMP
По сравнению с развесистыми функциями настройки SNMP на устройствах других производителей, настройки SNMP-агента довольно скудны: можно настроить общие свойства SNMP-агента и определить несколько сообществ. Сообщества больше похожи на гибрид групп SNMPv1/SNMPv2c, пользователей SNMPv3 и списка контроля доступа из одного элемента. Представления SNMP тут отсутствуют полностью.
Включение SNMP
Для включения агента предусмотрена команда:
[stupin@rb951] > /snmp set enabled=yes
Настройка сообществ SNMP
Для настройки сообществ SNMPv1/SNMPv2c предусмотрены команды следующего вида:
[stupin@rb951] > /snmp community add name=5ecretC0mmunity security=none addresses=62.177.131.282 read-access=yes write-access=no
Для отключения сообщества по умолчанию public
выполним такую команду:
[stupin@rb951] > /snmp community set 0 disabled=yes
Настройка пользователей SNMPv3
Для настройки пользователей SNMPv3 предусмотрены команды следующего вида:
[stupin@rb951] > /snmp community add name=mon security=private authentication-protocol=SHA1 authentication-password=Authentic4ti0n5ecret encryption-protocol=AES encryption-password=Encrypti0n$ecret addresses=62.177.131.282 read-access=yes write-access=no
Рассмотрим подробнее назначение параметров команды: * name - название сообщества, используется в SNMPv1/SNMPv2c для проверки прав доступа, одновременно имя пользователя SNMPv3, * security - уровень безопасности SNMPv3: * none - проверяется только имя пользователя, этот же уровень безопасности используется для проверки прав доступа по имени сообщества в SNMPv1/SNMPv2c, * authorized - проверяется также пароль для аутентификации пользователя, * private - дополнительно осуществляется шифрование трафика паролем для шифрования, * authentication-protocol - протокол аутентификации пользователя SNMPv3, поддерживается два значения: MD5 и SHA1, * authentication-password - пароль для аутентификации пользователя SNMPv3, * encryption-protocol - протокол шифрования трафика SNMPv3, поддерживается два значения: DES и AES, * encryption-password - пароль для шифрования трафика SNMPv3, * read-access - разрешение чтения значений, принимает значения yes и no, * write-access - разрешение записи значений, принимает значения yes и no, * address - сеть или IP-адрес узлов, запросы от которых будут обрабатываться агентом.
В строках сообществ и паролях нельзя использовать сивол $
, т.к. он воспринимается как признак начала имени переменной. Имя переменной, образованное занком $
и последующими символами будет заменено на значение переменной. Если для переменной не определено значение, то имя переменной по-сути будет просто вырезано из строки.
Просмотр настроек
Посмотреть настройки можно следующим образом:
[stupin@rb951] > /snmp community print
Flags: * - DEFAULT; X - DISABLED
Columns: NAME, ADDRESSES, SECURITY, READ-ACCESS, WRITE-ACCESS
# NAME ADDRESSES SECURITY READ-ACCESS WRITE-ACCESS
0 *X public ::/0 none yes no
1 mon 62.177.131.282/32 private yes no
2 5ecretC0mmunity 62.177.131.282/32 none yes no
Для вывода настроек в подробном режиме можно воспользоваться такой командой:
[stupin@rb951] > /snmp community print detail
Flags: * - default; X - disabled
0 *X name="public" addresses=::/0 security=none read-access=yes
write-access=no authentication-protocol=MD5 encryption-protocol=DES
authentication-password="" encryption-password=""
1 name="mon" addresses=62.177.131.282/32 security=private read-access=yes
write-access=no authentication-protocol=SHA1 encryption-protocol=AES
authentication-password="Authentic4ti0n5ecret"
encryption-password="Encrypti0n5ecret"
2 name="5ecretC0mmunity" addresses=62.177.131.282/32 security=none
read-access=yes write-access=no authentication-protocol=MD5
encryption-protocol=DES authentication-password=""
encryption-password=""
Проверка настроек
Для проверки настроек SNMPv1/SNMPv2c с компьютера под управлением Linux можно воспользоваться утилитой snmpget
. В операционной системе Debian эта утилита поставляется в составе пакета snmp
:
$ snmpget -On -v 1 -c 5ecretC0mmunity rb951.domain.tld .sysName.0
.1.3.6.1.2.1.1.5.0 = STRING: rb951
$ snmpget -On -v 2c -c 5ecretC0mmunity rb951.domain.tld .sysName.0
.1.3.6.1.2.1.1.5.0 = STRING: rb951
Также настройки сообществ SNMPv1/SNMPv2c можно использовать и для опроса маршрутизатора по протоколу SNMPv3:
$ snmpget -On -v 3 -l noAuthNoPriv -u 5ecretC0mmunity rb951.domain.tld .sysName.0
.1.3.6.1.2.1.1.5.0 = STRING: rb951
Проверить настройки полноценного варианта SNMPv3 с аутентификацией и шифрованием можно следующим образом:
$ snmpget -On -v 3 -l authPriv -u mon -a SHA -A Authentic4ti0n5ecret -x AES -X Encrypti0n$ecret rb951.domain.tld .sysName.0
.1.3.6.1.2.1.1.5.0 = STRING: rb951
Инструменты
В этом разделе описаны "инструментальные" команды, не предназначенные для настройки маршрутизатора или просмотра его настроек. Это общеизвестные и привычные в системах типа Unix команды tcpdump
, arp
, ping
, traceroute
, ssh
.
Прослушивание трафика
При отладке фильтрации трафика бывает нужно узнать, какие подключения пытается установить определённое приложение. Для этого можно воспользоваться функцией прослушивания трафика. Для начала прослушивания трафика предназначена команда следующего вида:
[stupin@rb951] > /tool sniffer start src-ip-address=192.168.253.16 interface=wifi ip-protocol=tcp dst-port=9080,9081
После запуска прослушивания можно посмотреть результаты. Для этого можно воспользоваться одной из двух команд. Первая команда показывает обнаруженные пакеты:
[stupin@rb951] > /tool sniffer packet print
Columns: TIME, INTERFACE, SRC-ADDRESS, DST-ADDRESS, IP-PROTOCOL, SIZE, CPU
# TIME INTERFACE SRC-ADDRESS DST-ADDRESS IP-PROTOCOL SIZE CPU
0 19.258 wifi 192.168.253.16:47708 98.111.65.205:9080 tcp 74 0
1 20.27 wifi 192.168.253.16:47708 98.111.65.205:9080 tcp 74 0
2 22.296 wifi 192.168.253.16:47708 98.111.65.205:9080 tcp 74 0
3 26.357 wifi 192.168.253.16:47708 98.111.65.205:9080 tcp 74 0
4 34.59 wifi 192.168.253.16:47708 98.111.65.205:9080 tcp 74 0
5 39.302 wifi 192.168.253.16:39604 98.111.65.201:9080 tcp 74 0
6 40.349 wifi 192.168.253.16:39604 98.111.65.201:9080 tcp 74 0
7 42.335 wifi 192.168.253.16:39604 98.111.65.201:9080 tcp 74 0
8 46.555 wifi 192.168.253.16:39604 98.111.65.201:9080 tcp 74 0
Вторая команда отображает обнаруженные подключения или попытки подключний:
[stupin@rb951] > /tool sniffer connection print
Flags: A - ACTIVE
Columns: SRC-ADDRESS, DST-ADDRESS, BYTES, RESENDS, MSS
# SRC-ADDRESS DST-ADDRESS BYTES RESENDS MSS
0 A 192.168.253.16:47708 98.111.65.205:9080 0/0 0/0 1460/0
1 A 192.168.253.16:39604 98.111.65.201:9080 859/0 0/0 1460/0
2 A 192.168.253.16:48232 98.111.65.179:9081 49/0 0/0 1460/0
Для прекращения прослушивания трафика предусмотрена такая команда:
[stupin@rb951] > /tool sniffer stop
Просмотр ARP-таблицы
Посмотреть содержимое таблицы ARP можно с помощью следующей команды:
[stupin@rb951] > /ip arp print
Flags: D - DYNAMIC; C - COMPLETE
Columns: ADDRESS, MAC-ADDRESS, INTERFACE, STATUS
# ADDRESS MAC-ADDRESS INTERFACE STATUS
0 DC 192.168.254.4 60:A4:4C:0A:6E:3D lan reachable
1 D 192.168.253.2 wifi failed
2 D 192.168.254.2 lan failed
3 DC 192.168.90.1 E4:8D:8C:D6:C2:13 ufanet reachable
4 D 192.168.253.4 6C:71:D9:59:58:28 wifi failed
5 DC 192.168.253.16 34:1C:F0:E9:7F:6E wifi reachable
Проверка доступности узла
Для проверки доступности узла по протоколу ICMP предусмотрена общеизвестная команда ping
, которая есть разделе tool
, но доступна так же и из "корня" дерева команд:
[stupin@rb951] > /ping 98.111.65.201
SEQ HOST SIZE TTL TIME STATUS
0 98.111.65.201 56 55 41ms669us
1 98.111.65.201 56 55 41ms302us
2 98.111.65.201 56 55 41ms412us
3 98.111.65.201 56 55 41ms199us
sent=4 received=4 packet-loss=0% min-rtt=41ms199us avg-rtt=41ms395us max-rtt=41ms669us
Трассировка маршрута
Для трассировки маршрута до указанного узла (получения списка промежуточных маршрутизаторов, проверки их достижимости через общедоступную сеть, оценку потерь и задержек пакетов) можно воспользоваться общеизвестной командой traceroute
, которая, как и команда ping
, тоже упрятана в разделе tool
:
[stupin@rb951] > /tool/traceroute ya.ru
Columns: ADDRESS, LOSS, SENT, LAST, AVG, BEST, WORST, STD-DEV
# ADDRESS LOSS SENT LAST AVG BEST WORST STD-DEV
1 192.168.90.1 0% 14 0.4ms 0.5 0.4 1.1 0.2
2 192.168.31.1 0% 14 0.9ms 0.9 0.8 1.6 0.2
3 31.8.20.1 0% 14 3.3ms 4.4 2.4 17.4 3.7
4 185.140.151.156 0% 14 2.5ms 2.3 1.8 3.5 0.5
5 185.140.148.157 0% 14 20.7ms 20.7 20.5 21.2 0.2
6 188.254.94.106 0% 14 24.9ms 22.8 20.7 32.6 3.1
7 100% 14 timeout
8 100% 14 timeout
9 87.250.239.81 0% 14 28.2ms 31.7 27.4 42.7 5.4
10 100% 14 timeout
11 77.88.55.242 0% 13 27.3ms 27.3 27.2 27.5 0.1
-- [Q quit|D dump|C-z pause]
Найти подобный инструмент для трассировки по протоколу TCP мне не удалось, хотя он бывает очень полезен для определения, какой из маршрутизаторов фильтрует трафик.
SSH-клиент
Для подключения по SSH к удалённым серверам можно воспользоваться командой ssh
, которая находится в разделе system
:
[stupin@rb951] > /system/ssh user=admin address=server.domain.tld
password:
Linux server 5.10.0-21-amd64 #1 SMP Debian 5.10.162-1stupin2 (2023-04-27) x86_64
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Thu Jul 18 22:52:47 2024 from 62.133.171.228
admin@server:~$
Дополнительные материалы
- MikroTik RB951Ui-2HnD - страница на официальном сайте производителя
- Расшифровка маркировки оборудования Mikrotik
- Как расшифровать маркировку MikroTik
- Командная строка в Mikrotik
- Вывод только нужного значения в консоли Mikrotik (использование put, get, find)
- Чат в консоли Mikrotik
- RouterOS / Getting started / First Time Configuration
- Ошибки MikroTik: на что обратить внимание?
- Mikrotik - bridge или Master-slave? И почему
- FAQ по PoE (Power over Ethernet) в роутерах Mikrotik
- Система удаленного управления электропитанием 220 вольт на базе Mikrotik RB750UP - обратите внимание, что автор неправильно выбрал реле, использовать автомобильное реле для управления напряжением 220 Вольт нельзя
- Настройка фильтрации трафика на MikroTik. Часть 1
- Настройка фильтрации трафика на MikroTik. Часть 2
- Настройка фильтрации трафика на MikroTik. Часть 3
- Настройка фильтрации трафика на MikroTik. Часть 4
- Настройка NAT: Часть 1
- Настройка NAT: Часть 2
- Настройка NAT: Часть 3
- Настройка NAT: Часть 4
- Настройка NAT: Hairpin
- Настройка файлового сервера (с помощью SMB) на Mikrotik
- Bridge Vlan vs. Switch Vlan
- Difference between VLANs on bridge and VLANs on switch?