Я пытаюсь развернуть сервер DNP3 (промышленный протокол) в Kubernetes. DNP3 использует TCP-связь, но является протоколом с отслеживанием состояния. В настоящее время я работаю над развертыванием конфигурации контроллера входящего трафика.
Я понимаю, что контроллеры входящего трафика предназначены для трафика http / https, но я хотел бы использовать их, если это возможно, и воспользоваться преимуществами некоторых встроенных функций (например, взаимного TLS, белых списков и т. Д.). Требует ли входящий контроллер NGINX, чтобы входящий трафик был отформатирован как HTTP-трафик (например, с заголовком и т. Д.)? Если он получает случайный трафик TCP (не http), может ли он просто передать трафик серверной службе?
Аннотации, с которыми я пытаюсь работать, включают:
ingress.kubernetes.io/auth-tls-secret: default/client-secret
ingress.kubernetes.io/auth-tls-verify-depth: "3"
kubernetes.io/ingress.class: nginx-private
nginx.ingress.kubernetes.io/auth-tls-pass-certificate-to-upstream: "true"
nginx.ingress.kubernetes.io/auth-tls-verify-client: "on"
nginx.org/lb-method: ip_hash
Несколько примечаний:
- Я понимаю, что аннотация auth-tls-pass-certificate добавит заголовок. Я надеюсь, что я смогу прочитать информацию о сертификате из заголовка, а затем удалить заголовок / другие данные https из сообщения.
- Я надеюсь, что не буду использовать lb-метод ip_hash, чтобы приложение могло отслеживать состояние (клиент с постоянным IP-адресом всегда направляется на один и тот же внутренний сервер).