Как перенаправить tcp/udp трафик с доменов с одинаковым айпи?
Есть 2 домена: a.example.com и b.example.com, которые ссылаются на одинаковый айпи, к примеру 1.1.1.1
Мне нужно перенаправлять трафик с этих доменов на определенные порты по такому принципу:
a.example.com:22 -> 127.0.0.1:4000
b.example.com:22 -> 127.0.0.1:4001
Важно, что это не http трафик, а tcp/udp
Как можно это сделать? Iptables forwarding сверяет только айпи, но не домены
Чем больше знаю, тем лучше понимаю, как мало знаю.
Я вам подскажу: внутри TCP и UDP, если это не HTTP, нет имени домена. Вот совсем нет. Он используется в момент перевода доменного имени -> в IP-адрес, что бы потом создать коннект на этот IP-адрес. Он используется в HTTP-запросе, так исторически сложилось. Но в простом TCP и UDP его НЕТ, трафик приходит к вам БЕЗ доменного имени.
dan0sss, Вам нужно для разных доменов использовать разные порты, например:
a.example.com:22 -> 127.0.0.1:4000
b.example.com:23 -> 127.0.0.1:4001
Тогда по номеру порта можно перенаправить трафик в нужное место.
в http запросе на самом деле есть поле с доменом, где и видно, на какой домен пришел запрос. А вот в других протоколах такого нет.
И судя по 22 порту - вы хотите ssh так перенаправить. Не получится - в ssh протоколе нет информации о хосте назначения...
Руслан Федосеев, res2001, AUser0,
Давай те я еще 5 копеек вставлю. При использовании https, сначала идет TLS и в первом пакете TLS прилетает доменное имя что бы сервер знал какой сертификат использовать. Это расширение (SNI) добавили в TLS когда стало поятно, что https будет развиваться.
Штатно никак, srv записи могут решить проблему но требуют костыля на стороне клиентов.
Как костыльный вариант сделать похожее можно черезе port knock только с переключением порта назанчения. Но тогда одновременно можно будет работать только с одним из соединений.