Author Archives: Sergey

PPPoE BRAS на MikroTik RouterOS (c radius-сервером)

Не смотря на то, что продукция MikroTik не является оборудованием операторского класса, его активно применяют на начальном этапе строительства небольших сетей в странах СНГ и некоторых других ввиду его очень низкой цены и заявленного функционала(который не всегда работает как хочется).

В этой заметке рассматривается использование MikroTik RouterOS 6.19 в качестве PPPoE BRAS и его интеграция с радиус-сервером (в примере используется FreeRadius 2.1, но точно также могут быть использованы radius-серверы, интегрированные в различные биллинговые системы). Схема описываемой конфигурации:

Mikrotik PPPoE Bras with radius server
Continue reading

Клиентские L3VPN и обход VTY ACL на оборудовании Huawei

Суть проблемы довольно простая – telnet/ssh (далее, для простоты изложения речь пойдёт про telnet) работают во всех vpn-instance, таким образом, L3VPN-подключение является потенциальной угрозой для обхода VTY ACL, поскольку, в общем случае, абонент сам планирует своё адресное пространство. Типичные схемы подключения (PE-CE) – /30, /30+static route(часто, default в центральной точке), /30+bgp. Если в сторону клиента есть static route или bgp без (жёсткого) согласования префиксов (например, только с лимитом на их количество), то абонент может пытаться зайти телнетом на ip-адрес транспортной сети(/30) на стороне провайдера.
Continue reading

Утилизация аппаратных ресурсов на коммутаторах Huawei S-серии

У коммутаторов Huawei S-серии имеется возможность просмотра используемых аппаратных ресурсов (в частности, утилизации tcam) и перераспределения (для некоторых конфигураций модульных коммутаторов).

ACL

Ресурс ACL это в самом деле ресурс, используемый для traffic-policy (и прочих вариаций traffic-*) и, в некоторых случая, Selective QinQ (когда является особым traffic-policy). Имеется три типа ресурсов ACL – rule(классикация трафика), counter(подсчёт трафика), meter(ограничение скорости)
В случае с S9300 это выглядит следующим образом:

[Quidway]display acl resource slot 2
Slot  2  
                     Vlan-ACL    Inbound-ACL  Outbound-ACL                   
----------------------------------------------------------------------------
  Rule Used               10          373            6                
  Rule Free             2038         7819         1018                
  Rule Total            2048         8192         1024                

  Meter Used               0           78            2                
  Meter Free               0         8114         1022                
  Meter Total              0         8192         1024                

  Counter Used             0           96            2                
  Counter Free             0         8096         1022                
  Counter Total            0         8192         1024                
----------------------------------------------------------------------------

Continue reading

Резервирование точки терминирования /30 с помощью VRRP/HSRP

Существует несколько способов зарезервировать точку терминирования сети /30 – cluster/virtual-chassis (самый простой, но не всегда самый дешёвый), mpls pw termination с active/standby проводами на ближайшей PE (актуально для mpls-сетей с количеством PE больше одной-двух, но решается несколько иная задача, а именно уход от децентрализованного терминирования) и VRRP/HSRP (и аналоги). Если с cluster/virtual-chassis всё более-менее просто (MC-LAG в сторону нижестоящего устройства и создание L3 сабынтерфейса в нём), то с vrrp/hsrp несколько сложнее. В классическом варианте VRRP настраивается таким образом:

interface FastEthernet0/0.2
 encapsulation dot1Q 2
 ip address 192.0.2.6 255.255.255.248
 vrrp 1 ip 192.0.2.1

На втором роутере настраивается адрес 192.0.2.5/29, абоненту остаются адреса 192.0.2.2-4. Однако возникает вопрос что делать, если у вас есть 2 роутера без поддержки кластеризации (например, Cisco ASR1K, 7200 и подобные) и есть абоненты, включенные по схеме /30, для которых хочется сделать резервную точку терминирования? Continue reading

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

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