탐색 링크 건너뛰기 | |
인쇄 보기 종료 | |
Oracle Solaris 11.1 네트워크 구성 및 관리 Oracle Solaris 11.1 Information Library (한국어) |
특정 주소 유형의 패킷에 대한 전송 상태를 표시하는 방법
IPv6 Neighbor Discovery 데몬의 작업을 추적하는 방법
snoop 명령을 사용하여 데이터 전송 상태를 모니터링할 수 있습니다. snoop 명령은 네트워크 패킷을 캡처한 다음 사용자가 지정한 형식으로 해당 패킷의 컨텐츠를 표시합니다. 패킷은 수신 즉시 표시하거나 파일에 저장할 수 있습니다. snoop가 중간 파일에 기록할 경우 추적 사용 조건에서 패킷 손실이 발생할 가능성이 거의 없습니다. snoop 자체는 이 파일을 해석하는 데 사용됩니다.
Promiscuous 모드에서 기본 인터페이스에 대한 패킷을 캡처하려면 사용자가 네트워크 관리 역할을 사용하거나 수퍼유저여야 합니다. 요약 양식에서 snoop는 최고 레벨 프로토콜에 해당하는 데이터만 표시합니다. 예를 들어 NFS 패킷은 NFS 정보만 표시합니다. 기본 RPC, UDP, IP 및 이더넷 프레임 정보는 표시되지 않지만, 상세 정보 표시 옵션을 선택하면 표시될 수 있습니다.
snoop 명령을 자주 그리고 일관되게 사용하면 정상적인 시스템 동작에 익숙해질 수 있습니다. 패킷 분석에 대한 지원 정보는 최근 백서 및 RFC에서 특정 영역(예: NFS 또는 NIS)의 전문가 권장 사항을 참조하십시오. snoop 및 옵션 사용에 대한 자세한 내용은 snoop(1M) 매뉴얼 페이지를 참조하십시오.
# ipadm show-if
snoop 명령은 일반적으로 첫번째 비루프백 장치(보통 기본 네트워크 인터페이스)를 사용합니다.
예 5-15 snoop 명령의 출력
기본 snoop 명령은 듀얼 스택 호스트에 대해 다음과 비슷한 출력을 반환합니다.
% snoop Using device /dev/net (promiscuous mode) router5.local.com -> router5.local.com ARP R 10.0.0.13, router5.local.com is 0:10:7b:31:37:80 router5.local.com -> BROADCAST TFTP Read "network-confg" (octet) myhost -> DNSserver.local.com DNS C 192.168.10.10.in-addr.arpa. Internet PTR ? DNSserver.local.com myhost DNS R 192.168.10.10.in-addr.arpa. Internet PTR niserve2. . . . fe80::a00:20ff:febb:e09 -> ff02::9 RIPng R (5 destinations)
이 출력에 캡처된 패킷은 주소 분석용 NIS 및 DNS 서버에 대한 조치를 비롯하여 원격 로그인 섹션을 보여줍니다. 로컬 라우터에서 보내는 정기 ARP 패킷 및 in.ripngd에 대한 IPv6 링크 로컬 주소 알림도 포함됩니다.
# snoop -o filename
예를 들면 다음과 같습니다.
# snoop -o /tmp/cap Using device /dev/eri (promiscuous mode) 30 snoop: 30 packets captured
이 예에서는 패킷 30이 /tmp/cap 파일에 캡처되었습니다. 이 파일은 디스크 공간이 충분한 모든 디렉토리에 있을 수 있습니다. 캡처된 패킷 수는 명령줄에 표시되는데, Ctrl-C를 누르면 언제든지 중단할 수 있습니다.
snoop는 호스트 시스템에 많은 네트워킹 로드를 만드는데, 이로 인해 결과가 왜곡될 수 있습니다. 실제 결과를 표시하려면 세번째 시스템에서 snoop를 실행하십시오.
# snoop -i filename
예 5-16 snoop 출력 캡처 파일의 내용
다음 출력은 snoop -i 명령의 출력과 같은 다양한 캡처를 보여줍니다.
# snoop -i /tmp/cap 1 0.00000 fe80::a00:20ff:fee9:2d27 -> fe80::a00:20ff:fecd:4375 ICMPv6 Neighbor advertisement ... 10 0.91493 10.0.0.40 -> (broadcast) ARP C Who is 10.0.0.40, 10.0.0.40 ? 34 0.43690 nearserver.here.com -> 224.0.1.1 IP D=224.0.1.1 S=10.0.0.40 LEN=28, ID=47453, TO =0x0, TTL=1 35 0.00034 10.0.0.40 -> 224.0.1.1 IP D=224.0.1.1 S=10.0.0.40 LEN=28, ID=57376, TOS=0x0, TTL=47
세번째 시스템(snoop 시스템)은 방해하는 모든 트래픽을 확인하므로 snoop 추적은 회선에서 실제로 발생한 사항을 반영합니다.
snoop 캡처 파일에 대한 자세한 내용은 RFC 1761, Snoop Version 2 Packet Capture File Format을 참조하십시오.
snoop 명령으로 IPv6 패킷만 표시할 수 있습니다.
# snoop ip6
snoop 명령에 대한 자세한 내용은 snoop(1M) 매뉴얼 페이지를 참조하십시오
예 5-17 IPv6 네트워크 트래픽만 표시
다음 예는 노드에서 snoop ip6 명령을 실행할 경우 표시되는 출력과 같은 일반 출력을 보여줍니다.
# snoop ip6 fe80::a00:20ff:fecd:4374 -> ff02::1:ffe9:2d27 ICMPv6 Neighbor solicitation fe80::a00:20ff:fee9:2d27 -> fe80::a00:20ff:fecd:4375 ICMPv6 Neighbor solicitation fe80::a00:20ff:fee9:2d27 -> fe80::a00:20ff:fecd:4375 ICMPv6 Neighbor solicitation fe80::a00:20ff:febb:e09 -> ff02::9 RIPng R (11 destinations) fe80::a00:20ff:fee9:2d27 -> ff02::1:ffcd:4375 ICMPv6 Neighbor solicitation
IP 계층 장치는 IP 관찰을 향상하기 위해 Oracle Solaris에서 도입되었습니다. 이 장치는 시스템의 네트워크 인터페이스와 연관된 주소를 사용하는 모든 패킷에 액세스할 수 있습니다. 이 주소에는 비루프백 인터페이스 또는 논리적 인터페이스에서 호스트된 주소 및 로컬 주소가 포함됩니다. IPv4 주소와 IPv6 주소 둘 다의 트래픽을 관찰할 수 있습니다. 따라서 시스템을 대상으로 하는 모든 트래픽을 모니터링할 수 있습니다. 트래픽은 루프백 IP 트래픽, 원격 시스템에서 보내는 패킷, 시스템에서 전송 중인 패킷 또는 전송된 모든 트래픽일 수 있습니다.
IP 계층 장치를 사용하면 전역 영역 관리자가 영역 간 트래픽과 영역 내 트래픽을 모니터링할 수 있습니다. 비전역 영역의 관리자도 해당 영역에서 전송하고 수신한 트래픽을 관찰할 수 있습니다.
IP 계층에서 트래픽을 모니터링하기 위해 새 옵션인 -I가 snoop 명령에 추가되었습니다. 이 옵션은 명령이 기본 링크 계층 장치 대신 새 IP 계층 장치를 사용하여 트래픽 데이터를 표시하도록 지정합니다.
# ipadm show-if
# snoop -I interface [-V | -v]
모든 예는 다음과 같은 시스템 구성을 기반으로 합니다.
# ipadm show-addr ADDROBJ TYPE STATE ADDR lo0/v4 static ok 127.0.0.1/8 net0/v4 static ok 192.68.25.5/24 lo0/? static ok 127.0.0.1/8 net0/? static ok 172.0.0.3/24 net0/? static ok 172.0.0.1/24 lo0/? static ok 127.0.0.1/8
sandbox 및 toybox라는 두 영역이 다음 IP 주소를 사용한다고 가정합니다.
sandbox – 172.0.0.3
toybox – 172.0.0.1
시스템의 서로 다른 인터페이스에서 snoop -I 명령을 실행할 수 있습니다. 표시되는 패킷 정보는 사용자가 전역 영역 관리자인지 아니면 비전역 영역의 관리자인지 여부에 따라 달라집니다.
예 5-18 루프백 인터페이스의 트래픽
# snoop -I lo0 Using device ipnet/lo0 (promiscuous mode) localhost -> localhost ICMP Echo request (ID: 5550 Sequence number: 0) localhost -> localhost ICMP Echo reply (ID: 5550 Sequence number: 0)
상세 정보 출력을 생성하려면 -v 옵션을 사용하십시오.
# snoop -v -I lo0 Using device ipnet/lo0 (promiscuous mode) IPNET: ----- IPNET Header ----- IPNET: IPNET: Packet 1 arrived at 10:40:33.68506 IPNET: Packet size = 108 bytes IPNET: dli_version = 1 IPNET: dli_type = 4 IPNET: dli_srczone = 0 IPNET: dli_dstzone = 0 IPNET: IP: ----- IP Header ----- IP: IP: Version = 4 IP: Header length = 20 bytes ...
IP 계층에서는 패킷 관찰이 지원되므로 새 IPNET 헤더가 관찰 중인 패킷의 앞에 표시됩니다. 소스 및 대상 ID가 모두 표시됩니다. ID '0'은 트래픽이 전역 영역에서 생성됨을 나타냅니다.
예 5-19 로컬 영역에 있는 net0 장치의 패킷 플로우
# snoop -I net0 Using device ipnet/net0 (promiscuous mode) toybox -> sandbox TCP D=22 S=62117 Syn Seq=195630514 Len=0 Win=49152 Options=<mss sandbox -> toybox TCP D=62117 S=22 Syn Ack=195630515 Seq=195794440 Len=0 Win=49152 toybox -> sandbox TCP D=22 S=62117 Ack=195794441 Seq=195630515 Len=0 Win=49152 sandbox -> toybox TCP D=62117 S=22 Push Ack=195630515 Seq=195794441 Len=20 Win=491
이 출력은 시스템 내의 서로 다른 영역에서 발생하는 트래픽을 보여줍니다. 로컬에서 다른 영역으로 전달되는 패킷을 비롯하여 net0 IP 주소와 연관된 모든 패킷을 확인할 수 있습니다. 상세 정보 출력을 생성하면 패킷 플로우와 관련된 영역을 확인할 수 있습니다.
# snoop -I net0 -v port 22 IPNET: ----- IPNET Header ----- IPNET: IPNET: Packet 5 arrived at 15:16:50.85262 IPNET: Packet size = 64 bytes IPNET: dli_version = 1 IPNET: dli_type = 0 IPNET: dli_srczone = 0 IPNET: dli_dstzone = 1 IPNET: IP: ----- IP Header ----- IP: IP: Version = 4 IP: Header length = 20 bytes IP: Type of service = 0x00 IP: xxx. .... = 0 (precedence) IP: ...0 .... = normal delay IP: .... 0... = normal throughput IP: .... .0.. = normal reliability IP: .... ..0. = not ECN capable transport IP: .... ...0 = no ECN congestion experienced IP: Total length = 40 bytes IP: Identification = 22629 IP: Flags = 0x4 IP: .1.. .... = do not fragment IP: ..0. .... = last fragment IP: Fragment offset = 0 bytes IP: Time to live = 64 seconds/hops IP: Protocol = 6 (TCP) IP: Header checksum = 0000 IP: Source address = 172.0.0.1, 172.0.0.1 IP: Destination address = 172.0.0.3, 172.0.0.3 IP: No options IP: TCP: ----- TCP Header ----- TCP: TCP: Source port = 46919 TCP: Destination port = 22 TCP: Sequence number = 3295338550 TCP: Acknowledgement number = 3295417957 TCP: Data offset = 20 bytes TCP: Flags = 0x10 TCP: 0... .... = No ECN congestion window reduced TCP: .0.. .... = No ECN echo TCP: ..0. .... = No urgent pointer TCP: ...1 .... = Acknowledgement TCP .... 0... = No push TCP .... .0.. = No reset TCP: .... ..0. = No Syn TCP: .... ...0 = No Fin TCP: Window = 49152 TCP: Checksum = 0x0014 TCP: Urgent pointer = 0 TCP: No options TCP:
IPNET 헤더는 패킷이 전역 영역(ID 0)에서 Sandbox(ID 1)로 제공됨을 나타냅니다.
예 5-20 영역 식별을 통한 트래픽 관찰
# snoop -I hme0 sandboxsnoop -I net0 sandbox Using device ipnet/hme0 (promiscuous mode) toybox -> sandbox TCP D=22 S=61658 Syn Seq=374055417 Len=0 Win=49152 Options=<mss sandbox -> toybox TCP D=61658 S=22 Syn Ack=374055418 Seq=374124525 Len=0 Win=49152 toybox -> sandbox TCP D=22 S=61658 Ack=374124526 Seq=374055418 Len=0 Win=49152 #
영역을 식별하여 패킷을 관찰하는 기능은 영역이 여러 개 있는 시스템에 유용합니다. 현재는 영역 ID로만 영역을 식별할 수 있습니다. 영역 이름과 함께 snoop를 사용하는 것은 지원되지 않습니다.