Bansheezm

An attempt to motivate and clarify Software-Defined Networking

This tech talk is a guest keynote given at Ericsson Research by Scott Shenker, Professor at the University of California in Berkeley, Vice President of the International Computer Science Institute, and co- founder of Nicira Networks(!).

Scott discusses the intellectual and practical weakness of today's foundations of networking, and argues that they can be strengthened by introducing cleaner abstractions, rather than managing the ever-growing complexity of protocols.

Software-Defined Networking (SDN) is an instantiation of such abstractions that promises to create a more evolvable architecture for the Internet.

Bansheezm

Билеты ГЖД


"Живые" кассы Грузинской Железной Дороги продают билеты начиная с 74ого места. А программа онлайн продажи билетов - с 1ого. Но это знание не даёт вам никаких преимуществ, потому что невозможно предугадать, как эти черти прицепят вагоны.

Bansheezm

Open vSwitch Port Mirroring (aka SPAN)

Чтоб беззастенчиво копи-пастить.

ip link add type veth
ip link set veth0 up

ovs-vsctl add-port br-int "veth0"

ovs-vsctl -- set Bridge br-int mirrors=@m \
-- --id=@veth0 get Port veth0 \
-- --id=@int-br-int get Port int-br-int \
-- --id=@m create Mirror name=veth select-src-port=@int-br-int select-dst-port=@int-br-int output-port=@veth0

Прежде, чем дампить, убедиться, что veth0 действительно UP.

А потом убрать за собой.

ovs-vsctl clear Bridge br-int mirrors
Bansheezm

Neutron QoS

RFC 2597 leavingcisco.com defines the assured forwarding (AF) PHB and describes it as a means for a provider DS domain to offer different levels of forwarding assurances for IP packets received from a customer DS domain. The Assured Forwarding PHB guarantees a certain amount of bandwidth to an AF class and allows access to extra bandwidth, if available. There are four AF classes, AF1x through AF4x. Within each class, there are three drop probabilities. Depending on a given network's policy, packets can be selected for a PHB based on required throughput, delay, jitter, loss or according to priority of access to network services.

Classes 1 to 4 are referred to as AF classes. The following table illustrates the DSCP coding for specifying the AF class with the probability. Bits DS5, DS4 and DS3 define the class; bits DS2 and DS1 specify the drop probability; bit DS0 is always zero.



Drop


Class 1


Class 2


Class 3


Class 4
Low 001010 AF11 DSCP 10 010010 AF21 DSCP 18 011010 AF31 DSCP 26 100010 AF41 DSCP 34
Medium 001100 AF12 DSCP 12 010100 AF 22 DSCP 20 011100 AF32 DSCP 28 100100 AF42 DSCP 36
High 001110 AF13 DSCP 14 010110 AF23 DSCP 22 011110 AF33 DSCP 30 100110 AF43 DSCP 38

***

:~$ neutron qos-create --type dscp --policies dscp=26
:~$ neutron port-list
:~$ neutron port-update port_uuid --qos qos_uuid
:~$ sudo ovs-ofctl dump-flows br-ex
:~$ sudo ip netns exec qrouter-router_uuid tcpdump -v
Bansheezm

NetFlow configuration in Open vSwitch

Open vSwitch конфигурируется через свой vswitchd database коммандой ovs-vsctl через процесс ovsdb-server (бррр, ну ладно).

ovs−vsctl set Bridge br-ex netflow=@nf0 -- --id=@nf0 create NetFlow targets=\"10.10.10.64:9995\" add_id_to_interface=false

Проверить настройки:

ovs-vsctl list netflow

Отдельные параметры можно позже менять set командой, например

ovs−vsctl set NetFlow br-ex active_timeout=60

Поскольку монитор уже создан, можно использовать его в остальных бриджах, например

ovs-vsctl set Bridge br1 netflow=[_uuid]
ovs-vsctl set Bridge br2 netflow=[_uuid]

(_uuid видно в ovs-vsctl list netflow)

А чтобы удалить монитор, достаточно

ovs-vsctl clear Bridge br-ex netflow
Bansheezm

CPAN

Я помню огромное количество всевозможных комманд для разных платформ, но

perl -MCPAN -e shell

мне никак не удаётся вспомнить при случае. Так что пусть здесь лежит.
Bansheezm

septem artes liberales

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

***
Тривиум = Грамматика / Риторика / Диалектика (Логика)
Квадривиум = Арифметика / Геометрия / Астрономия / Музыка (Гармоника)

***
septem artes liberales non sufficienter dividunt philosophiam theoricam - Фома Аквинский.
Bansheezm

Invalid argument

Виртуальный networking в OpenStack, а именно проект Neutron, построен на такой фиче Linux ядра, как network namespaces. Все созданные namespaces можно посмотреть командой ip netns, выглядит примерно так:

qrouter-........-f70e-4334-b909-21253127b5dd
qrouter-........-c56d-46ce-968c-6168d4fb08ec
qdhcp-........-07a2-4d70-ab01-7a2c45ea7941
qrouter-........-928f-4b5e-a457-935f9bcbee58


qdhcp- и qrouter- namespace'ы создаются dhcp и l3 агентами соответственно. Наткнулась на проблему, если network namespace'ы не трогать где-то трое суток, они умирают, хотя в /var/run/netns/ остаются записи о них.

Попытка выполнить команду внутри namespace'а, например

:~# ip netns exec qdhcp-c9901b99-07a2-4d70-ab01-7a2c45ea7941 ifconfig

выдаёт ошибку

seting the network namespace failed: Invalid argument


Проблема лечится остановкой всех neutron сервисов, например

:~# for i in `ls /etc/init.d/neutron-*`; do $i stop; done
:~# neutron-ovs-cleanup
Kill all neutron-ns-metadata-proxy processes
:~# rm /var/run/netns/q*
:~# for i in `ls /etc/init.d/neutron-*`; do $i start; done

Neutron создаёт все эти namespace'ы заново и всё работает. Однако, проблема довольно серьёзная, в продакшне останавливать network service будет нельзя.

Ubuntu LTS 12.04, kernel 3.11.0, OpenStack Havana

UPD. Проблема была вызвана LXC контейнерами.
Bansheezm

OpenContrail

OpenContrail is an Apache 2.0-licensed project that is built using standards-based protocols and provides all the necessary components for network virtualization–SDN controller, virtual router, analytics engine, and published northbound APIs.

http://opencontrail.org/

Network Virtualization Architecture Deep Dive

Getting Started

Contrail source code instructions

Google Repo client

Contrail Virtual Network Controller



Contrail Technical Documentation at juniper.net

Evaluating OpenContrail Virtual Router Performance

Потираю лапки :-)