동일한 서브넷에 모듈에 두 개의 인터페이스가 있으면 모듈 안팎에서 두 개의 인터페이스가 제공되지 않습니다. 모듈에 두 개의 인터페이스를 가져오지만 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
172.16.1.226으로 전송된 패킷이 00:00:a8:43:52:22의 대상 MAC 주소를 사용하지만 응답은 00:00:00:a8:42:52:22, 172.16.116에 대한 MAC 주소가 16.16에서 오는 16.16에서 16.16으로 나타났다.
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. . . 그림 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 ac100122TCP 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 ac100122TCP 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 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. . . 인터페이스 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 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. . .그림 4 – 첫 번째 인터페이스가 실패할 때 MAC의 변경 사항(클라이언트에서 찍은 추적)
트래픽을 보내는 데 어떤 인터페이스를 사용할지 어떻게 알 수 있습니까?
여러 가지 방법이 있습니다. 첫 번째는 원격 호스트 또는 네트워크에서 packet_monitor 또는 다른 프로토콜 분석기를 사용하여 소스 Mac 주소를 평가하는 것입니다.
두 번째는 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: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. . .그림 5 – netstat를 사용하여 전송된 프레임 카운터를 비교합니다.
세 번째 방법은 다른 시스템의 서비스에 연결하고 사용되는 로컬 소스 주소를 확인하는 것입니다. 다른 주소에 명시적으로 바인딩하지 않는 한 소스 IP 주소는 활성 인터페이스에 해당합니다.
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. . .그림 6 – 나가는 연결에 사용되는 인터페이스
같은 서브넷에 여러 인터페이스를 갖는 것은 단지 일을 혼동하고 일반적으로 혼란 가치가 없다는 것을 내 의견입니다. 어떤 이유로 동일한 서브넷에서 IP 주소를 IP해야 하는 경우 첫 번째 인터페이스에 별칭을 추가합니다.
ifconfig #sdlmux.m16.10.11-2 172.16.1.226 -추가 -별칭
인터페이스 %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 – 인터페이스에 별칭 추가
