Как изменить исходный IP-адрес в Windows - PullRequest
0 голосов
/ 04 декабря 2009

Мы встречаемся со сценарием тестирования, который должен подделать IP-адрес источника запроса Http для имитации клиентов, прибывающих из разных стран . Знаете ли вы какой-либо инструмент помощи по этому вопросу?

И последнее, но не менее важное: наш веб-сайт построен на ASP.NET.

Спасибо.

Ответы [ 6 ]

4 голосов
/ 04 декабря 2009

В тестовой среде это обычно не сложно. Сначала прочитайте этот вопрос о виртуальных сетевых интерфейсах.

Если сервер и клиент находятся на одном компьютере, все, что вам нужно сделать, - это выяснить, как заставить клиентское программное обеспечение привязываться к вашему виртуальному интерфейсу. Например, wget имеет опцию --bind-address, чтобы указать, к какому локальному адресу привязываться. С веб-браузерами сделать это немного сложнее; вам может понадобиться просто запустить его на виртуальной машине.

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

Если клиент и сервер разделены интернетом, это будет гораздо сложнее. Один из вариантов - настроить конечную точку сетевого туннеля на сервере и туннелировать ее на клиентский компьютер, который «знает», что он имеет интерфейс виртуальной сети.

3 голосов
/ 04 декабря 2009

Как отмечено в ответах на вопрос ServerFault «Являются ли IP-адреса тривиальными для подделки» , вы не можете легко подделать исходные адреса в протоколе, который требует двусторонней связи (например, TCP). Обратите внимание, что эта «двусторонняя связь» требуется на уровне пакетов. Нельзя просто сказать: «Нет проблем, я хочу отправлять запросы и игнорировать ответы HTTP». Чтобы установить сеанс TCP, вам необходимо получить данные. Лучше всего использовать прокси-сервер.

1 голос
/ 04 декабря 2009

Если у вас есть доступ к вашей инфраструктуре, вы можете добавить интерфейс от маршрутизатора и затем разместить статический маршрут на маршрутизаторе к этой сети.

Server-----Router----Internet
            /
Test_PC----/

В качестве альтернативы вы можете посмотреть PBR (Маршрутизация на основе политик) и на маршрутизаторах вы можете пометить исходные пакеты и изменить источник на лету, так что ваш сервер будет думать, что они приходят из того места, где вы как они пришли.

Server-------------Router_with_PBR-------------Internet----- PC
SCR:4.2.2.2        Change SCR:6.6.6.6 to 4.2.2.2              6.6.6.6

Но вы должны спросить себя, почему вы хотите видеть, когда пакеты приходят из разных стран. В некоторых странах имеются массивные прокси-серверы, которые фильтруют доступ («Великий брандмауэр Китая»), поэтому приведенные выше тесты мало что дадут.

Тогда вам лучше всего использовать прокси-серверы или, если вы ищете долгосрочное решение, тогда настройте сервер (виртуальный отлично подходит для этого) и используйте RDP для тестирования. Я уверен, что вы можете арендовать виртуальный сервер где-то на месяц или два.

1 голос
/ 04 декабря 2009

Я не уверен, позволяет ли это стандарт IP, но если вы работаете в лабораторной среде, где вам не требуется подключение к Интернету во время теста, я вижу, что он работает при следующих обстоятельствах:

По сути, я бы настроил сетевой интерфейс сервера на использование сетевой маски 0.0.0.0 и очистил бы остальную часть таблицы маршрутизации.

Затем вы можете настроить клиентский компьютер на получение любого IP-адреса, если вы используете маску 0.0.0.0. И двусторонняя связь должна быть возможной.

Server[1.2.3.4/0] <---> Client[x.x.x.x/0]

Но, пожалуйста, потерпи меня. Я не проверял это, поэтому я могу ошибаться: -)

0 голосов
/ 04 декабря 2009

Если вы измените свой исходный IP-адрес, это означает, что трафик с вашего веб-сервера не сможет достичь клиента.

Возможно, вы сможете использовать какой-либо прокси-фильтр и / или фильтр преобразования адресов, чтобы выполнить переназначение, но при этом разрешить двустороннюю связь.

0 голосов
/ 04 декабря 2009

Это невозможно. Потому что, когда вы подделываете IP-адрес, ответ никогда не вернется, что требуется для http.

Лучший способ - использовать прокси. См. Также этот вопрос о сбое сервера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...