![Получение более 65535 портов с использованием нескольких статических IP-адресов на AWS](https://rvso.com/image/760974/%D0%9F%D0%BE%D0%BB%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5%20%D0%B1%D0%BE%D0%BB%D0%B5%D0%B5%2065535%20%D0%BF%D0%BE%D1%80%D1%82%D0%BE%D0%B2%20%D1%81%20%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC%20%D0%BD%D0%B5%D1%81%D0%BA%D0%BE%D0%BB%D1%8C%D0%BA%D0%B8%D1%85%20%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D1%85%20IP-%D0%B0%D0%B4%D1%80%D0%B5%D1%81%D0%BE%D0%B2%20%D0%BD%D0%B0%20AWS.png)
Я запускаю сервис, которому требуется более 65535 портов, и использую AWS VPS
Я подумал, что если я прикреплю больше статических IP-адресов к этому VPS, получит ли каждый из этих IP-адресов 65535 портов при подключении к основному серверу или они все будут просто псевдонимами друг для друга?
решение1
TCP-кортежи идентифицируются по IP-адресу назначения и портуиисходный IP-адрес и порт.
Так что в теории 2001:db8:2943:a::1
и 2001:db8:2943:a::2
можеткаждыйподключиться к 2001:db8:2943:b::3
одному порту назначения 443
, 64K раз. В действительности доступно меньше эфемерных портов, и для выполнения 64K подключений чего-либо нетривиального требуется большой и хорошо настроенный хост.
Допустим, был добавлен еще один IP-адрес сервера 2001:db8:2943:b::4
.Каждыйисходный IP может подключатьсядругой64 тыс. раз на этот другой IP-адрес назначения, все на порт назначения 443
.
Очень маловероятно, что вы исчерпаете порты на практике. У вас может быть миллион различных исходных IP-адресов, и ограничение в 64К не применяется.
Возможно, балансировщик нагрузки с одним IP, делающий 64K подключений к одному IP и порту. Это уже довольно много, но при необходимости вы можете добавить еще один IP к бэкэнд-хосту и использовать его.
Или 64K независимых экземпляров вещи, каждый из которых прослушивает уникальный порт назначения. Это огромное количество процессов для запуска. Можно запустить меньше портов прослушивания и перенести сложность на уровень приложений. Например, виртуальный хостинг на основе имени HTTP.