Методичка: MikroTik

Материал из Записи-напоминании
Версия от 21:17, 24 февраля 2025; Admin (обсуждение | вклад)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигации Перейти к поиску

Общее

Имена объектов конфигурации состоят из двух частей - префикса и постфикса.


Наименование префикса отражает тип объекта/функциональности/логики

Префикс имеет нумерацию, даже если объект в своей функциональности единственный

/interface ethernet -> eth[int]

/interface wireless -> wl[int]

/interface bridge -> br[int]

/interface pppoe-client -> pppoe[int]

/ip dhcp-server -> dhcp[int]

/ip dhcp-server option -> dhcp-opt[int]

/ip pool -> pool[int]

/ip firewall address-list -> list[int]

/interface list -> intlist[int]


Наименование постфикса отражает область применения объекта (локальная сеть)

Постфикс имеет нумерацию, даже если объект в своей функциональности единственный

_wan[int] - провайдер

_localnet[int] - локальная сеть

_disable - отключенный физический объект

Также постфикс может содержать диапазон областей применения объекта (несколько локальных сетей, оперируемых одним объектом)

_localnet[int-int]


Внешние ресурсы

DHCP Option 119 encoder

Примеры

Пример 1

/interface ethernet

  • eth0_wlan0
  • eth1_localnet0
  • eth2_localnet1
  • eth3_disable
  • eth4_disable

/interface wireless

  • wl0_localnet0
  • wl1_localnet0

/interface bridge

  • br0_localnet0 = eth1_localnet0, wl0_localnet0, wl1_localnet0

/interface list

  • intlist0_localnet0-1 = br0_localnet0, eth2_localnet1

/ip address

  • br0_localnet0 содержит две подсети: 1) основная рабочая подсеть; 2) подсеть для неизвестных и мобильнных уст-в
  • eth2_localnet1 подсеть /30, не имеет DHCP

/ip pool

  • pool0_localnet0 для неизвестных и мобильнных уст-в

/ip dhcp-server

  • dhcp0_localnet0 = pool:pool0_localnet0, interface:br0_localnet0

/ip dhcp-server option

  • dhcp-opt0 = code:119

/ip firewall filter

  • chain=input connection-state=established,related action=accept
  • chain=input in-interface-list=intlist0_localnet0-1 action=accept
  • chain=input action=drop
  • chain=forward connection-state=established,related action=accept
  • chain=forward out-interface=eth0_wan action=accept
  • chain=forward out-interface-list=intlist0_localnet0-1 action=jump jump-target=forward_localnet0-1
  • chain=forward action=reject reject-with=icmp-admin-prohibited
  • chain=forward_localnet0-1 out-interface=br0_localnet0 action=jump jump-target=forward_localnet0
  • chain=forward_localnet0-1 out-interface=eth2_localnet1 action=accept
  • chain=forward_localnet0 in-interface=eth0_wan dst-address=$SERVER_ADDRESS protocol=tcp dst-port=22 connection-state=new action=accept
  • chain=forward_localnet0 in-interface=eth0_wan dst-address=$SERVER_ADDRESS protocol=udp dst-port=1194 action=accept

Пример 2

/interface ethernet

  • eth0_wan0
  • eth1_localnet0
  • eth2_localnet0
  • eth3_localnet0
  • eth4_localnet0

/interface wireless

  • wl0_localnet1
  • wl1_localnet1

/interface bridge

  • br0_localnet0 = eth1_localnet0, eth2_localnet0, eth3_localnet0, eth4_localnet0
  • br1_localnet1 = wl0_localnet1, wl1_localnet1

/interface list

  • intlist0_localnet0-1 = br0_localnet0, br1_localnet1

/interface pppoe-client

  • pppoe0_wan0

/ip address

  • br0_localnet0 основная рабочая сеть
  • br1_localnet1 сеть для неизвестных и мобильнных уст-в

/ip pool

  • pool0_localnet0
  • pool1_localnet1

/ip dhcp-server

  • dhcp0_localnet0 = pool:pool0_localnet0, interface:br0_localnet0
  • dhcp1_localnet1 = pool:pool1_localnet1, interface:br1_localnet1

/ip firewall filter

  • chain=input connection-state=established,related action=accept
  • chain=input in-interface-list=intlist0_localnet0-1 action=accept
  • chain=input action=drop
  • chain=forward connection-state=established,related action=accept
  • chain=forward out-interface=pppoe0_wan action=accept
  • chain=forward out-interface=br0_localnet0 action=jump jump-target=forward_localnet0
  • chain=forward action=reject reject-with=icmp-admin-prohibited
  • chain=forward_localnet0 in-interface=pppoe0_wan dst-address=$SERVER_ADDRESS protocol=tcp dst-port=22 connection-state=new action=accept
  • chain=forward_localnet0 dst-address=$SERVER_ADDRESS protocol=tcp dst-port=8060,8070 connection-state=new action=accept

Общее

Проброс портов

/ip firewall nat

  • chain=srcnat out-interface=eth0_wan action=src-nat to-addresses=$WAN_ADDRESS
  • chain=dstnat dst-address=$WAN_ADDRESS protocol=tcp dst-port=$TCP_PORTS action=jump jump-target=dstnat_localnet0-1_tcp
  • chain=dstnat dst-address=$WAN_ADDRESS protocol=udp dst-port=$UDP_PORTS action=jump jump-target=dstnat_localnet0-1_udp
  • chain=dstnat_localnet0-1_tcp protocol=tcp dst-port=$TCP_PORTS_LOCALNET0 action=jump jump-target=dstnat_localnet0_tcp
  • chain=dstnat_localnet0-1_tcp protocol=tcp dst-port=$TCP_PORTS_LOCALNET1 action=jump jump-target=dstnat_localnet1_tcp
  • chain=dstnat_localnet0-1_udp protocol=tcp dst-port=$UDP_PORTS_LOCALNET0 action=jump jump-target=dstnat_localnet0_udp
  • chain=dstnat_localnet0-1_udp protocol=tcp dst-port=$UDP_PORTS_LOCALNET1 action=jump jump-target=dstnat_localnet1_udp
  • chain=dstnat_localnet0_tcp to-addresses=$SERVER_ADDRESS protocol=tcp dst-port=$TCP_PORT to-ports=$TCP_PORT action=dst-nat
  • chain=dstnat_localnet0_udp to-addresses=$SERVER_ADDRESS protocol=udp dst-port=$UDP_PORT to-ports=$UDP_PORT action=dst-nat
  • chain=dstnat_localnet1_tcp to-addresses=$SERVER_ADDRESS protocol=tcp dst-port=$TCP_PORT to-ports=$TCP_PORT action=dst-nat
  • chain=dstnat_localnet1_udp to-addresses=$SERVER_ADDRESS protocol=udp dst-port=$UDP_PORT to-ports=$UDP_PORT action=dst-nat

Процесс проброса портов делится на этапы: 1) ответвление на две цепочки - цепочка для tcp и цепочка для udp с указанием всех пробрасываемых портов двух локальных сетей; 2) ответвление на четыре цепочки - две локальные сети, для каждой отдельная цепочка tcp и отдельная цепочка udp; 3) оконечно функциональные цепочки проброса портов, непосредственно определяемые IP адреса-назначений сетевых служб

Ограничение кол-ва подключений на порт удаленным хостом

/ip firewall mangle

  • chain=prerouting in-interface=eth0_wan0 protocol=tcp dst-port=3389 connection-state=new action=jump jump-target=prerouting_localnet0_connect0
  • chain=prerouting_localnet0_connect0 src-address-list=list1_wan0 action=add-src-to-address-list address-list=list2_wan0 address-list-timeout=1h
  • chain=prerouting_localnet0_connect0 src-address-list=list0_wan0 action=add-src-to-address-list address-list=list1_wan0 address-list-timeout=1m
  • chain=prerouting_localnet0_connect0 action=add-src-to-address-list address-list=list0_wan0 address-list-timeout=1m

Последовательность меню конфигурации

/interface ethernet

/interface wireless

/interface bridge

/interface list

/interface pppoe-client

/ip arp

/ip address

/ip route

/ip pool

/ip dhcp-server

/ip dhcp-server option

/ip dhcp-server network

/ip dhcp-server lease

/ip firewall address-list

/ip firewall filter

/ip firewall nat