Контроллер входящего трафика NGINX: Могу ли я завершить TLS и пропустить трафик, отличный от HTTP?

Я пытаюсь развернуть сервер 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-адресом всегда направляется на один и тот же внутренний сервер).

person theoneandonly2    schedule 15.08.2018    source источник


Ответы (1)


К сожалению, исходя из информации, которую я нашел, нет хорошего способа предоставить Ingress для служб TCP, и, похоже, нет планов добавить это в ближайшую функцию. Фактически, это все еще открытая проблема на GitHub.

Были некоторые подходы к отображению трафика TCP или UDP на службу Kubernetes с использованием ConfigMaps, описанных в этом StackOverflow вопрос.

person aurelius    schedule 16.08.2018