Looking into neighbors windows

Как MikroTik видит соседей. Обновление Neighbor discovery в RouterOS 6.38

Служба обнаружения соседних маршрутизаторов и совместимого оборудования в RouterOS присутствует давно. К сожалению, над схемой функционирования “Neighbor Discovery” товарищи админы задумываются редко. Там вроде как будто всё просто, но просто не настолько как кажется.

Наглядной иллюстрацией служат неудачные попытки скрыть информацию о своём маршрутизаторе MikroTik, при этом получать инфу о маршрутизаторах соседей внутри broadcast-домена провайдера. Так сказать, подглядывать за соседями по провайдерскому свитчу. Обычно это выглядит как запрет фаерволом отправки широковещательных пакетов объявления службы discovery UDP 255.255.255.255:5678. Вбив запрещающее правило в конфиг фаервола, некоторые считают, что полностью скрыли свой маршрутизатор от видимости соседями. Но это не так.

Давайте разберемся, как работает Neighbor Discovery в MikroTik.
Neighbor Discovery в RouterOS до 6.38 содержит в себе два пути объявления и получения информации работающие на разных уровнях модели OSI: на уровне L4 работает транспорт UDP, на уровне L2 информацию принимает и передает протокол семейства MNDP/VDP/CDP. Полученная из обеих источников информация объединяется и отображается в списке обнаруженных соседей “/ip neighbors”. Вот так выглядит Neighbor Discovery в текущем релизе:

Таким образом, простым запретом отправки UDP-пакетов на порт 5678, информацию о маршрутизаторе скрыть невозможно. Нужно либо полностью отключать службу Neighbors на интерфейсе командой /ip neighbor discovery set ether1-gateway discover=no, либо фильтровать исходящий L2 трафик на предмет MNDP-пакетов с помощью bridge filters. Например, вот так:

Сейчас готовится к релизу новая версия RouterOS 6.38, и в ней наконец-то случилось то, о чём так долго говорили большевики просили админы многих стран. В 6.38 наконец-то добавлена хорошая плюшка в виде поддержки открытого протокола LLDP. Это еще немного расширяет возможности оборудования в части мониторигна состояния L2 соединения. Теперь в списке соседей можно будет видеть любое LLDP-совместимое оборудование, при условии, что на нем тоже включена поддержка объявления LLDP. Например, теперь мой тестовый маршрутизатор отлично «видит» соседний свитч HP v1905-24

Информации пока принимается и передается немного, но для мониторинга наличия/отсутствия видимости по L2 достаточно. Отмечу, что поддержка LLDP не заменила другие протоколы, а добавлена к списку поддерживаемых в MikroTik Discovery и начиная со 6.38 она будет выглядеть вот так:

В официальной WiKi MikroTik уже добавлены сведения об информации принимаемой и передаваемой RouterOS посредством LLDP.

RouterOS sends out:

Chassis subtype (MAC)

  • Port subtype (interface name)
  • TTL
  • System name (system identity)
  • Sys description ( RouterOS )
  • All IP addresses on configured on the port

RouterOS accepts and processes:

  • identity (LLDP_TYPE_SYS_NAME)
  • interfaceName (depending on the priority, if one is empty checks the next: LLDP_TYPE_CHASSIS_ID, LLDP_TYPE_PORT_ID, LLDP_TYPE_PORT_DESC)
  • ip4 (first entry of IPv4 LLDP_TYPE_MANAGEMENT_ADDR)
  • ip6 (first entry of IPv6 LLDP_TYPE_MANAGEMENT_ADDR)
  • TTL (LLDP_TYPE_TTL)
  • MAC (Source — 6-11 byte)


Ну, что ж, ждём официального релиза и внимательно наблюдаем за тестовыми аппаратами – на то и статус у 6.38 пока еще «rc».

Neighbours window looking into my bedroom

MSE Highlights

Neighbours window looking into my bedroom

My house backs on to the side of a neighbours house.

They have replaced their side window which used to be a fixed opaque window with a fully opening (180 degrees) window.

As their window is higher up than my bedroom if I lie in my bed they can see me lying in it.

I think their window is the hallway and stairs so they frequently go past and if I am there they stare. It is possible they have a desk there as the husband appears to be sitting looking out and if I am in my bedroom he continues to watch. 😡

Is there something I can do. At the moment I close the blinds so they cant see in. It just feels so rude on their part! They have been in about a year and it was the previous owners who changed the window.

Replies

There’s not much you can do!

Personally I would just keep the blinds closed if I was in my room. Only open them if your out or downstairs. Some people are just strange and these people may be just that.

That was inconsiderate for them to have that window changed.

I’d be feeling annoyed too that these people are taking the opportunity to stare in.

Perhaps put up some double width sheer curtains at your bedroom window? I noticed that some of my nfh neighbours seemed to be looking in the direction of one of my windows and one width of sheers didnt seem to be enough (ie as they seemed to be aware if I were behind them). So I put up a second pair of sheers as well at that window.

I could be completely wrong but my understanding is you can’t change an opaque non-ground floor window on the side of a house with clear glass without planning permission. I’m sure someone will correct this if I’m wrong, but if not it would be worth checking with your local planning department.

I’m looking at getting new window put in on the side of my house on the first floor and from what I’ve read it needs to be opaque glass.

Смотрим в looking-glass

Замечательным примером сетевой солидарности являются многочисленные сервисы looking-glass, позволяющие заглянуть за кулисы очень многих больших и маленьких сетей во всём мире. Это настолько удивительно в современном мире, спрятанном за сотней систем безопасности, просто так взять и выполнить команды на маршрутизаторах являющихся одними из самых критичных устройств всей инфраструктуры передачи данных.

Надо лишь ввести IP адрес или префикс в поле и получить в ответ таблицу маршрутизации или трассировку и результаты работы утилиты ping. Поэтому когда понимаешь, что можно вводить не только адреса, но и некоторые другие символы сформированные в осмысленные команды и получать осмысленные результаты, наступает ступор. Хочется бежать и кричать на всех углах: «Да что же это такое надо немедленно запретить, что за несуразность?». Это всё последствия последних лет, когда безопасность превыше открытости и удобности и на это, несомненно, есть причины.

Речь пойдёт об очень популярной реализации looking-glass от version6.net и о том что-же можно получить от этого сервиса.

Если вам вдруг покажется обычным что интерфейс looking-glass позволяет вводить что-то кроме IP адреса, то вероятно вы относитесь к «старой школе» или не читаете новости. Мне показалось это необычным, тем более что другие реализации этого сервиса такого не позволяют.

  • У ReTN (достаточно популярная реализация) все введённые символы воспринимаются как доменное имя, если это не IP адрес.
  • MSX-IX всё разделено на части, вводить можно, но только там где это предусмотрено и интерпретируется всё достаточно жёстко.
  • Data IX позволяет некоторую свободу, хотя и сообщает что указан не IP адрес: «Указан недопустимый аргумент — должен быть IP или IP/n» — но всё равно выполняется birdc, который сообщает об ошибке и фильтрует все непотребства.
  • А Вконтакте разрешён только ping и traceroute и только с IP адресами.

Так как это было для меня необычным я даже начал предупреждать об этом владельцев сервисов, но потом заглянул в код и понял что так и должно быть — это фича, а не баг. На сайте version6.net, который сейчас почему-то не доступен, про функционал честно написано: «all BGP show commands, ping and traceroute».

Открываем lg.cgi, который читается достаточно тяжело и Perl здесь совсем не помогает:

Команда передаётся в переменной $addr, в которой удаляются все символы кроме пробельных (включая табы, опция \s), букв, цифр, символов «-«, «_», «/», «$», «.», «:».

Условие с ping значительно строже. Насколько я вижу вытирается весь ввод после пробельного символа. Поэтому добавить что-то лишнее в команду ping и traceroute значительно сложнее.

Потом формируется команда для непосредственного выполнения из шаблона $query_cmd и выполняется проверка на принадлежность ввода немного другой группе символов: исключаются табы, потому что явно указаны пробелы, символ «_» остаётся включённым потому что попадает под опцию \w вместе с цифрами, появляется символ «^». Дополнительная проверка делается на «:», которое возможно только при работе с IPv6.

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

Что же мы можем? Из полезного потеряли кавычки, символы «|», «?» и все скобки. Но осталось очень много, даже очень. Шаблон формирующий команды выглядит вот так (для Cisco):

Основные команды show ip bgp, ping и traceroute. Очевидно что show ip bgp summary и show ip bgp neighbors %s advertised-routes, можно сформировать из show ip bgp %s.

show ip bgp

Наш хлеб. Стоит отметить что на разных сайтах всё же производится дополнительная фильтрация, или доработка под другие системы отличные от стандартных, поэтому не всегда ввод произвольных символов возможен. Скорее даже он возможен, но дальнейшее выполнение команд приводит к ошибкам. Однако если мы имеем базовые устройства предусмотренные в оригинальном коде то можем вводить широкий спектр команд. Сайт Cisco, остановимся на одном вендоре, предлагает много вариантов. Немного полезных, для примера.

show ip bgp regexp

Смотрим все маршруты по заданному AS-PATH. Например, до всех сетей Yandex из Стокгольма, ТТК (GET отправит напрямую к результатам запроса):

show ip bgp neighbors

Подробная информация об установленных соседствах. Команда иногда косвенно доступна в подсвеченном выводе при выполнении других команд. Например, подробная информация об одном из соседств Билайна в Ставрополе:

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

show ip bgp summary

Команда не всегда доступна напрямую, поэтому можно попробовать выполнить в обход. Например, для РТКОММ:

Ping и Traceroute

И эти команды можно расширить: увеличить размер пакета, выключить фрагментирование. Но сделать это сложнее, потому что код для фильтрации строже. Примеры, однако можно найти — Starnet, кстати здесь Juniper:

Looking-glass замечательный инструмент, даже отличный, решающий многие проблемы и сплачивающий ряды сетевых специалистов по всему миру, очень чёткий признак зрелости компании. Упомянув несколько разных компаний, в своей я пока не решился выставить подобный сервис наружу.

Экспериментировать можно долго, сервисов LG доступно очень много по всему миру и достаточное количество из них построено на версии предлагаемой version6.net. Но любой инструмент должен быть предсказуем, некоторые из нефильтруемых команд ужасно ресурсоёмки, некоторые открывают чуть больше чем можно позволить в современном мире. Загляните в свой код и сделайте так как вам будет достаточно. Будьте внимательны друг к другу, взаимовыручка и открытость позволили построить Интернет, не будем это разрушать.

10 цитат на Английском. Развиваем эрудицию

Всем нам иногда сложно оставаться позитивными, ведь жизнь — сложная штука. Эти 10 цитат на английском помогут вам увидеть жизнь с лучшей стороны, открыть потрясающие возможности и улучшить своё настроение!

1. «Success is the child of audacity». (Benjamin Disraeli)

«Успех — дитя смелости». (Бенджамин Дизраэли)

2. «We can easily forgive a child who is afraid of the dark; the real tragedy of life is when men are afraid of the light». (Plato)

«Можно с лёгкостью простить ребёнка, который боится темноты. Настоящая трагедия жизни — когда взрослые люди боятся света». (Платон)

3. «It is not the strongest of the species that survives, nor the most intelligent, but the one most responsive to change». (Charles Darwin)

«Выживает не самый сильный и не самый умный, а тот, кто лучше всех приспосабливается к изменениям». (Чарльз Дарвин)

4. «I am not a product of my circumstances. I am a product of my decisions». (Stephen Covey)

Я не продукт моих обстоятельств. Я продукт моих решений. (Стивен Кови)

5. «You only live once, but if you do it right, once is enough». (Mae West)

«Мы живём один раз, но если правильно распорядиться жизнью, то и одного раза достаточно». (Мэй Уэст)

6. «The two most important days in your life are the day you are born and the day you find out why». (Mark Twain)

Два самых важных дня в вашей жизни: день, когда вы родились, и день когда поняли зачем. (Марк Твен)

7. «Don’t cry because it’s over, smile because it happened». (Dr. Seuss)

«Не плачь, потому что это закончилось, улыбнись, потому что это было». (Доктор Сьюз)

8. «There are no shortcuts to any place worth going». (Helen Keller)

«К достойной цели нет коротких путей». (Хелен Келлер)

9. «Success consists of going from failure to failure without loss of enthusiasm». (Winston Churchill)

«Успех — это умение двигаться от неудачи к неудаче, не теряя энтузиазма». (Уинстон Черчилль)

10. «Never make fun of someone who speaks broken English. It means they know another language». (H. Jackson Brown, Jr.)

«Никогда не смейтесь над человеком, который говорит на ломаном английском. Это значит, что он знает и другой язык». (Х. Джексон Браун — младший)

Следите за новостями, подписывайтесь на канал и изучайте английский язык с удовольствием!

Читайте также:  Обновление сертификатов безопасности windows 10
Оцените статью