Les adresses IP sont en général délivrées par un serveur DHCP. Cela est fait pour simplifier la vie des utilisateurs afin de ne pas avoir à taper toutes les informations de connexion réseau manuellement, et d'éviter les conflits d'adresses IP. Cela comporte un inconvénient : le serveur DHCP ne pouvant pas connaître à l'avance qui se connectera, il délivre aux clients une adresse IP aléatoire. Elle sera également provisoire (bail DHCP), ce qui veut dire que le serveur DHCP libèrera l'adresse IP une fois le bail écoulé, pouvant ainsi l'attribuer à une autre machine.
Même si la plupart des serveurs DHCP modernes mémorisent l'adresse MAC des machines afin de toujours délivrer la même adresse IP, il peut arriver qu'il en délivre une autre. Cela ne pose aucun problème sur un poste client qui ne fait que "consommer des services", mais peut empêcher un poste hébergeant un service d'être accessible. Typiquement, VetoPartner recherche l'adresse IP de la machine sur laquelle est installée la base de données avant chaque connexion, et s'il ne la connaît pas, demandera à l'utilisateur de l'identifier :
Si l'adresse IP est changée, il est alors possible de la rechercher puis de l'entrer manuellement, mais il faut le faire sur chaque poste client, ce qui est chronophage. Le plus simple est donc de la rendre statique. Il existe plusieurs méthodes. Divers tutos sur internet permettent de le faire rapidement et simplement. Je souhaite présenter ici une méthode qui paraîtra fastidieuse, mais qui permettra de mieux comprendre les règles d'adressage IP de son routeur local afin de mieux comprendre les éventuels problèmes futurs.
S'il n'y a qu'une seule carte réseau Ethernet sur la machine, elle sera très facile à identifier. Mais s'il y en a plusieurs, il faut identifier celle qui est connectée au routeur et sur laquelle on veut fixer l'IP. On ouvre un PowerShell : clic droit sur l'icône Windows en bas à droite et cliquer sur "PowerShell" (pas besoin d'être admin) et on liste les cartes réseaux en tapant Get-NetAdapter :
PS C:\> Get-NetAdapter
Name InterfaceDescription ifIndex Status MacAddress LinkSpeed
---- -------------------- ------- ------ ---------- ---------
Ethernet 4 Broadcom NetXtreme Gigabit Ethernet #4 22 Not Present E4-3D-1A-CD-65-83 0 bps
Ethernet 3 Broadcom NetXtreme Gigabit Ethernet #3 19 Up E4-3D-1A-CD-75-47 1 Gbps
Ethernet 1 Broadcom NetXtreme Gigabit Ethernet #1 14 Up B8-CB-29-B4-D4-DA 1 Gbps
vEthernet (Commutateur... Hyper-V Virtual Ethernet Adapter 11 Not Present E4-3D-1A-DF-65-15 0 bps
Ethernet 2 Broadcom NetXtreme Gigabit Ethernet #2 10 Up B8-CB-29-B4-D4-46 1 Gbps
Je vois que j'ai ici les 3 cartes réseaux Ethernet physiques où j'ai le statut "Up" et qui sont reliées à la box. Je choisis par exemple la carte Ethernet 1 (surlignée en jaune) qui a l'index d'interface 14.
C'est l'adresse IP de la box si aucun paramétrage n'a été changé. On peut la trouver soit en tapant sur un moteur de recherche "adresse IP box de mon FAI machintruc" (le plus facile) ou en la cherchant soi-même (un peu plus long).
Je vais me servir de la carte réseau préalablement identifiée et taper Get-NetIPConfiguration -Interfaceindex 14 pour connaître ses détails de connexion au réseau :
PS C:\> Get-NetIPConfiguration -InterfaceIndex 14
InterfaceAlias : Ethernet 1
InterfaceIndex : 14
InterfaceDescription : Broadcom NetXtreme Gigabit Ethernet #1
NetProfile.Name : test.lan
IPv4Address : 192.168.1.10
IPv4DefaultGateway : 192.168.1.254
DNSServer : 192.168.1.254
L'adresse IP de la box est donc celle de la ligne "IPv4DefaultGateway", dans mon cas 192.168.1.254. On en profite aussi pour noter l'adresse du serveur DNS (ligne "DNSServer"), qui est la même que la passerelle par défaut.
Il est aussi possible de connaître le serveur DNS du poste client grâce à la commande Get-DNSClientServerAddress :
PS C:\> Get-DNSClientServerAddress -InterfaceIndex 14
InterfaceAlias Interface Address ServerAddresses
Index Family
-------------- --------- ------- ---------------
Ethernet 1 14 IPv4 {192.168.1.254}
On tape, dans la barre d'adresse de son navigateur préféré, l'adresse IP de sa box. Il faut ensuite naviguer dans les menus pour trouver la plage d'adresse IP définie par le serveur DHCP et le masque de sous-réseau. Par exemple chez Bouygues il faut aller dans "Services de la Bbox" > "DHCP" :
On voit que le masque de sous-réseau est 255.255.255.0 (qui correspond à /24 en notation CIDR, plus fréquemment rencontrée de nos jours). L'adresse IP locale de la box étant 192.168.1.254, mon sous-réseau est 192.168.1.x ce qui signifie que j'ai la plage allant de 192.168.1.1 à 192.168.1.253 qui est utilisable. On voit aussi que le DHCP a une plage qui va de 192.168.1.100 à 192.168.1.199. Cela veut dire que 100 machines pourront avoir une adresse IP délivrées par le serveur DHCP avec une IP comprise dans cet intervalle.
Je peux donc utiliser la plage de 2 à 99 pour les IP fixes (mieux vaut éviter d'utiliser 0 et 1).
Je ne peux pas établir une IP fixe sur une machine dans la plage DHCP ?
Avec la plupart des serveurs DHCP récent, si. Ils sont "intelligents" et détectent si telle ou telle IP est déjà occupée par une machine. Cependant, pour en avoir fait l'expérience avec cette box de chez Bouygues, j'ai eu des soucis de conflits d'adresses IP. J'ai donc préféré éviter. De plus je trouve pratique de discerner les plages fixes et DHCP car cela évite la confusion : en cas de recherche future d'adresse IP, on sait que telle plage, c'est les IP fixes, telle plage est attribuée par le serveur DHCP.
On peut également établir un bail statique directement sur la box. Exemple dans l'image ci-dessous, on peut cliquer sur "ajouter un équipement", la box va lister toutes les adresses MAC des machines connectées. On peut ainsi sélectionner la machine souhaitée et le serveur DHCP ne changera plus son IP. Je n'aime pas trop cette méthode car on a souvent plusieurs machines où il faut fixer l'IP, et le jour où la box tombe en panne, c'est la pagaille : il faut tout reparamétrer manuellement sur la nouvelle box.
Il ne reste plus qu'à choisir une adresse IP fixe. Admettons que je choisisse 192.168.1.10. Je connais donc :
Le plus dur est fait. Il ne reste plus qu'à lancer un "PowerShell (admin)" et de taper :
New-NetIPAddress –InterfaceIndex 14 –IPAddress 192.168.1.10 –PrefixLength 24 –DefaultGateway 192.168.1.254
Puis de saisir l'adresse du serveur DNS :
Set-DnsClientServerAddress -InterfaceIndex 14 -ServerAddresses 192.168.1.254
On remarque qu'il y a un "s" à la fin de -ServerAddresses car on peut définir plusieurs IP de serveurs DNS en les séparant avec une virgule. On va surtout s'en servir si on installe son propre serveur DNS et qu'on veut en référencer un de secours.
D'autre part, le serveur DNS de la box renvoie sur les serveurs DNS du FAI. On n'est pas obligé de l'utiliser, on peut très bien utiliser un autre serveur DNS public, comme ceux de Google, ou 1.1.1.1, ou un serveur DNS "fait maison". Cependant, il n'est souvent pas possible de le changer directement sur la box. On peut voir d'ailleurs dans mon exemple que chez Bouygues, on ne peut pas : la case est grisée et non modifiable. Il faut alors créer son propre serveur DHCP et y définir le serveur DNS personnalisé, et désactiver le DHCP de la box. Ou alors changer manuellement le serveur DNS sur chaque poste client (fastidieux et source de problèmes).
Il existe également la commande ipconfig /all qui est compatible PowerShell ou utilisable sur l'invite de commandes — il peut s'ouvrir en enfonçant les touches Win + R et en tapant cmd. J'essaye de l'utiliser le moins possible et de m'habituer aux commandes PowerShell qui sont de plus en plus utilisées par Windows. L'invite de commande, lui, semble peu à peu délaissé.