Microsoft MVP성태의 닷넷 이야기
개발 환경 구성: 337. 윈도우 운영체제의 route 명령어 사용법 [링크 복사], [링크+제목 복사],
조회: 27487
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 
(연관된 글이 3개 있습니다.)

윈도우 운영체제의 route 명령어 사용법

IPv4 기준으로 라우팅 테이블 확인을 다음과 같이 할 수 있습니다.

C:\> route PRINT -4
===========================================================================
Interface List
 16...00 15 5d 00 13 15 ......Hyper-V Virtual Ethernet Adapter #2
  4...00 e0 4c 23 1a cf ......Realtek PCIe GBE Family Controller #3
 27...2c 56 dc 94 8d d7 ......Hyper-V Virtual Ethernet Adapter #3
 10...7c 5c f8 db 08 0c ......Bluetooth Device (Personal Area Network)
  1...........................Software Loopback Interface 1
===========================================================================

IPv4 Route Table
===========================================================================
Active Routes:
Network Destination        Netmask          Gateway       Interface  Metric
          0.0.0.0          0.0.0.0      192.168.0.1     192.168.0.19    281
        10.0.75.0    255.255.255.0         On-link         10.0.75.1    271
        10.0.75.1  255.255.255.255         On-link         10.0.75.1    271
      10.0.75.255  255.255.255.255         On-link         10.0.75.1    271
        127.0.0.0        255.0.0.0         On-link         127.0.0.1    331
        127.0.0.1  255.255.255.255         On-link         127.0.0.1    331
  127.255.255.255  255.255.255.255         On-link         127.0.0.1    331
      192.168.0.0    255.255.255.0         On-link      192.168.0.19    281
     192.168.0.19  255.255.255.255         On-link      192.168.0.19    281
    192.168.0.255  255.255.255.255         On-link      192.168.0.19    281
    192.168.137.0    255.255.255.0         On-link     192.168.137.1    281
    192.168.137.1  255.255.255.255         On-link     192.168.137.1    281
  192.168.137.255  255.255.255.255         On-link     192.168.137.1    281
        224.0.0.0        240.0.0.0         On-link         127.0.0.1    331
        224.0.0.0        240.0.0.0         On-link         10.0.75.1    271
        224.0.0.0        240.0.0.0         On-link     192.168.137.1    281
        224.0.0.0        240.0.0.0         On-link      192.168.0.19    281
  255.255.255.255  255.255.255.255         On-link         127.0.0.1    331
  255.255.255.255  255.255.255.255         On-link         10.0.75.1    271
  255.255.255.255  255.255.255.255         On-link     192.168.137.1    281
  255.255.255.255  255.255.255.255         On-link      192.168.0.19    281
===========================================================================
Persistent Routes:
  Network Address          Netmask  Gateway Address  Metric
          0.0.0.0          0.0.0.0      192.168.0.1  Default
          0.0.0.0          0.0.0.0      192.168.0.1     256
===========================================================================

자, 그럼 라우팅 테이블의 항목을 삭제/추가/변경해보겠습니다. 실습을 위해 위의 출력 결과에서 다음의 항목을 삭제해 보겠습니다.

Network Destination        Netmask          Gateway       Interface  Metric
255.255.255.255    255.255.255.255          On-link       127.0.0.1    331

그럼 간단하게 이런 route 명령어를 내리면 됩니다.

C:\Windows\System32> route DELETE 255.255.255.255 IF 1
 OK!

위의 인자 값 의미는 각각 다음과 같습니다.

route DELETE [Network Destination] IF [Interface number]

Network Destination == 255.255.255.255
Interface number == 1

(참고로, IF 인자를 주지 않으면 Network Destination이 일치하는 모든 값을 삭제함)

여기서 문제는 "Interface"가 아닌 "Interface number"를 줘야 한다는 것인데, 왜 그 값이 "1"이어야 하는지 쉽게 알 수 없다는 점입니다. 일단, "Interface number" 목록은 route PRINT -4 출력에 이미 포함되어 있습니다.

C:\> route PRINT -4
===========================================================================
Interface List
 16...00 15 5d 00 13 15 ......Hyper-V Virtual Ethernet Adapter #2
  4...00 e0 4c 23 1a cf ......Realtek PCIe GBE Family Controller #3
 27...2c 56 dc 94 8d d7 ......Hyper-V Virtual Ethernet Adapter #3
 10...7c 5c f8 db 08 0c ......Bluetooth Device (Personal Area Network)
  1...........................Software Loopback Interface 1
===========================================================================

...[생략]...

위의 목록에서 좌측의 첫 번째 숫자가 바로 "Interface number"가 됩니다. 그리고 우리가 삭제하려는 항목은 "Interface" 값이 "127.0.0.1"이기 때문에 루프백 주소이므로 위의 목록에서 1번임을 알 수 있습니다. 따라서, "route DELETE 255.255.255.255 IF 1" 명령이 해당 항목을 삭제할 수 있게 되는 것입니다.

그렇다면, 지우는 김에 다음의 항목도 삭제해 보겠습니다.

Network Destination        Netmask          Gateway       Interface  Metric
  255.255.255.255  255.255.255.255         On-link         10.0.75.1    271

route DELETE 명령을 위한 Network Destination은 255.255.255.255이지만, IF 값은 어떻게 구해야 할까요? 위의 항목은 "Interface == 10.0.75.1" 값을 갖는데 이와 매칭되는 항목을 "Interface List"에서 찾기가 쉽지 않습니다.

이럴 때는, ipconfig을 이용하면 됩니다.

C:\Windows\System32> ipconfig /all

Windows IP Configuration

   Host Name . . . . . . . . . . . . : TESTPC
   Primary Dns Suffix  . . . . . . . :
   Node Type . . . . . . . . . . . . : Hybrid
   IP Routing Enabled. . . . . . . . : No
   WINS Proxy Enabled. . . . . . . . : No

Ethernet adapter vEthernet (DockerNAT):

   Connection-specific DNS Suffix  . :
   Description . . . . . . . . . . . : Hyper-V Virtual Ethernet Adapter #2
   Physical Address. . . . . . . . . : 00-15-5D-00-13-15
   DHCP Enabled. . . . . . . . . . . : No
   Autoconfiguration Enabled . . . . : Yes
   Link-local IPv6 Address . . . . . : fe80::d5f:7811:62ad:ca6%16(Preferred)
   IPv4 Address. . . . . . . . . . . : 10.0.75.1(Preferred)
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Default Gateway . . . . . . . . . :
   DNS Servers . . . . . . . . . . . : fec0:0:0:ffff::1%1
                                       fec0:0:0:ffff::2%1
                                       fec0:0:0:ffff::3%1
   NetBIOS over Tcpip. . . . . . . . : Enabled

...[생략]...

보는 바와 같이, "10.0.75.1" 주소를 갖는 어댑터의 "Hyper-V Virtual Ethernet Adapter #2" 문자열을 구할 수 있고, 이것을 Interface List에서 찾으면,

===========================================================================
Interface List
 16...00 15 5d 00 13 15 ......Hyper-V Virtual Ethernet Adapter #2
  4...00 e0 4c 23 1a cf ......Realtek PCIe GBE Family Controller #3
 27...2c 56 dc 94 8d d7 ......Hyper-V Virtual Ethernet Adapter #3
 10...7c 5c f8 db 08 0c ......Bluetooth Device (Personal Area Network)
  1...........................Software Loopback Interface 1
===========================================================================

16번 인터페이스로 식별이 됩니다. 따라서 다음과 같이 명령을 내리면 해당 항목을 삭제할 수 있습니다.

route DELETE 255.255.255.255 IF 16

(또는 제어판의 네트워크 공유 센터의 어댑터 목록을 이용해 매칭시킬 수도 있습니다.)




"Interface number"를 구할 수 있게 되었으면 나머지 작업은 쉽습니다. 우선, ADD를 실행해 위에서 지웠던 2개의 항목을 복원해 보겠습니다.

Network Destination        Netmask          Gateway       Interface  Metric
  255.255.255.255  255.255.255.255         On-link         127.0.0.1    331
  255.255.255.255  255.255.255.255         On-link         10.0.75.1    271

route ADD 명령어의 형식은 다음과 같은데,

route ADD [Network Destination] MASK [Netmask]  [Gateway] METRIC [Metric Number] IF [Interface Number]

여기서 값을 알 수 없는 것은 [Gateway]에 해당하는 "On-link"입니다. 비록 On-link라고 되어 있지만 이런 경우 "0.0.0.0"을 입력하면 됩니다. 따라서, 다음과 같이 값을 복원할 수 있습니다.

route ADD 255.255.255.255 MASK 255.255.255.255 0.0.0.0 METRIC 331 IF 1
route ADD 255.255.255.255 MASK 255.255.255.255 0.0.0.0 METRIC 271 IF 16

위와 같이 실행 후 route PRINT -4로 확인하면 이렇게 추가된 것을 볼 수 있습니다.

Network Destination        Netmask          Gateway       Interface  Metric
  255.255.255.255  255.255.255.255         On-link         127.0.0.1    406
  255.255.255.255  255.255.255.255         On-link         10.0.75.1    286

그런데 이상하군요. 우리가 의도한 METRIC 값은 각각 331, 271이었는데 엉뚱하게 406, 286이 들어가 있습니다. 값의 차가 각각 75, 15가 납니다.

이에 대한 해답은 다음의 글에서 구할 수 있습니다.

Forcing Windows 7 to use wired when available 
; http://blog.yeshere.org/2011/06/forcing-windows-7-to-use-wired-when.html

How to change the Gateway Metric on Windows 7
; http://blog.yeshere.org/2011/06/how-to-change-gateway-metric-on-windows.html

그래서 "netsh int ip show config"을 실행하면 이런 출력 결과를 얻게 됩니다.

C:\> netsh int ip show config

Configuration for interface "vEthernet (DockerNAT)"
    DHCP enabled:                         No
    IP Address:                           10.0.75.1
    Subnet Prefix:                        10.0.75.0/24 (mask 255.255.255.0)
    InterfaceMetric:                      15
    Statically Configured DNS Servers:    None
    Register with which suffix:           Primary only
    Statically Configured WINS Servers:   None

...[생략]...

Configuration for interface "Loopback Pseudo-Interface 1"
    DHCP enabled:                         No
    IP Address:                           127.0.0.1
    Subnet Prefix:                        127.0.0.0/8 (mask 255.0.0.0)
    InterfaceMetric:                      75
    Statically Configured DNS Servers:    None
    Register with which suffix:           None
    Statically Configured WINS Servers:   None

즉, 각각의 어댑터 별로 임의의 가중치가 있는 것입니다. 따라서 이 값을 고려해 원하는 331, 271을 설정하려면 다음과 같이 명령을 내려 METRIC 값을 바꿔줄 수 있습니다.

route CHANGE 255.255.255.255 MASK 255.255.255.255 0.0.0.0 METRIC 256 IF 1
route CHANGE 255.255.255.255 MASK 255.255.255.255 0.0.0.0 METRIC 256 IF 16

그런데 재미있게도 METRIC 값이 모두 256으로 일치합니다. 그러고 보면, 윈도우는 별다른 설정이 없는 한 각각의 인터페이스에 설정된 METRIC 값으로 256을 기본값으로 사용하지만 어댑터에 따른 가중치로 인해 METRIC 우선순위가 달라지게 되는 것입니다.

어쨌든, 이렇게 기본값(256)으로 설정하고 나면 원하는 값으로 나옵니다.

Network Destination        Netmask          Gateway       Interface  Metric
  255.255.255.255  255.255.255.255         On-link         127.0.0.1    331
  255.255.255.255  255.255.255.255         On-link         10.0.75.1    271




[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]

[연관 글]






[최초 등록일: ]
[최종 수정일: 11/25/2017]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 




... 166  167  168  169  170  171  172  173  174  175  176  [177]  178  179  180  ...
NoWriterDateCnt.TitleFile(s)
569정성태3/16/200824109Team Foundation Server: 24. TFS 2008로 마이그레이션 (2) [2]
566정성태2/28/200825265.NET Framework: 99. AppDomain.GetEntryAssembly()를 우회하는 방법파일 다운로드1
564정성태2/16/200824814Windows: 30. TS Web Access + Vista SP1 [2]
563정성태2/16/200824232오류 유형: 51. Vista(UAC) + 웹 프로젝트 디버깅: System.UnauthorizedAccessException
562정성태2/12/200828600Windows: 29. Windows Server 2008 설치 [4]
561정성태1/10/200822309오류 유형: 50. IE 7 + 잘못된 HTC 파일 경로 = File not found [5]
559정성태1/1/200827203Windows: 28. Vista에서 끌어다 놓기로 GAC 등록하는 방법 [2]
558정성태1/1/200844325개발 환경 구성: 33. 32bit/64bit OLE DB Provider [1]
557정성태12/22/200722774개발 환경 구성: 32. WSCF와 VS.NET 2008
556정성태12/16/200720951기타: 22. 인기 순위 정리 : 조회수 1000 회 이상
555정성태12/16/200723709기타: 21. 인기 순위 정리 : 조회수 500 ~ 999회 글 목록
554정성태12/16/200728301기타: 20. 인기 순위 정리 : 조회수 250 ~ 499회 글 목록
553정성태12/16/200728605기타: 19. 인기 순위 정리 : 조회수 100 ~ 249회 글 목록
552정성태12/16/200722210기타: 18. 인기 순위 정리 : 조회수 000 ~ 099 회 글 목록
550정성태12/16/200721165Team Foundation Server: 23. TFS 2005에서 TFS 2008로 마이그레이션 [2]
549정성태12/16/200722641Team Foundation Server: 22. TFS 설정 - 주소를 도메인으로 변경
548정성태12/15/200740270오류 유형: 49. Report Server - 원격 서버에 연결할 수 없습니다
547정성태12/4/200728726.NET Framework: 98. .NET 비동기 Socket과 스레드
546정성태12/4/200719753Team Foundation Server: 21. Microsoft Office가 참조된 경우의 빌드 환경 구성
545정성태12/4/200726494Windows: 27. 눈으로 확인해 보는 ASLR 기능 [1]
544정성태11/25/200722453오류 유형: 48. VS.NET 2008 설치 오류 - Error code 1602 [5]
543정성태11/25/200725382개발 환경 구성: 31. ROBOCOPY XP026 버전 [1]
542정성태11/3/200740451VS.NET IDE: 55. XML/XSLT로 구현하는 매크로 확장 [5]파일 다운로드2
538정성태10/11/200726910스크립트: 10. VBScript - "Sub를 호출할 때는 괄호를 사용할 수 없습니다." [2]
537정성태9/28/200735559개발 환경 구성: 30. 64비트 OS에서의 ChartFX 라이선스 문제
536정성태9/12/200732353.NET Framework: 97. WCF : netTcpBinding에서의 각종 Timeout 값 설명 [11]
... 166  167  168  169  170  171  172  173  174  175  176  [177]  178  179  180  ...