본문 바로가기
동일 서브넷에 모듈에 두 개의 인터페이스가 있다고 해서 모듈에 두 개의 입력 및 출력 인터페이스가 생기는 것은 아닙니다. 모듈에는 두 개의 인터페이스가 있지만, STCP는 모듈 외부로 패킷을 전송할 때 단 하나의 인터페이스만 사용합니다. 이는 클라이언트가 어느 인터페이스에 연결되었는지와 무관하게 수행됩니다.

 

예를 들어, 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

 

그림 1에서 172.16.1.226으로 전송된 패킷은 목적지 MAC 주소 00:00:a8:43:52:22를 사용하지만, 응답은 00:00:a8:42:52:22에서 왔습니다. 이는 패킷 상에서는 응답이 172.16.1.226에서 온 것으로 표시되지만, 실제로는 172.16.1.116의 MAC 주소인 00:00:a8:42:52:22에서 온 응답임을 의미합니다.

 

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
. . .
그림 1 – 모듈에 대한 연결 요청 (클라이언트 측에서 추적된 내용)
모듈이 연결을 수신하는 대신 연결을 시작하는 경우, 항상 첫 번째(116) 인터페이스를 사용합니다.
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
. . .
그림 2 – 모듈에서 다른 서버로의 연결 요청 (서버에서 추적된 내용)
패킷을 전송할 때 두 번째(226) IP 주소에 바인딩하더라도, 패킷은 첫 번째(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
. . .
그림 3 – 모듈에서 다른 서버로의 연결 요청 (다른 서버에서 캡처한 추적 기록)
172.16.1.226 IP 인터페이스에 바인딩된 클라이언트 애플리케이션
첫 번째(116) 인터페이스가 다운될 경우에만 모듈이 두 번째(226) 인터페이스로 전환됩니다. 두 번째(226) 인터페이스에 대한 연결은 유지되지만, 첫 번째(116) 인터페이스에 대한 연결은 실패합니다.
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
. . .
인터페이스 172.16.1.116이 실패함 – 소스 MAC 주소 변경 사항에 유의하십시오
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
. . .
그림 4 – 첫 번째 인터페이스 장애 시 MAC 변화 (클라이언트 측에서 추적)
어떤 인터페이스를 통해 트래픽이 전송될지 어떻게 알 수 있나요?
여러 방법이 있습니다. 첫 번째는 원격 호스트나 네트워크에서 packet_monitor 또는 다른 프로토콜 분석기를 사용하여 소스 MAC 주소를 평가하는 것입니다. 그림 1부터 4까지를 참조하십시오.
두 번째는 netstat을 사용해 인터페이스를 확인하고, 트래픽을 생성한 후 netstat을 다시 실행해 비교하는 것입니다. 단 하나의 인터페이스만 "전송된 프레임" 카운터가 증가해야 합니다.
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
. . .
그림 5 – netstat을 사용한 전송된 프레임 카운터 비교
세 번째 방법은 다른 시스템의 서비스에 연결하여 어떤 로컬 소스 주소가 사용되는지 확인하는 것입니다. 명시적으로 다른 주소에 바인딩하지 않는 한 소스 IP 주소는 활성 인터페이스에 대응합니다.
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
. . .
그림 6 – 아웃바운드 연결에 사용되는 인터페이스
동일한 서브넷에 여러 인터페이스를 두는 것은 혼란만 야기할 뿐이며, 그 혼란을 감수할 만한 가치가 없다고 생각합니다. 어떤 이유로든 동일한 서브넷에 IP 주소를 추가해야 한다면, 첫 번째 인터페이스에 별칭을 추가하십시오.
ifconfig #sdlmux.m16.10.11-2 172.16.1.226 -add -alias
인터페이스 %phx_vos#sdlmux.m16.10.11-2에 IP 주소 172.16.1.226 추가
%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
그림 7 – 인터페이스에 별칭 추가

© 2024 Stratus Technologies.