Come posso disabilitare TCP / IP per un adattatore Ethernet?


8

Ho CentOS 6.3 in esecuzione in una macchina (virtuale) con due adattatori Ethernet. Ho eth0 collegato a una LAN TCP / IP e eth1 collegato a un modem DSL. Il sistema è inteso come router / firewall dedicato e ha iptables impostato per eseguire SNAT, DNAT e il filtro desiderato.

Funzionava alla grande ma ho cambiato i modem DSL e sfortunatamente il nuovo (più veloce) è a prova di idiota e quindi automaticamente NAT e non mi permetterà di passare il mio IP pubblico a eth1. Non posso tollerare il doppio NAT, quindi ho fatto qualche ricerca e ho letto che questo modem può essere "ingannato" nel fornire al mio computer un IP pubblico eseguendo il PPPoE sul computer.

Ho quindi impostato pppd per usare eth1, creando la connessione ppp0 che poi sostituisco eth1 nel mio script di configurazione iptables personalizzato. Questo sembra funzionare fino a un certo punto, ma ho dovuto aprire il firewall per farlo funzionare, ed è traballante.

In parte per aiutare nella risoluzione dei problemi, voglio escludere totalmente la possibilità che qualsiasi traffico TCP / IP venga indirizzato direttamente a eth1 dove il mio modem "amichevole" sarà felicemente NAT.

Per quanto ne so, PPPoE si trova sotto, non sopra IP - sull'interfaccia fisica si occupa direttamente in frame Ethernet. Pertanto non dovrei nemmeno avere la rete IP configurata su eth1 per far funzionare pppd, e la rete IP in esecuzione su eth1 sta quindi solo complicando inutilmente le cose.

Ecco dove scopro, sciocco me, non so come disabilitare lo stack TCP / IP su Linux! So che su una finestra di Windows puoi semplicemente deselezionare il protocollo TCP / IP nelle proprietà dell'adattatore, ma qui sto eseguendo un CentOS di solo testo e non ho idea di come farlo.

Apparentemente non è un desiderio molto comune, perché ho cercato su Internet senza risultati. Sembra un'ipotesi cablata che un adattatore Ethernet sia una connessione TCP / IP. Beh, di solito ...

Grazie per qualsiasi aiuto! Kevin

Risposte:


6

Basta rimuovere gli indirizzi IPv4 e IPv6 con ip addr flush dev eth1e ip -6 addr flush dev eth1.


Grazie per la risposta: questo ha funzionato (ed esposto altri problemi nella mia configurazione). Tuttavia, mi sembra un difetto di progettazione in Linux che non vi sia alcun controllo esplicito su quali protocolli di livello 3 siano associati a una determinata interfaccia di rete.
Kevin,

Cosa intendi? L'indirizzo IP è l'hook dell'interfaccia nello stack IP. Per dire allo stack IP (parlare di TCP in quel contesto non ha senso), semplicemente non dargli un indirizzo IP, è semplice come quello e lo stesso in tutti i sistemi operativi incluso MS Windows.
Stéphane Chazelas,

Dal punto di vista ingegneristico, c'è una differenza tra dire al protocollo stesso che non ha un indirizzo e dire al sistema operativo che il protocollo non deve essere associato alla scheda di rete fornita. Stesso effetto forse, ma quest'ultimo è più sicuro, chiaro e uniforme. In Windows, c'è una lista di controllo nelle proprietà dell'adattatore che determina quali protocolli sono associati all'adattatore; in realtà, questo è l' unico modo per separare l'IP, poiché semplicemente tentando di rimuovere l'indirizzo IP verrà visualizzato un errore che indicaThe adapter requires at least one IP address. Please enter one.
Kevin,

0

Non è possibile disabilitare TCP / IP ma è possibile disabilitare l'interfaccia: basta eseguirne uno ip link set eth1 downnella console.

Lasciare /etc/sysconfig/network-scripts/ifcfg-eth1solo ONBOOT=noall'interno per rendere persistente la modifica.

Controlla anche come disabilitare una scheda di rete in CentOS?

PD: Come notato da gertvdijk , questo disabiliterà anche la capacità di pppdattraversareeth1 .


1
La disabilitazione di una scheda NIC interromperà anche il passaggio dei frame Layer2, necessari per PPPoE.
gertvdijk,

@gertvdijk a destra, risposta modificata.
mmoya,
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.