% 뒤의 문자 (이 예에서는 숫자 임)는 인터페이스 식별자입니다. 이러한 문자는 사람들이 종종 "네트워크 카드"라고 부르는 "네트워크 인터페이스"를 식별하는 데 사용됩니다. 예를 들어, 패킷이 유선 이더넷 카드를 사용할지 무선 Wi-Fi 어댑터를 사용할지를 결정하는 데 도움이 될 수 있습니다.
Microsoft Windows를 사용하고 있다고 생각합니다. 인터페이스 식별자로 숫자를 사용합니다.
비교하자면, 유닉스 계열 시스템은 % 기호 뒤에 문자를 사용할 수 있습니다. 예 :fe80::71a3:2b00:ddd3:753f%eth0
이 경우 인터페이스 식별자 eth0
는 네트워크 카드 이름과 일치합니다.
Microsoft Windows에서는 라우팅 테이블을 확인하는 명령 줄 중 하나를 사용하여 (숫자) 인터페이스 식별자 목록을 얻을 수 있습니다. netstat -nr
다른 운영 체제에서도 작동하기 때문에 " "를 선호 하지만 Microsoft Windows에서도 " route print
"를 지원합니다 . 보고되는 결과 출력은 화면이 길어질 수 있으므로 더 많이 파이프하지 않으면 뒤로 스크롤 할 수 있도록 준비하십시오.
예를 들어, 내 시스템에서 :
===========================================================================
Interface List
14...5c f9 dd 6d 98 b8 ......Realtek PCIe GBE Family Controller
12...e0 06 e6 7e fc 4e ......Bluetooth Device (Personal Area Network)
1...........................Software Loopback Interface 1
13...00 00 00 00 00 00 00 e0 Microsoft ISATAP Adapter
15...00 00 00 00 00 00 00 e0 Microsoft ISATAP Adapter #2
===========================================================================
이 경우 fe80 :: 71a3 : 2b00 : ddd3 : 753ff14와 같은 주소는 내 Realtek PCIe GBE 제품군 컨트롤러를 나타냅니다. "GBE"는 기가비트 이더넷을 나타냅니다.
원격 주소를 핑하려면 원격 시스템의 IPv6 주소를 사용해야하지만 로컬 시스템의 인터페이스 식별자를 사용해야합니다. 예를 들어 컴퓨터 A를 사용하고 있고 인터페이스 번호 14에 로컬 IPv6 주소 fe80 :: 1이 있고 컴퓨터 B를 핑하고 로컬 IPv6 주소가 fe80 :: 2 인 경우 인터페이스 번호가 16이면 다음과 같이 사용합니다.
ping fe80::2%14
따라서이 ping
명령은 ICMPv6 패킷을 원격 컴퓨터에 속하는 원격 IPv6 주소 (fd80 :: 2)로 보내고 식별자 14와의 인터페이스를 사용하여이를 수행합니다. 인터페이스 식별자 14는 원격 시스템이 아니라 사용중인 시스템의 번호입니다.
이제 이것이 왜 필요한지 살펴 보겠습니다.
Google의 IPv6 주소 (이 답변을 작성한 시점에 2607 : f8b0 : 400a : 802 :: 200e)를 핑하려면 라우팅 테이블에서 2607 : f8b0 : 400a로 시작하는 주소를 처리하는 네트워크 카드를 확인합니다. 802. 라우팅 테이블은 2607 : f8b0 : 400a : 802로 시작하는 주소를 사용하여 네트워크에 직접 연결된 네트워크 카드가 없음을 나타내므로 컴퓨터는 "게이트웨이"주소를 사용하게됩니다. 작업중인 조직의 일부인 다른 네트워크에 연결하는 경우 트래픽을 개인 네트워크로 라우팅하는 특수한 "게이트웨이"주소가있을 수 있습니다. 이 경우 더 구체적인 게이트웨이가 없으므로 IPv6 "기본 게이트웨이"를 사용합니다. 링크 로컬 주소를 제외하고 IPv6가 대부분 작동하는 방식입니다. 이것은 또한 IPv4가 대부분의 시간에 작동하는 방식입니다.
RFC 4291 섹션 2.8 에 따르면 IPv6을 사용하는 모든 컴퓨터는 모든 네트워크 인터페이스에 링크 로컬 주소를 할당해야합니다. RFC 4291 섹션 2.5.6 은 링크 로컬 주소로 시작해야하는 비트를 보여줍니다. 이로 인해 링크 로컬 주소가 "fe80 : 0000 : 0000 : 0000 :"으로 시작합니다 (많은 0은 이중 콜론으로 축소되지만) ). 이러한 주소가 "fe80 :"으로 시작한다는 사실은 RFC 4291 섹션 2.4에 설명되어 있습니다.
원격 시스템을 핑 (예 : "2607 : f8b0 : 400a : 802")하려는 경우 일반적인 프로세스는 일반적으로 주소가 속하는 네트워크 또는 서브넷을 파악하는 것입니다. 주소의 시작 부분에. 그런 다음 해당 비트는 트래픽 라우팅 방법을 결정하는 데 사용됩니다.
그러나 모든 단일 (작동, 활성) 네트워크 인터페이스에는 서브넷 접두사 / 크기 "/ 64 ". 랩톱을 사용하는 경우 이더넷 카드와 Wi-Fi 어댑터 모두에 이러한 IPv6 주소가 있어야합니다.
이제 ping을 fe80 :: 2로 보내면 컴퓨터에서 해당 네트워크 카드로 해당 패킷을 보내려고합니다. 유선 네트워크에 연결된 프린터가있는 경우 트래픽이 프린터로 전달되지 않는 네트워크 경로 / 경로를 사용하여 Wi-Fi 카드로 트래픽을 전송하고 싶지 않습니다. Wi-Fi 카드를 사용하여 무선 장치와 통신하려는 경우 트래픽이 이더넷 카드로 나가는 것을 원하지 않습니다.
해결책은 트래픽을 사용할 네트워크 장치를 지정하는 것입니다. 이것이 네트워크 식별자의 목적입니다.