Ter duas interfaces em um módulo na mesma sub-rede não lhe dá duas interfaces para dentro e para fora do módulo. Enquanto você recebe duas interfaces no módulo, o STCP usará apenas uma interface ao enviar os pacotes para fora do módulo. Ele faz isso independentemente de qual interface um cliente tenha se conectado.
Por exemplo, dadas estas 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 mesmo que no pacote a resposta seja mostrada como vindo 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 ac1001e2TCP 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 ac100122TCP from 172.16.1.226.telnet to 172.16.1.34.49183. . . Figura 1 - pedido de conexão ao módulo (traçado tomado no cliente)
Se o módulo inicia uma conexão ao invés 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 ac100122TCP from 172.16.1.116.49320 to 172.16.1.34.4680. . .Figura 2 - pedido de conexão do módulo a outro servidor (traçado levado no servidor)
Mesmo que você se ligue ao segundo (226) endereço IP ao enviar o pacote que ele deixa através da primeira (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 ac100122TCP from 172.16.1.226.49321 to 172.16.1.34.4680. . . Figura 3 - pedido de conexão do módulo a outro servidor (rastreamento levado em outro servidor)
aplicação cliente vinculada à interface IP 172.16.1.226
Somente se a primeira (116) interface cair, o módulo passará a usar a segunda (226) interface. Enquanto as conexões para a segunda (226) interface serão mantidas, as conexões para a primeira (116) interface 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 ac1001e2TCP 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 ac100122TCP from 172.16.1.226.telnet to 172.16.1.34.49186. . . A interface 172.16.1.116 falha - note a mudança 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 ac1001e2TCP 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 ac100122TCP from 172.16.1.226.telnet to 172.16.1.34.49186. . .Figura 4 - Mudanças no MAC quando a primeira interface falha (traço tomado no cliente)
Como você pode dizer qual interface será usada para enviar tráfego?
Há 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, ver figuras de 1 a 4.
O segundo é usar netstat para olhar a interface, gerar algum tráfego, executar netstat novamente e comparar. Apenas uma interface deveria ter incrementado 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:48ping 172.16.1.34Pinging host 172.16.1.34 : 172.16.1.34ICMP Echo Reply:TTL 60 time = 0 msICMP Echo Reply:TTL 60 time = 0 msICMP Echo Reply:TTL 60 time = 0 msICMP Echo Reply:TTL 60 time = 0 msHost 172.16.1.34 replied to all 4 of the 4 pingsready 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 - Utilização do netstat para comparar o contador de quadros transmitidos
A terceira maneira é conectar-se a um serviço em outro sistema e ver qual endereço de origem local é usado. A menos que você vincule explicitamente a outro endereço, o endereço IP de origem corresponderá à interface ativa.
netstat -numericActive connectionsProto 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 é utilizada para as conexões de saída
É minha opinião que ter múltiplas interfaces na mesma sub-rede só confunde as coisas e geralmente não vale a pena a confusão. Se por algum motivo você precisar de endereços IP na mesma sub-rede, adicione um pseudônimo à 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.226Figura 7 - adição de um pseudônimo a uma interface
