Чтобы понять, что происходит, вам нужно немного узнать о DNS.
Когда клиент хочет подключиться к службе на данном хосте, он ищет имя хоста через свою локальную инфраструктуру DNS и получает в ответ IP-адрес. Затем он подключается к этому IP-адресу и запрашивает сервис в порядке, установленном протоколом, который он создал для реализации.
В некоторых случаях часть этого procotol включает в себя вторую отправку первоначально найденного имени хоста, которое в этом случае отправляется на сервер, а не на инфраструктуру DNS. В случае HTTP это было добавлено как часть HTTP / 1.1, в RFC 2616 ; в случае HTTPS это было реализовано как индикация имени сервера (SNI) в RFC 4366 ; и в случае с FTP это было добавлено HOST
командой в RFC 7151 (но смотри позже). Если такая повторная отправка не происходит, у сервера нет возможности узнать, какое имя хоста клиент передал в свой локальный DNS для получения IP-адреса сервера.
Обратите внимание, что во всех случаях для выполнения этой второй отправки требуется изменение протокола и, следовательно, информирование имени хоста взаимодействия клиент-сервер. После изменения протокола необходимо было обновить код сервера, чтобы реализовать его. И наконец, клиенты должны были быть обновлены, чтобы сообщить новый протокол серверам. Этот последний шаг может быть особенно медленным; Что касается SNI, Internet Explorer в Windows XP никогда не реализовывал его, поэтому на протокол нельзя было положиться, пока существовало значительное количество пользователей IE-on-XP, и потребовалось около десяти лет, чтобы их было достаточно. вымирают и / или получают обновления, которые SNI надежно разворачивается.
Так вот, что нужно, чтобы сделать протокол без учета имени хоста. Это не простая установка флага или изменение конфигурации. У нас есть некоторые специфичные для протокола ответы, которые касаются состояния дел и возможных мер по смягчению, в частности для этого протокола: для
SSH (и, следовательно, также SFTP) и для
FTP (что указывает на то, что HOST
поддержка FTP в настоящее время находится в стадии исправления) -поддержка фазы, и поэтому пока нельзя полагаться).
Короткий ответ заключается в том, что если ваш протокол в настоящее время не реализует поддержку имени хоста, с хорошей поддержкой как клиентов, так и серверов, забудьте об этом: это не то, что вы можете сделать.
baz
может быть изменено только его владельцем и единственным разработчиком, то единственный способ сделать так, чтобы он учитывал имя хоста, - это обратиться к владельцу. Это не делает интересный ответ SF, и, кроме того, не (по моему мнению) по теме. « Как мне разработать протокол с учетом имени хоста » - это совсем другой вопрос, и мне не интересно его задавать.