Представьте, что у вас дома 2 компьютера и они подключены к одному роутеру. Для всего интернета IP адрес этих компьютеров одинаковый (так как внешний IP, который виден в интернете есть только у роутера). В этом случае, чтобы обратиться к конкретному компьютеру, нужен порт.
В BGP есть static route и есть несколько интересных пунктов:
- более точный (по маске) роут имеет более высокий приоритет
- для одинаковых по приоритету раутов можно указать свой вес.
Значит, у друга должна быть возможность подключиться ко мне по IP, который выдал мне провайдер.
Возможность есть, но скорее всего для вас это будет дорого. Есть сервис защиты от ддос атаки, но для домашней сети он не подойдет. Работает это примерно так:
есть провайдер с большим каналом, например 100G или 200G или 300 и так далее.. ваш сервис находится у него и он фильтрует весь траффик. Если хотите оставить сервис у вас дома, то понадобиться строить тунель до этого провайдера и через него гонять траффик. Это все стоит денег.