Компания Hewlett-Packard анонсировала новую сетевую операционную систему OpenSwitch, построенную с использованием ядра Linux. HP позиционирует OpenSwitch как полностью открытый проект, развиваемый при участии сообщества и в соответствии с его потребностями. Кроме HP к разработке уже подключились компании Broadcom, Intel, VMware, Accton, Arista и Qosmos.

Сборки новой ОС доступны для тестирования в системах виртуализации. В качестве первых поддерживаемых специализированных аппаратных устройств названы коммутаторы HP Altoline и платформы, развиваемые проектом Open Compute Project, выполненные на базе ASIC Broadcom Trident II. Портирование для других ASIC выполняется через разработку соответствующих плагинов.

Код проекта размещён в Git-репозитории и включает в себя многие типовые открытые компоненты, такие как ядро Linux, Puppet, OpenVswitch, ISC DHCP, lldpd и Quagga. Оригинальные разработки распространяются под лицензией Apache 2.0. Взаимодействие всех компонентов платформы организовано через обращение к централизованной системной БД (OVSDB), хранящей настройки, статистику и параметры работы всех имеющихся сервисов. Напрямую системные модули не взаимодействуют между собой, только через обращение к системной БД.



+-----------------------+

|
image.manifest file
|







 +---------------------+

+-----------------------+
+--------------------------+
|



 |


 ^



|
 OpenSwitch database

|
|
 hardware daemons
|


 |



|




 |<----+



 |

+-----------+-----------+
|
 system table

 |
+---------------------+

|




 |
|
 base subsystem table
 |

|


sysd

+---->|
 vrf table



|
+---------------------+

|




 |
|
 interface table

 |
|



 |

+-----------+-----------+
|
 daemon table

 |<----+
 protocol daemons
|


 |



|
 bridge table

 |
|



 |


 v



|
 port table


 |
+---------------------+

+-----------------------+
+--------------------------+

| hw description files
|

+-----------------------+

В OpenSwitch применяется собственная система инициализации ops-sysd, которая обеспечивает запуск компонентов системы и отслеживание их работы с учётом файлов описания оборудования и базы данных конфигурации. Для сохранения/восстановления конфигурации применяется демон ops-cfgd. Настройку сетевых интерфейсов обеспечивает демон ops-intfd, управление VLAN - ops-vland, агрегацию линков - ops-lacpd. Протоколы маршрутизации реализованы через компоненты Quagga (ospfd, bgpd). Дополнительная функциональность может наращиваться через модули.


+------------------------------------------------------------------------+
|












|


|
|
+------------------------+ +---------------+ +-----------v----------+ |
|
| L2/L3 protocol daemons | |System daemons | |Management/monitoring | |
|
| bgpd, lldpd, lacpd,... | |sysd, intfd,...| |CLI, Rest, Ansible,...| |
|
+--------^--------^------+ +--------^------+ +-----------^----------+ |
|

 |

 |



|



|


|
|

 | +------v-----------------v--------------------v----------+ |
|

 | |










 | |
RFC 7047
|

 | |

System state database - OVSDB-Server

| |
protocol
|

 | |










 <------------->
|

 | +----------------------------^------------------------^--+ |
|

 |





|





|

|
|

 |


Hardware support
|
ops-switchd

 |

|
|

 |


daemons

 |
+------------------v--+ | OpenFlow
|

 |


+-----------------v---+ |
 SDK independent
 <------------->
|

 |


|

ops-fand
 | |

 layer

 | |
|

 |


| - - - - - - - - - - | +---------------------+ |
|

 |


|

ops-tempd
| |

SDK specific
| |
 sFlow
|

 |


| - - - - - - - - - - | |

 plugin

+------------->
|

 |


|

ops-powerd

| +---------------------+ |
|

 |


|

...

 | |


SDK


| |
|

 |


+----------^----------+ +----------^----------+ |
|

Kernel |




 |




 |


|
|
+-------------------------------------------------------------------+ |
|
| +------v-----------+ +---------v---------+
+----------v--------+ | |
|
| |



 | | I2C/other drivers |
|




| | |
|
| |Virtual interfaces| +-------------------+
|
SDK driver

| | |
|
| |



 <------------------------>




| | |
|
| +------------------+





+-------------------+ | |
|
+-------------------------------------------------------------------+ |
|














|
+------------------------------------------------------------------------+

Управление может производиться при помощи похожего на Cisco IOS интерфейса командной строки (ops-cli), основанного на наработках проекта Quagga, через web-интерфейс (ops-webui), а также при помощи REST API, Puppet, Chef и Ansible. Конфигурация может как храниться локально, так и загружаться с внешнего сервера.



ops-as5712# show running-config interface 1
Interface 1

 shutdown

 speed 40000

 autonegotiation on

 exit
ops-as5712# configure terminal
ops-as5712(config)# interface 1
ops-as5712(config-if)# description This is interface 1
ops-as5712(config-if)# ip address 172.16.32.2/24
ops-as5712(config-if)# ip address 172.16.50.2/24 secondary
ops-as5712(config-if)# no shutdown
ops-as5712(config-if)# exit
ops-as5712(config)# ip route 172.16.32.0/24 10.10.10.1


Источник: http://www.opennet.ru/opennews/art.shtml?num=43095