Компьютер не пингует микротик

Обновлено: 05.07.2024

[admin@Mikrotik] > ping server
invalid value for argument address:
invalid value of mac-address, mac address required
invalid value for argument ipv6-address
while resolving ip-address: name does not exist

Но, как же так? Ведь DNS от провайдера получен исправно
[admin@Mikrotik] > ip dns print
dynamic-servers: 55.11.192.5,213.233.199.77
allow-remote-requests: yes
max-udp-packet-size: 4096
query-server-timeout: 2s
query-total-timeout: 10s
max-concurrent-queries: 100
max-concurrent-tcp-sessions: 20
cache-size: 2048KiB
cache-max-ttl: 1w
cache-used: 135KiB

В моём случае проблема оказалась в отсутствии ActiveDirectory и DNS серверов в сети. Поскольку никто не резолвил адреса, то и Mikrotik не знал о существовании этих адресов.

Чтобы хосты пинговались, можно прописать статические маршруты и решить таким образом проблему. Но это хорошо, если у вас в сети 5 или 10 хостов, которые никогда не меняются. Когда же в сети хостов от 40 и более, да, к тому же, многие из них мобильные устройства, которые получают IP адрес по DHCP, то прописывать статику уже не вариант.
Чтобы Mikrotik выступал в роли кеширующего DNS сервера, можно использовать скрипт, который проверяет DHCP пул на Mikrotik, и пропишет статические маршруты.
Вот упрощённый пример такого скрипта, полный вариант можно найти в интернете:
:local ttl;
:set ttl "00:14:29";
:local hostname;
:local hostip;
:local free;
/ip dns static;
:foreach a in=[find] do=:if ([get $a ttl] = $ttl) do=:put ("Removing: " . [get $a name] . " : " . [get $a address]);
remove $a;
>
>
/ip dhcp-server lease ;
:foreach i in=[find] do=/ip dhcp-server lease ;
:if ([:len [get $i host-name]] > 0) do=:set free "true";
:set hostname ([get $i host-name]);
:set hostip [get $i address];
/ip dns static ;
:foreach di in [find] do=:if ([get $di name] = $hostname) do=:set free "false";
:put ("Not adding already existing entry: " . $hostname);
>
>
:if ($free = true) do=:put ("Adding: " . $hostname . " : " . $hostip ) ;
/ip dns static add name=$hostname address=$hostip ttl=$ttl;
>
>
>

Чтобы скрипт запускался с некой периодичностью, необходимо добавить задание, которое будет выполнять скрипт через определённый интервал времени.
Для этого, нужно перейти в раздел "System \ Scheduler", где добавить новое задание.
Name - Имя задания, укажите любое, на своё усмотрение.
Start date - Дата, после которой начнёт выполняться задание.
Start time - Время, во сколько начнёт выполняться задание.
Interval - Промежуток времени, через которое будет повторно (или многократно) выполняться ваше задание.
Очень важное поле тут, это On Event. В это поле вписывается команда, которая будет выполнять скрипт. В это поле нужно вписать строку примерно следующего формата:
/system script run имя_скрипта , где имя_скрипта, это то имя, которое было присвоено ему, при создании.

Ситуация. Сеть на основе Mikrotik. Выбираешь незанятый IP, прописываешь на новом ПК, затем в разделе IP --> DHCP Server --> Networks прописываю адрес с шлюзом и DNS (на всякий случай, если DHCP включу на ПК). Проверяю наличие записи в ARP таблице - имеется с верным MACом и IP. Проверяю интернет и сеть с нового ПК - всё работает. Пингую его с других ПК - пинга нет.
При этом, эта ситуация уже была на других ПК и решалась подбором другого IP. Т.е. проблема вряд-ли в ОС (Windows 10). Да и вообще, она была и на других ПК с другими ОС.
Что может быть недонастроено или где посмотреть ограничения?

P.S. С роутера ПК также не пингуется. С ПК роутер пингуется без проблем.

  • Вопрос задан более трёх лет назад
  • 6844 просмотра

Оценить 3 комментария

Брандмауэр отключать пробовал - ничего не меняется. ПК в домене. при пинге с роутера укажи src-address=<локальный адрес роутера>

AxianLTD

По умолчанию, кажется с Vista, в Windows ping запрещен. Поищите в Интернете как разрешить icmp на Windows машине. Нет, здесь проблема не в ОС. Такая же проблема имеется в XP и прочих устройствах, которым я назначаю этот IP. Стоит назначить другой и проблема уходит. Устройств в сети много и если у меня так с 10-ок IPов вылетит, это не дело.

AxianLTD

Верить или нет это ваш выбор. Не факт что пингуете именно то устройство, которое вы думаете что пингуете. Если это нет так, то вы большой мастер на ровном месте создать чудо.

Axian Ltd.: 1. IP свободен и здесь нет никакихконфликтов. Чтобы это понять, достаточно прочесть вот это в шапке: "Проверяю наличие записи в ARP таблице - имеется с верным MACом и IP".
2. При чем здесь "вера"? Я даже синоним его не употреблял.
3. Мне это чудо по наследству досталось. Прошлый админ клянется и божится, что у него такого не было.
Я в большинстве своём специализируюсь по Cisco и с Mikrotik`ами имел очень редкие и ни к чему не обязывающие отношения. Просто логически. Нет пинга. Проверить конфликты, хотя при отсуствии настроенной блокировки пинги бы шли, но с разрывами. Либо шли бы ровно, но не на то устройство. Далее, проверить ARP - имеется и верная. Нужный IP и MAC. Далее, проверить, в наличии ли блокировки на уровне Firewall - отсутсвуют. При этом заведомо известно, что на самом ПК ничего не залочено (проверялось на другом IP - всё работает), а также кабель живой, т.к. забрал я его с другого, работающего устройства. Мало того, просто вынул из одного ПК и вставил в другой, даже не меняя порта в свитче. Да и чего кабель обсуждать, если на самом ПК интернет и внутренние ресурсы доступны.

Проблема, совершенно очевидно, где-то в роутере. Но где, пока что не понятно.

MikroTik

Са­мая рас­простра­нен­ная проблема MikroTik (точнее жалоба) — «у меня ничего не работа­ет», при­чем чаще все­го это неп­равда. Если у бос­са не откры­вает­ся вло­жение в пись­ме с темой «вы выиг­рали мил­лион», потому что его заб­локиро­вал анти­вирус, то нас­тра­ивать роутер в этот день вряд ли при­дет­ся.

Поэто­му один из важ­ных навыков адми­на — это уме­ние вести диалог с поль­зовате­лем и выяс­нять, что имен­но и как не работа­ет. Увы, эта статья не будет посвящена данному вопросу, так что перехо­дим сра­зу к тех­ничес­кой час­ти.

Ресурсы

Пер­вое, на что обра­щает вни­мание любой сис­темный адми­нис­тра­тор, — пот­ребле­ние ресур­сов. Бла­го WinBox выводит эти дан­ные пря­мо в глав­ном окне. А если еще не выводит — сей­час же добав­ляй их туда. Это сэконо­мит мно­го вре­мени в будущем. Тебе нуж­но меню Dashboard → Add. И кста­ти, зеленый квад­ратик в пра­вой вер­хней час­ти — это не заг­рузка про­цес­сора. Не обра­щай на него вни­мания.

Resources

Resources

Ес­ли про­цес­сор пос­тоян­но заг­ружен боль­ше 80% (в зависи­мос­ти от усло­вий это зна­чение может менять­ся, но в сред­нем давай при­мем такое чис­ло), то что‑то нелад­но. В пер­вую оче­редь смот­рим на мес­тный «дис­петчер задач», меню Tools → Profile. Тут мы уви­дим, что имен­но наг­ружа­ет CPU, и пой­мем, как дей­ство­вать даль­ше.

Дли­тель­ную ста­тис­тику по наг­рузке CPU, тра­фику на интерфей­сах и дру­гим парамет­рам мож­но уви­деть в Tools → Graphing.

Profile

Profile

Объ­ясне­ние полей вы най­дете в вики. Наибо­лее час­то встре­чают­ся DNS, Encrypting и Firewall.

  • Encrypting — роутер тра­тит мно­го ресур­сов на шиф­рование. Ско­рее все­го, у вас мно­го тун­нелей VPN и нет аппа­рат­ного чипа шиф­рования. Нуж­но поменять на желез­ку со спе­циаль­ным чипом или выб­рать более сла­бые алго­рит­мы.
  • Firewall — пря­мое ука­зание, что вы не читали мои пре­дыду­щие статьи.
  • DNS — а вот тут вас ждет кое‑что инте­рес­ное.

Сам по себе DNS-сер­вер поч­ти не наг­ружа­ет роутер в неболь­ших и сред­них сетях (до нес­коль­ких тысяч хос­тов). А исполь­зовать RouterOS в качес­тве DNS-сер­вера в боль­ших сетях не луч­шая идея. Так отку­да наг­рузка? Давай раз­бирать­ся. Если есть наг­рузка, зна­чит что‑то ее соз­дает. Веро­ятно, сер­веру DNS при­ходит­ся отве­чать на боль­шое количес­тво зап­росов. Про­верим, так ли это. Соз­дадим в фай­рво­ле пра­вило.

add action = accept chain = input dst - port = 53 log = yes log - prefix = DNS protocol = udp

И теперь смот­рим в лог. Если наши пред­положе­ния вер­ны, то заметим мно­го сооб­щений с пре­фик­сом DNS. Уви­дим, с каких адре­сов и на какие интерфей­сы летят зап­росы. Ско­рее все­го, это будет интерфейс WAN. Но мы не хотим обра­баты­вать DNS-зап­росы, при­шед­шие к нам из интерне­та. Зак­роем UDP-порт 53 на интерфей­се WAN, помес­тим пра­вило в нуж­ном мес­те — и нас­лажда­емся сни­зив­шей­ся наг­рузкой. Поз­драв­ляю! Мы толь­ко что обна­ружи­ли, что были частью бот­нета, зак­рыли эту дыру и сде­лали интернет чуточ­ку чище. Подоб­ные ата­ки час­то про­водят­ся с при­мене­нием про­токо­лов, работа­ющих над UDP.

Firewall

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

Counters

Counters

В стол­бцах Bytes и Packets отоб­ража­ются количес­тво бай­тов и пакетов, обра­ботан­ных пра­вилом. Кноп­ки Reset Counters сбра­сыва­ют эти счет­чики. Теперь мож­но наб­людать, попада­ет ли тра­фик в нуж­ное пра­вило или нет.

По­лез­ной час­то ока­зыва­ется вклад­ка Connections фай­рво­ла. Тут вид­но все потоки, про­ходя­щие через роутер: их сос­тояние, количес­тво про­шед­ших бай­тов, фла­ги потока (для получе­ния под­сказ­ки дос­таточ­но навес­ти на зна­чение в стол­бце). Для боль­шей наг­ляднос­ти нуж­но добавить поля Reply Dst. Address и Reply Src. Address. В этих полях вид­но, в какой и из какого адре­са был про­веден NAT.

Connections

Connections

Фай­рвол со все­ми его фичами поз­воля­ет деталь­но дебажить весь тра­фик, про­ходя­щий через роутер. Что­бы луч­ше понимать, что про­исхо­дит во всех этих вклад­ках, нуж­но изу­чить, как пакеты про­ходят через роутер. На кар­тинке упро­щен­ная вер­сия схе­мы. Бо­лее под­робная есть в докумен­тации.

Traffic Flow

Traffic Flow

Другие способы анализа трафика

Уви­деть сос­тояние потока, его адре­са, бай­ты и про­чее — хорошо. Но фай­рвол не поз­воля­ет удоб­но и из еди­ного мес­та убе­дить­ся, что мар­шру­тиза­ция кор­рек­тна. Что­бы узнать, в какой интерфейс вылета­ет пакет, дос­таточ­но вос­поль­зовать­ся инс­тру­мен­том Torch.

Torch

Torch

Torch мож­но вос­при­нимать как некое подобие tcpdump. Здесь мож­но уви­деть VLAN ID, source/destination address/port, DSCP, битовую и пакет­ную ско­рость. Есть удоб­ные филь­тры, которые поз­воля­ют делать точ­ные выбор­ки. Если дан­ные в окне меня­ются слиш­ком быс­тро, уве­личи­вай зна­чение Entry Timeout. К сожале­нию, в одном окне он может показы­вать толь­ко тра­фик на одном интерфей­се, но ник­то не меша­ет нажать New Window и наб­людать за нес­коль­кими интерфей­сами. Если Torch не показы­вает нуж­ного тра­фика на нуж­ном интерфей­се — налицо проб­лемы с мар­шру­тиза­цией.

Torch поз­воля­ет наб­людать за потока­ми тра­фика в реаль­ном вре­мени. Но в некото­рых слу­чаях нуж­ны более деталь­ные дан­ные о тра­фике. Их поз­воля­ет получить инс­тру­мент IP Sniffer.

IP Sniffer

IP Sniffer

С его помощью мож­но уви­деть парамет­ры тра­фика и даже содер­жимое пакета.


Но иног­да тре­бует­ся более деталь­ный ана­лиз — нап­ример, что­бы убе­дить­ся, что TCP handshake успешно про­шел и дан­ные переда­ются. В таком слу­чае в переда­ваемых пакетах дол­жен при­сутс­тво­вать флаг ACK. Но искать пакеты в скуд­ном интерфей­се «Вин­бокса» неудоб­но.

И тут на помощь при­ходит все­ми любимый Wireshark — мощ­ней­ший инс­тру­мент для ана­лиза сетево­го тра­фика. В Filter ука­зыва­ем нуж­ные парамет­ры, что­бы не сни­фать все под­ряд, в General выбира­ем Filename, жмем Apply и Start. Теперь в Files на роуте­ре мож­но най­ти наш дамп, переки­нуть его на компь­ютер и открыть «Шар­ком». О нем написа­но мно­го ста­тей, поэто­му даже не буду пытать­ся писать тут, как с ним работать.

Но это лишь начало. Мож­но в реаль­ном вре­мени наб­людать за тра­фиком из Wireshark. И без вся­ких опе­раций с фай­лами! Откры­ваем «Шарк», в филь­тре пишем udp. port == 37008 , на сниф­фере RouterOS во вклад­ке Streaming ста­вим галоч­ку Streaming Enabled и впи­сыва­ем IP-адрес компь­юте­ра с запущен­ным «Шар­ком». Мож­но пос­тавить галоч­ку Filter stream, что­бы лить в «Шарк» не весь тра­фик, а толь­ко выб­ранный.

Snif-stream Shark

Лить тра­фик в сниф­фер мож­но и из фай­рво­ла. За это отве­чает дей­ствие sniff-TZSP в таб­лице Mangle. Работа­ет это по ана­логии со Sniffer Streaming, но в фай­рво­ле мож­но сде­лать более точ­ную выбор­ку пакетов для сниф­фера.

Mangle-sniff

Mangle-sniff

Wireless

Са­мая слож­ная часть диаг­ности­ки — это Wi-Fi. Он и сам по себе очень слож­ная тех­нология, к тому же сре­да переда­чи дан­ных общая и все сосед­ские роуте­ры меша­ют работать тво­ему, так же как и он им. О работе 802.11 написа­на не одна кни­га, перес­казывать их я не буду. Пос­мотрим толь­ко на инс­тру­мен­ты, которые могут помочь при диаг­ности­ке.

В RouterOS их нем­ного. Самый глав­ный — вклад­ка Registration в Wireless. Здесь вид­но всю информа­цию о под­клю­чен­ных кли­ентах: MAC, уро­вень сиг­нала, качес­тво сиг­нала.

Registration

Registration

Са­мые важ­ные поля:

  • CCQ — Client Connection Quality. Чем бли­же к 100%, тем луч­ше. Ниже 60% озна­чает пло­хую связь;
  • TX/RX Signal Strength — уро­вень сиг­нала. Отличное зна­чение — от 0 до –45, при­емле­мое — от –55 до –75. Все, что меж­ду, — хорошо. Ниже –75 мож­но счи­тать отсутс­тви­ем свя­зи. По край­ней мере, я ори­енти­руюсь на такие циф­ры.
  • Signal to Noise — отно­шение сиг­нал/шум. Чем выше — тем луч­ше.

Вто­рой инс­тру­мент — логи. Собс­твен­но, этот инс­тру­мент дол­жен активно исполь­зовать­ся не толь­ко при диаг­ности­ке Wi-Fi. Если стан­дар­тных логов недос­таточ­но — прос­то вклю­чи рас­ширен­ные.

Log

Log

Ping, Traceroute

Пер­вым инс­тру­мен­том диаг­ности­ки у сисад­мина всег­да был пинг. Но далеко не все зна­ют, сколь­ко воз­можнос­тей он в себе скры­вает.

Мно­гие стал­кивались с тем, что текст на сай­те отоб­ража­ется, а кар­тинки нет. Или скрип­ты не заг­рузились, и сайт «поехал». Это пер­вые приз­наки несог­ласован­ности MTU. С помощью пин­га мож­но про­верить этот вари­ант. Ста­вим галоч­ку Don’t fragment, выс­тавля­ем нуж­ный нам раз­мер пакета и смот­рим на резуль­тат. Если видим packet too large — MTU в канале ниже задан­ного нами зна­чения пакета. Умень­шаем его и про­веря­ем сно­ва. Таким обра­зом выяв­ляем мак­сималь­ный пакет, который про­ходит через сеть без фраг­мента­ции.

Ping

Ping

По умол­чанию пакет отправ­ляет­ся с роуте­ра с src address того интерфей­са, в который он вылета­ет. Быва­ет, что нуж­но его поменять. Нап­ример, при диаг­ности­ке мар­шру­тиза­ции внут­ри VPN или кор­рек­тнос­ти работы фай­рво­ла. Для это­го нуж­но запол­нить поле src address. Не забывай, что адрес дол­жен быть сущес­тву­ющим, что­бы ответный пакет вер­нулся.

При слож­ной мар­шру­тиза­ции необ­ходимо выб­рать нуж­ную Routing Table. Впро­чем, те, кто поль­зует­ся нес­коль­кими таб­лицами мар­шру­тиза­ции, и так это зна­ют.

Заключение

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

Для дебага необ­ходимо понимать, как пакет про­ходит внут­ри RouterOS, а в осо­бо слож­ных слу­чаях — и знать осо­бен­ности вен­дора. И это отно­сит­ся не толь­ко к MikroTik. Луч­ший инс­тру­мент дебага — зна­ния и опыт!

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


Если вы ищете руководство по настройке 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

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 лабораторных работ, вопросы для самопроверки и конспект.

Читайте также: