#kubernetes #iptables #istio
#kubernetes #iptables #istio
Вопрос:
насколько я знаю, когда процесс отправляет пакеты, пакеты должны передавать только ВЫВОД iptables и ПОСЛЕДУЮЩУЮ МАРШРУТИЗАЦИЮ.
но когда я тестировал в pod с введением istio. Я обнаружил, что когда посланник вызывает localhost: xxx , пакеты действительно проходят ПРЕДВАРИТЕЛЬНУЮ МАРШРУТИЗАЦИЮ и ВВОД. почему это происходит?
Комментарии:
1. AFAIK istio-init контейнер инициализации используется для настройки правил iptables, чтобы входящий / исходящий трафик проходил через прокси-сервер sidecar, поэтому я не уверен, почему он не должен использовать предварительную маршрутизацию и ввод? Существует схема iptables, которая должна ответить на ваш вопрос. Дополнительно проверьте эту ссылку о методах ввода / вывода трафика через прокси-сервер envoy. Дайте мне знать, если это ответит на ваш вопрос.
Ответ №1:
Как уже упоминалось в скрипте istio iptables.
ВВОД используется для удаления всего входящего трафика, кроме установленных соединений.
ПРЕДВАРИТЕЛЬНАЯ МАРШРУТИЗАЦИЯ используется для обработки входящих портов. Трафик будет перенаправлен на Envoy, который будет обрабатывать и пересылать локальную службу. Если этот параметр не установлен, ни один входящий порт не будет перехвачен istio iptables.
Согласно прокси-перенаправлению на github
Входящие
Правило iptable для перенаправления входящих сообщений является простым, предполагая, что весь трафик должен быть перенаправлен на прокси-сервер. Дополнительные правила необходимы, если входящему трафику необходимо обойти прокси, например ssh.
iptables -t nat -ПРЕДВАРИТЕЛЬНАЯ МАРШРУТИЗАЦИЯ -p ПЕРЕНАПРАВЛЕНИЕ tcp -j —на порт ${ISTIO_PROXY_PORT}
Существует целая схема iptables для istio, так что вы можете на самом деле проверить, что именно делает ПРЕДВАРИТЕЛЬНАЯ МАРШРУТИЗАЦИЯ и ВВОД.
Кроме того, на medium есть блог о понимании того, как Envoy Sidecar перехватывает и направляет трафик в сервисной сетке Istio. Стоит взглянуть, если вы хотите понять весь процесс.
Комментарии:
1. Я думаю, что OP спрашивает конкретно о локальном трафике. Обычно входящий трафик извне контейнера будет проходить через ПРЕДВАРИТЕЛЬНУЮ МАРШРУТИЗАЦИЮ, но локально сгенерированный трафик, предназначенный для локального процесса, не будет. И все же каким-то образом это происходит здесь. Вы случайно не знаете, как это сделать?