РИТ++ 2017, Root Conf
Зал Пекин + Шанхай, 6 июня, 18:00
Тезисы:
http://rootconf.ru/2017/abstracts/2679.html
Об SDN/OpenFlow говорят давно и много: разделение уровней управления и передачи данных, сетевая логика выносится в отдельный централизованный узел, называемый контроллером сети. На выходе получаем удешевление оборудования, автоматизацию и упрощение управления сетями. Уже сейчас эти технологии применяются и в ЦОД, и у операторов связи, и в больших корпоративных сетях. Но возникает справедливый вопрос: "Мы, конечно, рады за Google, AT&T и Microsoft, но что они дают нам, простым пользователям? Где мы можем их применить в наших задачах и можем ли мы вообще?". Короткий ответ: "Да, можем!".
...
SDN & DEVOPS ?= ❤: Практики использования SDN / Александр Шалимов (ЦПИКС, МГУ)
1. SDN & DEVOPS ?= ❤:
Практики использования
SDN в реальной жизни
DevOps
Александр Шалимов
2. “Россия и SDN – это идеальный брак, который должен
состояться на небесах”
Nick McKeown
Уникальное время
3. Google перевел сеть между ЦОД на SDN в 2012
году, сейчас анонсирована внутренняя облачная
платформа Andromeda.
Microsoft перевел сеть между ЦОД на SDN в конце
2013 года, на очереди публичное облако Azure.
В июне 2015 года AT&T объявило SDN своим
основным стратегическим направлением развития и
переориентацию на разработку ПО.
NTT перевел всю свою сетевую
инфраструктуру на SDN в 2013 году.
Gartner: “Рынок SDN решений к 2018 году достигнет
объема $35 млрд”.
SDN уже здесь
4. Специальное
устройство передачи
данных
Операционная
система
Фунция Фунция
. . .
• Зависимость от производителя
• Ошибки в реализациях сетевых протоколов
• Миллионы строк закрытого проприетарного
кода (6000+ RFC)
• Высокая стоимость оборудования
• Высокая стоимость эксплуатации
• Сложность управления большими сетями
• Сложность отладки
• “Закрытость” оборудования и программного
обеспечения
• Сложность внедрения новых идей
• Неэффективность использования аппаратных
ресурсов, энергоэффективность
Проблема традиционных сетей
6. Основные принципы
• Физическое разделение уровня передачи данных от
уровня управления сетевых устройств.
• Логически централизованное управление.
• Программируемость.
• Открытый единый интерфейс управления.
Преимущества
• Упрощение управления сетью
(OPEX)
• Удешевление оборудования
(CAPEX)
• Разработка ранее недоступных
сервисов
Внедрения
...
“SDN means thinking differently
about networking”
Что такое SDN?
7. • Уменьшение
энергопотребления в ЦОД
• Отключение
неиспользуемых
коммутаторов и каналов на
основе собранной
информации о сети
• ElasticTree (Stanford):
сокращение
энергопотребления до 60%
• Применение в Google
Пример применения
9. Rule Action Stats
Rule Action Stats
Rule Action Stats
Rule Action Stats
Rule Action Stats
Switch
Port
MAC
src
MAC
dst
Eth
type
VLAN
ID
IP
Src
IP
Dst
IP
Prot
TCP
sport
TCP
dport
+ маска по полям
1.Пересылка пакетов на порт(ы) с перезаписью
заголовка
2.Принудительная отправка пакета на контроллер
3.Сброс пакета
4.Свои расширения
Счетчики пакетов и байтов
Flow Table
OpenFlow 1.3+
10. Реактивный режим работы
OpenFlow agent
Flow table
MAC
src
MAC
dst
IP
Src
IP
Dst
TCP
sport
TCP
dport
Action
Controller
port 1 port 2 port 3 port 4
12:34 56:78 1.1.1.1 5.5.5.5 47341 80 port 4
1.1.1.1 5.5.5.5
Только для
первого пакета
Для всех остальных
пакетов
Схема работы OpenFlow
11. Проактивный режим работы
OpenFlow agent
Flow table
MAC
src
MAC
dst
IP
Src
IP
Dst
TCP
sport
TCP
dport
Action
Controller
port 1 port 2 port 3 port 4
* * * 5.5.5.5 * * port 4
1.1.1.1 5.5.5.5
Для каждого пакета
Схема работы OpenFlow
12. A
B
• Неизвестный пакет отправляется на контроллер (OF_PACKET_IN).
• Контроллер вычисляет лучший маршрут через всю сеть (с наименьшей
стоимостью и удовлетворяющий политикам маршрутизации).
• Соответствующие правила OpenFlow устанавливаются на коммутаторы + сразу
и обратный маршрут (OF_PACKET_OUT/FLOW_MOD).
A
B
A -> B
Маршрутизация с SDN/OpenFlow
13. A
B
• Неизвестный пакет отправляется на контроллер (OF_PACKET_IN).
• Контроллер вычисляет лучший маршрут через всю сеть (с наименьшей
стоимостью и удовлетворяющий политикам маршрутизации).
• Соответствующие правила OpenFlow устанавливаются на коммутаторы + сразу
и обратный маршрут (OF_PACKET_OUT/FLOW_MOD).
• Динамическая переконфигурация в случае ошибки сети.
A
B
Маршрутизация с SDN/OpenFlow
15. Кто такие DevOps и зачем им сеть?
• DevOps = Development and Operations
• Задачи:
• Поддержка жизненного цикла продукта
• Разработка интеграционных скриптов, оберток
• А что от сети?
• Настройка виртуальной коммутации
• Настройка физической коммутации
• Автоматизация переключения стендов
• Решение частных сетевых задач (!)
• …..
• NetDevOps
switch router router switchFW
Apps
Host Host
Deploy!
16. Инструментарий из мира SDN
Open vSwitch / DPDK
VM1 VM2 VM3
OpenFlow Controller
Ryu/Runos
REST
ovs-vstctl/ofctl
1/10 GE 1/10 GE 1/10 GE
x86
17. ACL – черные/белые списки
• Требуется запретить или разрешить доступ к каким-то ресурсам
Open vSwitch /DPDK
Table 0
dl_src=A,nw_dst=
178.248.237.75,
drop
*,table(1)
Table 1
*,normal
#> ovs-ofctl add-flow br0
table=0,dl_src=A,nw_dst=178.248.237.75,
actions=drop
18. DPI – URL filtering
• Требуется запретить доступ к заданному сайту
Open vSwitch /DPDK
Table 0
dl_src=A,nw_dst=
178.248.237.75,
drop
*,ToController()
Table 1
*,normal
OpenFlow Controller
Ryu/Runos
19. Балансировка нагрузки
• Требуется провести балансировку поступаемых потоков по
серверам обработки
Open vSwitch /DPDK
Table 0
nw_src=A,nw_dst=B,
nw_proto=TCP,
tp_src=C, tp_dst=D,
output:3
*,ToController()
OpenFlow Controller
Ryu/Runos
Server
Server
Server
Server
REST
Пропускная способность
• OVS – 1Mpps на ядро
• OVS/DPDK – 10Mpps на ядро
20. Тонкие места
• Если скорости программных коммутаторов на серверах не
достаточно
• Переход на whitebox коммутаторы или традиционные L2/L3
коммутаторы с прошивкой под OpenFlow
• Ограниченный OpenFlow функционал: 1 таблица, около 1000 правил
• Переход на чистые OpenFlow коммутаторы
• Больше таблиц (до 10), больше правил (100k)
• Noviflow, Huawei
• Если скорости контроллера Ryu (<1k) не достаточно, то
используйте Runos (~1M packet_in в секунду на ядро)
• Если требуется QoS или ограничение полосы пропускания,
то вместо OVS нужно использовать Lagopus.
• Если нужна настройка физической инфраструктуры, то
можно использовать Netconf/YANG и контроллер
OpenDaylight
whiteboxswitch.com (с)
21. Заключение
• SDN уже здесь и готов для использования обычными людьми – сделать
руками прямо сейчас
• Где могут DevOps использовать SDN:
• Быстрая перенастройка сети, переключение стендов между dev/test/load/pre-
release и т.п.
• Решение насущных сетевых задач (ACL, URL filtering, Load Balancing, QoS)
• Инструментарий:
• Open vSwitch w/ Intel DPDK http://openvswitch.org
• Lagopus www.lagopus.org
• Ryu OpenFlow Controller https://osrg.github.io/ryu/
• Runos OpenFlow Controller http://arccn.github.io/runos/
• С чего начать:
• OpenFlow Tutorial https://github.com/mininet/openflow-tutorial/wiki
Спросить про плюсы: Expandable, Resilient, Scalable
Таблица потоков – определяет, как коммутатор будет обрабатывать каждый поток
Защищенный канал – соединяет коммутатор с удаленным контроллером
OpenFlow протокол – стандарт для взаимодействия коммутатор контроллер