Skip to main content
Le logiciel SDLMUX combine deux adaptateurs réseau en une seule interface IP, offrant une capacité de basculement si la liaison sur l'adaptateur actif tombe en panne ou si l'adaptateur tombe en panne. Une fois configuré, il ne nécessite pratiquement aucune administration, mais il y a certaines choses que vous devez savoir.
Premièrement, le SDLMUX n'assure aucun équilibrage de charge ; tout le trafic est émis et reçu sur l'adaptateur actif.
Deuxièmement, sur le matériel ftServer VSeries, l'adaptateur actif a une adresse MAC de la forme 00:00:A8:4v:wx:yz. Le 00:00:A8 est l'identifiant unique de l'organisation (OUI) Stratus , attribué par l'IEEE. Le "v" est un index basé sur l'ordre d'initialisation des appareils SDLMUX, commençant à 0. La valeur "wx:yz" est basée sur le numéro de série du système. L'adresse de veille ne diffère de l'adresse active que dans la partie supérieure du quatrième octet, au lieu d'un 4, c'est un 6. De même, la différence entre les adresses MAC de deux adaptateurs actifs (ou de veille) sur le même module ne se trouve que dans la partie inférieure du quatrième octet. La manière la plus simple d'obtenir une liste de toutes les adresses MAC est d'utiliser la requête "dump_sdlmux" de analyze_system sur "MAC", voir figure 1.
as: match 'MAC' ; dump_sdlmux
MAC address               = 0000A8405A8B
MAC address               = 0000A8605A8B
MAC address               = 0000A8415A8B
MAC address               = 0000A8615A8B
MAC address               = 0000A8425A8B
MAC address               = 0000A8625A8B
MAC address               = 0000A8435A8B
MAC address               = 0000A8635A8B
as:
Figure 1
Les adresses MAC ne sont pas très utiles ; en les comparant par "MAC" ou "#", vous obtenez les adresses MAC et les noms des appareils SDLMUX et des adaptateurs réseau. Notez que cette liste ne contient aucun adaptateur réseau qui ne fasse pas partie d'un partenariat SDLMUX.
as: match 'MAC' -or '#' ; dump_sdlmux
sdlmux device             = #sdlmuxA.m16.10-5-0.11-5-0
MAC address               = 0000A8405A8B
Interface device = %phx_vos#enetA.m16.10-5-0
MAC address               = 0000A8605A8B

Interface device          = %phx_vos#enetA.m16.11-5-0

sdlmux device             = #sdlmuxA.m16.10-5-1.11-5-1
MAC address               = 0000A8415A8B
Interface device = %phx_vos#enetA.m16.10-5-1
MAC address               = 0000A8615A8B

Interface device          = %phx_vos#enetA.m16.11-5-1

 

sdlmux device             = #sdlmux.m16.11-2
MAC address               = 0000A8425A8B
Interface device = %phx_vos#enet.m16.11.11-2
MAC address               = 0000A8625A8B

Interface device          = %phx_vos#enet.m16.10.11-2

 

sdlmux device             = #sdlmux.m16.11-3
MAC address               = 0000A8435A8B
Interface device = %phx_vos#enet.m16.10.11-3
MAC address               = 0000A8635A8B
Interface device          = %phx_vos#enet.m16.11.11-3
as:
Figure 2
Troisièmement, les adaptateurs réseau SDLMUX envoient des trames Ethernet 802.2 LLC à leurs partenaires pour s'assurer que le chemin du réseau fonctionne correctement. Cinq séries de ces trames de test sont envoyées à trois secondes d'intervalle, suivies d'un intervalle de 33 secondes. La Trace 1 montre trois cycles de ce schéma. La trace 1 montre également la trame réelle de l'adaptateur actif (trame 1) et de l'adaptateur de veille (trame 2). J'ai mis en évidence l'image suivant l'intervalle de 33 secondes juste pour rendre les cycles plus faciles à lire. Il ne s'agit pas de trames Ethernet de type II ou de paquets IP et les commutateurs connectés aux adaptateurs réseau et tout commutateur le long du chemin entre les deux adaptateurs doivent avoir une configuration qui ne bloque pas ces trames 802.2 LLC.

 

No. delta Time       Source              Destination   Protocol Info
1 0.000000   StratusC_42:5a:8b     StratusC_62:5a:8b LLC   U, func=UI; DSAP 0xac Individual, SSAP 0xac Command
0000 00 00 a8 62 5a 8b 00 00 a8 42 5a 8b 00 1b ac ac   ...bZ....BZ.....
0010 03 31 32 39 2e 31 2e 30 00 00 00 00 00 00 00 00   .129.1.0........
0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030 00 00 00 00 00 00 00 00 00 00 00 00 b1 60 74 48   .............`tH
2 0.000007   StratusC_62:5a:8b     StratusC_42:5a:8b LLC   U, func=UI; DSAP 0xac Individual, SSAP 0xac Command
0000 00 00 a8 42 5a 8b 00 00 a8 62 5a 8b 00 1b ac ac   ...BZ....bZ.....
0010 03 31 32 39 2e 31 2e 30 00 00 00 00 00 00 00 00   .129.1.0........
0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030 00 00 00 00 00 00 00 00 00 00 00 00 45 23 24 c0   ............E#$.
3 2.999945   StratusC_42:5a:8b     StratusC_62:5a:8b LLC   U, func=UI; DSAP 0xac Individual, SSAP 0xac Command
4 0.000007   StratusC_62:5a:8b     StratusC_42:5a:8b LLC   U, func=UI; DSAP 0xac Individual, SSAP 0xac Command
5 2.999943   StratusC_42:5a:8b     StratusC_62:5a:8b LLC   U, func=UI; DSAP 0xac Individual, SSAP 0xac Command
6 0.000007   StratusC_62:5a:8b     StratusC_42:5a:8b LLC   U, func=UI; DSAP 0xac Individual, SSAP 0xac Command
7 2.999882   StratusC_42:5a:8b     StratusC_62:5a:8b LLC   U, func=UI; DSAP 0xac Individual, SSAP 0xac Command
8 0.000007   StratusC_62:5a:8b     StratusC_42:5a:8b LLC   U, func=UI; DSAP 0xac Individual, SSAP 0xac Command
9 2.999946   StratusC_42:5a:8b     StratusC_62:5a:8b LLC   U, func=UI; DSAP 0xac Individual, SSAP 0xac Command

10 0.000009   StratusC_62:5a:8b     StratusC_42:5a:8b LLC   U, func=UI; DSAP 0xac Individual, SSAP 0xac Command

11 32.99900   StratusC_42:5a:8b     StratusC_62:5a:8b LLC   U, func=UI; DSAP 0xac Individual, SSAP 0xac Command
12 0.000007   StratusC_62:5a:8b     StratusC_42:5a:8b LLC   U, func=UI; DSAP 0xac Individual, SSAP 0xac Command
13 2.999945   StratusC_42:5a:8b     StratusC_62:5a:8b LLC   U, func=UI; DSAP 0xac Individual, SSAP 0xac Command
14 0.000007   StratusC_62:5a:8b     StratusC_42:5a:8b LLC   U, func=UI; DSAP 0xac Individual, SSAP 0xac Command
15 2.999938   StratusC_42:5a:8b     StratusC_62:5a:8b LLC   U, func=UI; DSAP 0xac Individual, SSAP 0xac Command
16 0.000007   StratusC_62:5a:8b     StratusC_42:5a:8b LLC   U, func=UI; DSAP 0xac Individual, SSAP 0xac Command
17 2.999942   StratusC_42:5a:8b     StratusC_62:5a:8b LLC   U, func=UI; DSAP 0xac Individual, SSAP 0xac Command
18 0.000007   StratusC_62:5a:8b     StratusC_42:5a:8b LLC   U, func=UI; DSAP 0xac Individual, SSAP 0xac Command
19 2.999943   StratusC_42:5a:8b     StratusC_62:5a:8b LLC   U, func=UI; DSAP 0xac Individual, SSAP 0xac Command
20 0.000008   StratusC_62:5a:8b     StratusC_42:5a:8b LLC   U, func=UI; DSAP 0xac Individual, SSAP 0xac Command
21 32.99900   StratusC_42:5a:8b     StratusC_62:5a:8b LLC   U, func=UI; DSAP 0xac Individual, SSAP 0xac Command
22 0.000007   StratusC_62:5a:8b     StratusC_42:5a:8b LLC   U, func=UI; DSAP 0xac Individual, SSAP 0xac Command
23 2.999944   StratusC_42:5a:8b     StratusC_62:5a:8b LLC   U, func=UI; DSAP 0xac Individual, SSAP 0xac Command
24 0.000007   StratusC_62:5a:8b     StratusC_42:5a:8b LLC   U, func=UI; DSAP 0xac Individual, SSAP 0xac Command
25 2.999947   StratusC_42:5a:8b     StratusC_62:5a:8b LLC   U, func=UI; DSAP 0xac Individual, SSAP 0xac Command
26 0.000007   StratusC_62:5a:8b     StratusC_42:5a:8b LLC   U, func=UI; DSAP 0xac Individual, SSAP 0xac Command
27 2.999938   StratusC_42:5a:8b     StratusC_62:5a:8b LLC   U, func=UI; DSAP 0xac Individual, SSAP 0xac Command
28 0.000007   StratusC_62:5a:8b     StratusC_42:5a:8b LLC   U, func=UI; DSAP 0xac Individual, SSAP 0xac Command
29 2.999946   StratusC_42:5a:8b     StratusC_62:5a:8b LLC   U, func=UI; DSAP 0xac Individual, SSAP 0xac Command
30 0.000010   StratusC_62:5a:8b     StratusC_42:5a:8b LLC   U, func=UI; DSAP 0xac Individual, SSAP 0xac Command
31 32.99900   StratusC_42:5a:8b     StratusC_62:5a:8b LLC   U, func=UI; DSAP 0xac Individual, SSAP 0xac Command
Trace 1
Notez que vous ne pouvez pas utiliser packet_monitor pour voir ces cadres de test. Les trames sont envoyées en dessous du point où packet_monitor se connecte à la pile et SDLMUX retire les trames de la pile avant que packet_monitor ne puisse les lire.
Quatrièmement, si chaque adaptateur est connecté à un commutateur différent et que la liaison entre ces commutateurs échoue ou que, pour une autre raison, les trames de test ne sont pas obtenues, vous verrez quelque chose qui ressemble à la figure 3 dans le syserr_log. À partir des versions 16.2.1ak et 17.0.0ah, en cas d'échec d'une trame de test, le SDLMUX déclenche une requête ARP vers le dernier hôte qui a réussi l'ARP sur l'interface suspecte. S'il obtient une réponse, il sait que l'adaptateur actif fonctionne et réinitialise l'adaptateur de secours pour essayer de le faire fonctionner. Si un problème réseau bloque les trames de test, la réinitialisation de l'adaptateur n'aide pas et l'adaptateur finit par passer en MTBF, voir l'horodatage 08:08:10 sur la figure 3. La commande dlmux_admin signalera l'adaptateur défectueux en indiquant DOWN, figure 4, et une trace n'affichera aucune trame de test puisqu'à ce stade il n'y a rien à tester. Si une réponse ARP n'est pas reçue ou si le problème se situe sur une version qui n'envoie pas la demande ARP, SDLMUX échouera sur les adaptateurs et cassera le nouvel adaptateur de secours. Si, au cours du cycle suivant, les cadres de test échouent à nouveau et qu'aucune réponse ARP n'est reçue, le basculement et l'interruption se feront à nouveau. Un adaptateur finira par passer en mode MTBF.
08:05:02 WARNING(64): SDLMUX: the devices in group #sdlmux.m16.11-2
08:05:02 WARNING(65): SDLMUX: are not exchanging test packets with each other
08:05:02 WARNING(66): SDLMUX: but the active adapter is able to communicate wi
+th other hosts!
08:05:02 WARNING(67): SDLMUX: This indicates some sort of network or cabling i
+ssue!
08:05:02 WARNING(68): SDLMUX: breaking adapter %phx_vos#enet.m16.10.11-2: XID
+communication issue
08:05:02 PCI 10/11/2           enet.m16.10.11-2 Break Requested
08:05:02 WARNING(69): SDLMUX: device name %phx_vos#enet.m16.10.11-2 is broken
08:05:02 PCI 10/11/2           enet.m16.10.11-2 Adding
08:05:04 PCI 10/11/2           enet.m16.10.11-2 Online
08:05:04 WARNING(70): genet in (10/11/2) Link is Up.
08:05:04 WARNING(71): SDLMUX: device %phx_vos#enet.m16.10.11-2 back to servic
+e
08:05:49 WARNING(72): SDLMUX: breaking adapter %phx_vos#enet.m16.10.11-2: XID
+communication issue
08:05:49 PCI 10/11/2           enet.m16.10.11-2 Break Requested
08:05:49 WARNING(73): SDLMUX: device name %phx_vos#enet.m16.10.11-2 is broken
08:05:49 PCI 10/11/2           enet.m16.10.11-2 Adding
08:05:52 PCI 10/11/2           enet.m16.10.11-2 Online
08:05:52 WARNING(74): genet in (10/11/2) Link is Up.
08:05:52 WARNING(75): SDLMUX: device %phx_vos#enet.m16.10.11-2 back to servic
+e
08:07:22 WARNING(76): SDLMUX: the devices in group #sdlmux.m16.11-2
08:07:22 WARNING(77): SDLMUX: are not exchanging test packets with each other
08:07:22 WARNING(78):  SDLMUX: but the active adapter is able to communicate wi
+th other hosts!
08:07:22 WARNING(79): SDLMUX: This indicates some sort of network or cabling i
+ssue!
08:07:22 WARNING(80): SDLMUX: breaking adapter %phx_vos#enet.m16.10.11-2: XID
+communication issue
08:07:22 PCI 10/11/2           enet.m16.10.11-2 Break Requested
08:07:22 WARNING(81): SDLMUX: device name %phx_vos#enet.m16.10.11-2 is broken
08:07:22 PCI 10/11/2           enet.m16.10.11-2 Adding
08:07:25 PCI 10/11/2           enet.m16.10.11-2 Online
08:07:25 WARNING(82): genet in (10/11/2) Link is Up.
08:07:25 WARNING(83): SDLMUX: device %phx_vos#enet.m16.10.11-2 back to servic
+e
08:08:10 WARNING(84): SDLMUX: breaking adapter %phx_vos#enet.m16.10.11-2: XID
+communication issue
08:08:10 PCI 10/11/2           enet.m16.10.11-2 Break Requested
08:08:10 PCI 10/11/2                             MTBF Failure
08:08:10 WARNING(85): SDLMUX: device name %phx_vos#enet.m16.10.11-2 is broken
Figure 3
dlmux_admin #sdlmux.m16.11-2 sdlmux_status
Group Name:          #sdlmux.m16.11-2
Device Name:         %phx_vos#enet.m16.11.11-2
Adapter State:       ACTIVE   UP
Partner:             %phx_vos#enet.m16.10.11-2
Partner State:       DOWN
Figure 4
Pour remettre l'adaptateur en service, vous devez l'ajouter à nouveau avec la commande board_admin. Bien sûr, si vous faites cela sans corriger le problème sous-jacent, l'adaptateur sera à nouveau juste MTBF.
board_admin 10/11/2 add
board_admin
device_id:    10/11/2
action:       add
Do you want to continue? (yes, no) yes
Command completed.
Figure 5
Cinquièmement, comme l'adaptateur actif a toujours la même adresse MAC, le basculement a pour effet de déplacer l'adresse MAC d'un port de commutateur à un autre. Tous les paramètres de sécurité des ports du commutateur doivent permettre ce changement. Les ports de commutation peuvent également être configurés pour communiquer avec d'autres ports de commutation, en négociant divers paramètres. Ils peuvent être déclenchés lorsque le commutateur remarque un changement de topologie, comme une nouvelle adresse MAC ou une liaison en cours de restauration. Tant que ces paramètres ne sont pas négociés, un commutateur peut ne pas passer les trames normales. Les ports du commutateur connectés aux adaptateurs SDLMUX doivent être configurés de manière à ne pas effectuer ces négociations. En outre, les ports de commutation connectés aux adaptateurs SDLMUX doivent être configurés de manière à ne pas exécuter le protocole spanning tree ou à sauter les étapes d'apprentissage et d'écoute (ce que Cisco appelle portfast). Pendant les étapes d'apprentissage et d'écoute, le commutateur ne passera pas les trames de données normales. Dans les cas extrêmes, le délai causé par ces réglages peut être si long que SDLMUX déclenche un autre basculement.
Enfin, l'état des liens des adaptateurs doit être surveillé pour s'assurer que les deux liens sont en place. La défaillance d'un lien n'entraînera pas l'appel du système à home et, comme il est tolérant aux pannes, il n'y a pas de perte de connectivité du système, j'ai couvert ce point dans un précédent billet de blog, voir Surveillance de l'état des adaptateurs réseau.

2024 Stratus Technologies.