Skip to main content
Le fait d'avoir deux interfaces dans un module sur le même sous-réseau ne vous donne pas deux interfaces pour entrer et sortir du module. Bien que vous ayez deux interfaces dans le module, le STCP n'en utilisera qu'une seule pour envoyer des paquets en dehors du module. Il le fait quelle que soit l'interface à laquelle un client s'est connecté.

 

Par exemple, compte tenu de ces deux interfaces sur le sous-réseau 172.16.1.0/24
%phx_vos#sdlmux.m16.10.11-2 IP : 172.16.1.116 MAC : 00:00:a8:42:52:22
%phx_vos#sdlmux.m16.11.11-2 IP : 172.16.1.226 MAC : 00:00:a8:43:52:22

 

Remarquez dans la figure 1 que le paquet envoyé au 172.16.1.226 utilise l'adresse MAC de destination de 00:00:a8:43:52:22 mais que la réponse provient de 00:00:a8:42:52:22, l'adresse MAC pour 172.16.1.116 même si dans le paquet la réponse est indiquée comme provenant de 172.16.1.226.

 

11:04:57.117 Xmit Ether Dst 00:00:a8:43:52:22  Src 00:00:a8:42:3b:6e Type 0800
+(IP)
IP   Ver/HL 45, ToS  0, Len   2c, ID 2045, Flg/Frg    0, TTL 3c,  Prtl  6
Cksum  0363, Src ac100122, Dst ac1001e2
TCP from 172.16.1.34.49183 to 172.16.1.226.telnet
. . .
11:04:57.130 Rcvd Ether Dst 00:00:a8:42:3b:6e  Src 00:00:a8:42:52:22 Type 0800
+(IP)
IP   Ver/HL 45, ToS  0, Len   2c, ID  7c8, Flg/Frg    0, TTL 3c,  Prtl  6
Cksum  1be0, Src ac1001e2, Dst ac100122
TCP from 172.16.1.226.telnet to 172.16.1.34.49183
. . .
Figure 1 - demande de connexion au module (trace prise sur le client)
Si le module initie une connexion au lieu d'en recevoir une, il utilisera toujours la première (116) interface.
13:01:36.479 Rcvd Ether Dst 00:00:a8:42:3b:6e  Src 00:00:a8:42:52:22 Type 0800
+(IP)
IP   Ver/HL 45, ToS  0, Len   2c, ID 4a33, Flg/Frg    0, TTL 3c,  Prtl  6
Cksum  d9e2, Src ac100174, Dst ac100122
TCP from 172.16.1.116.49320 to 172.16.1.34.4680
. . .
Figure 2 - demande de connexion du module à un autre serveur (trace prise sur le serveur)
Même si vous êtes lié à la deuxième (226) adresse IP lorsque vous envoyez le paquet, il part par la première (116) interface
13:02:55.349 Rcvd Ether Dst 00:00:a8:42:3b:6e  Src 00:00:a8:42:52:22 Type 0800
+(IP)
IP   Ver/HL 45, ToS  0, Len   2c, ID 4b7a, Flg/Frg    0, TTL 3c,  Prtl  6
Cksum  d82d, Src ac1001e2, Dst ac100122
TCP from 172.16.1.226.49321 to 172.16.1.34.4680
. . .
Figure 3 - demande de connexion du module à un autre serveur (trace prise sur l'autre serveur)
application client liée à l'interface IP 172.16.1.226
Ce n'est que si la première (116) interface est défaillante que le module passe à l'utilisation de la seconde (226) interface. Alors que les connexions à la deuxième (226) interface seront maintenues, les connexions à la première (116) interface échoueront.
13:14:43.884 Xmit Ether Dst 00:00:a8:43:52:22  Src 00:00:a8:42:3b:6e Type 0800
+(IP)
IP   Ver/HL 45, ToS  0, Len   28, ID 5072, Flg/Frg    0, TTL 3c,  Prtl  6
Cksum  d339, Src ac100122, Dst ac1001e2
TCP from 172.16.1.34.49186 to 172.16.1.226.telnet
. . .
13:14:43.885 Rcvd Ether Dst 00:00:a8:42:3b:6e  Src 00:00:a8:42:52:22 Type 0800
+(IP)
IP   Ver/HL 45, ToS  0, Len   28, ID 53ef, Flg/Frg    0, TTL 3c,  Prtl  6
Cksum  cfbc, Src ac1001e2, Dst ac100122
TCP from 172.16.1.226.telnet to 172.16.1.34.49186
. . .
L'interface 172.16.1.116 échoue - notez le changement d'adresse MAC source
13:15:56.718 Xmit Ether Dst 00:00:a8:43:52:22  Src 00:00:a8:42:3b:6e Type 0800
+(IP)
IP   Ver/HL 45, ToS  0, Len   29, ID 50e7, Flg/Frg    0, TTL 3c,  Prtl  6
Cksum  d2c3, Src ac100122, Dst ac1001e2
TCP from 172.16.1.34.49186 to 172.16.1.226.telnet
. . .
13:15:56.719 Rcvd Ether Dst 00:00:a8:42:3b:6e  Src 00:00:a8:43:52:22 Type 0800
+(IP)
IP   Ver/HL 45, ToS  0, Len   29, ID 5552, Flg/Frg    0, TTL 3c,  Prtl  6
Cksum  ce58, Src ac1001e2, Dst ac100122
TCP from 172.16.1.226.telnet to 172.16.1.34.49186
. . .
Figure 4 - Changements dans le MAC lorsque la première interface échoue (trace prise sur le client)
Comment savoir quelle interface sera utilisée pour envoyer du trafic ?
Il existe plusieurs moyens. La première consiste à utiliser packet_monitor ou un autre analyseur de protocole sur l'hôte distant ou le réseau pour évaluer les adresses Mac source, voir les figures 1 à 4.
La deuxième consiste à utiliser netstat pour examiner l'interface, générer du trafic, exécuter de nouveau netstat et comparer. Une seule interface doit avoir incrémenté son compteur de "trames transmises".
netstat -interface #sdlmux.m16.10.11-2; netstat -interface #sdlmux.m16.11.11-2
. . .
MAC Statistics:
Received frames                          : 1598960
Received multicast and broadcast frames  : 1564503
Received octets                          : 258513766
Transmitted frames                       : 531
Transmitted octets                       : 50850
. . .
MAC Statistics:
Received frames                          : 1603838
Received multicast and broadcast frames  : 1569292
Received octets                          : 259291185
Transmitted frames                       : 15
Transmitted octets                       : 947
. . .
ready  13:29:48
ping 172.16.1.34
Pinging host 172.16.1.34 : 172.16.1.34
ICMP Echo Reply:TTL 60 time = 0 ms
ICMP Echo Reply:TTL 60 time = 0 ms
ICMP Echo Reply:TTL 60 time = 0 ms
ICMP Echo Reply:TTL 60 time = 0 ms
Host 172.16.1.34 replied to all 4 of the 4 pings
ready  13:29:55
netstat -interface #sdlmux.m16.10.11-2; netstat -interface #sdlmux.m16.11.11-2
. . .
MAC Statistics:
Received frames                          : 1603142
Received multicast and broadcast frames  : 1568591
Received octets                          : 259187870
Transmitted frames                       : 535
Transmitted octets                       : 51274
. . .
MAC Statistics:
Received frames                          : 1607492
Received multicast and broadcast frames  : 1572869
Received octets                          : 259880655
Transmitted frames                       : 15
Transmitted octets                       : 947
. . .
Figure 5 - Utilisation de netstat pour comparer le compteur de trames transmises
Le troisième moyen est de se connecter à un service sur un autre système et de voir quelle est l'adresse source locale utilisée. À moins que vous ne vous liiez explicitement à une autre adresse, l'adresse IP source correspondra à l'interface active.
netstat -numeric
Active connections
Proto Recv-Q Send-Q  Local Address      Foreign Address    (state)
. . .
tcp        0      0  172.16.1.116:49369 172.16.1.34:23     ESTABLISHED
. . .
Figure 6 - Quelle interface est utilisée pour les connexions sortantes
Je pense que le fait d'avoir plusieurs interfaces sur le même sous-réseau ne fait qu'embrouiller les choses et ne vaut généralement pas la peine d'être embrouillé. Si, pour une raison quelconque, vous avez besoin d'adresses IP sur le même sous-réseau, ajoutez un alias à la première interface.
ifconfig #sdlmux.m16.10.11-2 172.16.1.226 -add -alias
Ajout de l'adresse IP 172.16.1.226 à l'interface %phx_vos#sdlmux.m16.10.11-2
%phx_vos#sdlmux.m16.10.11-2: <UP, BROADCAST, RUNNING, NOFORWARDBROADCAST, KEEPAL
+IVE>
172.16.1.116 netmask 0xffffff00 broadcast 172.16.1.255
Number of additional address(es): 1
172.16.1.226
Figure 7 - Ajout d'un alias à une interface

2024 Stratus Technologies.