Я хотел бы иметь возможность PAT, чтобы исходящий трафик для данного порта назначения транслировался на некоторый случайный порт в пределах диапазона для каждого PDU или для каждого пакета.

Предполагается, что исходящий трафик будет «рассеиваться» по указанному диапазону портов, подобно принципу скачкообразной перестройки частоты для радиопередачи ... Желательно, чтобы это было прозрачно для апстрим-приложений.

Примером сценария может быть утилита передачи файлов, которая отправляет поток пакетированных данных на хост с портом назначения 9080. Я хотел бы перевести (возможно, даже прослушать TCP-порт localhost 9080) весь трафик для данного хоста с портом назначения 9080, чтобы каждый пакет отправлялся на данный хост через случайный порт, скажем, от 49000 до 50000.

Чтобы уточнить, меня не интересует порт источника, из которого исходит трафик. Мое намерение состоит в том, чтобы иметь отправителя, который отправляет на порт назначения «N» по ссылке к получателю, который прослушивает трафик, поступающий на порт назначения «N». После того, как трафик покидает отправителя, я хочу рандомизировать порт назначения в значение в известном диапазоне ... так что по каналу будет видна группа трафика со случайными портами назначения ..., поскольку диапазон известен, этот трафик может затем будет повторно переведен на порт назначения «N» брандмауэром или аналогичным устройством на стороне получателя.

Похожий на:

[N]         = packet with destination port 'N'

[A <=N=> B] = packet with destination port between A and B

                                     /--[49000 <=N=> 50000]--\
SENDER --[N]-[N]-[N]--> (RANDOMISER)<---[49000 <=N=> 50000]--->(UNDO)-[N]-[N]-[N]-->RECEIVER
                                     \--[49000 <=N=> 50000]--/

Я хочу добиться этого на платформах Windows и Linux. Пока что я не могу найти много полезной информации или предложений, поэтому любые советы или предложения будут оценены.

1 ответ1

0

Windows по умолчанию назначает исходящие клиентские подключения первому доступному TCP-порту> 1024, если только приложение не указывает порт для подключения.

Вы можете изменить начальный порт для этого поведения, используя команды netsh, показанные здесь: http://www.windowsnetworking.com/kbase/WindowsTips/WindowsServer2008/AdminTips/Admin/DefaultDynamicPortRange.html, чтобы вы могли установить его на 40000 и конец в 50000, если вам нравится.

В linux вы можете изменить начальное / конечное поведение порта, используя sysctl:http://www.lognormal.com/blog/2012/09/27/linux-tcpip-tuning/

Тем не менее, вы не сможете выбирать порты случайным образом, используя эти методы. Я был бы удивлен, если бы вы могли изменить эту функциональность, не меняя исходный код ОС, и многие приложения не будут хорошо работать с этой функциональностью.

надеюсь, это поможет.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .