Внешнее управление таблицами OpenFlow коммутаторов

Программа «dpctl» используется для внесения изменений, просмотра и мониторинга таблиц OpenFlow. Основные команды показаны в таблице 6.

Таблица 6 - Команды dpctl

Команда

Описание

1

2

show

Показывает информацию о коммутаторе. Синтаксис команды «dpctl show tcp: адрес шорт», где «адрес» - это адрес коммутатора (127.0.0.1 в mininet), а «порт» - управляющий TCP порт коммутатора (6634 в mininet)

status

Показывает статистику по таблицам, портам и коммутатору в общем. Синтаксис аналогичен команде «show», но после команды можно использовать название статистики для фильтрации вывода

dump-desc

Показывает суммарную информацию о аппаратном обеспечении и прошивке коммутатора. Синтаксис аналогичен команде «show»

1

2

dump-flows

Показывает все записи в таблицах потоков на коммутаторе. Синтаксис аналогичен команде «show», после команды можно ставить условия фильтрации по номеру потока, например «(Х=11,12,13)»

dump-ports

Показывает все интерфейсы на коммутаторе. Синтаксис аналогичен команде «show»

dump-queue

Показывает все программные очереди пакетов на коммутаторе. Синтаксис аналогичен команде «show»

dump-tables

Показывает статистику по таблицам OpenFlow. Синтаксис аналогичен команде «show»

add-flow

Добавляет запись в таблицу потоков. Синтаксис команды: «dpctl add-flow tcp: адрес: порт in_port=nopTl,actions=output:nopT2», где in_port=nopTl - это условие применения записи к потоку, поле output:порт2 - это реакция записи на поток, в данном случае перенаправить поток на другой порт коммутатора (порт2) если поток пришел из указанного интерфейса (порт1)

add-flows

Добавляет запись в таблицу потоков. Синтаксис команды: «dpctl add-flow 1ср:адрес:порт файл», где «файл» - это файл с записями потоков

1

2

add-queue

Добавляет программную очередь коммутатора. Синтаксис команды: «dpctl add-queue tcp:адрес:порт интерфейс номерочереди скорость», где «интерфейс» - это порт коммутатора, «номерочереди» - уникальный идентификатор очереди, «скорость» - минимальная гарантированная пропускная способность в Кб/с

mod-flows

Изменяет реакцию на совпадение с полем сравнения потока. Синтаксис команды «dpctl mod-flows 1ср:адрес:порт списокусловий новоедействие», где «список условий» - полное перечисление поле сравнения потока как было указано при создании записи командой «add-flow», «новое_действие» - любое стандартное действие, которое будет заменено в таблице потоков. Если список условий указан в общем, то будут изменены все потоки, для которых это поле будет хотя бы частично совпадать с полем сравнения

mod-queue

Позволяет изменять минимальную гарантированную пропускную способность конкретной очереди. Синтаксис команды «dpctl mod-queue tcp:адрес:порт интерфейс номер очереди скорость», где параметры аналогичны команде «add-queue»

1

2

mod-port

Синтаксис команды «dpctl mod-ports tcp: адрес: порт номерпорта команда», где номер порта - число, команда - одно из значений «up», «down», «flood», «noflood».

del-flows

Удаляет поток или группу потоков. Синтаксис команды «dpctl del-flows tcp:адрес:порт маска», где «маска» - условие или часть условия поля сравнения потока, при совпадении с которой поток удаляется

del-queue

Удаляет очередь. Синтаксис команды «dpctl del-queue 1ср:адрес:порт интерфейс номер очереди», где параметры аналогичны команде «add-queue»

monitor

Выводит на экран пакеты, пришедшие на коммутатор

execute

Выполняет произвольную команду в ОС коммутатора. Синтаксис «dpctl execute tcp: адрес шорт команда», где «команда» - произвольная строка в кавычках

ping

Показывает время отклика коммутатора. Синтаксис аналогичен команде «show»

benchmark

Измеряет производительность коммутатора или контроллера. Синтаксис «dpctl benchmark 1ср:адрес:порт размерпакета количество», где «размерпакета» - размер пакета, посылаемого для проверки производительности, а «количество» - это количество таких пакетов. Результат возвращается в виде суммарного времени выполнения посылки всех команд и пакетов, а также в вид средней производительности

Список полей для создания списка условий применения конкретной записи о потоке к пакету при добавлении и изменении записей (действия «add-flow», «add- flows», «mod-flows», «del-flow») приведен в таблице 7.

Таблица 7 - Поля для фильтрации записей OpenFlow

Поле проверки

Описание

1

2

in_port

Входящий порт коммутатора

Meta

Произвольные метаданные

eth_dst

МАС-адрес получателя

eth_type

Тип фрейма

eth_src

МАС-адрес отправителя

vlan_vid

Номер VLAN сети

vlan_pcp

Приоритет VLAN сети

ip_dscp

Поле DSCP для QoS

ip_ecn

Поле IP ECN для сообщениях о перегрузке сети

ip_proto

Тип подпротокола IP

ip_src

IP адрес источника

ip_dst

IP адрес получателя

tcp_src

TCP порт источника

tcp_dst

TCP порт получателя

udp_src

UDP порт источника

udp_dst

UDP порт получателя

sctp_src

SCTP порт источника

1

2

sctp_dst

SCTP порт получателя

icmp_code

Тип ICMP пакета

icmp_type

Код ICMP пакета

arp_op

Тип ARP пакета

arp_spa

Адрес IP источника ARP пакета

arp_tpa

Адрес IP получателя ARP пакета

arp_sha

Адрес MAC источника ARP пакета

arp_tha

Адрес MAC получателя ARP пакета

ipv6_src

IPv6 адрес источника

ipv6_dst

IPv6 адрес получателя

ipv6_flabel

IPv6 метка потока

icmpv6_code

Тип пакета ICMPv6

icmpv6_type

Код пакета ICMPv6

Список сравнений не ограничивается только приведенными полями, каждый производитель вправе добавлять собственные поля для сравнения. Однако список действий над потоками стандартен и представлен в таблице 8, хотя производители коммутаторов OpenFlow вправе дополнять его.

Таблица 8 - Список действий над потоком

Действие

Описание

1

2

output

Перенаправить поток в другой порт коммутатора. Требует указания номера порта (например «output: 10»)

mpls_ttl

Установить значение MPLS TTL

mpls_dec

Уменьшить на единицу значение MPLS TTL

push_vlan

Инкапсулировать пакет в VLAN с указанным номером

pop_vlan

Декапсулировать пакет из VLAN

push_mpls

Инкапсулировать пакет в MPLS пакет с указанным тегом

pop_mpls

Декапсулировать пакет из MPLS

queue

Ассоциировать пакет с указанной очередью

group

Группировать запись в группу записей

nw_ttl

Установить указанное значение поля IP TTL

nw_dec

Уменьшить на единицу значение поля IP TTL

set_field

Установить произвольное значение поля пакета

Все действия могут выполняться последовательно, если их указано несколько, например действие «queue: 1,output: 10» означает ассоциацию с первой очередью и перенаправление в десятый порт.

 
Посмотреть оригинал
< Пред   СОДЕРЖАНИЕ   ОРИГИНАЛ   След >