Разное

Mikrotik ping через интерфейс: Рассмотрим утилиту Ping в Mikrotik RouterBoard :: Настройка оборудования Mikrotik :: Настройка оборудования

Mikrotik ping через интерфейс

Если вы ищете руководство по настройке dual-wan failover на микротике, то среди задач вы будете решать, как сделать, чтобы при пинге через ISP1 микротик направлял бы ответ через шлюз GW1, а при пинге через ISP2 — соответственно, через GW2.

Штука в том, что даже если все правильно настроено, и NAT работает, и локальные клиенты в сеть ходят, и firewall вроде разрешает пинг снаружи, а снаружи к микротику не обратиться. Не пингуется и все тут.

Вы наверняка видели что-то вроде:

/ip firewall mangle
add chain=input action=mark-connection new-connection-mark=ISP1->Input passthrough=no dst-address=IP1 in-interface=ether1
add chain=output action=mark-routing new-routing-mark=ISP1 passthrough=no connection-mark=ISP1->Input
add chain=input action=mark-connection new-connection-mark=ISP2->Input passthrough=no dst-address=IP2 in-interface=ether2
add chain=output action=mark-routing new-routing-mark=ISP2 passthrough=no connection-mark=ISP2->Input

Т.е.:
1) если пришел пакет со стороны провайдера ISP1 (через интерфейс ether1) с конечным адресом нашего микротика IP1 (т.е. в input), то пометить это соединение меткой «ISP1->Input».
2) исходящий трафик, связанный с установленным ранее соединеним, помеченным меткой «ISP1->Input», маршрутизировать по правилам таблицы ISP1.

Аналогично для входящих пакетов со стороны провайдера ISP2.

И все бы хорошо, если у вас есть маршрут по-умолчанию без указания таблицы маршрутизации.

Но у вас могут быть только такие дефолтные машруты (до 0.0.0.0/0):

/ip route
add distance=1 gateway=GW1 routing-mark=ISP1
add distance=1 gateway=GW2 routing-mark=ISP2

и ни одного маршрута по-умолчанию без указания routing-mark. Т.е. основная таблица маршрутизации пустая.

При пинге IP1 снаружи через ISP1 (input) из примера выше входящий пакет будет принят, промаркируется соединение (new-connection-mark=ISP1->Input). А вот ответ (output) никуда не уйдет, т.к. ответный пакет не попадет в output. Вообще. И промаркирован он не будет. И микротик не отправит его никуда.

Решить проблему можно по-разному.

1. prerouting вместо output

Любой пакет до того, как будет принято решение о его судьбе, проходит цепочку prerouting. И если заменить output на prerouting, то еще до попадания в output пакет будет промаркирован для маршрутизации через таблицу ISP1 (new-routing-mark=ISP1), далее будет принято верное решение о необходимости отправить пакет в output.

2. добавить маршруты по-умолчанию без указания таблиц маршрутизации

Например, как-то так:

/ip route
add distance=1 gateway=GW1 distance=10
add distance=1 gateway=GW2 distance=10

Или даже просто один из них:

/ip route add distance=1 gateway=GW1 distance=10

Не важно, будет этот маршрут доступен или нет, осноная таблица маршрутизации не будет пустой и микротик начнет искать замену этому маршруту. А если в основной таблице пусто — то и микротик делать ничего не будет и дело не дойдет до момента маркировки пакета в mangle -> output.

Ping — утилита для проверки связи с удалённым хостом, а также обиходное наименование самого запроса.

Сначала выполним подключение к Mikrotik RouterBoard RB751U-2HnD с помощью утилиты Winbox.

Рис.1. Mikrotik RouterBoard RB751U-2HnD, Ping в терминале.

Утилитой Ping можно воспользоваться из терминала. Для этого в терминале необходимо ввести комманду Ping и после пробела указать IP-адрес удалённого хоста.

Рис.2. Mikrotik RouterBoard RB751U-2HnD, хост доступен.

Утилита Ping отправляет удалённому хосту запрос и ожидает ответ от удалённого хоста. Если удалённый хост доступен, мы увидим полученные ответы от удалённого хоста.

Рис.3. Mikrotik RouterBoard RB751U-2HnD Ping доменного имени.

Выполнять проверку связи с удалённым хостом можно не только по IP, а и по доменному имени. Проверку по доменному имени, можно выполнить только при условии, что в Mikrotik RouterBoard RB751U-2HnD настроен DNS. Прерывание выполнения Ping осуществляется нажатием сочетания клавиш Ctrl+C.

Рис.4. Mikrotik RouterBoard RB751U-2HnD, графическая утилита.

Рассмотрим графическую утилиту Ping.

Рис.5. Mikrotik RouterBoard RB751U-2HnD, интерфейс Ping.

В поле Ping To назначается IP-адрес удалённого сервера.

Рис.6. Mikrotik RouterBoard RB751U-2HnD Ping через определённый интерфейс.

В настройках можно выбрать, с какого интерфейса будут отправляться запросы к удалённому хосту.

Рис.7. Mikrotik RouterBoard RB751U-2HnD, узел не доступен.

Если узел окажется не доступен, то вместо ответов будет отображаться сообщение «timeout».

Рис.8. Mikrotik RouterBoard RB751U-2HnD Advanced.

На вкладке Advanced можно назначать дополнительные параметры, такие как размер и время жизни пакета.

Евгений Рудченко специально для ASP24.

interface в команде ping используется для ipv6

Используйте ping с параметром route, а в роутинге добавьте маршрут для помеченных соединений(и запретите таким соединениям искать маршруты в основной таблице маршрутизации, а то пинги будут ходить даже если резервный интернет упал — через основной)

ping 8.8.8.8 src-address=192.168.253.1

где 192.168.253.1 адрес на интерфейсе ethernet5

MikroTik в роли тестера сети / Хабр

Приобрели MikroTik RouterBoard mAP 2n. Отличная модель. Поиграв с ним вдоволь, решили задействовать в качестве тестера малой провайдерской сети. Очень часто, чтобы проверить состояние сети, необходимо расчехлять ноутбук, что порой крайне неудобно в виду расположения оборудования в подвалах, чердаках. Заменить ноутбук полностью, конечно, невозможно, но стандартные тесты можно переложить на плечи нашего «маленького друга». Об этом и будет идти речь в моем посте.


Одна из особенностей mAP 2n — это наличие в нем microUSB, по которому роутер можно питать. Данная особенность дает возможность совместно с портативным зарядным устройством использовать роутер мобильно. В качестве портативного зарядного устройства был выбран HIPER WP-222. В основном его выбор был обусловлен ценой, ну а его водонепроницаемый корпус и наличие фонарика окончательно убедил нас в правильности решения.

Для тестера необходим канал связи с человеком. Первая мысль была задействовать спикер, на котором можно посредством RouterOS творить чудеса, но, к сожалению mAP 2n обделили им. Все, что осталось — это задействовать LED-индикацию. У mAP 2n на передней панели есть 7 светодиодов: Power — им управлять нельзя, один красный — питание кого либо по второму порту и 5 зеленых (WI-Fi, Eth2,2 USR, AP/CAP). Управлять светодиодом можно, назначив ему бридж интерфейс. Включаем, интерфейс светодиод загорается, отключаем — гаснет.

/system leds
set 1 interface=br1 type=interface-status
/interface bridge
set br1 disabled=yes; # гаснет
set br1 disabled=no;  # загорается

Кроме того, чтобы оповестить человека, мы должны придумать, как получить от него какую либо команду. Долго копал в сторону кнопки Reset/Mode, но ничего толком не узнал кроме возможности сбросить настройки, а хотелось бы знать, что же это такое Mode. Пришлось придумать нечто иное. У mAP 2n на борту есть два 10/100 Ethernet порта. По первому роутер можно питать, а по второму он сам будет источником питания, более того, роутер в состоянии определить, что к нему подключили устройство, которое можно питать. Это происходит ввиду наличие сопротивления на 4,5 — 7,8 контактах Ethernet порта от 3kΩ до 26.5kΩ. Не долго думая, соорудили на основе Ethernet коннектора, кнопки от корпуса ПК и резистора на 4kΩ следующую штуку:

Программно проверяем кнопку так:

/interface ethernet
poe set eth3 poe-out=auto-on;
:local status;
/interface ethernet poe monitor eth3 once do={
   :set status $"poe-out-status";
};
:if ($status = "powered-on") do={
   # нажали кнопку
};

Канал связи с человеком имеется необходимо определиться, что именно будем проверять и в какой последовательности.

Начнем:

1. Наличие линка на порту без него дальше и проверять ненужно ничего. Проверять линк будем cable-test инструментом что проверит кабель физически.

:local link;
/interface ethernet cable-test eth2 once do={
   :set link $"status";
};
:if ($link = "link-ok") do={
   # все ок
};

2. На порту должно быть 100Mbps. Многие коммутаторы в виду своих железных проблем начинают глючить и выдают 10Mbps на порт, что нам и нужно исключить. Делаем это так:

:if ([/interface ethernet get eth2 speed] = "100Mbps") do={
   # все ок
};

3. Пинги куда без них? Пингуем шлюз. Тут нужно пропинговать шлюз обычными и большими пакетами это выявит возможные проблемы в цепочке до шлюза. Делаем это так:

:if ([/ping address=[/ip dhcp-client get 0 gateway] interface=ethernet count=1 interval=200ms] = 1) do={
   :if ([/ping address=[/ip dhcp-client get 0 gateway] interface=ethernet count=1 interval=200ms size=1500] = 1) do={
      # все ок
   };
};

4. Дополнительно по нажатию нашей кнопки тестируем VPN(можно и что либо другое в нашем случае это pptp) и доступ в интернет.

:local gateway "8.8.8.8"; # наш шлюз в интернете
:if ([/interface pptp-client get vpn disabled] != false) do={
   /interface pptp-client set vpn disabled=no;
};
:if ([/interface pptp-client get vpn running] = true) do={
   :if ([/ping address=$gateway interface=vpn count=1 interval=200ms size=1500] = 1) do={
      # все ок
   };
};

Информировать человека было решено так:
Первый тест — проверка линка если все хорошо, то ничего не горит, если все плохо то горит красный светодиод.
Второй тест — проверка на порту 100Mbps, если все хорошо, то горит первый зеленый светодиод, если все плохо то ничего не горит.
Третий тест — пинги если короткие и длинные пинги прошли горит второй зеленый светодиод, если прошли короткие, а длинные пинги нет, то второй светодиод моргает, если ничего не получается второй светодиод не горит.
Четвертый тест по нажатию кнопки, только если все предыдущие удачно завершились — тест VPN и интернета если VPN работает и пинг до внешнего шлюза прошли то горит третий зеленый светодиод, если VPN работает, а пинги не прошли, то третий зеленый светодиод моргает иначе третий зеленый светодиод не горит.

На любом из этапов при провале какого либо теста все тестирование должно возвращаться к началу. Ведь мы можем перебирать кабеля и тестить несколько по очереди. Так же повторюсь кнопкой для проверки VPN и интернета можно воспользоваться только при удачном прохождении предыдущих тестов.

Для первого порта сделали маленький удлинитель, что стало поудобнее и главное исключило возможность запитать его по данному порту.

Светодиод Eth3 — сигнализирует об Wi-Fi активности, ну а Eth2 об линке Eth2. Wi-Fi на устройстве настроен и есть доступ к его управлению со смартфона. Тут можно еще приложение написать для дополнительных тестов через смартфон, но это уже другая история.

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

Вот такой скрипт получился в итоге:В скрипте:
test1, test2, test3 — бридж интерфейсы с привязкой к ним трех светодиодов крайне левых (кроме первого — Power)
link — второй Ethernet порт
ethernet — первый Ethernet порт
off — бридж интерфейс для программной остановки скрипта. Нужен был в отладке для удобства.
8.8.8.8 — заменил адрес нашего шлюза на Google DNS
vpn — pptp соединение

{
    :log info [
        :time {
            :local gateway "8.8.8.8";
            /interface bridge set test1 disabled=yes;
            /interface bridge set test2 disabled=yes;
            /interface bridge set test3 disabled=yes;
            /interface ethernet poe set link poe-out=forced-on;
            /interface pptp-client set vpn disabled=yes;
            :delay 3;
            :local link;
            :local status;
            :local flag false;
            :while ([/interface bridge get off disabled] = true) do={
                /interface ethernet cable-test ethernet once do={
                    :set link $"status";
                };
                :if ($link = "link-ok") do={
                    :if ([/interface ethernet poe get link poe-out] = "forced-on") do={
                        /interface ethernet poe set link poe-out=off;
                    };
                    :if ([/interface ethernet get ethernet speed] = "100Mbps") do={
                        :if ([/interface bridge get test1 disabled] != false) do={
                            /interface bridge set test1 disabled=no;
                        };
                        :if ([/ping address=[/ip dhcp-client get 0 gateway] interface=ethernet count=1 interval=200ms] = 1) do={
                            :if ([/ping address=[/ip dhcp-client get 0 gateway] interface=ethernet count=1 interval=200ms size=1500] = 1) do={
                                :if ([/interface bridge get test2 disabled] != false) do={
                                    /interface bridge set test2 disabled=no;
                                };
                                :if ($flag != true) do={
                                    :if ([/interface ethernet poe get link poe-out] != "auto-on") do={
                                        /interface ethernet poe set link poe-out=auto-on;
                                    };
                                };
                                /interface ethernet poe monitor link once do={
                                    :set status $"poe-out-status";
                                };
                                :if (([/interface ethernet poe get link poe-out] = "auto-on" and $status = "powered-on") or $flag = true) do={
                                    :if ($flag != true) do={
                                        :set flag true;
                                        :if ([/interface pptp-client get vpn disabled] != false) do={
                                            /interface pptp-client set vpn disabled=no;
                                        };
                                        :if ([/interface ethernet poe get link poe-out] != "off") do={
                                            /interface ethernet poe set link poe-out=off;
                                        }
                                    };
                                    :if ([/interface pptp-client get vpn running] = true) do={
                                        :if ([/ping address=$gateway interface=vpn count=1 interval=200ms size=1500] = 1) do={
                                            :if ([/interface bridge get test3 disabled] != false) do={
                                                /interface bridge set test3 disabled=no;
                                            }
                                        } else={
                                            :if ([/interface bridge get test3 disabled] != false) do={
                                                /interface bridge set test3 disabled=no;
                                            };
                                            :delay 0.5;
                                            :if ([/interface bridge get test3 disabled] != true) do={
                                                /interface bridge set test3 disabled=yes;
                                            };
                                            :delay 0.5;
                                        }
                                    } else={
                                        :if ([/interface bridge get test3 disabled] != false) do={
                                            /interface bridge set test3 disabled=no;
                                        };
                                        :delay 0.5;
                                        :if ([/interface bridge get test3 disabled] != true) do={
                                            /interface bridge set test3 disabled=yes;
                                        };
                                        :delay 0.5;
                                    }
                                }
                            } else={
                                :if ([/interface ethernet poe get link poe-out] = "auto-on") do={
                                    /interface ethernet poe set link poe-out=off;
                                };
                                :if ([/interface pptp-client get vpn disabled] != true) do={
                                    /interface pptp-client set vpn disabled=yes;
                                };
                                :set flag false;
                                :if ([/interface bridge get test3 disabled] != true) do={
                                    /interface bridge set test3 disabled=yes;
                                };
                                :if ([/interface bridge get test2 disabled] != false) do={
                                    /interface bridge set test2 disabled=no;
                                };
                                :delay 0.5;
                                :if ([/interface bridge get test2 disabled] != true) do={
                                    /interface bridge set test2 disabled=yes;
                                };
                                :delay 0.5;
                            }
                        } else={
                            :if ([/interface ethernet poe get link poe-out] = "auto-on") do={
                                /interface ethernet poe set link poe-out=off;
                            };
                            :if ([/interface pptp-client get vpn disabled] != true) do={
                                /interface pptp-client set vpn disabled=yes;
                            };
                            :set flag false;
                            :if ([/interface bridge get test2 disabled] != true) do={
                                /interface bridge set test2 disabled=yes;
                            };
                            :if ([/interface bridge get test3 disabled] != true) do={
                                /interface bridge set test3 disabled=yes;
                            }
                        }
                    } else={
                        :if ([/interface ethernet poe get link poe-out] = "auto-on") do={
                            /interface ethernet poe set link poe-out=off;
                        };
                        :if ([/interface pptp-client get vpn disabled] != true) do={
                            /interface pptp-client set vpn disabled=yes;
                        };
                        :set flag false;
                        :if ([/interface bridge get test1 disabled] != true) do={
                            /interface bridge set test1 disabled=yes;
                        };
                        :if ([/interface bridge get test2 disabled] != true) do={
                            /interface bridge set test2 disabled=yes;
                        };
                        :if ([/interface bridge get test3 disabled] != true) do={
                            /interface bridge set test3 disabled=yes;
                        }
                    }
                } else={
                    :if ([/interface ethernet poe get link poe-out] != "forced-on") do={
                        /interface ethernet poe set link poe-out=forced-on;
                    };
                    :if ([/interface pptp-client get vpn disabled] != true) do={
                        /interface pptp-client set vpn disabled=yes;
                    };
                    :set flag false;
                    :if ([/interface bridge get test1 disabled] != true) do={
                        /interface bridge set test1 disabled=yes;
                    };
                    :if ([/interface bridge get test2 disabled] != true) do={
                        /interface bridge set test2 disabled=yes;
                    };
                    :if ([/interface bridge get test3 disabled] != true) do={
                        /interface bridge set test3 disabled=yes;
                    };
                    :delay 3;
                }
            };
            :if ([/interface ethernet poe get link poe-out] != "off") do={
                /interface ethernet poe set link poe-out=off;
            };
            :if ([/interface pptp-client get vpn disabled] != true) do={
                /interface pptp-client set vpn disabled=yes;
            };
            :if ([/interface bridge get test1 disabled] != true) do={
                /interface bridge set test1 disabled=yes;
            };
            :if ([/interface bridge get test2 disabled] != true) do={
                /interface bridge set test2 disabled=yes;
            };
            :if ([/interface bridge get test3 disabled] != true) do={
                /interface bridge set test3 disabled=yes;
            };
            :if ([/interface bridge get off disabled] != true) do={
                /interface bridge set off disabled=yes;
            }
        }
    ]
}

Сам скрипт должен стартовать сразу после запуска роутера. Для этого воспользуемся scheduler:

/system scheduler
add name=tester on-event=":delay 3;/system script run tester;" policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive start-time=startup

Конфиг роутера.

# RouterOS 6.21.1
#
/interface bridge
add disabled=yes mtu=1500 name=off
add mtu=1500 name=test1
add mtu=1500 name=test2
add mtu=1500 name=test3
/interface ethernet
set [ find default-name=ether1 ] name=ethernet
set [ find default-name=ether2 ] name=link poe-out=off
/interface wireless
set [ find default-name=wlan1 ] band=2ghz-b/g/n channel-width=20/40mhz-Ce \
    country=russia disabled=no distance=indoors frequency=2437 \
    frequency-mode=superchannel l2mtu=1600 mode=ap-bridge radio-name="" ssid=\
    wifiточка wireless-protocol=802.11
/interface wireless nstreme
set wlan1 enable-polling=no
/ip neighbor discovery
set ethernet discover=no
/interface wireless security-profiles
set [ find default=yes ] authentication-types=wpa-psk,wpa2-psk eap-methods="" \
    group-ciphers=tkip,aes-ccm mode=dynamic-keys unicast-ciphers=tkip,aes-ccm \
    wpa-pre-shared-key=пароль wpa2-pre-shared-key=пароль
/ip pool
add name=default-dhcp ranges=192.168.88.10-192.168.88.254
/ip dhcp-server
add address-pool=default-dhcp disabled=no interface=wlan1 name=default
/interface pptp-client
add add-default-route=no allow=mschap1,mschap2 connect-to=vpn.сервер.ru \
    dial-on-demand=no disabled=no keepalive-timeout=60 max-mru=1400 max-mtu=\
    1400 mrru=disabled name=vpn password=пароль profile=default-encryption \
    user=логин
/system logging action
set 1 disk-file-name=""
set 2 remember=yes
/interface bridge port
add interface=link
add interface=wlan1
/ip address
add address=192.168.88.1/24 interface=wlan1 \
    network=192.168.88.0
/ip dhcp-client
add dhcp-options=hostname,clientid disabled=\
    no interface=ethernet use-peer-ntp=no
/ip dhcp-server network
add address=192.168.88.0/24 dns-server=\
    192.168.88.1 gateway=192.168.88.1
/ip dns
set allow-remote-requests=yes
/ip dns static
add address=192.168.88.1 name=router
/ip firewall filter
add chain=input protocol=icmp
add chain=input connection-state=established
add chain=input connection-state=related
add action=drop chain=input in-interface=\
    all-ppp
add chain=forward connection-state=\
    established
add chain=forward connection-state=related
add action=drop chain=forward \
    connection-state=invalid
/ip firewall mangle
add action=mark-routing chain=prerouting new-routing-mark=vpn src-address=\
    192.168.88.10-192.168.88.254
/ip firewall nat
add action=masquerade chain=srcnat \
    out-interface=all-ppp
/ip route
add distance=1 gateway=vpn routing-mark=vpn
/ip upnp
set allow-disable-external-interface=no
/snmp
set trap-community=public
/system clock manual
set time-zone=+05:00
/system leds
set 1 interface=wlan1 type=wireless-status
set 3 interface=test2 type=interface-status
set 4 interface=test1 type=interface-status
add interface=test3 leds=user-led type=interface-status
/system routerboard settings
set cpu-frequency=400MHz
/system scheduler
add name=tester on-event=":delay 3;\r\
    \n/system script run tester;" policy=\
    ftp,reboot,read,write,policy,test,password,sniff,sensitive start-time=\
    startup
/system script
add name=tester policy=\
    ftp,reboot,read,write,policy,test,password,sniff,sensitive source="{:log i\
    nfo [:time {:local gateway \"8.8.8.8\";/interface bridge set test1 di\
    sabled=yes;/interface bridge set test2 disabled=yes;/interface bridge set \
    test3 disabled=yes;/interface ethernet poe set link poe-out=forced-on;/int\
    erface pptp-client set vpn disabled=yes;:delay 3;:local link;:local status\
    ;:local flag false;:while ([/interface bridge get off disabled] = true) do\
    ={/interface ethernet cable-test ethernet once do={:set link \$\"status\";\
    };:if (\$link = \"link-ok\") do={:if ([/interface ethernet poe get link po\
    e-out] = \"forced-on\") do={/interface ethernet poe set link poe-out=off;}\
    ;:if ([/interface ethernet get ethernet speed] = \"100Mbps\") do={:if ([/i\
    nterface bridge get test1 disabled] != false) do={/interface bridge set te\
    st1 disabled=no;};:if ([/ping address=[/ip dhcp-client get 0 gateway] inte\
    rface=ethernet count=1 interval=200ms] = 1) do={:if ([/ping address=[/ip d\
    hcp-client get 0 gateway] interface=ethernet count=1 interval=200ms size=1\
    500] = 1) do={:if ([/interface bridge get test2 disabled] != false) do={/i\
    nterface bridge set test2 disabled=no;};:if (\$flag != true) do={:if ([/in\
    terface ethernet poe get link poe-out] != \"auto-on\") do={/interface ethe\
    rnet poe set link poe-out=auto-on;}};/interface ethernet poe monitor link \
    once do={:set status \$\"poe-out-status\";};:if (([/interface ethernet poe\
    \_get link poe-out] = \"auto-on\" and \$status = \"powered-on\") or \$flag\
    \_= true) do={:if (\$flag != true) do={:set flag true;:if ([/interface ppt\
    p-client get vpn disabled] != false) do={/interface pptp-client set vpn di\
    sabled=no;};:if ([/interface ethernet poe get link poe-out] != \"off\") do\
    ={/interface ethernet poe set link poe-out=off;}};:if ([/interface pptp-cl\
    ient get vpn running] = true) do={:if ([/ping address=\$gateway interface=\
    vpn count=1 interval=200ms size=1500] = 1) do={:if ([/interface bridge get\
    \_test3 disabled] != false) do={/interface bridge set test3 disabled=no;}}\
    \_else={:if ([/interface bridge get test3 disabled] != false) do={/interfa\
    ce bridge set test3 disabled=no;};:delay 0.5;:if ([/interface bridge get t\
    est3 disabled] != true) do={/interface bridge set test3 disabled=yes;};:de\
    lay 0.5;}} else={:if ([/interface bridge get test3 disabled] != false) do=\
    {/interface bridge set test3 disabled=no;};:delay 0.5;:if ([/interface bri\
    dge get test3 disabled] != true) do={/interface bridge set test3 disabled=\
    yes;};:delay 0.5;}}} else={:if ([/interface ethernet poe get link poe-out]\
    \_= \"auto-on\") do={/interface ethernet poe set link poe-out=off;};:if ([\
    /interface pptp-client get vpn disabled] != true) do={/interface pptp-clie\
    nt set vpn disabled=yes;};:set flag false;:if ([/interface bridge get test\
    3 disabled] != true) do={/interface bridge set test3 disabled=yes;};:if ([\
    /interface bridge get test2 disabled] != false) do={/interface bridge set \
    test2 disabled=no;};:delay 0.5;:if ([/interface bridge get test2 disabled]\
    \_!= true) do={/interface bridge set test2 disabled=yes;};:delay 0.5;}} el\
    se={:if ([/interface ethernet poe get link poe-out] = \"auto-on\") do={/in\
    terface ethernet poe set link poe-out=off;};:if ([/interface pptp-client g\
    et vpn disabled] != true) do={/interface pptp-client set vpn disabled=yes;\
    };:set flag false;:if ([/interface bridge get test2 disabled] != true) do=\
    {/interface bridge set test2 disabled=yes;};:if ([/interface bridge get te\
    st3 disabled] != true) do={/interface bridge set test3 disabled=yes;}}} el\
    se={:if ([/interface ethernet poe get link poe-out] = \"auto-on\") do={/in\
    terface ethernet poe set link poe-out=off;};:if ([/interface pptp-client g\
    et vpn disabled] != true) do={/interface pptp-client set vpn disabled=yes;\
    };:set flag false;:if ([/interface bridge get test1 disabled] != true) do=\
    {/interface bridge set test1 disabled=yes;};:if ([/interface bridge get te\
    st2 disabled] != true) do={/interface bridge set test2 disabled=yes;};:if \
    ([/interface bridge get test3 disabled] != true) do={/interface bridge set\
    \_test3 disabled=yes;}}} else={:if ([/interface ethernet poe get link poe-\
    out] != \"forced-on\") do={/interface ethernet poe set link poe-out=forced\
    -on;};:if ([/interface pptp-client get vpn disabled] != true) do={/interfa\
    ce pptp-client set vpn disabled=yes;};:set flag false;:if ([/interface bri\
    dge get test1 disabled] != true) do={/interface bridge set test1 disabled=\
    yes;};:if ([/interface bridge get test2 disabled] != true) do={/interface \
    bridge set test2 disabled=yes;};:if ([/interface bridge get test3 disabled\
    ] != true) do={/interface bridge set test3 disabled=yes;};:delay 3;}};:if \
    ([/interface ethernet poe get link poe-out] != \"off\") do={/interface eth\
    ernet poe set link poe-out=off;};:if ([/interface pptp-client get vpn disa\
    bled] != true) do={/interface pptp-client set vpn disabled=yes;};:if ([/in\
    terface bridge get test1 disabled] != true) do={/interface bridge set test\
    1 disabled=yes;};:if ([/interface bridge get test2 disabled] != true) do={\
    /interface bridge set test2 disabled=yes;};:if ([/interface bridge get tes\
    t3 disabled] != true) do={/interface bridge set test3 disabled=yes;};:if (\
    [/interface bridge get off disabled] != true) do={/interface bridge set of\
    f disabled=yes;}}]}"
/tool mac-server
set [ find default=yes ] disabled=yes
add interface=link
add interface=wlan1
add interface=ethernet
/tool mac-server mac-winbox
set [ find default=yes ] disabled=yes
add interface=link
add interface=wlan1
add interface=ethernet

Надеюсь данный материал будет кому нибудь полезен. В конце прикреплю несколько фото поделки.

P.S. Сейчас по нажатию кнопки еще и статистика сбрасывается на email сисадмина. Так же результат теста ширины канала и еще некоторая информация которая может пригодиться.

Переключение маршрутов на MikroTik при пропадании пинга к хосту

Существует простая схема резервирования соединений с интернетом установкой разной метрики на маршруты и опрос шлюза пингами или арпами для проверки его доступности. Но иногда для соединения с провайдером используется специфичный роутер устанавливающий специфичный протокол тунелирования. Те же 4G модемы YOTA являются маршрутизаторами с USB интерфейсом не всегда совместимы с MikroTik. Для работы с ними приходится использовать промежуточные маршрутизаторы, которые будут пинговаться даже если интернет пропадёт в сети YOTA.

Для тех кто не хочет тратить своё дорогое время на изучение данного мануала предлагаем нашу платную помощь.

В этом случае создаются марки маршрутов на хосты с высоким тайм апом. Например: 8.8.8.8, 8.8.4.4, 77.88.8.8, 77.88.8.1

Создаём основной маршрут на хост 0.0.0.0/0 с марком route-gw1 и коментарием kam_gw1. Комментарий необходим так как в будущем невозможно обратится к номеру маршрута командой ввиду того, что они меняются. Приходится искать скриптом комментарий.

/ip route
add check-gateway=ping comment=kam_gw1 disabled=no distance=1 dst-address=\
0.0.0.0/0 gateway=192.168.0.1 routing-mark=route-gw1 scope=30 target-scope=10

Само собой должен быть и дополнительный маршрут на шлюз 192.168.1.1 который будет работать при отключении первого:

/ip route
add check-gateway=ping comment=kam_gw2 disabled=no distance=5 dst-address=\
0.0.0.0/0 gateway=192.168.1.1 routing-mark=route-gw1 scope=30 target-scope=10

Создадим контрольный маршрут для роутера к хосту 8.8.8.8 c марком route-1. Смысл в том что если будет пропадать/появляться пинг к хосту 8.8.8.8 c маршрутизатора NetWatch будет переключать маршрут для пользователей интернета с коментарием kam_gw1

/ip route
add check-gateway=ping comment=kontrolnij disabled=no distance=1 dst-address=\
8.8.8.8/32 gateway=192.168.0.1 routing-mark=route-1 scope=30 target-scope=10

Создадим правило маршрутизации в ip route rules для таблицы route-1 и это сделает таблицу маршрутизации для самого роутера однозначной.

Создадим проверку 8.8.8.8 в netwatch на доступность c правилами на падение и подъём хоста:

выключаем маршрут c комментарием kam_gw1 если пинг пропадает:

ip route set [find comment=kam_gw1] disable=yes 

включаем первый маршрут c комментарием kam_gw1 если пинг появляется:

ip route set [find comment=kam_gw1] disable=no

 

 

Не пингуются внешние адреса с клиентских машин (Mikrotik) — Хабр Q&A

Коллеги, проблема с багом в 6.11, обновляйте до 6.13 (дата выхода 15-05-2014)

БЫЛО:
C:\Users\Test>ping yandex.ru -t
Обмен пакетами с yandex.ru [93.158.134.11] с 32 байтами данных:
Превышен интервал ожидания для запроса.
Превышен интервал ожидания для запроса.
Статистика Ping для 93.158.134.11:
Пакетов: отправлено = 509, получено = 20, потеряно = 489 (96% потерь)
Приблизительное время приема-передачи в мс:
Минимальное = 2мсек, Максимальное = 3 мсек, Среднее = 2 мсек

C:\Users\Test>tracert 87.250.251.3
Трассировка маршрута к www.yandex.ru [87.250.251.3]
с максимальным числом прыжков 30:
1 <1 мс <1 мс <1 мс 172.100.100.1
2 * * * Превышен интервал ожидания для запроса.
3 * * * Превышен интервал ожидания для запроса.
4 1 ms <1 мс 1 ms 217.106.30.222
5 * * * Превышен интервал ожидания для запроса.
6 3 ms 3 ms 3 ms iva-p2-be5.yndx.net [87.250.239.19]
7 * * * Превышен интервал ожидания для запроса.
…..
30 * * * Превышен интервал ожидания для запроса.

СТАЛО:
C:\Users\Test>ping yandex.ru -t
Обмен пакетами с yandex.ru [93.158.134.11] с 32 байтами данных:
Ответ от 93.158.134.11: число байт=32 время=2мс TTL=56
Ответ от 93.158.134.11: число байт=32 время=2мс TTL=56
Ответ от 93.158.134.11: число байт=32 время=2мс TTL=56
Статистика Ping для 93.158.134.11:
Пакетов: отправлено = 3, получено = 3, потеряно = 0 (0% потерь)
Приблизительное время приема-передачи в мс:
Минимальное = 2мсек, Максимальное = 2 мсек, Среднее = 2 мсек

C:\Users\Test>tracert yandex.ru
Трассировка маршрута к yandex.ru [93.158.134.11]
с максимальным числом прыжков 30:
1 <1 мс <1 мс <1 мс 172.100.100.1
2 1 ms <1 мс <1 мс ххх.ххх.0.133
3 1 ms 1 ms <1 мс 217.107.215.217
4 * * * Превышен интервал ожидания для запроса.
5 * * * Превышен интервал ожидания для запроса.
6 * * * Превышен интервал ожидания для запроса.
7 1 ms 1 ms 1 ms ugr-b-c1-ae5.yndx.net [87.250.239.97]
8 2 ms 1 ms 1 ms yandex.ru [93.158.134.11]
Трассировка завершена.

Прыгает ping по Wi-Fi, роутер mikrotik. Куда копать? — Хабр Q&A

Суть такая что я с mikrotik столкнулся второй раз в жизни.
Всё настроил, интернет работает нормально по проводам, а вот Wi-Fi лагает.
Пинг от Wi-Fi клиента:

Ответ от 95.213.11.146: число байт=32 время=26мс TTL=56
Ответ от 95.213.11.146: число байт=32 время=459мс TTL=56
Ответ от 95.213.11.146: число байт=32 время=26мс TTL=56
Ответ от 95.213.11.146: число байт=32 время=26мс TTL=56
Ответ от 95.213.11.146: число байт=32 время=26мс TTL=56
Ответ от 95.213.11.146: число байт=32 время=26мс TTL=56
Ответ от 95.213.11.146: число байт=32 время=26мс TTL=56
Ответ от 95.213.11.146: число байт=32 время=386мс TTL=56
Ответ от 95.213.11.146: число байт=32 время=26мс TTL=56
Ответ от 95.213.11.146: число байт=32 время=26мс TTL=56
Ответ от 95.213.11.146: число байт=32 время=26мс TTL=56
Ответ от 95.213.11.146: число байт=32 время=26мс TTL=56
Ответ от 95.213.11.146: число байт=32 время=28мс TTL=56
Ответ от 95.213.11.146: число байт=32 время=363мс TTL=56
Ответ от 95.213.11.146: число байт=32 время=26мс TTL=56
Ответ от 95.213.11.146: число байт=32 время=26мс TTL=56
Ответ от 95.213.11.146: число байт=32 время=26мс TTL=56
Ответ от 95.213.11.146: число байт=32 время=26мс TTL=56
Ответ от 95.213.11.146: число байт=32 время=26мс TTL=56
Ответ от 95.213.11.146: число байт=32 время=292мс TTL=56
Ответ от 95.213.11.146: число байт=32 время=26мс TTL=56
Ответ от 95.213.11.146: число байт=32 время=26мс TTL=56
Ответ от 95.213.11.146: число байт=32 время=26мс TTL=56
Ответ от 95.213.11.146: число байт=32 время=26мс TTL=56

Настройки роутера (RB9151G-2HnD):

[[email protected]] > export compact
# dec/09/2016 12:37:22 by RouterOS 6.37.3
# software id = JNKG-S02Y
#
/interface bridge
add admin-mac=6C:3B:6B:03:04:0F auto-mac=no comment=defconf name=bridge
/interface wireless
set [ find default-name=wlan1 ] band=2ghz-onlyn country=russia2 disabled=no distance=indoors frequency=2442 mode=ap-bridge ssid=KVAZAR wireless-protocol=802.11
/interface ethernet
set [ find default-name=ether2 ] name=ether2-master
set [ find default-name=ether3 ] master-port=ether2-master
set [ find default-name=ether4 ] master-port=ether2-master
set [ find default-name=ether5 ] master-port=ether2-master
/interface pppoe-client
add add-default-route=yes disabled=no interface=ether1 name=pppoe-out1 password=MyPass use-peer-dns=yes user=MyLogin
/ip neighbor discovery
set ether1 discover=no
set bridge comment=defconf
/interface wireless security-profiles
set [ find default=yes ] authentication-types=wpa-psk,wpa2-psk mode=dynamic-keys wpa-pre-shared-key=2qvwups8 wpa2-pre-shared-key=2qvwups8
/ip pool
add name=dhcp ranges=10.10.10.10-10.10.10.250
/ip dhcp-server
add address-pool=dhcp disabled=no interface=bridge name=defconf
/interface bridge port
add bridge=bridge comment=defconf interface=ether2-master
add bridge=bridge comment=defconf interface=wlan1
/ip address
add address=10.10.10.1/24 comment=defconf interface=ether2-master network=10.10.10.0
/ip dhcp-client
add comment=defconf dhcp-options=hostname,clientid interface=ether1
/ip dhcp-server lease
add address=10.10.10.10 comment="Server CRM" mac-address=54:04:A6:CD:FF:3A server=defconf
add address=10.10.10.5 client-id=1:38:d5:47:82:47:c0 comment="ASUS RT-N12 Access Point" mac-address=38:D5:47:82:47:C0 server=defconf
add address=10.10.10.25 client-id=1:70:8b:cd:42:f1:11 mac-address=70:8B:CD:42:F1:11 server=defconf
/ip dhcp-server network
add address=10.10.10.0/24 comment=defconf gateway=10.10.10.1 netmask=24
/ip dns
set allow-remote-requests=yes
/ip dns static
add address=10.10.10.1 name=router
/ip firewall filter
add action=fasttrack-connection chain=forward comment="defconf: fasttrack" connection-state=established,related
add action=accept chain=forward comment="defconf: accept established,related" connection-state=established,related
add action=drop chain=forward comment="defconf: drop invalid" connection-state=invalid
add action=drop chain=forward comment="defconf:  drop all from WAN not DSTNATed" connection-nat-state=!dstnat connection-state=new in-interface=ether1
add action=accept chain=input protocol=icmp
add action=accept chain=input connection-state=established
add action=accept chain=input connection-state=related
add action=drop chain=input in-interface=pppoe-out1
add action=accept chain=forward layer7-protocol=*1 src-address=0.0.0.0
/ip firewall nat
add action=masquerade chain=srcnat comment="defconf: masquerade" out-interface=pppoe-out1
/ip upnp
set enabled=yes
/ip upnp interfaces
add interface=bridge type=internal
add interface=pppoe-out1 type=external
/system clock
set time-zone-name=Europe/Moscow
/system leds
set 0 interface=wlan1
/system routerboard settings
set protected-routerboot=disabled
/tool mac-server
set [ find default=yes ] disabled=yes
add interface=bridge
/tool mac-server mac-winbox
set [ find default=yes ] disabled=yes
add interface=bridge

Вторая точка доступа на этаж ниже SSID и WPAKey теже.
Пробовал её отключать. Всё то же самое.
Частота(канал) выбрал самый свободный. он даже не перекрывается с соседями по всей ширине…
Загрузка CPU 0-15%, в среднем 9%.
Микротик взяли специально что бы сеть работала стабильно, а получается что постоянные проблемы со связью(IP телефония заикается и булькает)
Гуру Микротиков, просветите пожалуйста куда копать, что я делаю не так?

Микротик не отвечает на пинги через WAN, mangle настроен, интернет есть. Что может быть не так?

главная
— Статьи — Mikrotik

Дата обновления: 17.09.2020

Теги: Mikrotik

Если вы ищете руководство по настройке dual-wan failover на микротике, то среди задач вы будете решать, как сделать, чтобы при пинге через ISP1 микротик направлял бы ответ через шлюз GW1, а при пинге через ISP2 — соответственно, через GW2.

Штука в том, что даже если все правильно настроено, и NAT работает, и локальные клиенты в сеть ходят, и firewall вроде разрешает пинг снаружи, а снаружи к микротику не обратиться. Не пингуется и все тут.

Освоить MikroTik Вы можете с помощью онлайн-куса «Настройка оборудования MikroTik». Курс основан на официальной программе MTCNA. Автор курса – официальный тренер MikroTik. Подходит и тем, кто уже давно работает с микротиками, и тем, кто еще их не держал в руках. В курс входит 162 видеоурока, 45 лабораторных работ, вопросы для самопроверки и конспект.

Вы наверняка видели что-то вроде:

/ip firewall mangle
add chain=input action=mark-connection new-connection-mark=ISP1->Input passthrough=no dst-address=IP1 in-interface=ether1
add chain=output action=mark-routing new-routing-mark=ISP1 passthrough=no connection-mark=ISP1->Input
add chain=input action=mark-connection new-connection-mark=ISP2->Input passthrough=no dst-address=IP2 in-interface=ether2
add chain=output action=mark-routing new-routing-mark=ISP2 passthrough=no connection-mark=ISP2->Input

Т.е.:
1) если пришел пакет со стороны провайдера ISP1 (через интерфейс ether1) с конечным адресом нашего микротика IP1 (т.е. в input), то пометить это соединение меткой «ISP1->Input».
2) исходящий трафик, связанный с установленным ранее соединеним, помеченным меткой «ISP1->Input», маршрутизировать по правилам таблицы ISP1.

Аналогично для входящих пакетов со стороны провайдера ISP2.

И все бы хорошо, если у вас есть маршрут по-умолчанию без указания таблицы маршрутизации.

Но у вас могут быть только такие дефолтные машруты (до 0.0.0.0/0):

/ip route
add distance=1 gateway=GW1 routing-mark=ISP1
add distance=1 gateway=GW2 routing-mark=ISP2

и ни одного маршрута по-умолчанию без указания routing-mark. Т.е. основная таблица маршрутизации пустая.

При пинге IP1 снаружи через ISP1 (input) из примера выше входящий пакет будет принят, промаркируется соединение (new-connection-mark=ISP1->Input). А вот ответ (output) никуда не уйдет, т.к. ответный пакет не попадет в output. Вообще. И промаркирован он не будет. И микротик не отправит его никуда.

 

Решить проблему можно по-разному.

1. prerouting вместо output

Любой пакет до того, как будет принято решение о его судьбе, проходит цепочку prerouting. И если заменить output на prerouting, то еще до попадания в output пакет будет промаркирован для маршрутизации через таблицу ISP1 (new-routing-mark=ISP1), далее будет принято верное решение о необходимости отправить пакет в output.

2. добавить маршруты по-умолчанию без указания таблиц маршрутизации

Например, как-то так:

/ip route
add distance=1 gateway=GW1 distance=10
add distance=1 gateway=GW2 distance=10

Или даже просто один из них:

/ip route add distance=1 gateway=GW1 distance=10

Не важно, будет этот маршрут доступен или нет, осноная таблица маршрутизации не будет пустой и микротик начнет искать замену этому маршруту. А если в основной таблице пусто — то и микротик делать ничего не будет и дело не дойдет до момента маркировки пакета в mangle -> output.

Освоить MikroTik Вы можете с помощью онлайн-куса «Настройка оборудования MikroTik». Курс основан на официальной программе MTCNA. Автор курса – официальный тренер MikroTik. Подходит и тем, кто уже давно работает с микротиками, и тем, кто еще их не держал в руках. В курс входит 162 видеоурока, 45 лабораторных работ, вопросы для самопроверки и конспект.

Авторизуйтесь для добавления комментариев!

MikroTik. Правильный dst nat при использовании 2-х и более провайдеров / Хабр

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

В этой статье я не только предоставлю готовый набор правил, но и постараюсь максимально доступно объяснить почему и как именно они работают.

Конкретно в моем случае, нужно было настроить роутер так, чтобы web-сервер в локальной сети за ним был доступен по IP любого из 3-х провайдеров.

Часть 1.

Для начала пробежимся по всем настройкам, дабы самые нетерпеливые могли скопипастить не читая.

Версия RouterOS:

# oct/11/2016 22:02:32 by RouterOS 6.37.1
# software id = X62B-STGZ

Интерфейсы:

/interface list
add name=WAN
/interface list member
add interface=ISP1 list=WAN
add interface=ISP2 list=WAN
add interface=ISP3 list=WAN

Не помню начиная с какой версии RouterOS появилась эта фишка. Она позволяет группировать интерфейсы, что весьма удобно (например, в правилах /ip firewall). У меня создана группа из 3-х WAN-интерфейсов.
AcidVenom подсказал, что в 6.36

IP-адреса (адреса, по понятным причинам, «левые»):

/ip address
add address=192.168.0.1/24 comment=defconf interface=bridge network=192.168.0.0
add address=95.11.29.240/24 interface=ISP1 network=95.11.29.0
add address=5.35.59.162/27 interface=ISP2 network=5.35.59.160
add address=5.98.112.30/30 interface=ISP3 network=5.98.112.28

Роутинг:

/ip route
add distance=1 gateway=95.11.29.254 routing-mark=ISP1-route
add distance=1 gateway=5.35.59.161 routing-mark=ISP2-route
add distance=1 gateway=5.98.112.29 routing-mark=ISP3-route
add check-gateway=ping distance=1 gateway=8.8.8.8
add check-gateway=ping distance=2 gateway=8.8.4.4
add check-gateway=ping distance=3 gateway=1.1.36.3
add distance=1 dst-address=8.8.4.4/32 gateway=5.35.59.161 scope=10
add distance=1 dst-address=8.8.8.8/32 gateway=95.11.29.254 scope=10
add distance=1 dst-address=1.1.36.3/32 gateway=5.98.112.29 scope=10

Для организации Failover’а я настроил рекурсивную маршрутизацию, подробнее расскажу в 2-ой части.

Firewall (для данной публикации я сознательно привожу правила, разрешающие все.

Не делайте так!):

/ip firewall filter
add action=accept chain=forward
add action=accept chain=input
add action=accept chain=output

dst и src nat:

/ip firewall nat
add action=masquerade chain=srcnat out-interface-list=WAN
add action=dst-nat chain=dstnat comment="HTTP" dst-port=80 \
    in-interface-list=WAN protocol=tcp to-addresses=192.168.0.83 to-ports=80
add action=dst-nat chain=dstnat comment="HTTPs" dst-port=443 \
    in-interface-list=WAN protocol=tcp to-addresses=192.168.0.83 to-ports=443

mangle

/ip firewall mangle
add action=mark-connection chain=input in-interface=ISP1 \
    new-connection-mark=ISP1-conn passthrough=yes
add action=mark-routing chain=output connection-mark=ISP1-conn \
    new-routing-mark=ISP1-route passthrough=no
add action=mark-connection chain=input in-interface=ISP2 new-connection-mark=\
    ISP2-conn passthrough=yes
add action=mark-routing chain=output connection-mark=ISP2-conn \
    new-routing-mark=ISP2-route passthrough=no
add action=mark-connection chain=input in-interface=ISP3 \
    new-connection-mark=ISP3-conn passthrough=yes
add action=mark-routing chain=output connection-mark=ISP3-conn \
    new-routing-mark=ISP3-route passthrough=no
add action=mark-connection chain=forward in-interface=ISP1 \
    new-connection-mark=ISP1-conn-f passthrough=no
add action=mark-routing chain=prerouting connection-mark=ISP1-conn-f \
    in-interface=bridge new-routing-mark=ISP1-route 
add action=mark-connection chain=forward in-interface=ISP2 \
    new-connection-mark=ISP2-conn-f passthrough=no
add action=mark-routing chain=prerouting connection-mark=ISP2-conn-f \
    in-interface=bridge new-routing-mark=ISP2-route 
add action=mark-connection chain=forward in-interface=ISP3 \
    new-connection-mark=ISP3-conn-f passthrough=no
add action=mark-routing chain=prerouting connection-mark=ISP3-conn-f \
    in-interface=bridge new-routing-mark=ISP3-route 

Часть 2.

Рассмотрим все подробнее.

Роутинг:

глянь под спойлер, чтобы не листать

/ip route
add distance=1 gateway=95.11.29.254 routing-mark=ISP1-route
add distance=1 gateway=5.35.59.161 routing-mark=ISP2-route
add distance=1 gateway=5.98.112.29 routing-mark=ISP3-route

add check-gateway=ping distance=1 gateway=8.8.8.8
add check-gateway=ping distance=2 gateway=8.8.4.4
add check-gateway=ping distance=3 gateway=1.1.36.3

add distance=1 dst-address=8.8.4.4/32 gateway=5.35.59.161 scope=10
add distance=1 dst-address=8.8.8.8/32 gateway=95.11.29.254 scope=10
add distance=1 dst-address=1.1.36.3/32 gateway=5.98.112.29 scope=10

/ip route
В первых трех строчках мы указываем default gateway каждого из 3-х наших провайдеров.
Маршруты имеют одинаковый вес (distance), но работают в разных таблицах маршрутизации.

Другими словами, эти маршруты работают для пакетов промаркированных соответствующим тегом (routing-mark). Теги пакетам мы будем навешивать в /ip firewall mangle (о чем я подобно расскажу ниже).

Следующие 3 строки — указание маршрутов по умолчанию в основной таблице маршрутизации.

Здесь стоит обратить внимание на:

  1. Параметр distance. Для каждого маршрута разный и, соответственно, «вес» маршрутов тоже разный.

    ISP1 — основной, за ним ISP2 и ISP3 замыкает, т.е. при отказе провайдера ISP1 работать будем через ISP2, если и ISP2 почил в бозе, то за дело возьмется ISP3.

  2. Несколько непонятным может быть значение параметра gateway. Как это гугловые DNS и какой-то левый IP-адрес вдруг стали маршрутами по-умолчанию? Магия заключается в параметре scope из последних трех строк, а так же в самом механизме Nexthop lookup.

    На самом деле трафик отправится активному провайдеру, а дальше тот отправит его в Интернет через свои аплинки.

  3. О параметре check-gateway=ping. Суть в том, что в самой простой схеме построения Failover, указывая check-gateway=ping в маршрутах по умолчанию, мы проверяем связь только до маршрутизатора провайдера. Если же за маршрутизатором провайдера будет недоступен Интернет, то мы этого не поймем. А с помощью финта с параметром scope мы проверяем связь уже не с провайдером, а смотрим за него, в Интернет.

Под спойлером мой подробный перевод/адаптация вики MikroTik на эту тему.MikroTik. Nexthop_lookupАнглийский статьи http://wiki.mikrotik.com/wiki/Manual:IP/Route, на мой взгляд, слегка упорот. Это не Cisco CCNA Exploration, который читается на одном дыхании, но я постараюсь перевести ее отрывок максимально понятно. Если где-то увидите такую же упоротость, поправьте меня, пожалуйста.

Во-первых, определимся с некоторыми терминами.
Nexthop — следующий прыжок, если дословно. Следующий шлюз/роутер/маршрутизатор на пути следования пакета из точки А(от моего роутера, например) в точку Б (допустим до гуглового DNS 8.8.8.8), т.е. следующий транзитный участок, на котором будет обрабатываться пакет. В переводе будет использоваться словосочетание “следующий хоп” (простите за англицизм).

Immediate nexthop — следующий шлюз/роутер/маршрутизатор на пути следования пакета из точки А в точку Б, доступный непосредственно. Для моего домашнего MikroTik, с маршрутом по-умолчанию:

dst-address=0.0.0.0/0 gateway=89.189.163.1 gateway-status=89.189.163.1 reachable via ether1-gateway

89.189.163.1 — это и есть immediate nexthop, т.к. доступен он через ether1-gateway. В переводе будет использоваться словосочетание “непосредственно доступный следующий хоп”.

Connected route — связанный маршрут. Маршрут, шлюз которого доступен непосредственно.

Gateway — сетевой шлюз/роутер/маршрутизатор.

Я буду пользоваться всеми тремя вариантами перевода.

scope — Используется в механизме поиска следующего хопа, т.е. решения какой же хоп станет следующим. Нужный маршрут может быть выбран только среди маршрутов, значения scope которых меньше либо равно значению target-scope. Значения по-умолчанию зависят от протокола:

  • связанные маршруты: 10 (если интерфейс запущен(running))
  • OSPF, RIP, MME маршруты: 20
  • статические маршруты: 30
  • BGP маршруты: 40
  • связанные маршруты: 200 (если интерфейс не запущен)

target-scope — Используется в механизме поиска следующего хопа, т.е. решения какой же хоп станет следующим. Это максимальное значение параметра scope для маршрута, посредством которого может быть найден следующий хоп. Для iBGP значение установленно в 30 по-умолчанию.

Табличка значений обоих параметров.

Поиск следующего хопа.

Поиск следующего хопа является частью процесса выбора маршрута.

Маршрутам, находящимся в FIB, нужен интерфейс, соответствующий каждому из адресов шлюзов. Адрес следующего хопа-шлюза должен быть непосредственно доступен через этот интерфейс. Интерфейс, который следует использовать для посылки исходящего пакета каждому из шлюзов, находится с помощью поиска следующего хопа.

Некоторые маршруты (например, iBGP), в качестве адреса шлюза, могут иметь адрес принадлежащий маршрутизатору, находящемуся через несколько прыжков-шлюзов от нашего MikroTik. Для установки таких маршрутов в FIB необходимо найти адрес шлюза, доступного непосредственно (an immediate nexthop), т.е. напрямую от нас, который и будет использоваться для достижения адреса шлюза в этом маршруте. Непосредственный адрес следующего хопа также может быть найден при помощи механизма поиска следующего хопа.

Поиск следующего хопа выполняется только в основной таблице маршрутизации main, даже для маршрутов, имеющих отличное значение параметра routing-mark. Это необходимо для ограничения установки маршрутов, которые могут быть использованы для поиска непосредственно доступных хопов (immediate nexthops). В маршрутах для протоколов RIP или OSPF предполагается, что следующий маршрутизатор доступен непосредственно и должен быть найдены используя только связанные маршруты(connected routes).

Маршруты с именем интерфейса в качестве шлюза не используются в поиске следующего хопа. Если есть маршрут с именем интерфейса, а также маршрут с активным IP-адресом, то маршрут с интерфейсом игнорируется.

Маршруты, имеющие значение параметра scope больше максимально допустимого не используются в поиске следующего хопа. В каждом маршруте указывается максимально допустимое значение параметра scope, для его следующего хопа, в параметре target-scope. Значение по-умолчанию для этого параметра позволяет выполнить поиск следующего хопа только через связанные маршруты (connected routes), за исключением iBGP-маршрутов, которые имеют большее значение по-умолчанию и могут выполнить поиск следующего хопа также через IGP и статические маршруты.

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

  • Если наиболее точный активный маршрут, который был обнаружен в ходе поиска адреса следующего хопа, является связанным маршрутом, то интерфейс этого связанного маршрута используется как интерфейс следующего хопа и шлюз помечается как reachable. После того как маршрутизатор становится непосредственно доступным через этот интерфейс (именно это и следует понимать как “связанный маршрут” или “connected route”) его адрес используется как адрес непосредственно доступного маршрутизатора (immediate nexthop address).
  • Если наиболее точный активный маршрут, который был обнаружен в ходе поиска адреса следующего хопа, имеет адрес шлюза, который уже был обнаружен, непосредственно доступный хоп и интерфейс копируются с этого маршрута, а шлюз помечается как recursive.
  • Если наиболее точный активный маршрут, который был обнаружен в ходе поиска адреса следующего хопа является ECMP маршрутом, то используется первый доступный маршрутизатор этого маршрута.
  • Если механизм поиска адреса следующего хопа не нашел ни одного маршрута, то шлюз помечается как unreachable.

А теперь, как говорят в КВН, зачем же я показал этот номер. Обратите внимание, мы устанавливаем scope=10 для статических маршрутов в последних трех строках, тем самым «заставляем» MikroTik принимать во внимание эти маршруты при поиске следующего хопа.

Он и принимает, и таким образом маршруты по-умолчанию через:

становятся recursive, т.е. непосредственно доступными хопами будут шлюзы провайдеров и трафик мы пошлем через них, но check-gateway=ping будет проверять доступность адресов ЗА провайдерскими сетями.

Надеюсь мой перевод и объяснение будут вам полезны.

Пока самые охочие до знаний читают под спойлером, расскажу немого короче и проще.
Когда мы указываем scope=10 в последних трех строках, мы даем понять MikroTik’у, что:
ему доступны не напрямую, а рекурсивно через данные статические маршруты. По одному IP на брата-провайдера.

/ip firewall mangle

правила здесь

/ip firewall mangle
add action=mark-connection chain=input in-interface=ISP1 \
    new-connection-mark=ISP1-conn passthrough=yes
add action=mark-routing chain=output connection-mark=ISP1-conn \
    new-routing-mark=ISP1-route passthrough=no

add action=mark-connection chain=input in-interface=ISP2 new-connection-mark=\
    ISP2-conn passthrough=yes
add action=mark-routing chain=output connection-mark=ISP2-conn \
    new-routing-mark=ISP2-route passthrough=no

add action=mark-connection chain=input in-interface=ISP3 \
    new-connection-mark=ISP3-conn passthrough=yes
add action=mark-routing chain=output connection-mark=ISP3-conn \
    new-routing-mark=ISP3-route passthrough=no

add action=mark-connection chain=forward in-interface=ISP1 \
    new-connection-mark=ISP1-conn-f passthrough=no
add action=mark-routing chain=prerouting connection-mark=ISP1-conn-f \
    in-interface=bridge new-routing-mark=ISP1-route  

add action=mark-connection chain=forward in-interface=ISP2 \
    new-connection-mark=ISP2-conn-f passthrough=no
add action=mark-routing chain=prerouting connection-mark=ISP2-conn-f \
    in-interface=bridge new-routing-mark=ISP2-route  

add action=mark-connection chain=forward in-interface=ISP3 \
    new-connection-mark=ISP3-conn-f passthrough=no
add action=mark-routing chain=prerouting connection-mark=ISP3-conn-f \
    in-interface=bridge new-routing-mark=ISP3-route  

Для пояснения правил этого раздела пригласим несколько помощников.

  1. MANGLE — данная таблица предназначена для операций по классификации и маркировке пакетов и соединений, а также модификации заголовков пакетов (поля TTL и TOS) (викиучебник).

    Таблица mangle содержит следующие цепочки:

    1. PREROUTING — позволяет модифицировать пакет до принятия решения о маршрутизации.
    2. INPUT — позволяет модифицировать пакет, предназначенный самому хосту.
    3. FORWARD — цепочка, позволяющая модифицировать транзитные пакеты.
    4. OUTPUT — позволяет модифицировать пакеты, исходящие от самого хоста.
    5. POSTROUTING — дает возможность модифицировать все исходящие пакеты, как сгенерированные самим хостом, так и транзитные.
  2. CONNECTION TRACKING — специальная подсистема, отслеживающая состояния соединений и позволяющая использовать эту информацию при принятии решений о судьбе отдельных пакетов.
  3. Packet flow MikroTik’а

Я разбил правила на группы, для облегчения их понимания. В первой группе 6 правил, которые отвечают за трафик в/из самого роутера, и во второй группе 6, для транзитного трафика.

Начем с первых двух.

В первом мы сообщаем роутеру, что все входящие chain=input соединения на интерфейс ISP1 нужно маркировать action=mark-connection new-connection-mark=ISP1-conn, а так же указаваем passthrough=yes, чтобы пакет, после прохождения этого правила, не покинул таблицу и продолжил следование по правилам.

Во втором говорим MikroTik’у, чтобы он отловил исходящие соединения chain=output помеченные как ISP1-conn и присвоил им метку роутинга(для помещения в соответствующую таблицу маршрутизации, вы ведь помните первые три маршрута?), а также сообщаем passthrough=no , как бы говоря — нечего делать здесь пакету после этого правила, т.е. пакет покинет таблицу.

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

Переходим к завершающим шести правилам.

Уже понятно, они также разбиты на подгруппы по 2, для каждого из наших ISP.

Первое из них поручает роутеру следить за цепочкой FORWARD и если происходит соединение через интерфейс ISP1, то оно маркируется action=mark-connection новым тегом new-connection-mark=ISP1-conn-f (обратите внимание! отличным от тега трафика самого маршрутизатора, в данном случае мы маркируем транзитный трафик). passthrough=no, т.к. мы не хотим, чтобы пакет, после попадания в это правило, обрабатывался в таблице как-то еще.

Второе навешивает нужную метку роутинга new-routing-mark=ISP1-route в цепочке PREROUTING, т.е. ДО принятия решения о маршрутизации, и отслеживает трафик пришедший к нам из локальной сети in-interface=bridge.

Здесь нас выручает механизм CONNECTION TRACKING, позволяющий поймать промаркированные правилом выше соединения из локальной сети(от WEB-сервера) и навесить им необходимый тег роутинга.

Это позволяет транзитному трафику(здесь к/от web-сервера) идти именно тем путем, которым он и пришел, т.е. пришел через ISP1 — уходи через него же.

Заключение

Очень рад, если мои объяснения понятны, а данный труд станет полезен.
Ушел медитировать, всем удачи!

Благодарю за внимание!

Руководство по

: инструменты устранения неполадок — MikroTik Wiki

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

В Microsoft Windows есть целый набор полезных инструментов командной строки, которые помогают тестировать и настраивать интерфейсы LAN / WAN. Мы рассмотрим только наиболее часто используемые сетевые инструменты и команды Windows.

Все инструменты запускаются из оконного терминала.Перейдите к Пуск / Выполнить и введите «cmd», чтобы открыть командное окно.

Некоторые из команд в окнах:

ipconfig — используется для отображения значений конфигурации сети TCP / IP. Чтобы открыть его, введите в командной строке « ipconfig ».

C: \> ipconfig
Конфигурация IP Windows
Подключение по локальной сети адаптера Ethernet:
   DNS-суффикс для конкретного соединения. : mshome.net
   Локальный адрес IPv6. . . . . : fe80 :: 58ad: cd3f: f3df: bf18% 8
   IPv4-адрес.. . . . . . . . . . : 173.16.16.243
   Маска подсети . . . . . . . . . . . : 255.255.255.0
   Шлюз по умолчанию . . . . . . . . . : 173.16.16.1
 

Для ipconfig также есть множество дополнительных функций. Чтобы получить список дополнительных параметров, введите « ipconfig /? » или « ipconfig -? ».

netstat — отображает активные TCP-соединения и порты, на которых компьютер прослушивает, статистику Ethernet, таблицу IP-маршрутизации, статистику для протоколов IP, ICMP, TCP и UDP.Он имеет ряд опций для отображения различных свойств сети и TCP-соединений «netstat -?».

nslookup — это административный инструмент командной строки для тестирования и устранения неполадок DNS-серверов. Например, если вы хотите узнать, какой IP-адрес является «www.google.com», введите « nslookup www.google.com », и вы обнаружите, что есть другие адреса: 74.125.77.99, 74.125.77.104, 74.125. 77.147.

netsh — это инструмент, который администратор может использовать для настройки и мониторинга компьютеров под управлением Windows из командной строки.Он позволяет настраивать интерфейсы, протоколы маршрутизации, маршруты, фильтры маршрутизации и отображать текущую текущую конфигурацию.

Очень похожие команды доступны и на unix-подобных машинах. Сегодня в большинстве дистрибутивов Linux сетевыми настройками можно управлять через графический интерфейс, но всегда полезно быть знакомым с инструментами командной строки. Вот список основных сетевых команд и инструментов в Linux:

ifconfig — аналогично командам ipconfig в Windows.Он позволяет включать / отключать сетевые адаптеры, назначать IP-адрес и сведения о маске сети, а также отображать текущую конфигурацию сетевого интерфейса.

iwconfig — инструмент iwconfig похож на ifconfig и ethtool для беспроводных карт. Это также позволяет просмотреть и установить основные сведения о сети Wi-Fi.

nslookup — укажите имя хоста, и команда вернет IP-адрес.

netstat — печать сетевых подключений, включая подключения портов, таблицы маршрутизации, статистику интерфейсов, маскарадные подключения и многое другое.( netstat — r, netstat — a )

ip — отображение / управление маршрутизацией, устройствами, политикой маршрутизации и туннелями на Linux-машине.

Например, проверьте IP-адрес интерфейса с помощью команды ip :

$ ip addr show
 

Вы можете добавить статический маршрут, используя следующую команду ip :

ip route добавить {СЕТЕВОЙ адрес} через {адрес следующего перехода} dev {DEVICE} , например:

$ ip route добавить 192.168.55.0 / 24 через 192.168.1.254 dev eth2
 

упомянутых инструментов — лишь небольшая часть сетевых инструментов, доступных в Linux. Помните, что если вы хотите получить полную информацию о параметрах инструментов и команд, используйте команду man . Например, если вы хотите узнать все параметры ifconfig , напишите команду man ifconfig в терминале.

Проверить подключение к сети

Использование команды ping

Ping — одна из наиболее часто используемых и известных команд.Утилита администрирования, используемая для проверки доступности конкретного хоста через сеть Интернет-протокола (IP) и измерения времени приема-передачи пакетов, отправленных с локального хоста на хост назначения, включая собственные интерфейсы локального хоста.

Ping использует протокол протокола управляющих сообщений Интернета (ICMP) для эхо-ответа и эхо-запроса. Ping отправляет пакеты запроса ICMP echo на целевой хост и ожидает ответа ICMP. Вывод Ping отображает минимальное, среднее и максимальное время, используемое пакетом ping для поиска указанной системы и возврата.

С ПК:

Windows:

C: \> ping 10.255.255.4
 Пинг 10.255.255.4 с 32 байтами данных:
Ответ от 10.255.255.4: байты = 32 время = 1 мс TTL = 61
Ответ от 10.255.255.4: байты = 32, время <1 мс TTL = 61
Ответ от 10.255.255.4: байты = 32, время <1 мс TTL = 61
Ответ от 10.255.255.4: байты = 32, время <1 мс TTL = 61
Статистика пинга для 10.255.255.4:
    Пакетов: отправлено = 4, принято = 4, потеряно = 0 (0%
Приблизительное время в оба конца в миллисекундах:
    Минимум = 0 мс, максимум = 1 мс, средний = 0 мс
 

Unix-подобный:

andris @ andris-desktop: / $ ping 10.C
--- 10.255.255.6 статистика пинга ---
4 пакета передано, 4 получено, потеря пакетов 0%, время 2999 мс
rtt min / avg / max / mdev = 0,780 / 0,948 / 1,232 / 0,174 мс
 

Нажмите Ctrl-C, чтобы остановить процесс проверки связи.

Из MikroTik:

[admin @ MikroTik]> пинг 10.255.255.4
10.255.255.4 64-байтовый пинг: ttl = 62 время = 2 мс
10.255.255.4 64-байтовый пинг: ttl = 62 время = 8 мс
10.255.255.4 64-байтовый пинг: ttl = 62 время = 1 мс
10.255.255.4 64-байтовый пинг: ttl = 62 время = 10 мс
4 пакета передано, 4 пакета получено, потеря пакетов 0%
туда и обратно мин. / сред. / макс. = 1/5.2/10 мс
 

Нажмите Ctrl-C, чтобы остановить процесс проверки связи.

Использование команды traceroute

Traceroute отображает список маршрутизаторов, через которые проходит пакет, чтобы добраться до удаленного хоста. Инструмент traceroute или tracepath доступен практически во всех Unix-подобных операционных системах, а tracert - в операционных системах Microsoft Windows.

Работа Traceroute основана на значении TTL и сообщении ICMP «Превышено время».Помните, что значение TTL в IP-заголовке используется для предотвращения петель маршрутизации. Каждый скачок уменьшает значение TTL на 1. Если TTL достигает нуля, пакет отбрасывается и сообщение ICMP Time Exceeded отправляется обратно отправителю, когда это происходит.

Первоначально с помощью traceroute значение TTL устанавливается на 1, когда следующий маршрутизатор находит пакет с TTL = 1, он устанавливает значение TTL равным нулю и отвечает источником ICMP-сообщением «время истекло». Это сообщение сообщает источнику, что пакет проходит через этот конкретный маршрутизатор как переход.В следующий раз значение TTL увеличится на 1 и так далее. Обычно каждый маршрутизатор на пути к месту назначения уменьшает поле TTL на единицу, TTL достигает нуля.

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

С персонального компьютера:

Windows:

C: \> tracert 10.255.255.2
Трассировка маршрута до 10.255.255.2 максимум на 30 переходах
  1 <1 мс <1 мс <1 мс 10.13.13.1
  2 1 мс 1 мс 1 мс 10.255.255.2
Трассировка завершена.
 

Unix-подобный:

Traceroute и tracepath аналогичен, только для tracepath не требуются привилегии суперпользователя.

andris @ andris-desktop: ~ $ tracepath 10.255.255.6
 1: andris-desktop.local (192.168.10.4) 0,123 мс pmtu 1500
 1: 192.168.10,1 (192.168.10.1) 0,542 мс
 1: 192.168.10.1 (192.168.10.1) 0,557 мс
 2: 192.168.1.2 (192.168.1.2) 1,213 мс
 3: нет ответа
 4: 10.255.255.6 (10.255.255.6) 2.301 мс достигнуто
     Резюме: pmtu 1500 hops 4 back 61
 

Из MikroTik:

[admin @ MikroTik]> инструмент traceroute 10.255.255.1
     СТАТУС АДРЕСА
   1 10.0.1.17 2 мс 1 мс 1 мс
   2 10.255.255.1 5 мс 1 мс 1 мс
[админ @ MikroTik]>
 

Файлы журнала

Средство мониторинга системных событий позволяет отлаживать различные проблемы с помощью журналов. Файл журнала - это текстовый файл, созданный на сервере / маршрутизаторе / хосте и фиксирующий различные виды активности на устройстве. Этот файл является основным источником анализа данных. RouterOS может регистрировать различные системные события и информацию о состоянии. Журналы могут быть сохранены в памяти маршрутизатора (RAM), на диске, в файле, отправлены по электронной почте или даже отправлены на удаленный сервер системного журнала.

Все сообщения, хранящиеся в локальной памяти маршрутизатора, можно распечатать из меню / log . Каждая запись содержит время и дату, когда произошло событие, темы, к которым относится это сообщение, и само сообщение.

[admin @ MikroTik] / log> распечатать
15:22:52 система, инфо устройство изменено администратором
16:16:29 system, info, account user admin вышел из системы с 13.10.13.14 через winbox
16:16:29 system, info, account user admin вышел из системы с 13.10.13.14 через telnet
16:17:16 система, правило информационного фильтра добавлено администратором
16:17:34 система, правило изменения информации добавлено администратором
16:17:52 система, информация простая очередь удалена админом
16:18:15 система, информация о сети OSPFv2 добавлена ​​администратором
 

Подробнее о входе в RouterOS здесь >>

Резак (/ инструментальный резак)

Torch - это инструмент для мониторинга трафика в реальном времени, который можно использовать для мониторинга потока трафика через интерфейс.

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

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

Пример:

В следующем примере отслеживается трафик, генерируемый протоколом telnet, который проходит через интерфейс ether1.

 [admin @ MikroTik] инструмент> torch ether1 port = telnet
 SRC-ПОРТ DST-ПОРТ TX RX
 1439 23 (telnet) 1,7 кбит / с 368бит / с

 [admin @ MikroTik] инструмент>
 

Чтобы узнать, какие IP-протоколы отправляются через ether1:

 [admin @ MikroTik] инструмент> torch ether1 protocol = any-ip
 ПРО.. TX RX
 tcp 1,06 кбит / с 608бит / с
 UDP 896 бит / с 3,7 кбит / с
 icmp 480 бит / с 480 бит / с
 ospf 0 бит / с 192 бит / с

 [admin @ MikroTik] инструмент>
 

Чтобы увидеть, какие протоколы связаны с хостом, подключенным к интерфейсу 10.0.0.144/32 ether1:

 [admin @ MikroTik] инструмент> torch ether1 src-address = 10.0.0.144 / 32 protocol = любой

  PRO .. SRC-АДРЕС TX RX
  tcp 10.0.0.144 1.01 кбит / с 608бит / с
  icmp 10.0.0.144 480 бит / с 480 бит / с
 [admin @ MikroTik] инструмент>
 

Предупреждение: Трафик, который появляется в torch, до того, как он был отфильтрован межсетевым экраном.Это означает, что вы сможете видеть пакеты, которые могут быть отброшены вашими правилами брандмауэра.

IPv6

Начиная с v5RC6 torch может показывать трафик IPv6. Введены два новых параметра: src-address6 и dst-address6 .
Пример:

admin @ RB1100test]> / tool torch interface = bypass-bridge src-address6 = :: / 0 ip-protocol = any sr
c-адрес = 0.0.0.0 / 0
MAC-ПРОТОКОЛ IP-PROT ... SRC-АДРЕС TX RX
ipv6 tcp 2001: 111: 2222: 2 :: 1 60.1 кбит / с 1005,4 кбит / с
ip tcp 10.5.101.38 18,0 кбит / с 3,5 кбит / с
ip vrrp 10.5.101.34 0 бит / с 288 бит / с
ip udp 10.5.101.1 0 бит / с 304 бит / с
ip tcp 10.0.0.176 0 бит / с 416 бит / с
ip ospf 224.0.0.5 544 бит / с 0 бит / с
                                                                       78.7 кбит / с 1010,0 кбит / с


 

Чтобы инструмент / ping работал с доменным именем, которое разрешает IPv6-адрес, используйте следующее:

 / ping [: разрешить ipv6.google.com]
 

По умолчанию ping использует IPv4-адрес.

Winbox

Более привлекательный интерфейс Torch доступен в Winbox (Tool> Torch). В Winbox вы также можете вызвать панель фильтра, нажав клавишу F на клавиатуре.

Пакетный сниффер (/ tool sniffer)

Пакетный сниффер - это инструмент, который может захватывать и анализировать пакеты, отправленные и полученные через определенный интерфейс.Анализатор пакетов использует формат libpcap .

Конфигурация анализатора пакетов

В следующем примере будет добавлен потоковый сервер , потоковая передача будет включена, имя файла будет настроено на тестирование, а сниффер пакетов будет запущен и остановлен через некоторое время:

 [admin @ MikroTik] сниффер инструмента> установить streaming-server = 192.168.0.240 \
 \ ... потоковая передача = да имя-файла = тест
 [admin @ MikroTik] сниффер инструментов> печать
             интерфейс: все
          только заголовки: нет
          ограничение памяти: 10
             имя-файла: "тест"
            предел файла: 10
     потоковая передача: да
      потоковый сервер: 192.168.0.240
         фильтр-поток: да
       протокол-фильтр: только ip
       фильтр-адрес1: 0.0.0.0/0:0-65535
       фильтр-адрес2: 0.0.0.0/0:0-65535
               работает: нет
 [admin @ MikroTik] сниффер инструмента> начать
 [admin @ MikroTik] сниффер инструментов> стоп
 

Здесь вы можете указать различные параметры анализатора пакетов , такие как максимальный объем используемой памяти, ограничение размера файла в КБ.

Средство анализа запущенных пакетов

Есть три команды, которые используются для управления работой анализатора пакетов во время выполнения:

/ запуск сниффера инструмента , / остановка анализатора инструмента , / сохранение сниффера инструмента.

Команда start используется для запуска / сброса сниффинга, stop - останавливает сниффинг. Для сохранения прослушиваемых в данный момент пакетов в конкретный файл используется команда save .

 В следующем примере сниффер пакетов будет запущен и через некоторое время остановлен:
 
 [admin @ MikroTik] сниффер инструмента> начать
 [admin @ MikroTik] сниффер инструментов> стоп
 

Ниже перехваченные пакеты будут сохранены в файле с именем test :

 [admin @ MikroTik] сниффер инструмента> save file-name = test
 

Просмотр прослушанных пакетов

Также доступны различные подменю для просмотра перехваченных пакетов.

  • / пакет сниффера инструмента - показать список проанализированных пакетов
  • / протокол анализатора инструмента - показать все протоколы, которые были прослушаны

0 узел сниффера инструмента - показывает список узлов, которые участвовали в обмене данными, которые вы прослушали

Например:

 [admin @ MikroTik] пакет сниффера инструмента> печать

  # ВРЕМЯ ИНТЕРФЕЙСА SRC-АДРЕС
  0 1.697 ether1 0.0.0.0:68 (bootpc)
  1 1.82 эфир1 10.0.1.17
  2 2.007 эфир1 10.0.1.18
  3 2.616 ether1 0.0.0.0:68 (bootpc)
  4 2.616 эфир1 10.0.1.18:45630
  5 5.99 эфир1 10.0.1.18
  6 6.057 эфир1 159.148.42.138
  7 7.067 ether1 10.0.1.5:1701 (l2tp)
  8 8.087 ether1 10.0.1.18:1701 (l2tp)
  9 9.977 ether1 10.0.1.18:1701 (l2tp)
 -- Больше
 

На рисунке ниже показан графический интерфейс сниффера в Winbox, который более удобен для пользователя.

Подробное описание команд можно найти в инструкции >>

Тест пропускной способности

Тестер пропускной способности можно использовать для измерения пропускной способности (Мбит / с) другого маршрутизатора MikroTik (проводной или беспроводной сети) и тем самым помочь обнаружить «узкие места» сети - точку сети с наименьшей пропускной способностью .

BW test использует два протокола для проверки пропускной способности:

  • TCP - использует стандартные принципы работы протокола TCP со всеми основными компонентами, такими как инициализация соединения, подтверждения пакетов, окно перегрузки, механизм и все другие особенности алгоритма TCP. Ознакомьтесь с протоколом TCP, чтобы узнать о его внутренних настройках скорости и о том, как анализировать его поведение. Статистика пропускной способности рассчитывается с использованием полного размера потока данных TCP.Поскольку подтверждения являются внутренней работой TCP, их размер и использование канала не включаются в статистику пропускной способности. Следовательно, при оценке пропускной способности статистика не так надежна, как статистика UDP.
  • UDP-трафик - отправляет 110% или больше пакетов, чем в настоящее время считается полученным на другой стороне канала. Чтобы увидеть максимальную пропускную способность канала, размер пакета должен быть установлен для максимального MTU, разрешенного для каналов, который обычно составляет 1500 байтов. UDP не требует подтверждения; эта реализация означает, что можно увидеть максимально приближенное значение пропускной способности.

Помните, что Тест пропускной способности использует всю доступную пропускную способность (по умолчанию) и может повлиять на удобство использования сети.

Если вы хотите проверить реальную пропускную способность маршрутизатора, вы должны запустить тест пропускной способности через маршрутизатор, а не от него или к нему. Для этого вам понадобится как минимум 3 маршрутизатора, соединенных в цепочку:

Сервер пропускной способности - тестируемый маршрутизатор - Клиент пропускной способности.

Примечание: Если вы используете протокол UDP, то проверка пропускной способности подсчитывает заголовок IP + заголовок UDP + данные UDP.Если вы используете TCP, то тест пропускной способности учитывает только данные TCP (заголовок TCP и заголовок IP не включены).

Пример конфигурации:

Сервер

Чтобы включить сервер bandwidth-test с аутентификацией клиента:

[admin @ MikroTik] / tool bandwidth-server> установить включен = да аутентифицировать = да
[admin @ MikroTik] / tool bandwidth-server> печать
                  включен: да
             аутентифицировать: да
  выделить-udp-ports-from: 2000
             макс-сеансов: 100

[admin @ MikroTik] / tool bandwidth-server>
 

Клиент

Запустить тест пропускной способности UDP в обоих направлениях, имя пользователя и пароль зависят от удаленного сервера пропускной способности.В этом случае имя пользователя «admin» без пароля.

[admin @ MikroTik]> инструмент для проверки пропускной способности протокола = udp user = admin password = "" direction = both \
адрес 

.Интерфейс командной строки

- RouterOS

  • Перейти к содержанию
  • Перейти к панировке
  • Перейти к меню заголовка
  • Перейти к меню действий
  • Перейти к быстрому поиску
  • Пространства

  • Нажмите Enter для поиска

  • Помогите

    • Онлайн помощь

    • Горячие клавиши

    • Feed Builder

    • Что нового

    • Доступные гаджеты

    • О Confluence

  • Авторизоваться

RouterOS

  • Страницы
  • Блог

Дерево страниц

Просмотр страниц

Инструменты ConfigureSpace

    • Прицепы A т (0)

.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *