11 заметок с тегом

network

Классы IP-адресов

Таблица публичных IP-адресов

Класс Первые биты Наименьший адрес Наибольший адрес Маска подсети Число подсетей Кол-во узлов
A 0 1.0.0.0 126.0.0.0 255.0.0.0 127 16,777,214
B 10 128.0.0.0 191.255.0.0 255.255.0.0 16,384 65,534
C 110 192.0.1.0 223.255.255.0 255.255.255.0 2,079,151 254
D 1110 224.0.0.0 239.255.255.255 Multicast
E 11110 240.0.0.0 247.255.255.255 зарезервирован

Таблица зарезервированных IP-адресов для частных сетей

Класс Наименьший адрес Наибольший адрес Маска подсети Кол-во узлов
A 10.0.0.0 10.255.255.255 255.0.0.0 16,777,216
B 172.16.0.0 172.31.255.255 255.255.0.0 65,536
C 192.168.0.0 192.168.255.255 255.255.255.0 65,536

Таблица IP-адресов специального назначения

Адрес Пример Назначение
Все биты нули 0.0.0.0 Адрес текущего узла сети, например, в процессе работы DHCP до присвоения IP-адреса
Все биты единицы 255.255.255.255 Ограниченное широковещательное сообщение, адресованное всем узлам локальной сети
Все хост-биты нули 10.0.0.0 Идентификатор сети
Все хост-биты единицы 10.255.255.255 Направленное широковещательное сообщение, адресованное всем узлам другой сети
Все сетевые биты нули 0.0.0.10 Адрес конкретного узла в текущей сети
Первый квадрант 127 127.0.0.1 Адрес внутренней обратной связи узла

Расчёт количества подсетей и числа узлов в подсети

Количество подсетей = 2s (s — количество битов для подсети в маске)
Количество узлов в подсети = 2h-2 (h — количество битов в узловой части)

К примеру 2^3=8:
000
001
010
011
100
101
110
111

Использование разных формул расчёта количества подсетей

Формулу 2s-2 следует использовать в следующийх случаях:

  • Используется классовый протокол маршрутизации
  • Используется RIPv1 или IGRP в качестве протокола маршрутизации
  • На роутере (Cisco) введена команда no ip subnet zero

Формулу 2s следует использовать в следующих случаях:

  • Используется бесклассовый протокол маршрутизации
  • Используется RIPv2, EIGRP или OSPF в качестве протокола маршрутизации
  • Введена команда ip subnet zero (может не показываться в конфиге)
  • Используются маски переменной длины (VLSM)
  • Никаких дополнительных требований и ограничений нет
 33   2017   network

Настройка VLAN на коммутаторах D-Link

Данные принципы создания и настройки vlan, подходят почти ко всем моделям коммутаторов D-link.
Схема сети:

Оборудование:

  1. Управляемый коммутатор 3 уровня DGS-3612G, выступающий в роли шлюзов для подсетей:
  • 172.20.0.0/24 с интерфейсом 172.20.0.1/24 в vlan 2001 — подсеть для управления коммутаторами;
  • 10.0.0.0/24 с интерфейсом 10.0.0.1/24 в vlan 1001— подсеть абонентов;
  1. Коммутатор L2 DES-3526 c IP 172.20.0.2/24 вынесенный в управляющий vlan valn2001 ( management vlan vlan2001)
  2. Коммутатор L2 DES-3028 c IP 172.20.0.3/24 вынесенный в управляющий vlan valn2001 ( management vlan vlan2001)

Приступим к настройке DGS-3612G
По умолчанию на коммутаторе default vlan (1 vlan), он нам не нужен, убираем его

DGS-3612G:5# config vlan default delete 1-12

Теперь создадим абонентский vlan (vlan1001) и управляющий vlan для коммутаторов (vlan2001)

DGS-3612G:5# create vlan vlan1001 tag 1001
DGS-3612G:5# create vlan vlan2001 tag 2001

Теперь присвоим 1 и 2 порту созданные нами vlan

DGS-3612G:5# config vlan vlan1001 add tagged 1-2
DGS-3612G:5# config vlan vlan2001 add tagged 1-2

Перейдем к настройке интерфейсов, по умолчанию на коммутаторах создан IP 10.90.90.90/8, он нам не нужен, создадим свои, но для начала отключим этот

DGS-3612G:5# config ipif System ipaddress 10.90.90.90/30 vlan default state disable

Создаем интерфейс с ip — 10.0.0.1/24, служащий шлюзом для абонентов.

DGS-3612G:5# create ipif if1001 10.0.0.1/24 vlan1001 state enable

В данном случае if1001 — имя интерфейса, оно может быть любым, правда с ограничением в 12 символов; 10.0.0.1/24 vlan1001 — ip адрес, принадлежащий vlan vlan1001.
Создадим интерфейс с ip — 172.20.0.1/24, служащий шлюзом для коммутаторов.

DGS-3612G:5# create ipif if2001 172.20.0.1/24 vlan2001 state enable

На этом настройка DGS-3612 закончена, переходим к настройки DES-3526.
Удаляем default vlan с портов

DES-3526:admin# config vlan default delete 1-26

Cоздаем абонентский vlan vlan1001

DES-3526:admin# create vlan vlan1001 tag 1001
DES-3526:admin# config vlan vlan1001 add untagged 1-24
DES-3526:admin# config vlan vlan1001 add tagged 25-26

Создание vlan можно описать чуть иначе, но в этом случае вы не задаете имя vlan, оно будет назначаться с соответствии с vlanid и будет выглядеть следующим образом VLAN1001 (VLAN в верхнем регистре)

DES-3526:admin# create vlan vlanid 1001
DES-3526:admin# config vlan vlanid 1001 add untagged 1-24
DES-3526:admin# config vlan vlanid 1001 add tagged 25-26

Теперь создаем management vlan (управляющий vlan)

DES-3526:admin# create vlan management tag 2001
DES-3526:admin# config vlan management add tagged 25-26

Создаем интерфейс и прописываем маршрут по умолчанию

DES-3526:admin# config ipif System vlan vlan2001 ipaddress 172.2.0.2/24 state enable
DES-3526:admin# create iproute default 172.20.0.1

Теперь по аналогии настраиваем DES-3028
Удаляем default vlan с портов

DES-3028:admin# config vlan default delete 1-28

Cоздаем абонентский vlan vlan1001

DES-3028:admin# create vlan vlan1001 tag 1001
DES-3028:admin# config vlan vlan1001 add untagged 1-24
DES-3028:admin# config vlan vlan1001 add tagged 25-28

Создание vlan можно описать чуть иначе, но в этом случае вы не задаете имя vlan, оно будет назначаться с соответствии с vlanid и будет выглядеть следующим образом VLAN1001 (VLAN в верхнем регистре)

DES-3028:admin# create vlan vlanid 1001
DES-3028:admin# config vlan vlanid 1001 add untagged 1-24
DES-3028:admin# config vlan vlanid 1001 add tagged 25-28

Теперь создаем management vlan (управляющий vlan)

DES-3028:admin#create vlan management tag 2001
DES-3028:admin#config vlan management add tagged 25-28

Создаем интерфейс и прописываем маршрут по умолчанию

DES-3028:admin#config ipif System vlan vlan2001 ipaddress 172.2.0.3/24 state enable
DES-3028:create iproute default 172.20.0.1

Вот и все, осталось прописать на абонентских станциях ip адреса из подсети 10.0.0.0/24 и шлюз 10.0.0.1. Настройка закончена.

 25   2017   network

Repeater Bridge на DD-WRT

Необходим был интернет в удалении от кабеля, а в наличии wifi-карточки нет и покупать не хотелось. Хорошо, что у меня лежит неиспользуемый D-Link Dir-615 ревизии E4 на котором вместо оригинальной прошивки залита прошивка DD-WRT.

Недолго гугля нашел решение на официальной вики DD-WRT.
В моем случае в роли первого/первичного роутера выступает Apple AirPort Express, а вторым — D-Link DIR-615.

Для создания моста между двумя роутерами первый должен быть в режиме AP с включенным DHCP. Второй роутер должен работать на прошивке DD-WRT для настройки Repeater Bridge.

Вся работа ведется на втором роутере

  1. Сбрасываем в заводские настройки.
  2. Выставляем на компьютере статический IP адрес, например, 192.168.1.10.
  3. Либо подключаем патч-кордом, либо подключаемся к wifi сети с SSID dd-wrt.
  4. Открываем в браузере адрес http://192.168.1.1 Новые версии DD-WRT требуют установить пароль перед тем как продолжить.
  5. Открываем вкладку Wireless -> Basic Settings:
    В блоке Physical Interface:
  • Wireless Mode: Repeater Bridge;
  • Wireless Network Mode: Must Match Primary Router;
  • Wireless Network Name(SSID): Такой же как и на первом роутере;
  • Wireless Channel: Такой же как и на первом роутере;
  • Wireless SSID Broadcast: Enable;
  • Network Configuration: Bridged;
  • Жмем Save.
    В блоке Virtual Interfaces:
  • Add — Wireless Network Name(SSID): отличный от первого;
  • Wireless SSID Broadcast: Enable;
  • AP Isolation: Disable;
  • Network Configuration: Bridge;
  • Жмем Save.
  1. Открываем вкладку Wireless -> Wireless Security:
    В блоке Physical Interface:
  • Security Mode: Must Match Primary Router and DD-wrt only works reliably with WEP or WPA2-AES;
  • WPA Algorithms: Must Match Primary Router;
  • WPA Shared Key: Must Match Primary Router;
  • Key Renewal Interval (in seconds): Leave default.
    В блоке Virtual Interfaces (если вы не видите эту секцию — обновите DD-WRT):
  • Security Mode: Must Match Physical Interface;
  • WPA Algorithms: Must Match Physical Interface;
  • WPA Shared Key: Must Match Physical Interface;
  • Key Renewal Interval (in seconds): Leave default;
  • Жмем Save.
    dd-wrt-01-1.png
  1. Открываем вкладку Setup -> Basic Setup:
  • Connection Type will be: Disabled;
  • Выставите STP в Disabled (Enabled иногда может быть причиной проблем);
  • IP Address: 10.0.1.50 (первичный роутер имеет IP-адрес 10.0.1.1);
  • Mask: 255.255.255.0 Gateway: 10.0.1.1 (первичный роутер имеет IP-адрес 10.0.1.1);
  • DHCP Server: Disable Local DNS: 10.0.1.1 (IP-адрес первичного роутера 10.0.1.1);
  • Assign WAN Port to Switch: enable (позволяет использовать WAN порт как обычный LAN порт);
  • Жмем Save.
  1. Авторизовываемся на новом IP-адресе http://10.0.1.50 (не забыв сменить адрес на компьютере!).
  2. Открываем вкладку Setup -> Advanced Routing:
  • Выставить Operating mode в Router;
  • Жмем Save.
  1. Открываем Services:
  • Отключаем Dnsmasq;
  • Жмем Save.
  1. Открываем вкладку Security -> Firewall:
  • Снимаем все галочки кроме Filter Multicast;
  • Отключаем SPI firewall;
  • Жмем APPLY Settings.
  1. Перезагружаем роутер.
  2. Как только авторизовываемся на роутере ищем на вкладку Security и устанавливаем тот же тип безопасности и пароль от SSID, что и на первом роутере. Не рекомендуется устанавливать WPA2 Personal MIXED, т. к. этот режим может вызывать проблемы и лучше выставить WPA2 Personal.
  3. Верните сетевые настройки на своем компьютере — динамический IP и динамический DNS.
 23   2016   network

Два провайдера и распределение по каналам

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

На пример веб сервер, выведенный через NAT на IP адрес первого провайдера получает запрос, а вот вероятность того, что ответ пойдет по нужному каналу уже не 100%. Какой же он после этого веб сервер?

Решить эту проблему нам поможет механизм маркировки пакетов.

Таблица MANGLE предназначена для операций по классификации и маркировке пакетов и соединений, а также модификации заголовков пакетов. В частности нас интересует цепочка PREROUTING, которая позволяет маркировать пакет до маршрутизации.

Попробуем разобраться с веб сервером.

Допустим у нас настроен NAT 80 порта с внешнего IP 192.168.1.116 (ISP1, первый провайдер) на 80 порт веб сервера в локальной сети и необходимо гарантировать, что все ответы, которые буду идти от веб сервера попадали на шлюз первого провайдера.

Вот правило для таблицы NAT.

[mkt@MikroTik] > ip firewall nat add chain=dstnat dst-address=192.168.1.116
protocol=tcp dst-port=80 action=dst-nat to-addresses=192.168.0.2 to-ports=80
comment="NAT 80 port from ISP1 to local web server"

[mkt@MikroTik] > ip firewall nat print
Flags: X - disabled, I - invalid, D - dynamic
0   chain=srcnat action=masquerade out-interface=!LOCAL

1   ;;; NAT 80 port from ISP1 to local web server
chain=dstnat action=dst-nat to-addresses=192.168.0.2 to-ports=80
protocol=tcp dst-address=192.168.1.116 dst-port=80

Первым шагом создадим правило в таблице MANGLE.

[mkt@MikroTik] > ip firewall mangle add chain=prerouting  src-address=192.168.0.2
protocol=tcp src-port=80 action=mark-routing new-routing-mark=to-isp1

[mkt@MikroTik] > ip firewall mangle print
Flags: X - disabled, I - invalid, D - dynamic
0   chain=prerouting action=add-src-to-address-list protocol=tcp
address-list=test_list address-list-timeout=0s dst-port=23

1   chain=prerouting action=mark-routing new-routing-mark=to-isp1
passthrough=yes protocol=tcp src-address=192.168.0.2 src-port=80

Пакеты с локального адреса 192.168.0.2 с 80 порта буду маркироваться как to-isp1.

Вторым шагом добавим правило в таблицу маршрутизации.

[mkt@MikroTik] > ip route add gateway=192.168.1.249 routing-mark=to-isp1

[mkt@MikroTik] > ip route print      
Flags: X - disabled, A - active, D - dynamic,
C - connect, S - static, r - rip, b - bgp, o - ospf, m - mme,
B - blackhole, U - unreachable, P - prohibit
#      DST-ADDRESS        PREF-SRC        GATEWAY            DISTANCE
0 A S  0.0.0.0/0                          192.168.1.249 r... 1
1 A S  0.0.0.0/0                          192.168.1.249 r... 1
                                        192.168.1.249 r...
                                        192.168.222.1 r...
2 ADC  192.168.0.0/24     192.168.0.1     LOCAL              0
3 ADC  192.168.1.0/24     192.168.1.116   ISP1               0
4 ADC  192.168.222.0/24   192.168.222.100 ISP2               0

Все что приходит с маркером to-isp1 отправляется на шлюз первого провайдера.

Теперь усложним ситуацию, допустим второй провайдер предоставят на выгодных условиях большую локальную сеть по всему городу и через эту сеть объединены все 10 филиалов вашей фирмы. Все филиалы и офис пользуются тем же сайтом, но какой смысл ходить на него через первого провайдера, когда можно настроить доступ к нему практически локально.

В первую очередь добавляем правило в таблицу NAT, по которому все запросы, пришедшие на внешний IP адрес, который предоставляет 2-ой провайдер, на 80 порт будут переадресовываться на 80 порт локального веб сервера.

[mkt@MikroTik] > ip firewall nat add chain=dstnat dst-address=192.168.222.100
protocol=tcp dst-port=80 action=dst-nat to-addresses=192.168.0.2 to-ports=80
comment="NAT 80 port from ISP2 to local web server"

[mkt@MikroTik] > ip firewall nat print
Flags: X - disabled, I - invalid, D - dynamic
0   chain=srcnat action=masquerade out-interface=!LOCAL

1   ;;; NAT 80 port from ISP1 to local web server
chain=dstnat action=dst-nat to-addresses=192.168.0.2 to-ports=80
protocol=tcp dst-address=192.168.1.116 dst-port=80

2   ;;; NAT 80 port from ISP2 to local web server
chain=dstnat action=dst-nat to-addresses=192.168.0.2 to-ports=80
protocol=tcp dst-address=192.168.222.100 dst-port=80

Следующим шагом добавим в таблицу MANGLE еще одно правило:

[mkt@MikroTik] > ip firewall mangle add chain=prerouting src-address=192.168.0.2
protocol=tcp src-port=80 dst-address=192.168.222.0/24 action=mark-routing
new-routing-mark=to-isp2

[mkt@MikroTik] > ip firewall mangle print
Flags: X - disabled, I - invalid, D - dynamic
0   chain=prerouting action=add-src-to-address-list protocol=tcp
address-list=test_list address-list-timeout=0s dst-port=23

1   chain=prerouting action=mark-routing new-routing-mark=to-isp2
passthrough=yes protocol=tcp src-address=192.168.0.2
dst-address=192.168.222.0/24 src-port=80

2   chain=prerouting action=mark-routing new-routing-mark=to-isp1
passthrough=yes protocol=tcp src-address=192.168.0.2 src-port=80

Пакеты с локального адреса 192.168.0.2 с 80 порта буду маркироваться как to-isp2 если они предназначены для подсети второго провайдера.

Ну и в заключении правило в таблице маршрутизации:

[mkt@MikroTik] > ip route add gateway=192.168.222.1 routing-mark=to-isp2
                                                              
[mkt@MikroTik] > ip route print      
Flags: X - disabled, A - active, D - dynamic,
C - connect, S - static, r - rip, b - bgp, o - ospf, m - mme,
B - blackhole, U - unreachable, P - prohibit
#      DST-ADDRESS        PREF-SRC        GATEWAY            DISTANCE
0 A S  0.0.0.0/0                          192.168.1.249 r... 1
1 A S  0.0.0.0/0                          192.168.222.1 r... 1
2 A S  0.0.0.0/0                          192.168.1.249 r... 1
                                        192.168.1.249 r...
                                        192.168.222.1 r...
3 ADC  192.168.0.0/24     192.168.0.1     LOCAL              0
4 ADC  192.168.1.0/24     192.168.1.116   ISP1               0
5 ADC  192.168.222.0/24   192.168.222.100 ISP2               0

Теперь на запросы, пришедшие со стороны первого провайдера, ответ пойдет на шлюз первого провайдера, а на запросы со стороны второго провайдера и из подсети второго провайдера ответ пойдет на шлюз второго провайдера.

(c) slagovskiy.blogspot.ru

 18   2014   mikrotik   network

Два провайдера и балансировка нагрузки

В последнее время ситуация, когда доступны несколько провайдеров не нова, MikroTik Router OS позволяет настроить доступ сразу по нескольким сетевым интерфейсам, а так же настроить балансировку нагрузки в зависимости от ограничений, которые выставляет провайдер.

Первым шагом настроим дополнительный интерфейс.
Инициализируем сам интерфейс.

[mkt@MikroTik] /interface> print
Flags: D - dynamic, X - disabled, R - running, S - slave
#     NAME                      TYPE             MTU
0  R  ether1                    ether            1500
1  R  ether2                    ether            1500
2  X  ether3                    ether            1500

[mkt@MikroTik] /interface> enable 2

[mkt@MikroTik] /interface> print
Flags: D - dynamic, X - disabled, R - running, S - slave
#     NAME                      TYPE             MTU
0  R  ether1                    ether            1500
1  R  ether2                    ether            1500
2  R  ether3                    ether            1500

Для удобства все же пора дать более понятные имена интерфейсам.

[mkt@MikroTik] /interface> set ether1 name="ISP1"

[mkt@MikroTik] /interface> set ether2 name="LOCAL"

[mkt@MikroTik] /interface> set ether3 name="ISP2"

[mkt@MikroTik] /interface> print
Flags: D - dynamic, X - disabled, R - running, S - slave
#     NAME                       TYPE             MTU
0  R  ISP1                       ether            1500
1  R  LOCAL                      ether            1500
2  R  ISP2                       ether            1500

Теперь назначим IP адрес новому интерфейсу.

[mkt@MikroTik] > ip address add address=192.168.222.100/24 interface=ISP2

[mkt@MikroTik] > ip address print
Flags: X - disabled, I - invalid, D - dynamic
#   ADDRESS            NETWORK         BROADCAST       INTERFACE
0   192.168.1.116/24   192.168.1.0     192.168.1.255   ISP1
1   192.168.0.1/24     192.168.0.0     192.168.0.255   LOCAL
2   192.168.222.100/24 192.168.222.0   192.168.222.255 ISP2

Настало время изменить маршрутизацию по умолчанию. Для начала допустим, что оба провайдера предоставляют одинаковую скорость доступа к сети Internet, значит настроим балансировку (это когда для исходящих соединений каналы чередуются), так что бы запросы распеределялись равномерно, т. е. 50/50. Прежде всего удалим старый шлюз по умолчанию.

[mkt@MikroTik] > ip route print
Flags: X - disabled, A - active, D - dynamic,
C - connect, S - static, r - rip, b - bgp, o - ospf, m - mme,
B - blackhole, U - unreachable, P - prohibit
#      DST-ADDRESS        PREF-SRC        GATEWAY            DISTANCE
0 A S  0.0.0.0/0                          192.168.1.249 r... 1
1 ADC  192.168.0.0/24     192.168.0.1     LOCAL              0
2 ADC  192.168.1.0/24     192.168.1.116   ISP1               0
3 ADC  192.168.222.0/24   192.168.222.100 ISP2               0

[mkt@MikroTik] > ip route remove 0

[mkt@MikroTik] > ip route print
Flags: X - disabled, A - active, D - dynamic,
C - connect, S - static, r - rip, b - bgp, o - ospf, m - mme,
B - blackhole, U - unreachable, P - prohibit
#      DST-ADDRESS        PREF-SRC        GATEWAY            DISTANCE
0 ADC  192.168.0.0/24     192.168.0.1     LOCAL              0
1 ADC  192.168.1.0/24     192.168.1.116   ISP1               0
2 ADC  192.168.222.0/24   192.168.222.100 ISP2               0

И добавим новый, точнее новые.

[mkt@MikroTik] > ip route add dst-address=0.0.0.0/0
gateway=192.168.1.249,192.168.222.1

[mkt@MikroTik] > ip route print                                    
Flags: X - disabled, A - active, D - dynamic,
C - connect, S - static, r - rip, b - bgp, o - ospf, m - mme,
B - blackhole, U - unreachable, P - prohibit
#      DST-ADDRESS        PREF-SRC        GATEWAY            DISTANCE
0 A S  0.0.0.0/0                          192.168.1.249 r... 1
                                       192.168.222.1 r...
1 ADC  192.168.0.0/24     192.168.0.1     LOCAL              0
2 ADC  192.168.1.0/24     192.168.1.116   ISP1               0
3 ADC  192.168.222.0/24   192.168.222.100 ISP2               0

Предположим, что у первого провайдера скорость доступа в два раза выше чем у второго, тогда 2/3 исходящих запросов надо направить на первого, а оставшиеся 1/3 на второго.

[mkt@MikroTik] > ip route add dst-address=0.0.0.0/0
gateway=192.168.1.249,192.168.1.249,192.168.222.1

[mkt@MikroTik] > ip route print                                    
Flags: X - disabled, A - active, D - dynamic,
C - connect, S - static, r - rip, b - bgp, o - ospf, m - mme,
B - blackhole, U - unreachable, P - prohibit
#      DST-ADDRESS        PREF-SRC        GATEWAY            DISTANCE
0 A S  0.0.0.0/0                          192.168.222.1 r... 1
                                       192.168.1.249 r...
                                       192.168.1.249 r...
1 ADC  192.168.0.0/24     192.168.0.1     LOCAL              0
2 ADC  192.168.1.0/24     192.168.1.116   ISP1               0
3 ADC  192.168.222.0/24   192.168.222.100 ISP2               0

Это простейший вариант настройки, при котором получаем выход в интернет с балансировкой нагрузки, но у такого подхода есть ряд недостатков, на пример не будет работать доступ через на NAT к локальному серверу (сервисы web, smtp, pop, которые были настроены ранее), но не такая большая проблема, но об этом в следующий раз.

(c) slagovskiy.blogspot.ru

 21   2014   mikrotik   network

Настройка Firewall на Mikrotik

Межсетевой экран, брендмауэр или Firewall выполняет фильтрацию пакетов являясь таким образом инструментом обеспечивающим безопасность и управление потоками данных, проходящими через маршрутизатор. Вместе с трансляцией сетевых адресов NAT файервол служит инструментом предотвращения несанкционированного проникновения в сеть компании. Возможно и наоборот применением фильтрации пакетов совместно с транспарентными Proxy серверами и NAT добиться запрета на использование определённых ресурсов и внешних сетей. Полезно Firewall использовать для ограничения доступа к заведомо незащищенным службам. Он может служить препятствием для внедрения ложных данных с помощью уязвимых служб злоумышленником. Также через него возможен контроль доступа к узлам сети, регистрирование попыток доступа как извне, так и из внутренней сети. Можно регламентировать порядок доступа к сети, осуществлять уведомление о подозрительной деятельности, попытках зондирования или атаки на узлы сети или сам экран.

Файервол Mikrotik RouterOS обладает мощными функциями и включает следующие возможности:
1 Фильтрация пакетов;
2 Фильтрация p2p протоколов
3 Классификация трафика по:
3.1 исходный MAC-адрес;
3.2 IP-адрес (сеть или список) и тип адреса (бродкаст, локальный, мультикаст, юникаст);
3.3 Порт или список портов;
3.4 IP-протокол;
3.5 Опции протокола (ICMP тип и другие коды, TCP флаги, IP опции и MSS);
3.6 Интерфейс, откуда получен пакет или куда он назначается;
3.7 Внутренний поток или маркированное подключение;
3.8 Байт ToS (DSCP);
3.9 Содержимое пакета;
3.10 Скорость получения пакетов и количество последовательностей;
3.11 Размер пакета;
3.12 Время получения пакета.

Основные принципы фильтрации

Оперирование файерволом осуществляется посредством правил. Правило определяет выражение, которое говорит роутеру что делать с индивидуальным IP-пакетом. Каждое правило состоит из двух частей: первое описывает параметры, по которым должны классифицироваться приходящие пакеты, второе отвечает за действие над пакетом. Правила, для лучшего управления, организованы в цепочки.
Устройство фильтра по-умолчанию имеет три цепочки: input, forward и output, которые отвечают за приходяший, перемещаемый внутри роутера и исходящий трафик соответственно. Пользователь может добавить новые цепочки, если это будет нужно.
Под эти цепочки трафик по-умолчанию не попадает. Для этого используется метод action=jump с параметром jump-target в одной из предустановленных цепочек.

Цепочки фильтра

Как говорилось раньше, правила фильтрации в файерволе сгруппированы в цепочки. Это позволяет пакету попавшему под некий критерий в одной цепочке переходить к следующему правилу и следующим цепочкам. К примеру пакетам с определённого адреса и порта нужно применить много правил. Конечно, эти правила можно перечислить в цепочке forward, однако правильнее будет создать для них отдельную цепочку, перебросить туда попавшие под условие пакеты и выполнить над ними нужные нам действия: /ip firewall filter add src-address=1.1.1.2/32 jump-target=«mychain». Это правило создаст новую цепочку mychain, в которую попадут все пакеты с адресом источника 1.1.1.2/32.

Три предустановленных цепочки, которые не могут быть удалены:
Input — применимо к пакетам, приходящим на маршрутизатор, у которых адрес получателя такой же, как и у интерфейса, на который этот пакет поступил. Пакеты, проходящие через маршрутизатор не попадают под действие правил цепочки input.
Forward — применимо к пакетам, проходящим через маршрутизатор;
Output — применимо к пакетам созданным маршратизатором, которые покидают его через один из интерфейсов. Пакеты, проходящие через маршрутизатор не попадают под действие цепочки output.
При попадании пакета в одну из цепочек, правила применяются от верхего к нижнему. Если пакет попадает под критерий одного из правил, над ним выполняется указанное в правиле действие и этот пакет не попадает больше под действие других правил из этой цепочки (исключение составляет только действие passthrough). Если пакет не попадает под действие ни одного из правил цепочки, к нему по умолчанию применяется действие Accept.

Описание параметров

action (accept | add-dst-to-address-list | add-src-to-address-list | drop | jump | log | passthrough | reject | return | tarpit; default: accept) — применяемое действие, если пакет совпал с правилом
accept — принять пакет. Не подразумевает каких-либо действий. Если пакет был принят, к нему больше не применяется никаких действий в цепочке.
add-dst-to-address-list — добавить адрес назначения пакета в address list , указанный в параметре address-list
add-src-to-address-list — добавить адрес источника пакета в address list , указанный в параметре address-list
drop — разрушить пакет (без посылки сообщения ICMP reject)
jump — перепрыгнуть в цепочку, указанную в параметре jump-target
log — каждое совпадение с этим действием добавит в системный лог сообщение
passthrough — игнорировать это правило и перейти к следующему
reject —отбросить этот пакет и постать сообщение ICMP reject
return — вернуть пакет в цепочку, из которой он был переброшен
tarpit — захватить и удерживать входящие TCP подключения (отвечать SYN/ACK на входящий TCP SYN пакет)
address-list (name) — указывает имя списка адресов, в которых хранятся IP-адреса из действий action=add-dst-to-address-list или action=add-src-to-address-list. Эти списки могут быть похже использованы в других правилах.
address-list-timeout (time; default: 00:00:00) — интервал времени, через который адреса будут удалены из списка, указанного в параметре address-list . Используется в сочетании с действиями add-dst-to-address-list или add-src-to-address-list .00:00:00 — означает оставить адреса в списке навсегда.
chain (forward | input | output | name) — указывает цепочку, в которую следует поместить правило. Разные типы трафика проходят через разные цепочки, поэтому будьте в курсе своего выбора, указывая то или иное значение этого параметра. Если указанное значение цепочки не совпадает ни с одним из уже существующих, система создаст новое правило с указанным именем.
comment (text) — комментарий описывает правило. В скриптах комментарии обычно служат для идентификации правил.
connection-bytes (integer-integer) — применять правило, если количество переданных байт через подключение превысило указанное значение. 0 — не ограничено, пример: connection-bytes=2000000-0 сработает в том случае, если количество данных, переданных через открытое подключение превысило 2MB;
connection-limit (integer,netmask) — ограничивает количество доступных подключений на адрес или блок адресов;
connection-mark (name) —пакеты, попавшие под действие правил в mangle и названные в соответствии с параметром connection mark
connection-state (established | invalid | new | related) — интерпретация состояния подключения посредством анализа данных из connection tracking .
established — пакет, принадлежащийa уже установленному подключению. К примеру ответ от маршрутизатора.
invalid — пакет, который не может быть идентифицирован по какой-либо причине. К примеру это может быть переполнение памяти и ICMP ошибки. К таким пакетам нужно применять действие DROP
new — пакет, начинающий создание TCP подключения
related — запрошенный пакет, который не принадлежит уже установленным подключениям. К примеру ICMP ошибки, или пакет, начинающий передачу данных по протоколу FTP( /ip firewall service-port)
connection-type (ftp | gre | h323 | irc | mms | pptp | quake3 | tftp) — определение типа подключения, базирующееся на использовании данных из connection tracking. Конфигурирование производится в /ip firewall service-port
content (text) — содержимое текстового пакета
dst-address (IP address/netmask | IP address-IP address) — указывает диапазон адресов, у которых IP-адрес назначения совпадает с параметром. При неправильном введении пары address/netmask система сама подстроит эти параметры. К примеру:1.1.1.1/24 будет заменено на 1.1.1.0/24
dst-address-list (name) — совпадение адреса назначения пакета с определенными ранее значениями в address list
dst-address-type (unicast | local | broadcast | multicast) — совпадение типа адреса назначения пакета с заданным предустановленным значением:
unicast — IP-адреса, используемые ля передачи от одной точки к другой. В таком типе пакетов существует только один отправитель и один получатель
local — совпадеине с адресами, назначенными сетевым интерфейсам маршрутизатора
broadcast — IP-пакет, посылаемый сразу всем членам подсети
multicast — этот тип пакета используется для передачи данных от одного отправителя многим получателям в сети.
dst-limit (integer/time{0,1},integer,dst-address | dst-port | src-address{+},time{0,1}) — ограничивает скорость пакетов в секунду (packet per second (pps)) на IP-адрес или порт.
В результате работы правила каждый IP-адрес или порт назначения получает свой лимит.
Параметр имеет следующие опции:
Count — среднее количество пакетов в секунду (packets per second (pps))за время Time
Time — интервал времени, за который производится подсчёт среднего количества пакетов
Burst — количество пакетов в пике
Mode — классификатор для ограничения скорости пакетов
Expire — указывает интервал, через который записанные IP адреса /порты будут удалены
dst-port (integer: 0..65535-integer: 0..65535{*}) — интервал портов назначения
hotspot (multiple choice: from-client | auth | local-dst | http) — сравнивает пакеты полученные от клиентов с различными хот-спотами. все значения могут быть отклонены/инвертированы
from-client — true, если пакеты получены от Hot-Spot клиента
auth — true, если пакеты получены от авторизированного Hot-Spot клиента
local-dst — true, если пакет имеет локальный адрес назначения
hotspot — true, если TCP пакет от клиента и назначается на 80 порт прозрачного прокси сервера или клиент имеет адрес прокси сконфигурированный и аналогичный адресу:порту пакета
icmp-options (integer:integer) — совпадение полей ICMP Type:Code
in-interface (name) — интерфейс, с которого пакет поступил в маршратизатор
ipv4-options (any | loose-source-routing | no-record-route | no-router-alert | no-source-routing | no-timestamp | none | record-route | router-alert | strict-source-routing | timestamp) — совпадение параметров заголовка ipv4
any — совпадает по крайней мере один пакет с установленной ipv4 опцией
loose-source-routing — пакеты с опцией loose source routing. Эта опция используется для направления интернет дейтаграм основаных на информации поставляемой источником
no-record-route — пакеты с опцией no record route. Эта опция используется для направления интернет дейтаграм основаных на информации поставляемой источником
no-router-alert — совпадение пакетов с опцией no router alter
no-source-routing — совпадение пакетов с опцией no source routing
no-timestamp — совпадение пакетов с опцией with no timestamp
record-route — совпадение пакетов с опцией record route
router-alert — совпадение пакетов с опцией router alter
strict-source-routing — совпадение пакетов с опцией strict source routing
timestamp — совпадение пакетов со штампом времени
jump-target (forward | input | output | name) — имя целевой цепочки куда должен быть отправлен пакет при использовании action=jump.
limit (integer/time{0,1},integer) — ограничивает поток пакетов. Используется для уменьшения количества сообщений в логах
Count — максимальное среднее количество пакетов, указанное в пакетах в секунду (PPS Packet Per Second) за время в опции Time
Time — указывает интервал времени за который будет производиться подсчёт среднего количества пакетов
Burst — количество пакетов при пике
log-prefix (text) — все сообщения, записываемые в лог, будут иметь этот префикс. Используется вместе с опцией action=log
nth (integer,integer: 0..15,integer{0,1}) — совпадение каждого n-ного пакета, попавшего в правило. Всего доступно 16 счётчиков
Every — совпадение каждого Every+1th пакета. К примеру, если Every=1 тогда под действие правила попадёт каждый второй пакет
Counter — указывает какой счётчик будет использоваться. Счётчик увеличивается на 1 с каждым новым правилом где указанна опция nth
Packet -совпадает с номером данного пакета. Значение по очевидным причинам должно быть между нулем и Every. Если опиция используется для данного счетчика, тогда должно быть по крайней мере Every+1 правило с этой опцией, охватывающее все значения между 0 и Every включительно out-interface (name) — интерфейс, через который пакеты будут покидать маршрутизатор
p2p (all-p2p | bit-torrent | blubster | direct-connect | edonkey | fasttrack | gnutella | soulseek | warez | winmx) — совпадение пакетов протоколов peer-to-peer (P2P)
packet-mark (text) — цепочка пакетов, промаркированная в разделе mangle файервола
packet-size (integer: 0..65535-integer: 0..65535{0,1}) — размер пакета в байтах
Min — указывает нижний предел диапазона размера пакета
Max — указывает верхний предел диапазона размера пакета

phys-in-interface (name) — физический интерфейс, указанный в качестве порта моста, по которому пакет поступил в маршрутизатор
phys-out-interface (name) — физический интерфейс, указанный в качестве порта моста, по которому пакет выйдет из маршрутизатора
protocol (ddp | egp | encap | ggp | gre | hmp | icmp | idrp-cmtp | igmp | ipencap | ipip | ipsec-ah | ipsec-esp | iso-tp4 | ospf | pup | rdp | rspf | st | tcp | udp | vmtp | xns-idp | xtp | integer) — совпадение IP протокола. Указывается имя протокола или его номер. Вы должны указать эту опцию, чтобы получить доступ к специфическим параметрам для каждого протокола.
psd (integer,time,integer,integer) — попытка определения сканирования TCP и UDP портов. Необходимо назначить меньшее значение портам с высокими номерами для того, чтобы уменьшить количество ложных срабатываний. К примеру, при использовании пассивного режима FTP.
WeightThreshold — полный вес последних TCP/UDP пакетов с различными портами назначения, поступающими с одного хоста, которые распознанные как один из методов сканирования
DelayThreshold — задержка между пакетами с разными портами назначения, поступающие с одного хоста и распознанные как возможная последовательность сканирования
LowPortWeight — вес пакетов при сканировании привилегированных портов (<=1024)
HighPortWeight — вес пакетов на непривилегированные порты назначения
random (integer: 1..99) — совпадение пакетов с заданным уровнем случайности
reject-with (icmp-admin-prohibited | icmp-echo-reply | icmp-host-prohibited | icmp-host-unreachable | icmp-net-prohibited | icmp-network-unreachable | icmp-port-unreachable | icmp-protocol-unreachable | tcp-reset | integer) — указывает причину по которой был отброшен пакет в action=reject
routing-mark (name) — совпадение пакетов, обозначенных в цепочке mangle параметром routing mark
src-address (IP address/netmask | IP address-IP address) — указывает диапазон адресов IP пакетов поступивших извне. Замечание: консоль конвертирует неправильно набранные IP значения address/netmask в правильный сетевой адрес. К примеру:1.1.1.1/24 будет конвертирован в 1.1.1.0/24
src-address-list (name) — совпадение адреса источника с списком IP-адресов в предустановленном пользователе address list
src-address-type (unicast | local | broadcast | multicast) — совпадение типа IP-адреса:
unicast — IP адрес используется для передачи данных между двумя узлами, где только один отправитель и один получатель
local — совпадение адреса, назначенного одному из интерфейсов маршрутизатора
broadcast — IP пакет был отправлен из одной точки всем получателям и IP подсети
multicast — этот типа IP адресации ответственен за передачу между одной или несколькими точками одной или набору других точек
src-mac-address (MAC address) — MAC адрес источника
src-port (integer: 0..65535-integer: 0..65535{*}) — диапазон портов источника
tcp-flags (ack | cwr | ece | fin | psh | rst | syn | urg) — tcp флаги
ack — запрос данных
cwr — принимающее окно уменьшено
ece — ECN-флаг echo (explicit congestion notification)
fin — закрытие подключения
psh — функция push
rst — разорвать подключение
syn — новое подключение
urg — urgent data
tcp-mss (integer: 0..65535) — совпадение значения TCP MSS IP пакета
time (time-time,sat | fri | thu | wed | tue | mon | sun{+}) — позволяет создать фильтр, базирующийся на времени получения пакета или дате. Для локально созданных пакетов дате отправки
tos (max-reliability | max-throughput | min-cost | min-delay | normal) — совпадение с полем «тип сервиса» Type of Service (ToS) в IP загаловке
max-reliability — максимальная надёжность (ToS=4)
max-throughput — максимальная пропускная способность (ToS=8)
min-cost — минимальная стоимость (ToS=2)
min-delay — минимальная задержка (ToS=16)
normal — нормальное обслуживание (ToS=0)

Правила NAT применяются первыми, и это нужно помнить при создании правил файервола, так как оригинальные пакеты могли быть модифицированы в NAT.

Примеры применения

Защита вашего маршрутизатора RouterOS

Для защиты вашего маршрутизатора сменить пароль администратора недостаточно и нужно воспользоваться фильтрацией пакетов. Все пакеты с адресом назначения маршрутизатора попадают во входную цепочку файервола INPUT. Заметьте, что попавшие в цепочку INPUT пакеты не будут проходить через маршрутизатор.

/ip firewall filter
add chain=input connection-state=invalid action=drop comment="Drop Invalid connections"
add chain=input connection-state=established action=accept comment="Allow Established connections"
add chain=input protocol=udp action=accept comment="Allow UDP"
add chain=input protocol=icmp action=accept comment="Allow ICMP"
add chain=input src-address=192.168.0.0/24 action=accept comment="Allow access to router from known network"
add chain=input action=drop comment="Drop anything else"

Для защиты сети проверяется весь трафик проходящий через маршрутизатор и блокировать нежелательные пакеты:

/ip firewall filter
add chain=forward protocol=tcp connection-state=invalid action=drop comment="drop invalid connections"
add chain=forward connection-state=established action=accept comment="allow already established connections"
add chain=forward connection-state=related action=accept comment="allow related connections"

Блокировать IP адреса, названные «bogons»:

add chain=forward src-address=0.0.0.0/8 action=drop
add chain=forward dst-address=0.0.0.0/8 action=drop
add chain=forward src-address=127.0.0.0/8 action=drop
add chain=forward dst-address=127.0.0.0/8 action=drop
add chain=forward src-address=224.0.0.0/3 action=drop
add chain=forward dst-address=224.0.0.0/3 action=drop

Перебросить их в другую цепочку:

add chain=forward protocol=tcp action=jump jump-target=tcp
add chain=forward protocol=udp action=jump jump-target=udp
add chain=forward protocol=icmp action=jump jump-target=icmp

Создать цепочку tcp и запретить некоторые tcp порты:

add chain=tcp protocol=tcp dst-port=69 action=drop comment="deny TFTP"
add chain=tcp protocol=tcp dst-port=111 action=drop comment="deny RPC portmapper"
add chain=tcp protocol=tcp dst-port=135 action=drop comment="deny RPC portmapper"
add chain=tcp protocol=tcp dst-port=137-139 action=drop comment="deny NBT"
add chain=tcp protocol=tcp dst-port=445 action=drop comment="deny cifs"
add chain=tcp protocol=tcp dst-port=2049 action=drop comment="deny NFS"
add chain=tcp protocol=tcp dst-port=12345-12346 action=drop comment="deny NetBus"
add chain=tcp protocol=tcp dst-port=20034 action=drop comment="deny NetBus"
add chain=tcp protocol=tcp dst-port=3133 action=drop comment="deny BackOriffice"
add chain=tcp protocol=tcp dst-port=67-68 action=drop comment="deny DHCP"

Запретить udp порты в цепочке udp:

add chain=udp protocol=udp dst-port=69 action=drop comment="deny TFTP"
add chain=udp protocol=udp dst-port=111 action=drop comment="deny PRC portmapper"
add chain=udp protocol=udp dst-port=135 action=drop comment="deny PRC portmapper"
add chain=udp protocol=udp dst-port=137-139 action=drop comment="deny NBT"
add chain=udp protocol=udp dst-port=2049 action=drop comment="deny NFS"
add chain=udp protocol=udp dst-port=3133 action=drop comment="deny BackOriffice"

Разрешить только необходимые коды icmp в цепочке с именем icmp:

add chain=icmp protocol=icmp icmp-options=0:0 action=accept comment="drop invalid connections"
add chain=icmp protocol=icmp icmp-options=3:0 action=accept comment="allow established connections"
add chain=icmp protocol=icmp icmp-options=3:1 action=accept comment="allow already established connections"
add chain=icmp protocol=icmp icmp-options=4:0 action=accept comment="allow source quench"
add chain=icmp protocol=icmp icmp-options=8:0 action=accept comment="allow echo request"
add chain=icmp protocol=icmp icmp-options=11:0 action=accept comment="allow time exceed"
add chain=icmp protocol=icmp icmp-options=12:0 action=accept comment="allow parameter bad"
add chain=icmp action=drop comment="deny all other types"

(c) netflow.by

 19   2014   mikrotik   network

Настройка GRE моста между двумя Mikrotik

The goal of this example is to get Layer 3 connectivity between two remote sites over the internet.

We have two sites, Site1 with local network range 10.1.101.0/24 and Site2 with local network range 10.1.202.0/24.

First step is to create GRE tunnels.
Router on site 1:

/interface gre add name=myGre remote-address=192.168.90.1 local-address=192.168.80.1

Router on site 2:

/interface gre add name=myGre remote-address=192.168.80.1 local-address=192.168.90.1

As you can see tunnel configuration is quite simple.

Note: In this example keepalive is not configured, so tunnel interface will have running flag even if remote tunnel end is not reachable

Now we just need to set up tunnel addresses and proper routing.

Router on site 1:

/ip address
add address=172.16.1.1/30 interface=myGre
/ip route
add dst-address=10.1.202.0/24 gateway=172.16.1.2

Router on site 2:

/ip address
add address=172.16.1.2/30 interface=myGre
/ip route
add dst-address=10.1.101.0/24 gateway=172.16.1.1

At this point both sites have Layer 3 connectivity over GRE tunnel.

wiki.mikrotik.com

 8   2014   mikrotik   network

Перезагрузка Airport Extreme при помощи AppleScript

Иногда Apple inc. выпускают не очень удачные firmware для своих wi-fi точек. Иногда для нормальной работы требуется перезапустить Airport Extreme/Express/Time Capsule. И, как раз, последняя ситуация случилась на работе. На Airport Extreme приходится свыше 50 клиентов (а держать она может не более 50) в виде Windows ноутбуков, Android телефонов/планшетов и различной техники от Apple inc. Нормально интегрировать Airport Extreme в сеть windows тяжко (не дает она использовать внешний DHCP), вот и приходится выкручиваться.

Для автоматической перезагрузкой нужен компьютер на OS X и следующий скрипт на форуме MacOSXHints:

tell application "AirPort Utility" to activate
delay 2
tell application "System Events"
	tell application process "AirPort Utility"

		tell window 1
			click button "Manual Setup"
			delay 60
		end tell

		tell menu bar 1
			click menu bar item "Base Station"

			tell menu bar item "Base Station"
				tell menu 1
					click menu item "Restart…"
				end tell
			end tell
		end tell

		delay 1 --imperative

		delay 30

	end tell
end tell

tell application "AirPort Utility" to quit

Если нужно писать логи в ~/Library/Logs используем этот скрипт:

set commonScript to load script alias ¬
	((path to library folder from user domain as string) ¬
		& "Scripts:Common code.scpt")

tell application "AirPort Utility" to activate
delay 2
tell application "System Events"
	tell application process "AirPort Utility"
		
		tell window 1
			click button "Manual Setup"
			delay 60
		end tell
		
		tell menu bar 1
			click menu bar item "Base Station"
			
			tell menu bar item "Base Station"
				tell menu 1
					click menu item "Restart…"
				end tell
			end tell
		end tell
		
		delay 1 --imperative
		
		delay 30
		
	end tell
end tell

tell application "AirPort Utility" to quit

log_event("Basement Airport Extreme restarted") of commonScript

Для автоматического запуска скрипта можно использовать iCal, например, как это описывает Maria Langer.

 16   2014   apple   network

Отправка бекапа настроек Mikrotik на e-mail

Задумался о бекапах Mikrotika. Нужно их не просто создавать, но и куда-то складывать.
Есть несколько вариантов:
1 — забирать по ftp с девайса
2 — забирать по ssh
3 — забирать со своего мыла

Были найдены статьи:
Резервирование настроек по E-mail и Automated_Backups

Из которых я соорудил рабочий вариант с костылем.
Костыль такой: с микротика отсылаем на служебный ящик бекап, а уже с него рассылаем куда надо. Плюс такого решения — у нас всегда есть, как минимум, два хранилища (служебная и личная почта).

 6   2013   mikrotik   network

Сброс пароля на коммутаторах D-Link

Данное руководство актуально для коммутаторов DES-3526, DES-3550, DES-3028, DES-3052
Для восстановления пароля нам потребуется Data-кабель RS-232 либо Data-кабель и RS-232 to USB, если нет COM порта

  1. Подключаем коммутатор к компьютеру через Data-кабель, запускаем minicom, включаем коммутатор.
  2. Дожидаемся момента загрузки прошивки 100%, в этот момент зажимаем shift + 6

если все правильно сделали, то коммутатор должен войти в режим сброса настроек

  1. Дальше вводим команду reset account — сброс логина и пароля на дефолтный или reset factory — полный сброс настроек коммутатора на дефолтные. Вводим команду restart жмем «y», «y», после перезагрузки на коммутаторе логин и пароль будут по умолчанию, т. е. их не будет
 8   2013   network
Ранее Ctrl + ↓