il gateway deve trovarsi nella sottorete?


14

Stavo cercando di far apparire un'interfaccia come questa in / etc / network / interfaces (questo è su debian), con il gateway esterno alla sottorete:

iface eth0 inet static
address 10.100.10.99
netmask 255.255.255.0
gateway 10.100.0.1

ma "ifup --verbose eth0" mi dà solo questo messaggio di errore:

ifconfig eth0 10.100.10.99 netmask 255.255.255.0
 route add default gw 10.100.0.1  eth0
SIOCADDRT: No such process
Failed to bring up eth0

Ovviamente, cambiare la maschera di rete in 255.255.0.0 funziona bene.

È anche possibile o c'è qualcos'altro che è il problema? C'è un modo per ottenere maggiori informazioni da ifup? Vedo un post su Internet che suggerisce che dovrebbe funzionare.

Risposte:


10

Un altro modo di affrontare questa domanda è: se non riesci a raggiungere il tuo router gateway predefinito su una rete locale, come invii i pacchetti attraverso di essa? Dovresti inviarli tramite un altro router.

Per alcuni retroscena, ricorda che un pacchetto IP in genere contiene gli indirizzi di origine e destinazione: da dove proviene e dove vuole andare. Di solito spetta ai router decidere come arrivarci.

Pertanto, quando si invia il pacchetto IP tramite il router gateway predefinito fuori rete, è necessario che si verifichino due cose.

  1. Il router della rete locale sa come raggiungere il router del gateway predefinito e concorda con l'idea che il pacchetto debba essere inviato tramite il router del gateway predefinito per arrivare a destinazione. In tal caso, perché non utilizzare semplicemente il router di rete locale come gateway predefinito?

  2. Il router di rete locale pensa (per impostazione predefinita) che il pacchetto debba essere inviato attraverso un altro router per arrivare a destinazione. In questo caso devi avere un modo per dirlo diversamente. Questa funzionalità esiste e si chiama "routing di origine" ... ma è considerata un rischio per la sicurezza e la maggior parte dei router è configurata per ignorarla.

Infine, nella mia esperienza, lo strumento Linux iproute ( ip) non ti consentirà di aggiungere una route se il gateway non può essere raggiunto direttamente tramite un'interfaccia di rete locale.

Un paio di riferimenti al routing di origine:


4

Il gateway predefinito deve trovarsi sulla stessa sottorete dell'indirizzo IP del dispositivo. In genere è l'indirizzo IP del router della rete a cui ti stai connettendo. Dalla pagina di Wikipedia su Percorso predefinito :

Nella rete di computer, un gateway è un nodo (un router) su una rete TCP / IP che funge da punto di accesso a un'altra rete. Un gateway predefinito è il nodo sulla rete di computer che il software di rete utilizza quando un indirizzo IP non corrisponde ad altre route nella tabella di routing. In realtà è l'indirizzo IP del router a cui è connessa la tua rete di PC.

Nelle configurazioni di home computing, un ISP fornisce spesso un dispositivo fisico che collega sia l'hardware locale a Internet che funge da gateway. Tali dispositivi includono router DSL e router via cavo.

Nei sistemi organizzativi un gateway è un nodo che instrada il traffico da una workstation a un altro segmento di rete. Il gateway predefinito collega comunemente le reti interne e la rete esterna (Internet). In tale situazione, il nodo gateway potrebbe anche fungere da server proxy e firewall. Il gateway è inoltre associato sia a un router, che utilizza intestazioni e tabelle di inoltro per determinare dove vengono inviati i pacchetti, sia a uno switch, che fornisce il percorso effettivo per il pacchetto in entrata e in uscita dal gateway.

In altre parole, un gateway predefinito fornisce un punto di ingresso e un punto di uscita in una rete.


Ma se esiste un percorso statico verso un indirizzo, questo non potrebbe essere il gateway predefinito anche se non si trova nella sottorete? (Stiamo entrando in tecnicismi qui e lontano dalle buone pratiche).
Kurtm,

Il percorso statico può essere un percorso, non solo il gateway predefinito (come ho capito).
slm

2
Il percorso predefinito DEVE essere sulla stessa sottorete. Il percorso predefinito è come ottenere tutto il traffico dalla sottorete e su un altro. Quindi, se stai cercando di ottenere traffico da 10.100.10.99 a 10.100.0.1 hai bisogno di un "gateway" per passare dalle reti 10.100.10.0/24 a 10.100.0.0/24. 10.100.0.1 non può essere il gateway predefinito perché non è possibile raggiungerlo per impostazione predefinita. Può tuttavia essere "un" gateway. E può anche essere "il" gateway a cui invii tutto il tuo traffico (una volta che gli dici come raggiungere l'altra rete).
coteyr,

1
@coteyr: eppure ho questo lavoro. Se esiste una route statica verso l'altra sottorete e il gateway predefinito si trova su quella sottorete, sono entrambi in grado di aggiungere la route predefinita e eseguire il ping / effettuare connessioni senza problemi. Potrebbe essere meno efficiente, ma funziona.
siride,

Direi: un percorso è come ottenere tutto il traffico dalla sottorete e su un altro. Quando si specifica un percorso, è possibile specificare un segmento IP (o una supernet - una combinazione di segmenti) e un gateway con cui accedere a quel segmento / supernet, oppure è possibile specificare "per qualsiasi altra cosa non menzionata nella tabella di routing, utilizzare questo Gateway". Quest'ultima è la route predefinita e il gateway utilizzato in essa è chiamato gateway predefinito. Quando si dispone di una sola scheda di rete, è quasi sempre necessario solo il percorso predefinito; ma con più schede di rete potrebbe essere necessario anche altri percorsi.
telcoM,

2

Sto riscontrando lo stesso problema in più posizioni con il servizio ADSL di Verizon. Il "gateway predefinito" si trova su una sottorete diversa. Nel nostro caso, abbiamo bisogno di indirizzi IP pubblici per poter utilizzare una VPN ipsec da sito a sito. Per fare ciò, dobbiamo mettere il gateway DSL in modalità bridge, in modo che l'indirizzo IP pubblico sia sul nostro router anziché sul gateway DSL.

La maggior parte dei provider è in grado di farlo abbastanza facilmente, ma Verizon sembra avere difficoltà. Utilizzando un gateway DSL D-Link 2750B, ponendolo in modalità bridge, i tecnici di Verizon mi stanno dicendo di utilizzare il gateway predefinito su una sottorete separata. L'ho testato usando il mio laptop Windows 7 e sebbene Windows dia un messaggio di errore secondo cui "Sei un idiota e questa è una cattiva idea - ANCORA vuoi salvare questa configurazione? Sì / No", funziona .

Tuttavia, i software con controlli di integrità più rigorosi sembrano proteggerti da te stesso ...

Tuttavia, non posso fare a meno di pensare che ci debba essere un modo per fingere ...


1

È possibile, ma come spiegato nell'articolo collegato, la macchina deve già sapere come raggiungere l'indirizzo del gateway. Ciò significa che sarà necessario utilizzare post-upper aggiungere manualmente i percorsi anzichégateway

iface eth0 inet static
  address 10.100.10.99
  netmask 255.255.255.0
  post-up ip route 10.100.0.0/24 via 10.100.10.x # router that can route you to the 10.100.0.0/24 network
  post-up ip route 0.0.0.0 via 10.100.0.1

2
Questi ip routecomandi falliranno se li provi ... anche se aggiungi il addcomando mancante .
Jander,
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.