Zum Hauptinhalt springen
Wenn Sie zwei Schnittstellen in einem Modul im selben Subnetz haben, erhalten Sie nicht zwei Schnittstellen in und aus dem Modul. Sie erhalten zwar zwei Schnittstellen in das Modul, aber STCP verwendet nur eine Schnittstelle, wenn es Pakete aus dem Modul sendet. Dies geschieht unabhängig davon, mit welcher Schnittstelle sich ein Client verbunden hat.

 

Beispiel: Diese beiden Schnittstellen im Subnetz 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

 

In Abbildung 1 ist zu sehen, dass das an 172.16.1.226 gesendete Paket die Ziel-MAC-Adresse 00:00:a8:43:52:22 verwendet, die Antwort jedoch von 00:00:a8:42:52:22, der MAC-Adresse von 172.16.1.116, kommt, obwohl im Paket angegeben ist, dass die Antwort von 172.16.1.226 stammt.

 

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
. . .
Abbildung 1 - Verbindungsanfrage an das Modul (Trace auf dem Client aufgenommen)
Wenn das Modul eine Verbindung initiiert, anstatt eine zu empfangen, wird es immer die erste (116) Schnittstelle verwenden.
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
. . .
Abbildung 2 - Verbindungsanfrage von einem Modul zu einem anderen Server (Trace auf dem Server aufgenommen)
Selbst wenn Sie sich an die zweite (226) IP-Adresse binden, wenn Sie das Paket senden, verlässt es die erste (116) Schnittstelle
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
. . .
Abbildung 3 - Verbindungsanfrage vom Modul zu einem anderen Server (Aufzeichnung auf dem anderen Server)
Client-Anwendung, die an die IP-Schnittstelle 172.16.1.226 gebunden ist
Nur wenn die erste (116) Schnittstelle ausfällt, schaltet das Modul auf die Verwendung der zweiten (226) Schnittstelle um. Während die Verbindungen zur zweiten (226) Schnittstelle erhalten bleiben, fallen die Verbindungen zur ersten (116) Schnittstelle aus.
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
. . .
Schnittstelle 172.16.1.116 fällt aus - beachten Sie die Änderung der MAC-Quelladresse
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
. . .
Abbildung 4 - Änderungen in der MAC, wenn die erste Schnittstelle ausfällt (auf dem Client aufgenommene Aufzeichnung)
Wie können Sie feststellen, welche Schnittstelle für den Datenverkehr verwendet wird?
Dazu gibt es mehrere Möglichkeiten. Die erste besteht darin, packet_monitor oder einen anderen Protokollanalysator auf dem entfernten Host oder im Netzwerk zu verwenden, um die Mac-Quelladressen auszuwerten (siehe Abbildungen 1 bis 4).
Die zweite Möglichkeit ist, die Schnittstelle mit netstat zu untersuchen, etwas Datenverkehr zu erzeugen, netstat erneut auszuführen und zu vergleichen. Nur eine Schnittstelle sollte ihren "transmitted frames"-Zähler erhöht haben.
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
. . .
Abbildung 5 - Vergleich des Zählers der übertragenen Frames mit netstat
Die dritte Möglichkeit besteht darin, eine Verbindung zu einem Dienst auf einem anderen System herzustellen und zu sehen, welche lokale Quelladresse verwendet wird. Wenn Sie nicht ausdrücklich eine andere Adresse angeben, entspricht die Quell-IP-Adresse der aktiven Schnittstelle.
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
. . .
Abbildung 6 - welche Schnittstelle wird für ausgehende Verbindungen verwendet
Ich bin der Meinung, dass mehrere Schnittstellen im selben Subnetz nur Verwirrung stiften und es in der Regel nicht wert sind, die Verwirrung zu stiften. Wenn Sie aus irgendeinem Grund zwei IP-Adressen im selben Subnetz benötigen, fügen Sie der ersten Schnittstelle einen Alias hinzu.
ifconfig #sdlmux.m16.10.11-2 172.16.1.226 -add -alias
Hinzufügen der IP-Adresse 172.16.1.226 zur Schnittstelle %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
Abbildung 7 - Hinzufügen eines Alias zu einer Schnittstelle

© 2024 Stratus Technologies.