Newsgroup: it.comp.reti.ip-admin
Titolo: Sottoreti IP

Come si può dividere una rete IP di classe C in piu sottoreti?
In pratica mi occorrerebbe dividerla in due sottoreti collegandole con
router, ad una di esse riservarle solo pochi indirizzi ad esempio 16 e il
restante dei 255 indirizzi per l'altra rete.
GRAZIE
Marco Del Giudice
ma...@netgroup.it

 restante dei 255 indirizzi per l'altra rete.
Usare il netmask?
A seconda del valore dell' ultimo byte (0 -> FF) la macchina decide se
gli indirizzi sono locali o no...
con 255.255.255.0 sono locali tutti quelli in A.B.C.x, ma se lo cambi,ad
es. in 255.255.255.128, la tua classe C e' spezzata in due...
my 2c.
ciao
guido
-- 
---------------------------------------------------
Guido Bolognesi  ---  System and Network Adm    ---
       ...and proud Linux user/developer!
gu...@mail.ing.unibo.it
   ---  
bolo...@cs.unibo.it
"Experience varies directly with equipement ruined"


Si daccordo ma come si usano ?
Cioč se uso la subnet 255.255.255.128 quali ip fanno parte di questa
sottoclasse ?
Esempio: supponiamo di suddividere una classe C in due in modo che ad una
vadano 16 indirizzi ip e all'altra i rimanenti 240, si dovrebbero creare le
subnet mask in questo modo ? 1) 255.255.255.16 2) 255.255.255.240 č cosi', e
quali indirizzi vanno ad essere allociati alle subnet ?
E' forse arbitrario, cioč se assegno l'indirizzo xxx.xxx.xxx.1 alla prima
sottorete e implicito che a quella rete sono associati gli indirizzi da 1 a
16, ed il restante per l'altra rete ?
GRAZIE
CIAO

quali indirizzi vanno ad essere allociati alle subnet ?
io non sono espertissimo, ma se la dividi in due la dividi in due..
quindi, con 255.255.255.128
da x.x.x.0
a x.x.x.127
e da x.x.x.128
a x.x.x.255
tieni presente che per le postazioni non puoi usare il primo e l'ultimo IP
di ogni subnet.
se vuoi 16 macchine per subnet devi mettere il netmask a 255.255.255.240 e
cosi' ottieni 16 subnet:
da x.x.x.0
a x.x.x.15
da x.x.x.16
a x.x.x.31
da x.x.x.32
a x.x.x.47
ecc. ecc.
di nuovo, pero' tieni presente che anche in questo caso non puoi usare il
primo e l'ultimo IP do ogni subnet (servono per il routing).
Ciao.
--
Mau


Non mi è chiara una cosa...
host con IP 193.2.1.25 comunica con host 193.2.1.234
=> 193.2.1.234 & 255.255.255.16 = 193.2.1.0
=> prefissi diversi
=> passa dal router
Ma nel caso allo studio il prefisso è diverso solo per gli IP fino a 16 -
dal 17 a fine rete si ha un unico gruppo.
Per il poco che ho studiato per le mie necessità il valore per la subnet
mask di 16 IP (di cui se ne possono usare solo 14 poiché il primo e l'ultimo
sono riservati) è sempre e comunque 255.255.255.240.
Ogni macchina è così in grado di sapere quale è la sua subnet in base al
proprio IP.
Infatti 240 = 11110000 -> la macchina sa che tutti i computer che hanno
l'ultimo byte dell'IP che ha i primi 4 bit uguali ai propri sono nella
subnet, tutti gli altri passano dal router.
Esempio 195.103.217.205
205 = 11001101
Con subnet mask 255.255.255.240 posso sapere che la subnet contiene tutti
gli IP da 1100001 (193) a 11001110 (206) (11000000 e 11001111 sono
riservati).
Se anziché 16 (14 usabili) IP ne vogliamo solo 8 (6 usabili) la subnet mask
sarà 255.255.255.248
248 = 11111000 - se i primi 5 bit sono uguali siamo nella subnet - se anche
1 solo è diverso siamo fuori dalla subnet.
Che questo funziona ne sono certo. Come si fa a calcolare la subnet per il
resto della rete non chiedetemelo ancora perché lo sto studiando.
Saluti.
Stefano Scardovi.

 (...)
	L'IP stabilisce che l' host TX, per comunicare con l' host RX, fa una
richiesta al router SOLO quando vede che il prefisso della propria
subnet e il prefisso ottenuto facendo and bit a bit tra ip dell'host RX
e la propria netmask non coincidono, ovvero quando TX e RX appartengono
a due LIS diverse. 
	Il problema di cui ci stiamo occupando, se ho ben capito, e' quello
quello di trovare una sequenza di indirizzi ip da assegnare agli hosts
in modo tale da partizionare una rete con indirizzo IP di classe C in
due LIS una da 240 e l' altra da 14 hosts, E IN MODO TALE CHE GLI
INDIRIZZI IP delle macchine di una stessa subnet siano consecutivi ... 
(forse troppo IN FRETTA ;-) ) ho pensato che la soluzione fosse quella
proposta nelle mie due mail precedenti... in realta' nella soluzione che
ho proposto tutte le macchine che hanno il quinto bit  a zero
appartengono alla LIS 193.2.1.0 infatti :
	193.2.1.yyy0zzzz & 255.255.255.00010000 = 193.2.1.0 
        => tutti gli hosts con ip 193.2.1.yyy0zzzz appartengono alla LIS
N.1 .
 Ovviamente tutti gli hosts che hanno il quinto bit  a uno appartengono
alla LIS 193.2.1.16 infatti :
	193.2.1.yyy1zzzz & 255.255.255.00010000 = 193.2.1.16 
        => tutti gli hosts con ip 193.2.1.yyy1zzzz appartengono alla LIS
N.2 
Francamente non sono ancora riuscito a trovare una soluzione al
problema; Qualcuno nel NG c'e' riuscito????
ciau ciau

 wrote:
: Francamente non sono ancora riuscito a trovare una soluzione al
: problema; Qualcuno nel NG c'e' riuscito????
Non mi ci sono messo, sinceramente... cmq un valido aiuto puo' venire
dal seguente programmillo (non e' mio, ma mi ha risparmiato spesso
un bel po' di tempo ;))
#include <stdio.h>
int main (int argc, char *argv[])
{
    const char *prefix = "192.168.1";
    if (argc == 2) prefix = argv[1];
    int nbnet = 2;
    int bit = 128;
    int mask = 0;
    const char *ctl = "%-17s%-17s%-17s%-17s\n";
    printf (ctl,"Netmask","Networkadr","Start","Stop");
    for (int i=0; i<6; i++, nbnet *= 2, bit >>=1){
        mask |= bit;
        int adr = 0;
        for (int n=0; n<nbnet; n++, adr += bit){
            char maskstr[20];
            maskstr[0] = '\0';
            if (n == 0){
                printf ("\n");
                sprintf (maskstr,"255.255.255.%d",mask);
            }
            char adrstr[20];
            sprintf (adrstr,"%s.%d",prefix,adr);
            char start[20],stop[20];
            sprintf (start,"%s.%d",prefix,adr+1);
            sprintf (stop,"%s.%d",prefix,adr+bit-2);
            printf (ctl,maskstr,adrstr,start,stop);
        }
    }
    return 0;
}
-- 
Gianugo Rabellino

restante dei 255 indirizzi per l'altra rete.
Secondo me non è possibile farlo con tutti i crismi.
Le sottoreti IP hanno sempre un numero di indirizzi che è una potenza
di 2 (2, 4, 8, 16, ..., 256), e tu vuoi anche una sottorete con 256-16
= 240 indirizzi.
Osservazione: è inutile giocare con netmask del tipo 11000011 o peggio
10101010 (cioè con la parte nulla non allineata a destra) poiché anche
così i bit nulli individuano comunque un sottospazio di grandezza 2^n;
di diverso avremo solamente che gli indirizzi anziché essere
consecutivi, sono distribuiti in altre maniere sulla classe (per
esempio con 11000011 si ottiene un indirizzo ogni 4).
Premessa: abbiamo due segmenti fisici, A e B, divisi dal router.
Fissiamo quindi la netmask del subnet piccolo a 240 cioè 11110000;
questa fissa 16 indirizzi consecutivi nella classe.  La posizione di
questo blocco di indirizzi nella classe è determinata quindi dai primi
quattro bit dell'indirizzo IP di una qualunque macchina del subnet;
supponiamo che l'indirizzo della prima macchina sia 00000000 (per
semplificare il discorso, sto per ora considerando validi come
indirizzi di macchina anche i due indirizzi estremi di ogni subnet),
perciò il subnet in questione è {0, 1, 2, ..., 15}.
Esso, indicato come subnet a, sarà inserito sul segmento fisico A.
A questo punto (come detto sopra) è impossibile rappresentare mediante
una netmask il range di 240 indirizzi restanti: {16, 17, ..., 256}.
Il meglio che si può fare è creare un altro subnet il più grande
possibile (in questo caso 128 indirizzi, dato che la scelta successiva
è 256 e ci sovrapporremmo al primo subnet) e lasciare vacanti i
restanti 112 indirizzi.
Avremo dunque un subnet b di 128 indirizzi sul segmento B; la netmask
è di conseguenza pari a 10000000 (128) e il primo indirizzo pari a
128: {128, 129, ..., 256}.
In effetti i 112 indirizzi vacanti si potranno utilizzare in futuro (o
anche subito) sezionandone di volta in volta un subnet (prima 64, poi
32, e poi 16 indirizzi, se vogliamo di volta in volta massimizzare il
blocco) senza essere costretti a creare nuovi segmenti fisici; nulla
ci impedisce di inserire tutte le macchine di questi subnet su uno dei
due segmenti fisici esistenti: ci penserà il router (opportunamente
configurato) a far comunicare i vari subnet che risiedono sullo stesso
segmento (si potrebbe dire che questo è un caso di routing
"degenere").
Rappresentazione grafica della suddivisione della classe:
a  e  d    c        b
** -- ---- -------- ****************
(ogni asterisco rappresenta 8 indirizzi consecutivi allocati, ogni
trattino rappresenta 8 indirizzi consecutivi vacanti)
Ricorda che se il router marginale (quello che ti collega al resto del
mondo) è sul segmento B, esso dovrà essere configurato (tabella di
routing) in modo da mandare al tuo router i pacchetti destinati al
subnet a (segmento A), a meno che non ci sia di mezzo il RIP (in tal
caso la configurazione è automatica) o che il tuo router non faccia da
ARP proxy per il segmento B, ma in tal caso probabilmente non avresti
problemi di subnet, poiché si potrebbe fare un solo subnet coincidente
con la classe e lasciare al router il compito di "ARPare"
vicendevolmente i due segmenti... a proposito, perché vuoi segmentare
la rete e creare due subnet?  Può darsi che la soluzione di routing
classico (non ARP proxy) non sia la migliore.
Una alternativa potrebbe essere quella di far finta che tutte le
macchine del segmento fisico B siano appartenenti a un subnet
coincidente con l'intera classe {0, 1, 2, ..., 256} (e quindi
configurare di conseguenza i moduli TCP/IP su ciascuna macchina) e poi
fare in modo che i pacchetti destinati al subnet a vengano inoltrati
al router, ma questo richiede manipolazioni piuttosto delicate delle
tabelle di routing di ciascuna macchina del segmento B e del router
stesso (in ciascuna tabella di routing, la voce relativa al subnet a
deve venire prima della voce [automatica] relativa alla classe
intera).  Oltre a essere difficilmente praticabile, questa soluzione
fa un po' rabbrividire :)
------------------------------------------------------------ -= MarCo =-
PGP public key:
http://keys.pgp.com:11371/pks/lookup?op=get&exact=on&search=0x96A79061
http://www.pgp.net/cgi-bin/pks-extract-key.pl?op=index&search=0x96A79061
Fingerprint: 9F E5 80 61 F6 9F 05 2D  EA 53 6F 2D 82 8B C7 C2
------------------------------------------------------------------------

 varie interfacce.
No, e' che il router quando vede che dei pacchetti devono essere rispediti sulla
stessa interfaccia da cui sono arrivati mandano un redirect e quindi l'host
capisce che per passare da una subnet all'altra non c'e' bisogno di passare dal
router.
Comunque, non puo' funzionare come dici tu, visto che gli host su una subnet
avrebbero come gateway un host su una subnet diversa e quindi non saprebbero
come raggiungerla. Devi assegnare indirizzi secondari all'ethernet del router,
uno per ogni subnet...
Ciao.
P.S. E' meglio preseguire la discussione sul newsgroup...
-- 
 Daniele
--------------------------------------------------------------------
 Daniele Orlandi - Utility Line Italia - 
http://www.xt.net
 
 Via Mezzera 29/A - 20030 Seveso (MI) - Italy - FAX: 
++39(362)540153
--------------------------------------------------------------------