вот мое решение:
Код: Выделить всё
iptables -t mangle -A PREROUTING -j TSTF_PREROUTING
iptables -t mangle -A TSTF_PREROUTING -p tcp --tcp-flags SYN,ACK SYN,ACK -j RETURN
iptables -t mangle -A TSTF_PREROUTING ! -i lo -p tcp -m conntrack ! --ctstate ESTABLISHED -j TPROXY --on-port 20092 --on-ip 0.0.0.0 --tproxy-mark 0x1/0x1
ip rule add fwmark 0x1/0x1 pref 100 table 100
ip route add local default dev lo table 100
вот в чем проблема: это работает на ядре 5.x, но не на ядре 3.10
p>
решение состоит в том, чтобы перехватить синхронизацию и подтверждение tproxy, но обойти SYN,ACK , поэтому запрос, начинающийся из контейнера, не будет затронут.
Curl 10.28.121.25 # из внешнего IP-адреса модуля Curl
вот tcpdump:
введите здесь описание изображения
вы можете увидеть последний ответ будет первым.
Это меня смущает.
есть идеи по этому поводу? спасибо.
PS: Правило istio iptables слишком сложное, я пытаюсь сделать простое.
Подробнее здесь: https://stackoverflow.com/questions/791 ... ernel-3-10