Os caracteres após o% (que são números no seu exemplo) são o identificador de interface. Esses caracteres são usados para identificar uma "interface de rede", que as pessoas geralmente chamam de "placa de rede". Por exemplo, pode ajudar a determinar se um pacote estará usando uma placa Ethernet com fio ou um adaptador sem fio Wi-Fi.
Suponho que você esteja usando o Microsoft Windows. Ele usa números como identificadores de interface.
Como um ponto em comparação, sistemas do tipo Unix podem usar letras após o sinal%. por exemplo: fe80::71a3:2b00:ddd3:753f%eth0
Nesse caso, o identificador da 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 é informada, provavelmente estará sobre uma tela longa, então esteja preparado para rolar para trás, a menos que você canalize para 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
===========================================================================
Neste caso, um endereço como fe80 :: 71a3: 2b00: ddd3: 753f% 14 se referiria ao Controlador da Família Realtek PCIe GBE. O "GBE" refere-se ao Gigabit Ethernet.
Agora, eis a parte complicada: se você quiser executar ping em um endereço remoto, talvez seja necessário usar o endereço IPv6 do sistema remoto, mas o identificador de interface do sistema local. Então, por exemplo, se eu estou usando o computador A e eu tenho um endereço IPv6 local de fe80 :: 1 anexado à interface número 14, e eu quero fazer ping no computador B e ele tem um endereço IPv6 local de fe80 :: 2 anexado ao sua interface número 16, então é isso que eu usaria:
ping fe80::2%14
Portanto, o comando ping
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 fazê-lo. O identificador de interface 14 é um número do sistema que estou usando, não o sistema remoto.
Agora, vamos ver por que isso pode ser necessário.
Se eu quiser pingar o endereço IPv6 do Google (que é 2607: f8b0: 400a: 802 :: 200e no momento em que escrevi essa resposta), a tabela de roteamento verificará qual placa de rede manipula 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 "gateway". Se eu estava me conectando a outra rede que faz parte da organização para a qual estou trabalhando, talvez eu tenha um endereço "gateway" especial que direcione o tráfego para uma rede privada. Neste caso, não tenho um gateway mais específico, por isso vou usar o "gateway padrão" do IPv6. É assim que o IPv6 funciona na maioria das vezes, com exceção dos endereços locais de conexão. É também assim que o IPv4 funcionou na maior parte do tempo. (Simplifiquei esse exemplo, assumindo um tamanho de sub-rede IPv6 de / 64, pois descrever todo o processo teria tornado essa descrição ainda mais longa.)
De acordo com a seção 2.8 da RFC 4291 , todos os computadores que usam o IPv6 devem atribuir um endereço local de link para cada interface de rede. A seção 2.5.6 da RFC 4291 mostra os bits com os quais os endereços locais de link devem começar, o que causa os endereços locais de link para começar com "fe80: 0000: 0000: 0000:" (embora muitos desses zeros sejam reduzidos a dois pontos duplos). O fato de que esses endereços começam com "fe80:" também é descrito pela 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, que é feito procurando nos bits no início do endereço. Então, esses bits são usados para determinar como direcionar o tráfego.
No entanto, esse processo não funciona para um endereço IPv6 local de link, porque cada interface de rede (operacional, ativa) tem um endereço de link local começando com "fe80:" em uma sub-rede usando o prefixo / tamanho de sub-rede de "/ 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, você quer que seu computador envie o pacote pela placa de rede correta. Se você tiver uma impressora conectada a uma rede com fio, não desejará enviar o tráfego para fora do cartão Wi-Fi, usando um caminho / rota de rede que não resultará na entrada do tráfego na impressora. E se você estiver tentando se comunicar com um dispositivo sem fio usando seu cartão Wi-Fi, não deseja que seu tráfego saia da placa Ethernet.
A solução é que você especifique qual dispositivo de rede deseja que o tráfego seja usado. Então, essa é a finalidade do identificador de rede.