Pular para o conteúdo principal
Ter duas interfaces em um módulo na mesma sub-rede não significa que você tenha duas interfaces de entrada e saída do módulo. Embora você tenha duas interfaces no módulo, o STCP usará apenas uma interface ao enviar pacotes para fora do módulo. Isso ocorre independentemente da interface à qual o cliente esteja conectado.

 

Por exemplo, considerando essas duas interfaces na sub-rede 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

 

Observe na figura 1 que o pacote enviado para 172.16.1.226 usa o endereço MAC de destino 00:00:a8:43:52:22, mas a resposta vem de 00:00:a8:42:52:22, o endereço MAC para 172.16.1.116, embora no pacote a resposta seja mostrada como proveniente 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
. . .
Figura 1 – solicitação de conexão ao módulo (rastreamento feito no cliente)
Se o módulo iniciar uma conexão em vez de receber uma, ele sempre usará a primeira (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
. . .
Figura 2 – solicitação de conexão do módulo para outro servidor (rastreamento feito no servidor)
Mesmo que você se conecte ao segundo endereço IP (226) ao enviar o pacote, ele sai pela primeira interface (116).
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
. . .
Figura 3 – solicitação de conexão do módulo para outro servidor (rastreamento feito em outro servidor)
aplicativo cliente vinculado à interface IP 172.16.1.226
Somente se a primeira interface (116) ficar inoperante, o módulo passará a usar a segunda interface (226). Enquanto as conexões com a segunda interface (226) forem mantidas, as conexões com a primeira interface (116) falharão.
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
. . .
A interface 172.16.1.116 falha – observe a alteração no endereço MAC de origem
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
. . .
Figura 4 – Alterações no MAC quando a primeira interface falha (traço obtido no cliente)
Como você pode saber qual interface será usada para enviar o tráfego?
Existem várias maneiras. A primeira é usar o packet_monitor ou algum outro analisador de protocolo no host remoto ou na rede para avaliar os endereços MAC de origem, consulte as figuras 1 a 4.
Em segundo lugar, use o netstat para examinar a interface, gere algum tráfego, execute o netstat novamente e compare. Apenas uma interface deve ter aumentado seu contador de “quadros transmitidos”.
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
. . .
Figura 5 – Usando o netstat para comparar o contador de quadros transmitidos
A terceira maneira é conectar-se a um serviço em outro sistema e verificar qual endereço de origem local é usado. A menos que você se conecte explicitamente a outro endereço, o endereço IP de origem corresponderá à interface ativa.
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
. . .
Figura 6 – qual interface é usada para conexões de saída
Na minha opinião, ter várias interfaces na mesma sub-rede apenas confunde as coisas e, geralmente, não vale a pena. Se, por algum motivo, você precisar de endereços IP na mesma sub-rede, adicione um alias à primeira interface.
ifconfig #sdlmux.m16.10.11-2 172.16.1.226 -add -alias
Adicionando o endereço IP 172.16.1.226 à 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
Figura 7 – adicionando um alias a uma interface

© 2024 Stratus Technologies.