PDA

Visualizza la versione completa : sembra ovvio, ma non lo è


sopadj1
30-09-2005, 20:26
salve gente!
fino a ieri non mi ponevo questa domanda, ma dopo un intoppo mi chiedo:

mettiamo di avere 2 schede pci ethernet e di volergli assegnare 2 ip della stessa classe, esempio:

eth0 192.168.0.1
eth1 192.168.0.2

è possibile?
complicanze con la tabella di routing?

illuminatemi please.
ho dovuto risolvere mettendo all eth1 192.168.1.2 senno imho la tabella di routing non era gestibile

grazie.

Caleb
30-09-2005, 20:30
Originariamente inviato da sopadj1
salve gente!
fino a ieri non mi ponevo questa domanda, ma dopo un intoppo mi chiedo:

mettiamo di avere 2 schede pci ethernet e di volergli assegnare 2 ip della stessa classe, esempio:

eth0 192.168.0.1
eth1 192.168.0.2

è possibile?


no



complicanze con la tabella di routing?


yep



illuminatemi please.
ho dovuto risolvere mettendo all eth1 192.168.1.2 senno imho la tabella di routing non era gestibile

grazie.

fatto bene, non esistono alternative

sopadj1
30-09-2005, 20:51
perche' non argomenti ? :D

Caleb
30-09-2005, 21:09
noioso :D

il problema non risiede strettamente nelle schede di rete e/o nella tabella di routing che con un po' di arzigogoli sarebbe anche gestibile, ma in una caratteristica della gestione del protocollo ip da parte del sistema operativo

due schede di rete nella stessa subnet installate sullo stesso host vengono viste dal sistema (qualunque esso sia) come un doppio gateway: questo non è possibile, il gw deve essere uno e uno solo per ogni host

è lo stesso motivo per cui su un router non troverai mai due interfacce nella stessa subnet

con acrobazie nella tabella di routing esiste il modo di farle lavorare comunque, ma 1) non è rfc standard 2) non c'è alcun modo per impedire che i pacchetti possano uscire dall'interfaccia sbagliata

per curiosità, a che ti serve averle nella stessa subnet?

sopadj1
30-09-2005, 22:31
grazie, quindi tu dici che impostare 2 ip della stessa subnet equivale a dare al kernel 2 gateway (from kernel to net :D)?

sai consigliarmi dell doc (in ita è meglio) a riguardo?
grazie
edit:
per cosa mi serve? no, il fatto è che fin quando non ti capita una cosa spesso non ci pensi, e ieri mi è capitato questa situazione:

router<->cavo_rete<->laptopA<->sk_wireless<->laptopB_senza_ethernet

siccome il laptopB era senza ethernet gli dovevo condividere la mia connessione, io avevo impostato 192.168.0.5 per la eth e 192.168.0.6 per la sk wireless, ma io uscivo via eth ma non via wireless, fin quando non ho dato 192.168.1.6 alla wireless, e da qui mi sono chiesto il perche' di cio, il perche' non possa associare 2 ip della stessa subnet a 2 schede di rete dello stesso host....

magari se qualcuno mi spiega questa cosa "terra_terra" mi farebbe un piacere.



:ciauz:

gigyz
01-10-2005, 08:42
terra terra:
se usi la stessa subnet

root@workstation:~# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo

se usi subnet diverse

root@workstation:~# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo

allora la tabella di routing si legge dall'alto in basso, cioè il pacchetto viene instradato alla prima regola che "matcha" partendo dall'alto:

1° caso eth0=192.168.0.1, eth1=192.168.0.2
pacchetto destinato a un qualsiasi 192.168.0.x, prima regola 192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 che in parole povere vuol dire instrada tutti i pacchetti destinati a 192.168.0.x su eth0, quindi la prima regola "matcha" e tutti i pacchetti vengono instradati sempre su eth0 anche se c'è un'altra regola identica 192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1 che vuol dire instrada tutti i pacchetti destinati a 192.168.0.x su eth1 ma siccome viene dopo il pacchetto non ci arriva mai perchè viene instradato prima, se infatti tiri su le eth in ordine inverso (cioè prima la eth1 poi la eth0) nella tabella di routing le due regole saranno invertite di posizione quindi i pacchetti verranno instradati su eth1 invece di eth0.

2° caso eth0=192.168.0.1, eth1=192.168.1.1
pacchetto destinato a un qualsiasi 192.168.0.x, prima regola 192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 che vuol dire sempre instrada tutti i pacchetti destinati a 192.168.0.x su eth0, quindi il pacchetto verrà instradato su eth0, prendiamo ora un pacchetto destinato a 192.168.1.x, non "matcherà" la prima regola allora si passa alla seconda 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1 che significa instrada tutti i pacchetti destinati a 192.168.1.x su eth1 questa regola matcha quindi verra instradato su eth1 e non su eth0.

sopadj1
01-10-2005, 09:46
grazie ora ho capito il problema!

:zizi:

sopadj1
01-10-2005, 17:20
un ultima cosa, chi mi spiega l'output di route -n ? :D :stordita:

non riesco a capirlo bene e non trovo nulla in rete
grazie

Caleb
01-10-2005, 18:43
semplicemente visualizza gli indirizzi degli host in formato numerico, senza risolverne i nomi

sopadj1
01-10-2005, 19:10
Originariamente inviato da Caleb
semplicemente visualizza gli indirizzi degli host in formato numerico, senza risolverne i nomi

si si :D

ma non capisco proprio gli ip in relazione alla colonna....in pratica, chi mi legge , riga per riga, cosa fanno quelle regole di routing nell' esempio riportato qui sopra? fai come se mi stessi a spiegare come ragiona il kernel in base a quell' esempio di routin table, fai come se lo stessi a spiegare a uno che non capisce una mazza, che è il bene :D

grazie

Loading