Zyxel свитч, dot1Q vlan и Windows

Для тех, кто привык работать с нормальным CLI (Juniper, Cisco и Cisco-like), CLI свитчей типа D-Link, Zyxel и т.п. покажутся просто интерфейсом над регистрами чипа коммутации. Эта заметка посвящена тому, как можно легко ошибиться, когда производитель не особо задумывается над высокоуровневыми задачами, а лишь транслирует команды CLI в регистры/команды чипа.

zyxel-4012f

Тривиальная схема включения, ошибиться вроде бы негде. Однако, суть проблемы в том, что когда абонент подключает ноутбук с Windows, то всё работает (есть пинги между Cust_host1 и ISP_R1). Когда же подключается (заведомо рабочий) роутер Cust_R2 вместо Cust_host1, пинги до ISP_R1 перестают ходить. Continue reading

Advertisements

Telnet access-list на Cisco IOS-XR (ASR9K/XRv/CRS)

Казалось бы, использование telnet в 2014 году выглядит как минимум странно. Однако, до сих пор существует ряд причин, по которым использование telnet актуально, например, нужно заходить с соседнего хоста, на котором нет ssh-клиента (к примеру, на Cisco ASR1K с управляющей картой ESP10-N), где-то работают старые telnet-скрипты(а сам протокол telnet реализован на коленке на сокетах), а безопасность осуществляется на уровне транспорта. Так или иначе, telnet на сетевом оборудовании всё ещё применяется и не редко встаёт задача закрыть telnet-сервис access-list’ом.

В случае с IOS-XR, чтобы повесить ACL на telnet-сервис(в GRT) нужно применить следующую команду:

telnet vrf default ipv4 server max-servers 10 access-list 25

После чего, зайти по телнету можно будет только хостам, определённым в acl 25. Однако, в этом случае, порт-сканеры(например, онлайн-проверка портов ping.eu) покажет вам, что порт 23 открыт. Если вы периодически сканируете свою сеть на предмет уязвимостей, то эта запись в отчёте будет каждый раз привлекать ваше внимание. Если снять дамп и посмотреть что происходит, то становится понятно почему порт считается открытым:

N  Source IP         Destination IP     Packet info
1  192.0.2.1         203.0.113.0        36764 → telnet [SYN] Seq=0 Win=29200 Len=0
2  203.0.113.0       192.0.2.1          telnet → 36764 [SYN, ACK] Seq=0 Ack=1 Win=16384 Len=0
3  192.0.2.1         203.0.113.0        36764 → telnet [ACK] Seq=1 Ack=1 Win=229 Len=0
4  203.0.113.0       192.0.2.1          telnet → 36764 [RST, ACK] Seq=1 Ack=1 Win=16384 Len=0

(192.0.2.1 – клиент, 203.0.113.0 – IOS-XR) Continue reading

Cisco + non-Cisco или проблема проприетарных протоколов

gns3-cisco-problem

Казалось бы, тривиальная схема включения. С коммутатора(R1) абоненту отдаётся транком 2 влана, он принимает их свитчом(SW1), один отдаёт в роутер(vlan 3), другой в cisco свитч(R2), который выступает в роли power-инжектора для подключения видеокамеры(изображено в виде компьютера C1). vlan 3 работает нормально (абонентский роутер, который не изображён на картинке), vlan 2 нет (видеокамера, подключенная к свитчу). При этом, если подключить камеру напрямую в SW1, то она работает нормально. Continue reading

Маршрутизация multicast в Linux (IGMPv3 и IGMPv2)

В продолжение предыдущей заметки о статической маршрутизации multicast в Linux, это статья опишет возможности приложения mcproxy, которое управляет mroute-таблицей ядра Linux, исходя из IGMP-сигнализации. В отличии от всех остальных вариантов(igmpproxy с патчем и т.п.), mcproxy нормально работает с IGMPv3 (не падает). Использовалась версия из git (6638aa9), ОС Ubuntu Linux 14.04, ядро 3.13.0-32, iproute2 3.12.0-2

Если быть кратким, то смысл статьи в конфигурации из двух строчек (/etc/myproxy.conf):

protocol IGMPv3;
pinstance myProxy: ppp1 ==> eth0 tun0;

(В этом примере мультикаст принимается из ppp-тунеля и реплицируется (при наличии запросов снизу) в eth0 и тунельный интерфейс tun0)
И строки запуска:

# mcproxy -r -f /etc/mcproxy.conf

Continue reading

Получение программного обеспечения Huawei без сервисного контракта

Политика локальных офисов Huawei весьма сильно отличается от политики штаб-квартиры(китайцев), это касается всего – цен на оборудование, условий технической поддержки, возможности скачивать ПО и патчи. В этой заметке речь пойдёт про возможность скачивания ПО, не имея контракта на тех.поддержку с локальным офисом. Если вы, не имея контракта на саппорт, просто напишите письмо на cis-support@huawei.com (email для стран бывшего СССР/СНГ), то вас вежливо пошлют.

Однако, существует альтернативный способ получения ПО, патчей, release notes и upgrade guide-ов. Нужно просто зарегистироваться на сайте enterprise.huawei.com, затем зарегистировать ESN/BOM вашего устройства, после чего получите возможность скачивать ПО и патчи и текстовые документы к ним. Continue reading

Linux Network Namespaces: Examples of Usage

Linux core starting from the version 2.6.29 has quite interesting and useful function – network namespaces(netns), nevertheless people either don’t know about it, or don’t understand what to do with it. This post reviews several possible usage examples of this functionality:

  • L3VPN monitoring with ovelapped address space using zabbix and zabbix-proxy
  • Automated testing of network software (dhcp, pppoe-servers etc.)
  • Providing L3VPN service with additional services (NAT, DHCP and others) and CPE virtualization as a special case of this task
  • Isolation of server controls from other services

The function is similar to Cisco VRF, but even more does it remind about Juniper logical-system. Besides, the above-stated tasks can be solved by creating a set of conventional virtual machines or OpenVZ containers. Traditional virtualization is not exactly practical when dealing with pure network “isolation” tasks, and anyway it has its expenses (including expenses for maintenance). OpenVZ is nearly perfect, though it isn’t commited to the upstream and therefore limits you in the choice of the core version and chains you with dependancy. Continue reading

Использование Source Specific Multicast (SSM) (IGMPv3)

Введение (можно пропустить)

Отличие Source Specific Multicast от “обычного”(Any Source Multicast(ASM)) в его сигнализации и фильтрации. Формально, существует 3 модели распространения multicast – ASM, SFM(source filtered multicast) и SSM. Но в действительности, с точки зрения запроса мультикаст-трафика со стороны клиента, SSM можно рассматривать как частный случай SFM. Модель SSM подразумевает, что мультикаст группы принадлежат к диапазону адресов 232.0.0.0/8, а IGMPv3 exclude mode запросы не отправляются клиентом и игнорируются свитчами и роутерами, их обрабатывающими.

В классическом варианте, внутри сети оператора используется протокол PIM для распространения мультикаста между роутерами, при этом задействуются RP(точка(и) рандеву) для регистрации источников (S,G) и получения информации о них роутерами, у которых клиенты запросили мультикаст. Использование IGMPv3 в режиме include mode и отказ от exclude mode позволяет избавиться от этих RP, что упрощает конфигурацию сети и, вообще говоря, повышает надёжность(за счёт понижения сложности). Использование адресов 232.0.0.0/8 позволяет роутерам понять что от них хотят, когда вещают или запрашивают мультикаст от них. Получая такой мультикаст(data-трафик), роутер знает, что его не надо регистрировать на RP (сеть может быть смешанная и использовать 1, 2 или 3 модели распространения multicast), а получая IGMPv3 запрос от клиента(include mode) на запрос канала из сети 232.0.0.0/8, роутер не пытается его интерпретировать как ASM с фильтром(т.е. SFM), а сразу шлёт PIM JOIN для построения SPT, если канал (S,G) ранее не был подключен. В терминологии SSM канал определён как (S,G). В общем случае(в зависимости от оборудования) можно изменить диапазон адресов, относящийся к SSM.

IGMPv3 клиент и генератор multicast

Рассмотрим IGMPv3 в контексте CE-устройства, т.е. как запросить SSM по IGMPv3 и как его обработать. Continue reading