При подключении к службе, предоставляемой с помощью anycast, я наблюдаю разное поведение в зависимости от того, выполняется ли запрос с использованием TCP или UDP.
При использовании TCP запрос отправляется на адрес A, а последующий ответ также поступает от A.
Однако при использовании UDP, когда запрос направляется к A, ответ приходит с адреса B.
Это правильное поведение или ответ UDP должен поступать с того же адреса, на который он был отправлен?
То, что вы видите здесь, может быть больше фактором семантики выбора исходного адреса ОС по умолчанию, чем конкретно проблемой anycast, хотя установка anycasted выявит проблему быстрее.
В системах с несколькими IP-адресами (что почти всегда имеет место при использовании Anycast) исходящие соединения будут исходить с основного IP-адреса машины. Поскольку TCP использует соединения, существует более сильная связь между адресом назначения входящего пакета и адресом отправителя ответа; В UDP этого не так много.
Для вашего приложения, основанного на UDP, вы, вероятно, захотите посмотреть на стороне сервера настройку для выбора интерфейса для привязки и, возможно, дополнительную настройку для адреса, используемого для исходящих соединений.