Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Exploiter un bloc /30

7 réponses
Avatar
Pascal
Bonjour à tous,

Que suggérez-vous pour exploiter au mieux un bloc /30 (4 adresses IP)
public ? Par "au mieux" j'entends attribuer une adresse publique et une
connectivité internet sans NAT à un maximum de machines. Le bloc est
routé depuis internet via uen liaison ADSL et un routeur dont
l'interface externe a une adresse publique en dehors du bloc. Les
machines du LAN ethernet tournent sous Windows (98, 2000/XP) et Linux.
Le routeur tourne lui-même sous Linux 2.4. Je n'envisage pas d'utiliser
ce bloc comme un pool de NAT 1:1. Je précise pour les pros que ce projet
est à titre purement personnel.

Je sais bien qu'un /30 est un peu petit pour définir un réseau "normal",
puisqu'une fois enlevées les traditionnelles 3 adresse de réseau,
passerelle et broadcast il ne reste qu'une adresse de machine
utilisable. C'est pourquoi généralement on n'alloue pas de bloc en
dessous de /29 (8 adresses), ce qui laisse 5 adresses utilisables. Mais
comme ce /30 était offert, je n'allais pas cracher dessus :)

Voici les solutions que j'ai déjà envisagées :

1) Définition d'un sous-réseau /30 normal sur le LAN. Cela ne laisse
qu'une adresse disponible pour une seule machine en plus du routeur. On
peut économiser une adresse en affectant à l'interface interne du
routeur une adresse hors du sous-réseau et en jouant avec des routes
additionnelles pour que routeur et machines puissent communiquer, mais
les deux adresses de réseau et broadcast restent inutilisables.

Efficacité : 1/4 à 2/4.

Inconvénient: trop de gaspillage d'adresses.

2) Définition sur le LAN d'un sous-réseau plus grand englobant le /30 et
dont les adresses de réseau, passerelle et broadcast sont en-dehors du
/30. Il faut pour cela au minimum un /28 dans le meilleur des cas (un
/30 avant et un après). J'ai de la chance, c'est le cas ici. Ainsi les 4
adresses du /30 sont utilisables par des machines du LAN.

Efficacité : 4/4.

Inconvénient : les machines d'internet ayant les autres adresses du
sous-réseau choisi, soit au minimum 12 adresses, sont a priori
injoignables puisque ces adresses sont supposées être joignable sur le
LAN. A la limite il doit y avoir moyen de contourner ça en mettant en
place sur le routeur des mécanismes de type proxy ARP, mais même alors
les deux machines d'internet dont les adresses correspondent aux
adresses de réseau et de broadcast du sous-réseau resteront injoignables
à cause de leur statut particulier.

Avantage : simplicité de configuration pour les machines.


3) Configuration IP "atypique". Il serait envisageable de :
- créer sur le LAN un sous-réseau privé, par exemple 192.168.0.0/24,
- attribuer une adresse de ce sous-réseau à l'interface interne du routeur,
- attribuer à chaque machine une adresse du bloc public avec un masque
/32, l'adresse de broadcast 192.168.0.255 du sous-réseau privé
- définir sur chaque machine une route vers le sous-réseau privé
192.168.0.0/24 via leur interface ethernet,
- définir sur chaque machine l'adresse interne du routeur comme
passerelle par défaut.

Efficacité : 4/4.

Inconvénient : configuration complexe. J'avoue ne pas être persuadé que
tout cela soit bien conforme aux RFC, mais Linux le permet et ça
fonctionne. Hélas Windows n'est pas aussi "souple" : le masque ne peut
pas être plus grand que /30, et l'adresse de broadcast ne peut être
choisie arbitrairement, elle est automatiquement calculée à partir de
l'adresse et du masque. Donc ne marche pas avec Windows.


4) Utilisation de tunnels point à point. L'avantage évident des (vraies)
liaisons point à point est qu'elles ignorent les notions de sous-réseau,
masque, adresse de réseau et de broadcasts et évitent les gaspillages
associés. Une adresse IP à chaque bout et c'est tout. Il existe tout un
choix de tunnels IP disponibles sur Linux ou Windows et utilisables sur
un réseau IP ou ethernet : IP/IP, IP/GRE, PPP (PPTP, L2TP, PPPoE),
OpenVPN... A priori seuls PPTP et PPPoE sont utilisables simplement avec
Windows (L2TP est obligatoirement associé à IPSec, OpenVPN ne marche
qu'avec Windows 200x/XP et impose un adressage en sous-réseau /30 même
en mode tun).

Efficacité : 4/4.

Inconvénient : des couches réseau en plus.

Avantage : peut se superposer à un réseau existant. Les tunnels peuvent
être établis dynamiquement, les adresses peuvent être partagées entre
plus de 4 machines si elles n'en ont pas toutes besoin en même temps.
Avec un protocole de tunnel sur IP, une adresse peut même être allouée à
une machine se trouvant ailleurs que sur le réseau local, par exemple à
une machine située dans un autre réseau derrière un dispositif NAT
ailleurs sur internet, lui permettant d'utiliser des protocoles
exotiques non NAT-friendly (jeux, communication...) comme s'il était
directement sur internet, en supposant que ces activités se contentent
de la latence et du débit médiocres du tunnel.


Pour le moment, je m'oriente plutôt vers l'utilisation de tunnels.
Si vous avez d'autres idées, des suggestions, des avis...

7 réponses

Avatar
Jacques Caron
Salut,

On Tue, 30 Nov 2004 17:07:58 +0000 (UTC),
wrote:

C'est pourquoi généralement on n'alloue pas de bloc en dessous de /29 (8
adresses), ce qui laisse 5 adresses utilisables. Mais comme ce /30 était
offert, je n'allais pas cracher dessus :)


Les /30 sont très largement utilisés pour des liens point-à-point. Ce qui
représente pas mal de gâchis, d'où une tentative d'évolution vers le /31
qui serait l'exception qui confirme la règle :-)

Sinon je propose ma solution à moi (proche de la solution 3):

- tu utilises un subnet privé quelconque (par exemple 192.168.0.0/24)
- tu attribues à la passerelle et à chaque machine une adresse IP dedans,
et les routes statiques habituelles
- tu ajoutes sur chaque machine une adresse dans le /30, avec un masque en
/32. Pour faire propre l'idéal est de mettre la dite adresse comme alias
sur une interface de loopback, mais modulo quelques détails ça peut aussi
marcher en alias sur l'interface Ethernet.
- sur la passerelle, tu mets une route statique pour chaque /32 vers
l'adresse privée correspondante, ou alternativement tu fais du RIP (v2
bien sûr) ou un autre IGP

Pour tout ce qui est trafic entrant ça marche nickel sans rien à faire de
plus. Pour le trafic sortant c'est plus délicat, parce que l'OS voudra
utiliser l'adresse privée comme adresse source pour les connexions.
Suivant l'environnement, la configuration de chaque appli pour lui dire
d'utiliser une adresse source spécifique est souvent la méthode la plus
simple, mais il peut y en avoir d'autres suivant l'OS.

Moi j'utilise cette méthode (avec du RIP) pour des serveurs en
load-balancing + fail-over (les /32 sont donc des "IP virtuelles" ou VIPs,
qui sont présentes sur plusieurs machines, et le routage RIP fait préférer
l'une ou l'autre machine physique pour gérer les requêtes), et ça marche
plutôt bien :-)

Jacques.
--
Interactive Media Factory
Création, développement et hébergement
de services interactifs: SMS, SMS+, Audiotel...
http://www.imfeurope.com/

Avatar
Pascal
Jacques Caron wrote:

C'est pourquoi généralement on n'alloue pas de bloc en dessous de /29
(8 adresses), ce qui laisse 5 adresses utilisables. Mais comme ce /30
était offert, je n'allais pas cracher dessus :)


Les /30 sont très largement utilisés pour des liens point-à-point.


C'est vrai, je l'ai d'ailleurs appris quand j'ai reçu le mien. Mais ce
n'est pas à cela que je compte l'utiliser, bien au contraire. Quel
possesseur d'un réseau domestique n'a pas rêvé de pouvoir donner une
adresse publique à chacune de ses machines au lieu de passer par cette
saleté de NAT ? C'est l'occasion pour moi de réaliser ce rêve, je ne
compte pas la laisser passer :)

Ce qui représente pas mal de gâchis,


Mouais. On pourrait aussi parler d'un certain nombre d'"organisations"
qui ont des /8 pas entièrement routés sur internet, sans doute alloués à
l'époque reculée où on les distribuait à la pelle. J'ai du mal à
imaginer qu'une organisation autre qu'un très gros FAI puisse réellement
justifier le besoin de 16 millions d'adresses. </HS>

d'où une tentative d'évolution vers
le /31 qui serait l'exception qui confirme la règle :-)


Euh, je crains que techniquement ça ne marche pas partout. Voir mon cas.

Sinon je propose ma solution à moi (proche de la solution 3):

- tu utilises un subnet privé quelconque (par exemple 192.168.0.0/24)
- tu attribues à la passerelle et à chaque machine une adresse IP
dedans, et les routes statiques habituelles


C'est bon, j'ai déjà :)

- tu ajoutes sur chaque machine une adresse dans le /30, avec un masque
en /32. Pour faire propre l'idéal est de mettre la dite adresse comme
alias sur une interface de loopback, mais modulo quelques détails ça
peut aussi marcher en alias sur l'interface Ethernet.


Problème : d'après ce que j'ai constaté, Windows refuse un masque en /32
ou même /31 :( . Et il est impératif que je puisse allouer de ces
adresses à des machines sous Win.
Plus que les machines Linux en fait, pour lesquelles je n'ai pas
vraiment le besoin, sauf à vouloir faire des choses très particulières
que je n'envisage pas du tout pour le moment comme mettre en place
plusieurs serveurs DNS, MX SMTP ou HTTPS...

- sur la passerelle, tu mets une route statique pour chaque /32 vers
l'adresse privée correspondante, ou alternativement tu fais du RIP (v2
bien sûr) ou un autre IGP


Les protocoles de routage sortent largement de mes compétences, je pense
que ça ne vaut pas le coup pour 4 malheureuses adresses.

Pour tout ce qui est trafic entrant ça marche nickel sans rien à faire
de plus. Pour le trafic sortant c'est plus délicat, parce que l'OS
voudra utiliser l'adresse privée comme adresse source pour les
connexions.


Pense que ça doit marcher avec Windows.

Suivant l'environnement, la configuration de chaque appli
pour lui dire d'utiliser une adresse source spécifique est souvent la
méthode la plus simple, mais il peut y en avoir d'autres suivant l'OS.


Je n'ai pas vu ça souvent à part pour des serveurs ou des outils réseau.

Moi j'utilise cette méthode (avec du RIP) pour des serveurs en
load-balancing + fail-over (les /32 sont donc des "IP virtuelles" ou
VIPs, qui sont présentes sur plusieurs machines, et le routage RIP fait
préférer l'une ou l'autre machine physique pour gérer les requêtes), et
ça marche plutôt bien :-)


Vi, mais mes marchines à moi sont susceptibles d'être aussi bien
"clientes" que "serveurs" comme dans les réseaux pair à pair.

Par curiosité, comment fais-tu pour qu'une fois que le premier paquet
d'une connexion a été routé vers un des serveurs, les paquets suivants
appartenant à la même connexion suivent le même chemin ?


Avatar
Jacques Caron
Salut,

On Wed, 01 Dec 2004 01:13:44 +0100,
wrote:

Problème : d'après ce que j'ai constaté, Windows refuse un masque en /32
ou même /31 :(. Et il est impératif que je puisse allouer de ces
adresses à des machines sous Win.


Arg, enfer et damnation. J'avais pas intégré cette dimension :-) Sur ce
fichu OS qui ne sait même pas ce qu'est une interface de loopback,
évidemment, c'est pas facile... Je crains effectivement que cette méthode
ne soit applicable dans ce cas, donc :-(

Vi, mais mes marchines à moi sont susceptibles d'être aussi bien
"clientes" que "serveurs" comme dans les réseaux pair à pair.


Dans ce cas ce n'est pas la meilleure méthode, surtout si les machines
sont sous Windows...

Par curiosité, comment fais-tu pour qu'une fois que le premier paquet
d'une connexion a été routé vers un des serveurs, les paquets suivants
appartenant à la même connexion suivent le même chemin ?


Une adresse IP donnée n'est routée que vers l'un des serveurs à un instant
donné. Il y a donc une VIP par serveur, servies par un round-robin DNS, et
chaque serveur annonce l'ensemble des routes, mais avec une métrique
différente.

Une fois la résolution DNS effectuée, le client utilise toujours la même
adresse IP (enfin le temps d'une session en tous cas), qui arrive toujours
sur le même serveur, tant qu'il ne meurt pas. Dans ce cas les routes vers
lui disparaissent, et les routes annoncées par les autres serveurs (même
routes, mais avec une métrique supérieure) prennent le relais.

C'est pas aussi sophistiqué qu'un "vrai" load-balancer genre BigIP ou
switch L4 (et ça utilise plus d'adresses IP), mais ça marche très bien,
c'est facile à implémenter et à débugger (y compris dans des setups
entièrements redondants), et ça reste assez souple. Sinon pour du WWW il y
a aussi la solution des reverse proxies qui doit marcher pas mal.

Jacques.
--
Interactive Media Factory
Création, développement et hébergement
de services interactifs: SMS, SMS+, Audiotel...
http://www.imfeurope.com/

Avatar
Pascal

Problème : d'après ce que j'ai constaté, Windows refuse un masque en
/32 ou même /31 :(. Et il est impératif que je puisse allouer de ces
adresses à des machines sous Win.


Arg, enfer et damnation. J'avais pas intégré cette dimension :-) Sur ce
fichu OS qui ne sait même pas ce qu'est une interface de loopback,


En fait, Windows 2000 au moins semble avoir une certaine conscience de
l'interface de loopback. Invisible dans les propriétés réseau, mais les
commandes shell (finalement y a que ça de vrai) "netsh" et "ipv6"
révèlent son existence. Je n'ai pas réussi toutefois à accéder à son
paramétrage IP avec "netsh". A ne pas confondre avec l'"interface de
bouclage" (super le nom, je n'ose même pas penser à ce que ça donne en
VO) qui est une sorte d'interface ethernet virtuelle bidon (équivalant à
l'interface "dummy" de Linux).

évidemment, c'est pas facile... Je crains effectivement que cette
méthode ne soit applicable dans ce cas, donc :-(


Je le crains aussi. Merci quand même de ta suggestion. A l'occasion je
l'essaierai avec Linux pour voir. Apparemment on peut utiliser l'option
"src" de la commande "ip" de iproute pour spécifier l'adresse source à
utiliser avec une destination donnée.


Avatar
Florent Clairambault
Euh, certaines entreprises ont effectivement des blocs d'IP en /16, par
contre en /8, j'y crois pas trop...

Vous vous prenez la tête pour rien. A votre place, je ferai une passerelle
pour le réseau local, un serveur web et j'aviserai après pour le reste (par
exemple faire un DMZ sur une machine du réseau local).



Florent


"" a écrit dans le message de news:
coj29e$l3c$
Jacques Caron wrote:

C'est pourquoi généralement on n'alloue pas de bloc en dessous de /29 (8
adresses), ce qui laisse 5 adresses utilisables. Mais comme ce /30 était
offert, je n'allais pas cracher dessus :)


Les /30 sont très largement utilisés pour des liens point-à-point.


C'est vrai, je l'ai d'ailleurs appris quand j'ai reçu le mien. Mais ce
n'est pas à cela que je compte l'utiliser, bien au contraire. Quel
possesseur d'un réseau domestique n'a pas rêvé de pouvoir donner une
adresse publique à chacune de ses machines au lieu de passer par cette
saleté de NAT ? C'est l'occasion pour moi de réaliser ce rêve, je ne
compte pas la laisser passer :)

Ce qui représente pas mal de gâchis,


Mouais. On pourrait aussi parler d'un certain nombre d'"organisations" qui
ont des /8 pas entièrement routés sur internet, sans doute alloués à
l'époque reculée où on les distribuait à la pelle. J'ai du mal à imaginer
qu'une organisation autre qu'un très gros FAI puisse réellement justifier
le besoin de 16 millions d'adresses. </HS>

d'où une tentative d'évolution vers le /31 qui serait l'exception qui
confirme la règle :-)


Euh, je crains que techniquement ça ne marche pas partout. Voir mon cas.

Sinon je propose ma solution à moi (proche de la solution 3):

- tu utilises un subnet privé quelconque (par exemple 192.168.0.0/24)
- tu attribues à la passerelle et à chaque machine une adresse IP dedans,
et les routes statiques habituelles


C'est bon, j'ai déjà :)

- tu ajoutes sur chaque machine une adresse dans le /30, avec un masque
en /32. Pour faire propre l'idéal est de mettre la dite adresse comme
alias sur une interface de loopback, mais modulo quelques détails ça
peut aussi marcher en alias sur l'interface Ethernet.


Problème : d'après ce que j'ai constaté, Windows refuse un masque en /32
ou même /31 :( . Et il est impératif que je puisse allouer de ces adresses
à des machines sous Win.
Plus que les machines Linux en fait, pour lesquelles je n'ai pas vraiment
le besoin, sauf à vouloir faire des choses très particulières que je
n'envisage pas du tout pour le moment comme mettre en place plusieurs
serveurs DNS, MX SMTP ou HTTPS...

- sur la passerelle, tu mets une route statique pour chaque /32 vers
l'adresse privée correspondante, ou alternativement tu fais du RIP (v2
bien sûr) ou un autre IGP


Les protocoles de routage sortent largement de mes compétences, je pense
que ça ne vaut pas le coup pour 4 malheureuses adresses.

Pour tout ce qui est trafic entrant ça marche nickel sans rien à faire de
plus. Pour le trafic sortant c'est plus délicat, parce que l'OS voudra
utiliser l'adresse privée comme adresse source pour les connexions.


Pense que ça doit marcher avec Windows.

Suivant l'environnement, la configuration de chaque appli pour lui dire
d'utiliser une adresse source spécifique est souvent la méthode la plus
simple, mais il peut y en avoir d'autres suivant l'OS.


Je n'ai pas vu ça souvent à part pour des serveurs ou des outils réseau.

Moi j'utilise cette méthode (avec du RIP) pour des serveurs en
load-balancing + fail-over (les /32 sont donc des "IP virtuelles" ou
VIPs, qui sont présentes sur plusieurs machines, et le routage RIP fait
préférer l'une ou l'autre machine physique pour gérer les requêtes), et
ça marche plutôt bien :-)


Vi, mais mes marchines à moi sont susceptibles d'être aussi bien
"clientes" que "serveurs" comme dans les réseaux pair à pair.

Par curiosité, comment fais-tu pour qu'une fois que le premier paquet
d'une connexion a été routé vers un des serveurs, les paquets suivants
appartenant à la même connexion suivent le même chemin ?




Avatar
Jacques Caron
Salut,

On Sat, 29 Jan 2005 00:21:54 +0100, Florent Clairambault
wrote:

Euh, certaines entreprises ont effectivement des blocs d'IP en /16, par
contre en /8, j'y crois pas trop...


C'est mal connaître l'histoire d'Internet. Les classes A, ça ne vous dit
rien? Faites whois <nombre de 1 à 63>.0.0.0, vous en trouverez un paquet.
Certaines ont été "rendues" à l'IANA et réattribuées à des RIRs pour
allocation en CIDR, mais il en reste pas mal.

Jacques.
--
Interactive Media Factory
Création, développement et hébergement
de services interactifs: SMS, SMS+, Audiotel...
http://www.imfeurope.com/

Avatar
Pascal
Salut,

Euh, certaines entreprises ont effectivement des blocs d'IP en /16, par
contre en /8, j'y crois pas trop...


Regarde donc le début de la liste de l'IANA :
http://www.iana.org/assignments/ipv4-address-space

Et depuis l'adoption de CIDR, il y a aussi des tailles intermédiaires
entre /16 et /8.

Vous vous prenez la tête pour rien. A votre place, je ferai une passerelle
pour le réseau local,


La passerelle existe déjà évidemment puisque c'est elle qui fait tout le
boulot de routage

un serveur web


Pourquoi ferais-je un serveur web alors que j'ai précisé que je n'en
avais pas besoin ?

et j'aviserai après pour le reste (par
exemple faire un DMZ sur une machine du réseau local).


Qu'appelles-tu "DMZ sur une machine du réseau local" ? Si tu fais
référence à un NAT par défaut sur une adresse du LAN comme sur les
routeurs basiques, ce n'est pas du tout ce que je recherche à faire.

Pour ceux que ça intéresse, j'ai finalement adopté la solution des
tunnels point à point.

PS: en soignant ta façon de citer, tu m'aurais évité de rechercher dans
un texte assez long qui date de près de deux mois à quoi la première
partie de ta réponse se rapportait.
http://www.usenet-fr.net/fur/usenet/repondre-sur-usenet.html § 3.
Merci.