"Failed to release DHCP lease." avec une IP fixe et SConfig?

Si vous utilisez l'outil SConfig avec Windows Server, vous êtes peut-être déjà tombé sur le problème que je m'apprête à décrire.

Au moment de changer la configuration IP d'un serveur, le message suivant s'affiche :

Failed to release DHCP lease.

De prime aborde, le message n'est pas inquiétant. On pourrait lancer un ipconfig /renew et retourner dans SConfig.
Oui, mais voilà, tout n'est pas toujours aussi simple. Il se trouve que ce message d'erreur peut survenir alors que l'on utilise déjà une IP fixe.

Quelles solutions?

Pour s'en sortir, deux approches sont possibles :

  • Déconnecter le câble réseau, changer la configuration et reconnecter le câble.
  • Utiliser PowerShell pour ajouter une seconde IP fixe, et retirer ensuite l'ancienne IP.

La première approche est parfaitement envisageable sur une machine virtuelle. Elle n'est cependant pas envisageable sur un serveur physique géré entièrement à distance.

La seconde approche a donc ma préférence.

Comment s'y prendre?

Pour l'exemple qui suit, je vais ajouter l'IP 10.0.0.40 puis retirer l'IP 10.0.0.30.

Dans un premier temps, il faut identifier la carte réseau qui doit être manipulée. Pour cela, il suffit d'utiliser la commande :

Get-NetIPConfiguration -All

Ce qui produira un résultat similaire à ceci :

InterfaceAlias       : vEthernet (Lan)
InterfaceIndex       : 9
InterfaceDescription : Hyper-V Virtual Ethernet Adapter
NetProfile.Name      : home.lan
IPv6Address          : fe80::4%30
IPv4Address          : 10.0.0.30
IPv6DefaultGateway   :
IPv4DefaultGateway   : 10.0.0.1
DNSServer            : fe80::10
                       fe80::11
                       10.0.0.10
                       10.0.0.11

Si les informations affichées ne vous permettent pas d'identifier votre carte, il est possible d'utiliser la variante :

Get-NetIPConfiguration -All -Detailed

Celle-ci fournit l'intégralité des informations des différentes cartes réseau du serveur.

L'information qui nous intéresse est InterfaceIndex. Dans le cas présent, sa valeur est 9.

Cet index peut alors être utilisé pour ajouter une nouvelle IP via la commande New-NetIPAddress.

Exemple :

New-NetIPAddress -InterfaceIndex 9 -IPAddress 10.0.0.40 -PrefixLength 24

Ce qui donne :

IPAddress         : 10.0.0.40
InterfaceIndex    : 9
InterfaceAlias    : vEthernet (Lan)
AddressFamily     : IPv4
Type              : Unicast
PrefixLength      : 24
PrefixOrigin      : Manual
SuffixOrigin      : Manual
AddressState      : Tentative
ValidLifetime     : Infinite ([TimeSpan]::MaxValue)
PreferredLifetime : Infinite ([TimeSpan]::MaxValue)
SkipAsSource      : False
PolicyStore       : ActiveStore

IPAddress         : 10.0.0.40
InterfaceIndex    : 9
InterfaceAlias    : vEthernet (Lan)
AddressFamily     : IPv4
Type              : Unicast
PrefixLength      : 24
PrefixOrigin      : Manual
SuffixOrigin      : Manual
AddressState      : Invalid
ValidLifetime     : Infinite ([TimeSpan]::MaxValue)
PreferredLifetime : Infinite ([TimeSpan]::MaxValue)
SkipAsSource      : False
PolicyStore       : PersistentStore
                                                                                                                                                                                                                                                                                                                                                                                                                                    [shost1]: PS C:\Users\Jeremy\Documents> Get-NetIPConfiguration -All                                                                                                                                                                                                                                                                                                                                                                 InterfaceAlias       : vEthernet (Lan)                                                                                                      InterfaceIndex       : 9                                                                                                                    InterfaceDescription : Hyper-V Virtual Ethernet Adapter                                                                                     NetProfile.Name      : home.lan                                                                                                             IPv6Address          : fe80::4%9
IPv4Address          : 10.0.0.8
                       10.0.0.4
IPv6DefaultGateway   :
IPv4DefaultGateway   : 10.0.0.1
DNSServer            : fe80::10
                       fe80::11
                       10.0.0.10
                       10.0.0.11

Pour finir, il suffit d'utiliser la commande Remove-NetIPAddress pour retirer l'ancienne adresse.

Exemple :

Remove-NetIPAddress -InterfaceIndex 8 -IPAddress 10.0.0.30


Et voilà ;)

Jérémy Jeanson

Comments

You have to be logged in to comment this post.