2010년 4월 7일 수요일

윈도우에 루프백(Loopback)어뎁터 설치를 통한 패킷 캡쳐

루프백 어뎁터는 로컬 컴퓨터에서만 사용이 가능한 형태의 가상의 네트워크 디바이스이다.
요새는 네트워크 카드가 없는 경우는 없지만 내부에서 가상의 네트워크 용도로도
사용할 수 있고, 개발시에도 활용할 수 있을 것이다. 또, VirtualPC 와 같은 가상화 환경에서도
유용할 것이다. 예를 들어, 하나의 컴퓨터안에서 여러개의 가상머신을 사용한다면
가상머신이 루프백 어뎁터를 이용하도록 설정하여 컴퓨터 내의 가상머신 끼리만 통신을
하게되므로 네트워크 트래픽이 밖으로 흐르지 않는다.

다음은 윈도우 XP 환경에서 루프백 어뎁터를 설치하고 ipconfig 로 본 화면이다.
하드웨어 추가를 통해서 쉽게 설치가 가능하며, 10.0.0.200 으로 IP 설정한 상태이다.

Ethernet adapter Local Area Connection 5:

        Connection-specific DNS Suffix  . :
        Description . . . . . . . . . . . : Microsoft Loopback Adapter
        Physical Address. . . . . . . . . : 02-00-4C-4F-4F-XX
        Dhcp Enabled. . . . . . . . . . . : No
        IP Address. . . . . . . . . . . . : 10.0.0.200
        Subnet Mask . . . . . . . . . . . : 255.255.255.0
        Default Gateway . . . . . . . . . :

자 설정한 10.0.0.200 에 Ping 을 해보면 Ping reply 가 온다.

C:\>ping 10.0.0.200

Pinging 10.0.0.200 with 32 bytes of data:

Reply from 10.0.0.200: bytes=32 time<1ms TTL=128
Reply from 10.0.0.200: bytes=32 time<1ms TTL=128
Reply from 10.0.0.200: bytes=32 time<1ms TTL=128
Reply from 10.0.0.200: bytes=32 time<1ms TTL=128

Ping statistics for 10.0.0.200:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss)
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum = 0ms, Average = 0ms

네트웍이 되니 와이어샤크 같은 트래픽 분석 프로그램으로 해당 인터페이스를 대상으로
패킷 캡쳐가 가능할 것이다. 하지만, 막상 와이어샤크로 루프백 인터페이스로 패킷 캡쳐를 해보면
10.0.0.200 으로 ping 하는 트래픽이 잡히지는 않는다. 왜일까?  윈도우의 와이어샤크에서
로컬 루프백 IP 는 캡쳐를 할 수가 없다.

그래도 기껏 설치한 루프백 IP 에서 패킷 캡쳐 화면은 보아야 하지 않겠는가? 간단히 사용할 수 있는
방법이 arp 를 이용하여 추가하는 것이다.

10.0.0.201 IP 로 사용하기로 하고 맥주소는 루프백 어뎁터의 맥주소로 등록한다.
C:\>arp -s 10.0.0.201 02-00-4c-4f-4f-XX

등록된 ARP 테이블을 살펴보면 아래와 같다.
C:\>arp -a

Interface: 10.0.0.200 --- 0x4
  Internet Address      Physical Address      Type
  10.0.0.201            02-00-4c-4f-4f-XX     static

자 이제 10.0.0.201 을 요청하게 되면 루프백 어뎁터 맥 주소로 가게 될 것이다.

핑을 해보니 아래와 같이 timed out 이 나온다. 당연하다. 임시적으로 확인을 위해서만
정적인 ARP 테이블을 추가한 것이기 때문이다.  일단 해당 트래픽이 루프백 어뎁터로
흘러 들어갔다.

C:\>ping 10.0.0.201

Pinging 10.0.0.201 with 32 bytes of data:

Request timed out.
Request timed out.
Request timed out.

와이어샤크에서 확인해 보면 아래와 같이 ICMP 요청을 볼 수 있다.

4 10.765561 10.0.0.200 10.0.0.201 ICMP Echo (ping) request

Internet Control Message Protocol
    Type: 8 (Echo (ping) request)
    Code: 0 ()
    Checksum: 0x445c [correct]
    Identifier: 0x0400
    Sequence number: 1280 (0x0500)
    Data (32 bytes)

여기서는 간단히 바로 트래픽 확인을 위해서 이런 방법을 소개하였지만, 루프백 어뎁터를
이용하여 가상의 네트워크 통신 환경을 구성할 수 있을 것이다.

마지막으로 각 운영체제에서 루프백 어뎁터를 설치하기 위한 주소를 적어보니
필요한 분들은 참고하시길 바란다.

- 윈도우 2003
- 윈도우 XP
- 윈도우 2000

[참고]
1. 루프백을 이용한 터널링을 이용해 안전한 파일 공유를 위한 방법 소개  
Securing Windows File Sharing with SSH
http://www.bitvise.com/file-sharing




댓글 없음:

댓글 쓰기