Kube-OVN Overlay Network поддерживает шифрование IPsec
В этом документе представлен подробный гид по включению и отключению шифрованного туннельного трафика IPsec в оверлейной сети Kube-OVN. Поскольку туннельный трафик OVN передаётся через физические маршрутизаторы и коммутаторы, которые могут находиться в ненадёжных публичных сетях или подвергаться атакам, включение шифрования IPsec эффективно предотвращает мониторинг и подмену данных трафика.
Содержание
Терминология
Примечания
-
Включение IPsec может вызвать кратковременное прерывание сети на несколько секунд.
-
Если версия ядра — 3.10.0-1160.el7.x86_64, при включении функции IPsec в Kube-OVN могут возникнуть проблемы совместимости.
Предварительные требования
Выполните следующую команду, чтобы проверить, поддерживает ли текущее ядро операционной системы модули, связанные с IPsec. Если вывод показывает, что все модули, связанные с XFRM, имеют значение y или m, это означает поддержку IPsec.
Вывод:
Процедура
Примечание: если не указано иное, все команды необходимо выполнять в CLI-инструменте на Master-узле кластера.
Включение IPsec
-
Измените конфигурационный файл kube-ovn-controller.
-
Выполните следующую команду для редактирования YAML-конфигурации kube-ovn-controller.
-
Измените указанные поля согласно следующим инструкциям.
Объяснение полей:
- spec.template.spec.containers[0].args: Добавьте
- --enable-ovn-ipsec=trueпод этим полем. - spec.template.spec.containers[0].securityContext.runAsUser: Измените значение этого поля на 0.
- spec.template.spec.containers[0].args: Добавьте
-
Сохраните изменения.
-
-
Измените конфигурационный файл kube-ovn-cni.
-
Выполните следующую команду для редактирования YAML-конфигурации kube-ovn-cni.
-
Измените указанные поля согласно следующим инструкциям.
Объяснение полей:
- spec.template.spec.containers[0].args: Добавьте
- --enable-ovn-ipsec=trueпод этим полем. - spec.template.spec.containers[0].volumeMounts: Добавьте путь монтирования и смонтируйте том с именем ovs-ipsec-keys в контейнер.
- spec.template.spec.volumes: Добавьте том с именем ovs-ipsec-keys типа hostPath под этим полем.
- spec.template.spec.containers[0].args: Добавьте
-
Сохраните изменения.
-
-
Проверьте, успешно ли функция была включена.
-
Выполните следующую команду для входа в Pod kube-ovn-cni.
-
Выполните следующую команду для проверки количества соединений Security Associations. Если их (число узлов - 1) в статусе up, это означает успешное включение.
Вывод:
-
Отключение IPsec
-
Измените конфигурационный файл kube-ovn-controller.
-
Выполните следующую команду для редактирования YAML-конфигурации kube-ovn-controller.
-
Измените указанные поля согласно следующим инструкциям.
Объяснение полей:
- spec.template.spec.containers[0].args: Измените значение поля
enable-ovn-ipsecна false. - spec.template.spec.containers[0].securityContext.runAsUser: Измените значение этого поля на 65534.
- spec.template.spec.containers[0].args: Измените значение поля
-
Сохраните изменения.
-
-
Измените конфигурационный файл kube-ovn-cni.
-
Выполните следующую команду для редактирования YAML-конфигурации kube-ovn-cni.
-
Измените указанные поля согласно следующим инструкциям.
-
Конфигурация до изменения
Объяснение полей:
- spec.template.spec.containers[0].args: Измените значение поля
enable-ovn-ipsecна false. - spec.template.spec.containers[0].volumeMounts: Удалите путь монтирования с именем ovs-ipsec-keys.
- spec.template.spec.volumes: Удалите том с именем ovs-ipsec-keys типа hostPath.
- spec.template.spec.containers[0].args: Измените значение поля
-
Конфигурация после изменения
-
-
Сохраните изменения.
-
-
Проверьте, успешно ли функция была отключена.
-
Выполните следующую команду для входа в Pod kube-ovn-cni.
-
Выполните следующую команду для проверки статуса соединения. Если вывода нет, это означает успешное отключение.
-