Os caracteres após o% (que são números no seu exemplo) são o Identificador da interface. Esses caracteres são usados para identificar uma "interface de rede", que as pessoas costumam chamar de "placa de rede". Por exemplo, pode ajudar a determinar se um pacote estará usando uma placa Ethernet com fio ou um adaptador Wi-Fi sem fio.
Suponho que você esteja usando o Microsoft Windows. Ele usa números como identificadores de interface.
Como ponto de comparação, sistemas tipo Unix podem usar letras após o sinal de%. por exemplo:fe80::71a3:2b00:ddd3:753f%eth0
Nesse caso, o identificador de interface,, eth0
corresponde ao nome da placa de rede.
No Microsoft Windows, você pode obter uma lista dos identificadores de interface (numéricos) usando uma das linhas de comando que verificam a tabela de roteamento. Eu prefiro " netstat -nr
", pois isso também funciona em outros sistemas operacionais, mas o Microsoft Windows também suporta " route print
". A saída resultante, que é relatada, provavelmente terá uma tela inteira, portanto, esteja preparado para voltar, a menos que você canalize mais.
por exemplo, no meu sistema:
===========================================================================
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
===========================================================================
Nesse caso, um endereço como fe80 :: 71a3: 2b00: ddd3: 753f% 14 se referiria ao meu controlador de família Realtek PCIe GBE. O "GBE" refere-se à Gigabit Ethernet.
Agora, aqui está a parte complicada: se você deseja executar ping em um endereço remoto, pode ser necessário usar o endereço IPv6 do sistema remoto, mas o Identificador da interface do sistema local. Assim, por exemplo, se eu estiver usando o Computador A e tiver um endereço IPv6 local do fe80 :: 1 conectado ao número da Interface 14, e desejar executar ping no Computador B e ele tiver um endereço IPv6 local do fe80 :: 2 conectado ao sua interface número 16, então é isso que eu usaria:
ping fe80::2%14
Portanto, o ping
comando enviará o pacote ICMPv6 para o endereço IPv6 remoto (fd80 :: 2), que pertence ao computador remoto, e usará a Interface com o Identificador 14 para fazer isso. O Identificador de interface 14 é um número do sistema que estou usando, não do sistema remoto.
Agora, vejamos por que isso pode ser necessário.
Se eu quiser executar ping no endereço IPv6 do Google (que é 2607: f8b0: 400a: 802 :: 200e no momento em que escrevi esta resposta), a tabela de roteamento verificará qual placa de rede lida com os endereços que começam com 2607: f8b0: 400a: 802. A tabela de roteamento indicará que nenhuma das minhas placas de rede está conectada diretamente a uma rede usando endereços que começam com 2607: f8b0: 400a: 802; portanto, meu computador acabará usando um endereço de "gateway". Se eu estava me conectando a outra rede que faz parte da organização em que estou trabalhando, talvez eu tenha um endereço de "gateway" especial que direcione o tráfego para uma rede privada. Nesse caso, como não tenho um gateway mais específico, utilizarei o "gateway padrão" do IPv6. É assim que o IPv6 funciona na maioria das vezes, exceto para endereços locais de link. Também é assim que o IPv4 funciona na maioria das vezes.
De acordo com a RFC 4291, seção 2.8 , todo computador que usa o IPv6 deve atribuir um endereço local de link a todas as interfaces de rede. A seção 2.5.6 da RFC 4291 mostra os bits nos quais os endereços locais de link devem começar, o que faz com que os endereços locais de link iniciem com "fe80: 0000: 0000: 0000:" (embora muitos desses zeros sejam recolhidos em dois pontos duplos) ) O fato de esses endereços começarem com "fe80:" também é descrito na seção 2.4 da RFC 4291 .
Se você tentar executar ping em um sistema remoto (por exemplo, "2607: f8b0: 400a: 802"), o processo geral geralmente é descobrir uma rede ou sub-rede da qual o endereço faz parte, o que é feito observando os bits no início do endereço. Em seguida, esses bits são usados para determinar como rotear o tráfego.
No entanto, esse processo não funciona para um endereço local de link IPv6, porque toda interface de rede (operacional, ativa) possui um endereço local de link começando com "fe80:" em uma sub-rede usando o prefixo / tamanho da sub-rede "/ 64 ". Se você estiver em um laptop, provavelmente descobrirá que sua placa Ethernet e seu adaptador Wi-Fi devem ter esse endereço IPv6.
Agora, quando você envia seu ping para fe80 :: 2, deseja que seu computador envie esse pacote para a placa de rede correta. Se você possui uma impressora conectada a uma rede com fio, não deseja enviar o tráfego para o seu cartão Wi-Fi, usando um caminho / rota de rede que não resultará no tráfego que chega à impressora. E se você está tentando se comunicar com um dispositivo sem fio usando sua placa Wi-Fi, não quer que seu tráfego saia da placa Ethernet.
A solução é especificar o dispositivo de rede que você deseja que o tráfego use. Então, esse é o objetivo do identificador de rede.