Réseau- Solaris

De UnixManiax
Révision datée du 9 juillet 2014 à 10:47 par AdminWiki (discussion | contributions)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à la navigation Aller à la recherche


Attention, ce qui suit n'est plus valable à partir de Solaris 11.

Généralités

Attention, ce qui suit n'est plus valable à partir de Solaris 11.

Les interfaces réseau sont nommées à la mode BSD, c'est-à-dire avec le nom du pilote suivi d'un numéro, et pas à la mode linux avec "eth" et un numéro. Exemples : bge0, ce2.

Sur du matériel Sparc, les différentes cartes réseau peuvent avoir chacune leur adresse mac ou toutes l'adresse mac du serveur. La valeur est visible et modifiable dans l'OBP (faire un grep sur le mot clé "mac").

Pour voir la liste des interfaces réseau configurées, taper ifconfig –a.

Pour activer toutes les interfaces, taper ifconfig –a plumb.

Pour afficher des informations sur les interfaces réseau :

  • solaris 10 : dladm show-dev
  • solaris <10 : kstat eri:0 (pour l'interface eri0)


Pour surveiller le réseau : utiliser le programme snoop.


Fichiers de configuration

Si sendmail est installé (ce qui est le cas par défaut), il faut modifier une ligne dans /etc/hosts : sur la ligne qui contient le hostname, il faut rajouter le hostname immédiatement suivi d'un "." et éventuellement du nom de domaine. Sinon, sendmail va afficher régulièrement des alertes. Exemple :

bash-3.00# cat /etc/hosts
#
# Internet host table
#
::1     localhost       
127.0.0.1       localhost       
10.36.209.192   uirgs48 uirgs48. loghost

Les principaux fichiers de configuration sont :

  • les classiques /etc/hosts, /etc/resolv.conf et /etc/nsswitch.conf
  • /etc/hostname.nom-interface : nom ou ip de l'interface
  • /etc/nodename : contient le hostname principal, s'il y en a plusieurs
  • /etc/gateways : liste des passerelles
  • /etc/defaultrouter : passerelle principale
  • /etc/inet/hosts : /etc/hosts est un lien vers ce fichier
  • /etc/inet/ipnodes : lien vers /etc/inet/hosts
  • /etc/net/*/hosts : obsolète en solaris 10


Pour passer l'interface pcn0 en DHCP, taper : touch /etc/dhcp.pcn0

Pour afficher les routes : netstat –r


Configurer la passerelle

  • Temporairement :
route add default 10.0.0.1
  • Persistant au reboot (le fichier n'existe pas au départ) :
echo "10.0.0.1" > /etc/defaultrouter


Configurer le ntp

echo "ntp.free.fr" > /etc/inet/ntp.conf

Puis (re-)démarrer le service ntp.

Pour vérifier la synchronisation :

ntpq –c peers


Forcer la vitesse des interfaces réseau (speed + duplex)

Suivant le modèle de carte réseau, la configuration et la lecture des informations de l'interface vont être légèrement différents.

Dans certains cas, la configuration se fait directement sur l'interface. Par exemple, bge0, bge1, etc.

Dans les autres cas, le mode et la vitesse ne se configurent pas pour une interface, mais pour un pilote. Par exemple, si on fait une modification sur hme0, ça impactera toutes les cartes qui utilisent le pilote hme, mais pas les autres.

Quelques commandes utiles :

Récupérer le nom du pilote de la carte réseau

ifconfig -a    # (par exemple, pour la carte "hme0", le pilote est "hme")


Voir la vitesse

ndd -get /dev/hme link_speed

Résultats possibles :

  • 1=100M, 0=10M
  • 1000=1G, 100=100M, 10=10M
  • 1000=1G, 1=100M, 0=10M


Voir le mode

ndd -get /dev/hme link_mode

ou (suivant la version de Solaris)

ndd –get /dev/bge0 link_duplex

Résultats possibles :

  • link_mode : 1=Full, 0=Half, *=Error
  • link_duplex : 2=Full, 1=Half, 0=Unknown, *=Error


Voir l'état

ndd -get /dev/hme link_status

Résultats possibles :

  • 1=Up, 0=Down


Voir la liste des infos qu'on peut récupérer

ndd -get /dev/hme \?


Désactiver l'auto-négociation

ndd -set /dev/hme adv_autoneg_cap 0    # (mettre un "1" pour l'activer)


Forcer en 100M/Full

ndd -set /dev/hme adv_100fdx_cap 1     # (nécessite que l'autoneg soit à 0)


Pour que les modifications restent actives après reboot, il faut modifier le fichier /etc/system. Par exemple, pour forcer en 100M/Full après reboot, ajoutez les lignes suivantes à /etc/system :

set hme:hme_adv_autoneg_cap=0
set hme:hme_adv_100fdx_cap=1

Depuis solaris 10, une commande affiche les valeurs des interfaces de façon plus claire :

# dladm show-dev
bge0            liaison : up    vitesse : 1000  Mbit/s  duplex : full
bge1            liaison : unknown       vitesse : 0     Mbit/s  duplex : unknown


IPMP

L'IPMP (IP network MultiPathing) est une manière d'agréger les interfaces réseau pour faire de la répartition de charge et de la tolérance de pannes.

Nous allons suivre un exemple pour configurer l'IPMP sur un Solaris 10. On suppose qu'on a deux interfaces réseau : vnet0 qui est déjà configurée et fonctionnelle et vnet1 câblée mais non utilisée.

On va éditer /etc/hostname.vnet0 pour avoir quelque-chose qui ressemble à ça :

mon_hostname netmask + broadcast + group ipmp0 up

Remarques :

  • mon_hostname doit être remplacé par le hostname du serveur
  • les mots "netmask + broadcast + group" sont des mots clés qui ne doivent pas être remplacés. Il faut bien mettre des espaces entre les mots et les "+"
  • le mot "ipmp0" est le nom qu'on donne à notre groupe d'interfaces. On peu mettre le nom qu'on veut, mais il est conseillé de mettre un nom clair

Maintenant on édite /etc/hostname.vnet1 :

group ipmp0 up

Remarques :

  • "group" est un mot clé, il ne faut pas le changer
  • "ipmp0" est le nom du groupe qu'on a défini juste avant. A remplacer par le nom que vous avez mis.

Si vous avez d'autres interfaces réseau, vous pouvez les ajouter en reproduisant ce qu'on a fait pour vnet1.

Ce qu'on vient de faire ne sera pris en compte qu'au prochain reboot. Si possible, je vous conseille de rebooter pour être sûr que tout fonctionne bien et qu'on n'aura pas de mauvaise surprise. Sinon, on peut faire la manip à chaud avec les commandes suivantes (à adapter en fonction de ce qu'on a fait avant) :

ifconfig vnet0 192.168.0.1 netmask 255.255.255.0 group ipmp0 up
ifconfig vnet1 plumb
ifconfig vnet1 group ipmp0 up

Voilà ce que ça donne une fois en place :

# ifconfig vnet0
vnet0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
        inet 10.36.208.90 netmask fffffc00 broadcast 10.36.211.255
        groupname ipmp0
        ether 0:14:4f:f9:2a:45

# ifconfig vnet1
vnet1: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 3
        inet 0.0.0.0 netmask ff000000 broadcast 0.255.255.255
        groupname ipmp0
        ether 0:14:4f:fb:6f:6f