В линейках коммутаторов SLX, VSP и EXOS от Extreme Networks есть модели c особой аппаратной архитектурой под общим названием «Insight». В отличие от стандартного исполнения, когда Contol и Data Plane коммутатора связаны только шиной PCIe (со всеми вытекающими ограничениями пропускной способности), «Insight» свичи имеют несколько интерфейсов Data Plane включенных напрямую в виртуальные машины, которые развернуты на Control Plane. Рассмотрим, как это работает и какие ресурсы утилизируются:



“Insight” интерфейсы это как правило несколько выделенных 10GE линков, которые от ASIC, через мультиплексор, подключены к Control Plane. Там они смонтированы как ethernet интерфейсы изолированной Ubuntu Linux 16.04 виртуальной машины, кратко называемой TPVM (Third Party Virtual Machine). Такое физическое разделение позволяет передавать большие объемы трафика с минимальной задержкой, при этом не вызывая деградации производительности ни Control, ни Data Plane. Сама же виртуализация построена на базе KVM. В совокупности это дает возможность запускать такие инструменты и сервисы как tcpdump, p0f, snort, распределенный DPI или аналитику, а также многие другие сервисы непосредственно на устройстве, без развертывания дополнительной сетевой инфраструктуры. Для ускорения же развертывания самой TVPM образ имеет множество необходимых пакетов, которые заранее предустановлены:

  • build-essential
  • checkinstall
  • iperf
  • mtools
  • netperf
  • qemu-guest-agent
  • tshark
  • valgrind
  • vim-gnome
  • wireshark
  • xterm



На борту “Insight” коммутаторов установлен CPU Intel XEON x86, увеличенная RAM и SSD накопитель, что позволяет распределить ресурсы в случае разворачивания нескольких VM. Сами же ресурсы являются выделенными и изолированными, чтобы не нарушать работу OS самого коммутатора.


Для использования TPVM по назначению необходимо проделать всего четыре действия:

  1. Скачать и установить TVPM
  2. Сконфигурировать «Insight» интерфейсы
  3. Добавить ACL или зеркалирование трафика на эти интерфейсы
  4. Запустить TPVM приложения

Ниже собственно небольшой пример, как все это разворачивается и работает. После того как образ TPVM был загружен по scp2 необходимо выполнить несколько команд для установки VM:

slx# show tpvm status
TPVM is not installed
slx# tpvm install
Installation starts. To check the status use ‘show tpvm status’ command
slx# show tpvm status
TPVM is being installed now

Когда TPVM уже загрузилась есть несколько способов получить доступ к ней доступ. По умолчанию VM будет пытаться получить адрес по DCHP, или может назначить link-local IPv6 адрес, после чего можно будет получить SSH доступ. Также к TPVM имеется консольное подключение через TTY.

slx# show tpvm ip-address
IPv4:
eth0 192.168.2.249
docker0 172.17.0.1
IPv6:2a02:0000:c000:0:da80:00ff:f00b:8800
eth0: fe80::da80:00ff:f00b:8800

slx# ssh 192.168.2.249 -l admin vrf mgmt-vrf
admin@192.168.2.249’s password:
Welcome to Ubuntu 16.04.4 LTS (GNU/Linux 4.4.0–128-generic x86_64)
Last login: Tue Apr  2 12:12:46 2019

admin@TPVM:~$ sudo -s
[sudo] password for admin:

root@TPVM:~# id
uid=0(root) gid=0(root) groups=0(root)

Интерфейс eth0 это наш менеджмент, а eth1 это “Insight” который нам необходимо сконфигурировать

root@TPVM:~# ip -4 link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1
 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
 link/ether d8:00:00:00:00:04 brd ff:ff:ff:ff:ff:ff
3: eth1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
 link/ether d8:00:00:00:00:02 brd ff:ff:ff:ff:ff:ff
4: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default
 link/ether 02:42:28:2d:60:b9 brd ff:ff:ff:ff:ff:ff

По аналогии с технологией стекирования последние порты на лицевой панели коммутатора имеют двойное назначение и нам необходимо перевести их в режим Insight, после чего передача данных по ним будет временно невозможна.

slx# conf t
slx(config)# hardware
slx(config-hardware)#connector 0/48
slx(config-connector-0/48)# no breakout
slx(config-connector-0/48)# insight mode

Система создаст интерфейс 0/125 который мы и будем использовать

slx(config)# interface Port-channel 22
slx(config-Port-channel-22)# insight enable
slx(config-Port-channel-22)# no shutdown
slx(config)# interface Ethernet 0/125
slx(conf-if-eth-0/125)# channel-group 22 mode on type standard
slx(conf-if-eth-0/125)# no shutdown

Проверяем интерфейсы на коммутаторе:

slx(conf-if-eth-0/125)# do show interface ethernet 0/125
Ethernet 0/125 is up, line protocol is up (connected)
slx(conf-if-eth-0/125)# do show interface port-channel 22
Port-channel 22 is up, line protocol is up

и на TPVM

root@TPVM:~#dmesg
[ 2172.748418] ixgbe 0000:00:09.0 eth1: NIC Link is Up 10 Gbps
[ 2172.748508] IPv6: eth1: link becomes ready

Теперь на «Insight» можно повесить ACL, сконфигурировать VLAN (или несколько) и инспектировать трафик.

root@TPVM:~# tcpdump -i eth1 -n -v
tcpdump: listening on eth1, link-type EN10MB (Ethernet), capture size 262144 bytes
02:38:38.107923 IP6 fe80::8802 > ff02::16: HBH ICMP6, multicast listener report v2, 1 group record(s), length 28
02:38:39.059939 IP6 fe80::8802 > ff02::16: HBH ICMP6, multicast listener report v2, 1 group record(s), length 28
02:38:39.119922 LLDP, length 111: slx
02:38:40.120076 LLDP, length 111: slx

Дальнейшее использование ограничивается только требованиями или фантазией заказчика. Инженерами, партнерами, и заказчиками Extreme Networks было протестировано множество различных приложений таких:

  • VNC server
  • DHCP server
  • AAA server (Radius and TACACS)
  • DNS server
  • Ostinato — Ostinato packet crafter, network traffic generator and analyzer with GUI.
  • SNMP trap receiver
  • Surricata — Real time intrusion detection (IDS), inline intrusion prevention (IPS), network security monitoring (NSM) and offline PCAP processing.
  • Syslog server
  • Google-chrome and cURL
  • Arpsponge
  • PerfSONAR
  • Puppet
  • Logstash
  • Docker-Container (version supported: docker-1.13.0)

Если у вас есть вопросы, можете обращаться в наше локальное представительство компании Extreme Networks.

Комментарии (3)


  1. DrunkBear
    20.06.2019 16:33

    «Вот так, с помощью нехитрых приспособлений буханку белого (или черного) хлеба можно превратить в троллейбус… Но зачем?»©
    Есть какие-то реальные usecase?
    Syslog или DHCP можно поднять и без связки ASIC+Xeon.


    1. NikolayN Автор
      20.06.2019 17:11

      Реально это востребовано в больших датацентрах, где минимум персонала и максимум трафика. В основном для траблшутинга и аналитики.


  1. nomadmoon
    20.06.2019 19:08
    +1

    С одной стороны бесит что на тех же джуниперах нельзя поставить-запустить хотя бы iperf, хотя Джунос вроде как перелицованная фряха… С другой стороны как представлю себе какой тут простор для уязвимостей :/