Invia un pacchetto sulla rete anche quando la sua destinazione è l'host locale


10

In Linux se si invia un pacchetto all'indirizzo di una delle sue interfacce di rete , questo pacchetto viene instradato internamente, non viene mai inviato sulla rete. Questa è la cosa giusta nel 99,99% dei casi.

Occasionalmente, quando si verificano le configurazioni di rete, è utile inviare un pacchetto su un collegamento locale dalla macchina stessa, con la macchina stessa come destinazione. Come posso fare questo? Almeno per un collegamento di tipo bus come Ethernet, se non per un collegamento punto-punto. Sono interessato solo ai pacchetti IP (sia IPv4 che IPv6).


Hai provato la scansione nmap?
Ruban Savvy il

Ti interessa che il pacchetto esca fisicamente verso la rete e venga reindirizzato? O vuoi solo che appaia come se fosse (passa attraverso lo stack di routing, iptables, ecc.)?
Patrick,

@Patrick Voglio che esca e raggiunga il router locale. Anche se stare dentro ma guardare localmente come se fosse uscito potrebbe essere utile anche in diverse circostanze.
Gilles 'SO- smetti di essere malvagio' il

@Gilles Hai mai avuto successo con questo? Attualmente sto provando a farlo con due adattatori TAP e un po 'di codice bridge e non avendo successo. Il routing sembra essere corretto, ma ARP non sembra funzionare (i pacchetti escono con src mac == dst mac). Potrei spiegare la mia configurazione se potesse aiutare.
Jonathon Reinhart,

1
@Gilles Non ho provato nulla di tutto ciò, ma posso immaginare di implementare un router in modo che non mandi mai nulla da dove proviene, ad esempio per impedire l'eterno rimbalzo tra due router. Solo una cosa da tenere d'occhio durante i test nel caso in cui il pacchetto esca ma non ritorni più.
Anthon,

Risposte:


7

Ogni scheda di rete su Linux ha un parametro booleano sysctl accept_local( /proc/sys/net/ipv4/conf/eth0/accept_local). Prova a impostarlo su 0 per tutti gli adattatori coinvolti (inoltre, potrebbe essere necessario modificare la tabella di routing in base all'impostazione del test).

Inoltre, assicurati che rp_filter( /proc/sys/net/ipv4/conf/eth0/rp_filter) sia abilitato (non 0).

Riferimento: http://code.metager.de/source/xref/linux/stable/Documentation/networking/ip-sysctl.txt

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.