Oracle® Solaris 11.2의 TCP/IP 네트워크, IPMP 및 IP 터널 관리

인쇄 보기 종료

업데이트 날짜: 2014년 7월
 
 

IP 계층 장치를 사용하여 패킷 모니터링

IP 계층 장치는 IP 관찰을 향상하기 위해 Oracle Solaris에서 도입되었습니다. 이 장치는 시스템의 네트워크 인터페이스와 연관된 주소를 사용하는 모든 패킷에 액세스할 수 있습니다. 이 주소에는 비루프백 인터페이스 또는 논리적 인터페이스에서 호스트된 주소 및 로컬 주소가 포함됩니다. IPv4 주소와 IPv6 주소 둘 다의 트래픽을 관찰할 수 있습니다. 따라서 시스템을 대상으로 하는 모든 트래픽을 모니터링할 수 있습니다. 트래픽은 루프백 IP 트래픽, 원격 시스템에서 보내는 패킷, 시스템에서 전송 중인 패킷 또는 전송된 모든 트래픽일 수 있습니다.

IP 계층 장치를 사용하면 Oracle Solaris 전역 영역 관리자가 영역 간 트래픽과 영역 내 트래픽을 모니터링할 수 있습니다. 비전역 영역의 관리자도 해당 영역에서 전송하고 수신한 트래픽을 관찰할 수 있습니다.

IP 계층에 대한 트래픽을 모니터링하려면 snoop 명령을 최신 –I 옵션과 함께 사용하십시오. 이 옵션은 명령이 기본 링크 계층 장치 대신 새 IP 계층 장치를 사용하여 트래픽 데이터를 표시하도록 지정합니다.

IP 계층에서 패킷을 확인하는 방법

  1. (옵션) 필요한 경우 시스템에 연결된 인터페이스에 대한 정보를 출력합니다.
    # ipadm show-if
  2. 특정 인터페이스에서 IP 트래픽을 캡처합니다.
    # snoop -I interface [-V | -v]

패킷 확인 방법

다음 예는 모두 이 시스템 구성을 기반으로 합니다.

# ipadm show-addr

ADDROBJ           TYPE     STATE        ADDR
lo0/v4            static   ok           127.0.0.1/8
net0/v4           dhcp     ok           10.153.123.225/24
lo0/v6            static   ok           ::1/128
net0/v6           addrconf ok           fe80::214:4fff:2731:b1a9/10
net0/v6           addrconf ok           2001:0db8:212:60bb:214:4fff:2731:b1a9/64
net0/v6           addrconf ok           2001:0db8:56::214:4fff:2731:b1a9/64

    sandboxtoybox라는 두 영역이 다음 IP 주소를 사용한다고 가정합니다.

  • sandbox172.0.0.3

  • toybox172.0.0.1

시스템에 있는 서로 다른 인터페이스에서 snoop –I 명령을 사용할 수 있습니다. 표시되는 패킷 정보는 사용자가 전역 영역 관리자인지 아니면 비전역 영역의 관리자인지 여부에 따라 달라집니다.

예 1-11  루프백 인터페이스에 대한 트래픽 관찰

다음 예는 루프백 인터페이스에 대한 snoop 명령의 출력을 보여줍니다.

# 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은 트래픽이 전역 영역에서 생성됨을 나타냅니다.

예 1-12  로컬 영역 내의 net0 장치에서 패킷 플로우 관찰

다음 예는 시스템 내의 다른 영역에서 발생하는 트래픽을 보여줍니다. 로컬에서 다른 영역으로 전달되는 패킷을 비롯하여 net0 IP 주소와 연관된 모든 패킷을 확인할 수 있습니다. 상세 정보 출력을 생성하면 패킷 플로우와 관련된 영역을 확인할 수도 있습니다.

# 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
# 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)로 제공됨을 나타냅니다.

예 1-13  영역 식별을 통한 네트워크 트래픽 관찰

다음 예는 영역 식별을 통해 네트워크 트래픽을 관찰하는 방법을 보여줍니다. 이 방법은 영역이 여러 개 있는 시스템에서 매우 유용합니다. 현재는 영역 ID로만 영역을 식별할 수 있습니다. 영역 이름과 함께 snoop 명령을 사용하는 것은 지원되지 않습니다.

# 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