Domanda

Ci incontriamo uno scenario di test che ha bisogno di manomettere indirizzo IP sorgente di una richiesta HTTP per simulare i clienti provenienti da diversi paesi . Sapete qualsiasi aiuto strumento su questo?

Ultimo ma non meno importante, il nostro sito web è costruito con ASP.NET.

Grazie.

È stato utile?

Soluzione

Come indicato nella risposta alla domanda "Sei indirizzi IP banale per forgiare" , non si può facilmente falsificare gli indirizzi di origine in un protocollo che richiedeva comunicazione a due vie (ad esempio TCP). Si noti che questa "comunicazione bidirezionale" è necessaria a livello di pacchetto. Non si può semplicemente dire "no problema, voglio inviare richieste e ignorare risposte HTTP." Per stabilire una sessione TCP, è necessario ricevere i dati. La cosa migliore è quella di utilizzare un server proxy.

Altri suggerimenti

In un ambiente di test che di solito non è difficile. Prima di leggere questa domanda SO sulla rete virtuale interfacce.

Se il server e il client sono sulla stessa macchina, tutto ciò che dovete fare è capire come ottenere il software client di legarsi alla vostra interfaccia virtuale. wget per esempio ha la possibilità --bind-address per specificare quale indirizzo locale da associare. I browser Web sono un po 'più difficile fare questo con; potrebbe essere necessario eseguire solo in una macchina virtuale.

Se il server e il client sono sulla stessa LAN, non vi resta che configurare il router con alcune route statiche per computer client. In questo caso è probabilmente non hanno bisogno di un'interfaccia di rete virtuale, è sufficiente impostare un indirizzo IP statico per la vostra macchina client; finché il gateway è impostato correttamente dovrebbe essere in grado di inviare pacchetti al server, e fino a quando il percorso è impostato correttamente le risposte devono trovare la loro strada al client.

Se il client e il server sono separati da un internet, è un po 'più difficile. Una possibilità è quella di creare un tunnel di rete sul server e il tunnel alla macchina client, che "sa" che ha l'interfaccia di rete virtuale.

Non sono sicuro se lo standard IP consente per questo, ma se si lavora in un ambiente di laboratorio, in cui non hai bisogno di connettività internet durante il test, posso vedere che funziona nei seguenti casi:

In sostanza, vorrei impostare l'interfaccia di rete del server da utilizzare 0.0.0.0 maschera di rete e sciacquare il resto della tabella di routing.

Poi si potrebbe configurare una macchina client di assumere qualsiasi indirizzo IP fino a quando si utilizza la maschera di rete 0.0.0.0. E la comunicazione bidirezionale dovrebbe essere possibile.

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

Ma per favore abbiate pazienza con me. Non ho ancora testato questo, quindi potrei sbagliarmi: -)

Se si ha accesso alla propria infrastruttura, è possibile aggiungere un'interfaccia fuori il router e quindi inserire un itinerario statico sul router a quella rete.

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

In alternativa si può guardare in PBR (Policy Based Routing) e sui router potete pacchetti sorgenti di bandiera e modificare la fonte al volo, in modo che il server pensare che stanno venendo da dove si desidera loro di venire da.

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

Ma bisogna chiedersi perché si vuole vedere quando i pacchetti provengono da diversi paesi. Alcuni paesi hanno enormi server proxy che l'accesso del filtro ( "Great Firewall of China"), in modo che le prove di cui sopra non si rivelerà molto.

La cosa migliore quindi sta usando server proxy o se la vostra ricerca di una soluzione a lungo termine, allora l'installazione di un server (virtuale è grande per questo) e l'uso RDP per il test. Sono sicuro che è possibile noleggiare un server virtuale da qualche parte per un mese o due.

Non è possibile. Perché quando si forgia l'indirizzo IP, la risposta non è mai andare a tornare, che è richiesto per http.

Il modo migliore è quello di utilizzare i proxy. Vedere questa domanda su serverfault anche .

Se si modifica l'indirizzo IP di origine, questo significa che nessun traffico dal server web sarà in grado di raggiungere al client.

Si potrebbe essere in grado di utilizzare una sorta di delega e / o il filtro di traduzione degli indirizzi di fare la rimappatura, pur consentendo la comunicazione bidirezionale.

scroll top