Ответ
SDN (Software-Defined Networking) — это архитектурный подход к построению сетей, который отделяет плоскость управления (контроллер, принимающий решения о маршрутизации) от плоскости данных (сетевые устройства, которые пересылают трафик). Управление сетью централизовано и программируется через программные интерфейсы (API).
Ключевые принципы:
- Разделение плоскостей: Контроллер SDN (логически централизованный) диктует правила сетевым коммутаторам и маршрутизаторам.
- Программируемость: Сетевая политика и конфигурация задаются программно, а не через ручную настройку каждого устройства.
- Абстракция: Приложения и системы управления "видят" единую логическую сеть, а не набор разрозненных устройств.
Базовый пример работы через API контроллера (Python-like псевдокод):
# Программное создание правила потока (flow rule) на контроллере
controller = SDNController()
# Указание коммутатору `s1` пересылать трафик на IP 10.0.0.1 через порт 2
controller.add_flow_entry(
switch_id="s1",
match={ "ipv4_dst": "10.0.0.1" },
actions=[ "output:2" ]
)
Преимущества и применение:
- Гибкость и скорость: Быстрое развертывание сетевых сервисов (VPN, балансировка).
- Автоматизация: Интеграция с системами оркестрации (Kubernetes, OpenStack).
- Централизованный контроль и аналитика.
- Используется в крупных ЦОДах, облачных провайдерах и сетях 5G.