cClaude.rocks ☕ Le blog

[Nouvelles technologies du libre, sciences et coups de gueule…]

Menu

Une migration d’un rĂ©seau vers IP-v6 sur une infrastructure complexe, implique qu’il ne sera probablement pas possible de se passer d’IP-v4 instantanĂ©ment.

L’objectif doit ĂȘtre de se passer d’IP-v4, mais voilĂ , il y aura certainement pas tout de disponible en IP-v6 durant le processus de migration.

Les processus automatisĂ©s risquent particuliĂšrement d’ĂȘtre sensibles Ă  ce changement, il faut donc ĂȘtre capable de dĂ©tecter si le support IPv6 est disponible sur une machine.


ඏ

Pour cela, je vous propose l’utilisation de cette suite de commandes :

ip -6 -json addr | jq length # si le résultat est 0, pas de support IPv6

Cela nĂ©cessite d’avoir les commandes ip et jq. Si nĂ©cessaire aller voir les billets existant qui traite de ces commandes : ip, jq.

L’idĂ©e de cette suite de commande est de compter le nombre d’adresses IPv6 disponibles sur la machine.

  • ip -6 addr donne la liste des IPv6 de la machine
  • -json converti la sortie au format JSON
  • | transfert la sortie pour la commande prĂ©cĂ©dente dans l’entrĂ©e de la commande suivante.
  • jq lenght compte le nombre d’entrĂ©e dans le tableau, formellement c’est jq '. | length'.

Vous pouvez adapter la commande pour vĂ©rifier l’existence du support IP-v4 :

ip -4 -json addr | jq length # si le résultat est 0, pas de support IPv4

Notez que la boucle locale n’est pas prise en compte lorsque les paramĂštres -4 ou -6 sont utilisĂ©s.

Dans le cas oĂč vous avez plusieurs interfaces rĂ©seaux (notamment Wifi + RJ45) vous voudrez peut-ĂȘtre vous assurer que toutes les cartes rĂ©seaux supportent le protocole choisi.

Notez Ă©galement qu’il est possible d’avoir les interfaces supportant IP-v4 et IP-v6 Ă  l’aide de :

ip -4 -6 -json addr

Une dĂ©tection peut se faire Ă  l’aide de quelque chose comme ça (je vous laisse optimiser et adapter Ă  vos besoins) :

function init_IP_support {
  local ipv6_count=
  ipv6_count="$( ip -6 -json addr | jq length )"
  local ipv4_count=
  ipv4_count="$( ip -4 -json addr | jq length )"
  local ipv4_ipv6_count=
  ipv4_ipv6_count="$( ip -4 -6 -json addr | jq length )"

  if [ "${ipv4_count}" = "${ipv4_ipv6_count}" ] ; then
    declare -gr IP_V4_V6_SAME_SUPPORT='true'
  else
    declare -gr IP_V4_V6_SAME_SUPPORT='false'
  fi

  if [ "${ipv6_count}" = '0' ] ; then
    declare -gr IP_V6='false'
  else
    declare -gr IP_V6='true'
  fi

  if [ "${ipv4_count}" = '0' ] ; then
    declare -gr IP_V4='false'
  else
    declare -gr IP_V4='true'
  fi
}

init_IP_support
echo "IP_V4=${IP_V4}"
echo "IP_V6=${IP_V6}"
echo "IP_V4_V6_SAME_SUPPORT=${IP_V4_V6_SAME_SUPPORT}"

L’intĂ©rĂȘt de ce code est de dĂ©tecter les machines ayant une configuration Ă©trange, en particulier si ${IP_V4} et ${IP_V6} valent true et que ${IP_V4_V6_SAME_SUPPORT} contient false.

Attention le fait qu’une machine supporte IP-v6 ne veut pas dire que toute sa configuration soit valide, en particulier il faut s’assurer que le bon DNS soit utilisĂ©.


ඏ

Références

኿


â„č 2006 - 2024 | 🏠 Accueil du domaine | 🏡 Accueil du blog