Воспроизведение трафика http с исходным адресом источника

Я хочу создать испытательный стенд, включающий в себя клиент и веб-сервер, где я могу воспроизвести некоторые зарегистрированные запросы http get на веб-сервер. Поэтому я планирую точно симулировать фактический трафик с запросами с их исходным адресом источника и номером порта.

Чтобы создать клиент, я надеюсь, что я могу использовать опцию сокета IP_FREEBIND для привязки к любому возможному адресу источника и номеру порта. Есть какой-нибудь известный код для этой цели? (Я действительно не хочу изобретать велосипед) Должен ли я использовать необработанные сокеты, как предлагает этот поток?

Любая помощь будет оценена.

2 ответа

IP_FREEBIND предназначен для прослушивания адреса, с которым текущий хост еще не настроен, поэтому, если он позже настроен с этим адресом, ваша программа сможет получать соединения с ним. Это не позволяет отправлять пакеты, которые притворяются, что с другого компьютера. Вам понадобится сырая розетка для этого.

Если вы фальсифицируете исходный адрес ваших пакетов на клиенте, помните, что сервер отправит свои ответы на этот фальшивый адрес. Ваш клиент должен иметь возможность получать эти возвратные пакеты, потому что вам нужно установить двустороннюю связь только для того, чтобы установить соединение TCP, прежде чем вы сможете отправлять фактический HTTP-запрос. Вы можете использовать необработанные сокеты для реализации всего своего собственного ложного IP-уровня, но, вероятно, будет гораздо проще провести тестирование в изолированной сети и просто настроить клиентский компьютер с тем IP-адресом, с которого вы хотите получать тестовые запросы.

Вы можете попробовать tcpcopy, который воспроизводит трафик http с исходным адресом источника.

Другие вопросы по тегам