출처: http://study.ibluerain.com/tag/nbstat
ly from 203.10.5.10: bytes=32time<10ms TTL=128’이라고 나올 것이다.
그럼 ‘Request timed out’이라고 나오면 어떤 원인들이 있을까? 그 원인을 알아보면 Cable Connection이 잘못되어 있거나, 상대방 Computer IP Address가 잘못되었거나, 상대방 Computer가 꺼져 있거나, 상대방 Computer가 Internet Connection이 안 되어 있는 경우이다.
C:\Windows> ping 203.10.5.10
Request timed out. => Computer가 응답이 없음
Reply from 203.10.5.10: bytes=32 time<10ms TTL=128 => Computer가 응답이 있음
Ping 명령의 TTL(Time To Live) 값은 어떤 OS를 사용하는지도 알 수가 있다. UNIX 계열은 255, Windows 계열은 128부터 TTL 값이 Router를 지날 때마다 1씩 감소하므로 TTL이 200번대이면 Unix이고, TTL이 100번대이면 Windows 계열이라고 생각하면 된다. <화면 1>을 보면 Yahoo는 TTL이 200번대로 UNIX 계열을 사용 중이고 msshop.co.kr Site는 TTL이 100번대로 Windows 계열을 사용하고 있다고 추측할 수 있다.
<화면 1> TTL을 통해 운영체제를 알 수 있는 사례
<표 1> Ping 명령 Option 설명
Tracert (Trace Route)
Internet은 접속하려는 상대편 Computer or Server와 직접적으로 연결되어 있지 않고 중간 중간에 Network 장비를 거쳐 접속이 된다. tracert(trace route)는 최종 목적지 Computer(Server)까지 중간에 거치는 여러 개의 Router에 대한 경로 및 응답속도를 표시해 준다.
갑자기 특정 Site나 Server와 접속이 늦어진 경우에 tracert 명령으로 내부 Network가 느린지, 회선 구간이 느린지, Site Server에서 느린지를 확인해 볼 수 있다. 또한 전용회선 관리나 장애 복구시에도 많이 사용한다. <화면 2>를 보면 외부망의 특정 구간에서 속도가 늦다는 것을 알 수 있다.
<화면 2> 외부망의 특정 구간에서 속도가 늦어지는 모습
<표 2> tracert 명령 Option 설명
nbtstat (NetBIOS over TCP/IP state)
회사 내에 많은 Computer가 있다 보면 IP Address 충돌 경고 Message가 발생한다. 보통 DHCP를 이용해 IP를 관리하는 곳에서는 잘 발생하지 않지만 고정으로 IP Address를 설정하는 Network 환경에서 하나의 IP Address를 두 대의 Computer에 입력하게 되면 충돌 Message가 발생을 하며 Network 통신이 안 된다.
이럴 때 충돌되는 Computer를 찾을 때 유용한 명령이 nbtstat(NetBIOS over TCP/IP state) 명령어로 NetBIOS가 사용하는 통계 및 이름 정보를 표시한 다. IP Address 충돌 Message가 발생하면 Computer를 끄고 다른 Computer에서 nbtstat 명령으로 중복된 IP Address를 입력해 Computer Name을 확인한 후에 충돌되는 Computer의 IP Address를 바꿔주면 된다. <화면 3>은 충돌되는 IP 사용자 ‘SUMA-COM2’를 찾은 후 IP Address를 변경토록 하면 된다.
<화면 3> 충돌되는 IP 사용자
<표 3> nbtstat 명령 Option 설명
netstat
Web으로 Program을 개발할 때 외부에서 통신이 안 되면 사용 Port를 확인할 때가 있다. 또한 내 Computer에 트로이 목마가 설치되어 정보를 빼낼 수가 있는지를 확인하는 유용한 명령이 ‘Netstat -an | more(Netstat - network stats)’로, 현재 Service를 대기하고 있는 ‘LISTENING’된 정보들과 TCP 통신을 하는 Service의 연결 상태를 Domain 정보 없이 보여준다. ESTABLISHED는 다른 Computer와 서로 연결된 상태이고, CLOSED는 연결이 완전히 종료된 것을 나타내며 TIME-WAIT은 연결은 종료되었지만 당분간 Socket을 열어놓은 상태이다
<화면 4> netstat -an | more 명령
<화면 5>와 같이 내 Computer의 사용 Port를 확인해 불필요한 Port를 사용하고 있다면 외부 Hacking이나 트로이 목마로 의심할 필요가 있다. Windows NetBIOS는 TCP Port 139를 통해 다양한 정보를 넘겨주는 API를 갖고 있는데, 보안에 취약해 인증되지 않은 사용자가 ID/Password 인증 없이 원격지 Server의 정보를 가져갈 수 있다.
<화면 5> TCP 445번 Port로 접속한 상태
또한 Warm Virus, Cable 불량, Switch Hub Port 불량으로 인해 Data 송수신 속도가 늦거나 할 때 ‘Netstat -e 10’ 명령으로 10초의 주기로 Ethernet Interface의 Data 송수신을 계속 보여주게 함으로써 Warm Virus로 Traffic이 증가하는지 확인할 수가 있다.
<화면 6> netstat -e 명령
<표 4> netstat 명령 Option 설명
route
Firewall 장비나 Server 장비에 NIC Card를 여러개 설치할 경우에는 route 명령을 이용해 Packet이 전달되는 경로를 확인하거나 지정할 수 있다. 192.168.1.0 Network의 Traffic을 192.168.0.10으로 전달하고자 한다면 ‘route add’ 명령을 사용하며, ‘route print’ 명령으로 Routing Table을 확인한다.
c:\> route add 192.168.1.0 mask 255.255.255.0 192.168.0.10
c:\> route print
(Usage : ROUTE [add | delete | print] [MASK netmask] [gateway] [METRIC metric])
<표 5> route 명령 Option 설명
ipconfig
About Link
현재의 TCP/IP Network 구성 값을 모두 표시하고 DHCP(Dynamic Host Configuration Protocol) 및 DNS(Domain Name System) 설정을 새로 고칩니다. 매개 변수 없이 사용할 경우 ipconfig는 모든 Adapter의 IPv6 Address나 IPv4 Address, Subnet Mask 및 Default Gateway를 표시합니다.
구문
ipconfig [/all] [/renew[Adapter]] [/release [Adapter]] [/flushdns] [/displaydns] [/registerdns] [/showclassidAdapter] [/setclassidAdapter [ClassID]] |
매개 변수
/all
모든 Adapter의 전체 TCP/IP 구성을 표시합니다. 이 매개 변수가 없으면 ipconfig는 각 Adapter의 IPv6 Address 또는 IPv4 Address, Subnet Mask 및 Default Gateway 값만 표시합니다. Adapter는 설치된 Network Adapter와 같은 실제 Interface나 전화 접속 연결과 같은 논리 Interface를 나타낼 수 있습니다.
/renew [Adapter]
Adapter를 지정하지 않으면 모든 Adapter의 DHCP 구성을 갱신하고 Adapter 매개 변수를 사용하면 특정 Adapter의 DHCP 구성을 갱신합니다. 이 매개 변수는 IP Address를 자동으로 얻기 위해 구성된 Adapter가 있는 Computer에서만 사용할 수 있습니다. Adapter 이름을 지정하려면 매개 변수 없이 ipconfig를 사용할 때 나타나는 Adapter 이름을 입력합니다.
/release [Adapter]
DHCP Server로 DHCPRELEASE Message를 보내 현재의 DHCP 구성을 해제하고 Adapter를 지정하지 않으면 모든 Adapter의 IP Address 구성을 제거하고 Adapter 매개 변수를 사용하면 특정 Adapter의 IP Address 구성을 제거합니다. 이 매개 변수는 IP Address를 자동으로 얻기 위해 구성된 Adapter의 TCP/IP를 사용할 수 없게 설정합니다. Adapter 이름을 지정하려면 매개 변수 없이 ipconfig를 사용할 때 나타나는 Adapter 이름을 입력합니다.
/flushdns
DNS Client 이름 확인자 Cache의 내용을 Flush 하고 다시 설정합니다. DNS 문제 해결 중에 이 절차를 사용하면 동적으로 추가된 다른 항목 뿐만 아니라 Cache에 보관된 부정 Cache 항목을 제거할 수 있습니다.
/displaydns
Locahost File에서 미리 Load 된 항목과 Computer에서 확인한 이름 Query에 대해 최근 얻은 Resource Record를 모두 포함하는 DNS Client 이름 확인자 Cache의 내용을 표시합니다. DNS Client Service는 이 정보를 사용하여 구성된 DNS Server를 Query 하기 전에 자주 Query 되는 이름을 빨리 확인합니다.
/registerdns
Computer에 구성된 DNS 이름 및 IP Address의 수동 동적 등록을 초기화합니다. 이 매개 변수를 사용하면 실패한 DNS 이름 등록 문제를 해결하거나 Client Computer를 다시 Booting하지 않고 Client와 DNS Server 간 동적 Update 문제를 해결할 수 있습니다. TCP/IP Protocol의 고급 속성에 있는 DNS 설정은 DNS에 등록된 이름을 결정합니다.
/showclassid Adapter
지정된 Adapter의 DHCP Class ID를 표시합니다. 모든 Adapter의 DHCP Class ID를 보려면 Adapter 대신 별표(*) Wild Card 문자를 사용합니다. 이 매개 변수는 IP Address를 자동으로 얻기 위해 구성된 Adapter가 있는 Computer에서만 사용할 수 있습니다.
/setclassid Adapter [ClassID]
지정된 Adapter의 DHCP Class ID를 구성합니다. 모든 Adapter의 DHCP Class ID를 설정하려면 Adapter 대신 별표(*) Wild Card 문자를 사용합니다. 이 매개 변수는 IP Address를 자동으로 얻기 위해 구성된 Adapter가 있는 Computer에서만 사용할 수 있습니다. DHCP Class ID를 지정하지 않으면 현재의 Class ID가 제거됩니다.
/?
Command Prompt에서 도움말을 표시합니다.
설명
• ipconfig 명령은 winipcfg 명령에 해당하는 명령줄 명령으로 Windows Millinnium Edition, Windows 98 및 Windows 95에서 사용할 수 있습니다. Windows XP 및 Windows Server 2003 제품군에는 winipcfg 명령과 같은 Graphic 요소가 없지만 Network 연결을 사용하여 IP Address를 보고 갱신할 수 있습니다. 이렇게 하려면 Network 연결을 열고 Network 연결을 Mouse 오른쪽 단추로 Click 한 다음 상태, 지원 탭을 차례로 Click 합니다.
• 이 명령은 IP Address를 자동으로 얻기 위해 구성된 Computer에서 매우 유용합니다. 이 명령으로 사용자는 DHCP, 개인 IP Address 자동 지정(APIPA) 또는 다른 구성으로 구성된 TCP/IP 구성 값을 결정할 수 있습니다.
• Adapter 이름에 공백이 있으면 Adapter 이름에 따옴표를 사용합니다(예: "Adapter Name").
• Adapter 이름에 대해 ipconfig는 별표(*) Wild Card 문자 사용을 지원하므로 지정된 문자열로 시작하는 이름의 Adapter 또는 지정된 문자열이 포함된 이름의 Adapter를 지정할 수 있습니다. 예를 들어 Local*은 Local이라는 문자열로 시작하는 모든 Adapter와 일치하고 *Con*은 Con이라는 문자열이 포함된 모든 Adapter와 일치합니다.
• 이 명령은 Internet Protocol (TCP/IP) 이 Network 연결의 Network Adapter 속성에서 구성 요소로 설치된 경우에만 사용할 수 있습니다.
예
모든 Adapter의 기본 TCP/IP 구성을 표시하려면 다음과 같이 입력합니다.
ipconfig
모든 Adapter의 전체 TCP/IP 구성을 표시하려면 다음과 같이 입력합니다.
ipconfig /all
Local Area Connection Adapter만 DHCP 할당 IP Address 구성을 갱신하려면 다음과 같이 입력합니다.
ipconfig /renew "Local Area Connection"
DNS 이름 확인 문제를 해결할 때 DNS 이름 확인자 Cache를 Flush 하려면 다음과 같이 입력합니다.
ipconfig /flushdns
이름이 Local로 시작하는 모든 Adapter의 DHCP Class ID를 표시하려면 다음과 같이 입력합니다.
ipconfig /showclassid Local*
로컬 영역 연결 Adapter의 DHCP Class ID를 TEST로 설정하려면 다음과 같이 입력합니다.
ipconfig /setclassid "Local Area Connection" TEST
1. ipconfig 명령의 실행 방법
시작 >> 실행 >> cmd 입력하면 명령 프롬프트가 나타납니다. [그림1,2]
명령 프롬프트에서 ipconfig 명령을 입력합니다. [그림3]
<그림 1> Command Prompt
<그림 2> Command Prompt
<그림 3> ipconfig 실행
2. System의 IPv6 Address 및 Default Gateway 확인
IPv6 Stack이 설치된 상태에서 ipconfig 명령을 입력하면, 아래 그림처럼 System에 생성된 IPv6 Address가 표시됩니다. 아래의 예는, 초고속 Internet 환경이기 때문에 Native IPv6 Address 없이 ISATAP Turnelling IPv6 Address가 생성되어 있습니다. [그림4]
<그림 4> ipconfig 명령 실행 결과
3. 모든 Network Interface에 대한 상세 정보 확인
각 Network Interface에 대한 상세 정보를 확인하려면 ipconfig -all 명령을 이용합니다.
ipconfig -all 명령을 이용하면 IPv6 DNS 정보를 추가로 확인할 수 있습니다. [그림5]
<그림 5> ipconfig -all 명령 실행 결과
4. IPv6 DNS Cache 관련 정보 확인
Windows에서는 DNS Query의 효율성을 위해 DNS Cache가 존재합니다. ipconfig -displaydns 명령을 이용하여 System에 Cache 된 IPv6 DNS 정보를 확인할 수 있습니다. [그림 6]
<그림 6> ipconfig -displaydns 명령 실행 결과
위 그림에서 보면 www.vsix.net에 대한 IPv6 DNS 정보중 AAAA Record는 2001:2b8:1::100이고 TTL이 76014임을 알 수 있습니다. 또한 album.vsix.net에 대한 IPv6 Record가 2001:2b8:1::110 임을 알 수 있습니다.
5. IPv6 DNS Cache 정보의 삭제
경우에 따라 Test 또는 개발 과정에서 기존의 IPv6 DNS Cache를 삭제해야 할 경우가 발생합니다. 혹은 DNS Server로 부터 새로운 DNS 정보를 받아오기 위해서는 DNS Cache를 삭제할 수 있습니다.
ipconfig -flushdns 명령을 이용하여 IPv6 DNS Cache를 삭제할 수 있습니다.
<그림7> ipconfig -flushdns 명령 및 ipconfig -displaydns 명령 수행 결과
위 그림에서 보면 ipconfig -flushdns 명령을 통해 IPv6 DNS Cache가 삭제되었음을 알 수 있습니다.
이상으로 ipconfig, ipconfig -all, ipconfig -displaydns, ipconfig -flushdns 명령의 이용 방법을 알아 보았습니다. 위 명령을 통해 System의 IPv6 Address 확인, DNS 정보 확인 및 삭제가 가능합니다.
Nslookup 하위 명령
자세한 내용을 보려면 해당 명령을 참조하십시오.
• Nslookup: exit
• Nslookup: finger
• Nslookup: help
• Nslookup: ls
• Nslookup: lserver
• Nslookup: root
• Nslookup: server
• Nslookup: set
• Nslookup: set all
• Nslookup: set class
• Nslookup: set d2
• Nslookup: set debug
• Nslookup: set defname
• Nslookup: set domain
• Nslookup: set ignore
• Nslookup: set port
• Nslookup: set querytype
• Nslookup: set recurse
• Nslookup: set retry
• Nslookup: set root
• Nslookup: set search
• Nslookup: set srchlist
• Nslookup: set timeout
• Nslookup: set type
• Nslookup: set vc
• Nslookup: view