|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
|
Simulare connessione di rete tra due interfacce
Devo simulare il collegamento di rete tra due programmi che comunicano tramite TCP/IP, nel senso che devo prendere i dati che produce l'uno, gestirne in qualche modo la spedizione e quindi darlo in pasto all'altro. Il modo piu' semplice che mi era venuto in mente era quello di far partire ognuno dei due programmi su di una interfaccia tun, e quindi con un programma maneggiare direttamente i pacchetti tcp, copiandoli in qualche modo da una interfaccia all'altra. Ovviamente se i due processi, e quindi le due tun, stanno sulla stessa macchina, si vedono gia' e quindi quando uno cerca di comunicare con l'altro lo fanno direttamente. C'e' un modo per far si' che passino per il tunnel ?
Cerco di chiarire con un esempio. Ho un programma X che mi crea tun0 e tun1, e poi semplicemente copia i pacchetti dall'uno all'altro. Una volta lanciato, configuro le due interfacce con degli indirizzi di rete Codice:
ifconfig tun0 192.168.1.1/24 ifconfig tun1 192.168.1.2/24 Marco
__________________
One of the conclusions that we reached was that the "object" need not be a primitive notion in a programming language; one can build objects and their behaviour from little more than assignable value cells and good old lambda expressions. —Guy Steele |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
|
Alla fine ho risolto cosi' (magari puo' tornare utile a qualcun altro):
- uso un unico tun al posto di due (i pacchetti vengono reimmessi nella stessa interfaccia) - assegno un indirizzo con una sottomask non banale all' interfaccia Codice:
ifconfig tun0 192.168.10.1/24 Codice:
iptables -t nat -A PREROUTING -d 192.168.10.2 -j DNAT --to 192.168.10.1 iptables -t nat -A POSTROUTING -s 192.168.10.1 -j SNAT --to 192.168.10.2 iptables -t nat -A OUTPUT -d 192.168.10.1 -j DNAT --to 192.168.10.2 ![]()
__________________
One of the conclusions that we reached was that the "object" need not be a primitive notion in a programming language; one can build objects and their behaviour from little more than assignable value cells and good old lambda expressions. —Guy Steele |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 03:21.