Eu tenho lido sobre as diferenças entre os endereços MAC e IP e por que precisamos dos dois.
Para resumir, os endereços MAC são IDs únicos físicos e imutáveis para cada dispositivo, enquanto os endereços IP são atribuídos, alteráveis e virtuais. Para analogia, os endereços MAC são como pessoas que têm nomes permanentes e os endereços IP são onde eles vivem atualmente.
No mundo real, vinculamos endereços e nomes com a ajuda de uma lista telefônica. Qual mecanismo vincula os endereços IP aos endereços MAC e onde esse mecanismo está localizado na rede?
Respostas:
O mecanismo é chamado de ARP (Address Resolution Protocol) . Todos os ARPs de dispositivos IPv4 Ethernet para resolver endereços MAC Ethernet para IPs de destino. Os mapeamentos de IP para Mac são armazenados na tabela ARP de cada dispositivo (a lista telefônica na sua analogia).
Para simplificar: Na maioria dos casos, para resolver o endereço MAC associado a um endereço IP, você envia um pacote ARP de difusão (para todos os dispositivos da rede), perguntando quem possui esse endereço IP. O dispositivo com esse endereço IP responde ao ARP (com seu endereço MAC).
fonte
Como a pergunta foi marcada com IPv6, responderei porque o IPv6 é muito diferente do IPv4.
Para começar, não existe o ARPv6. O mapeamento entre a camada 2 e os endereços IPv6 é feito pelo NDP (Neighbor Discovery Protocol), que é enviado pelo ICMPv6. Portanto, você não deve ignorar o ICMPv6 e filtrá-lo, como é costume no IP legado. O NDP fornece dois tipos de mensagens que são de interesse aqui: Solicitação de vizinhos e Anúncio de vizinhos. Um nó que deseja aprender um endereço da camada de link para um endereço IP específico envia uma Solicitação de Vizinha para o endereço multicast do nó solicitado local de link local - não há mais transmissão para o IPv6.
Por exemplo, se o endereço em questão for
2001:db8::0011:2233:4455:6677
, o endereço multicast do nó solicitado correspondente éff02::1:ff55:6677
e o endereço multicast Ethernet correspondente é33:33:ff:55:66:77
. Todos os nós com um endereço terminado em*55:6677
pertencem a esse grupo de difusão seletiva e ouvirão isso - provavelmente é apenas o próprio sistema de destino. A Solicitação de Vizinho contém também os endereços IPv6 unicast e o endereço MAC do sistema de solicitação.No recebimento, o nó de destino responde com seu Anúncio de vizinho, que é enviado ao endereço unicast (camada de link e IPv6) do nó solicitante. Assim, o nó solicitante aprende o endereço MAC do nó de destino.
E sim, a falsificação de NDP funciona como a falsificação de ARP. E não, o IPsec não é a resposta.
fonte
A resposta superior é boa. Caso isso ajude, aqui está uma descrição em termos da analogia da sua agenda telefônica. Termos reais de rede entre parênteses.
Com base no nome (endereço IP), você sabe que eles moram no seu bairro (domínio de transmissão). Primeiro, você olha na sua agenda telefônica (cache ARP) para ver se você já sabe o endereço (endereço MAC). Se eles não estão na lista telefônica, você sai e grita (transmite): “Onde Steve mora?” Alto o suficiente para que todos possam ouvir (solicitação ARP). Supondo que Steve realmente mora lá e ele está acordado, ele responde - apenas para você, sem gritar - “Aqui está o meu endereço” (resposta ARP). Você o anota na agenda para referência futura (armazenamento em cache do ARP).
fonte
Os endereços MAC podem ser alterados. No Linux, use ip ou ifconfig para a maioria do Windows, observe as configurações do driver da sua interface de rede.
Você não converte nada. Os endereços MAC estão na Camada 2, IP na Camada 3 do modelo OSI. Para IPv4, o ARP é usado para descobrir qual endereço MAC (camada 2) pertence a um determinado endereço IP (camada 3). Para IPv6, é usado o ICMPv6 (descoberta de vizinho).
fonte
Protocolo de resolução de endereços (ARP)
Endereço IP ---> ARP ---> Endereço MAC
Endereço MAC ---> RARP ---> Endereço IP
Endereço IP = Endereço lógico [32 bits]
Endereço MAC = Endereço Físico [48 bits]
Camada de rede (IP) ----> ARP ---> Camada de vinculação de dados (MAC)
O endereço IP é necessário na camada de rede para identificar um host de origem / destino.
O endereço MAC é necessário na camada de enlace de dados para identificar um host de origem / destino.
fonte
A pilha de rede primeiro pesquisa o IP de destino em sua tabela de roteamento, a partir disso, determina duas coisas.
Observe que o endereço IP do próximo salto é um conceito puramente local, nunca se torna parte de um pacote enviado na conexão.
Se o pacote for enviado em uma camada de link multiponto (por exemplo, Ethernet etc), o sistema operacional procurará o próximo salto na tabela arp (ipv4) ou discovery do vizinho (ipv6). Se encontrar uma entrada não obsoleta lá, ele terá o endereço MAC necessário e poderá enviar o pacote.
Se não tiver uma entrada utilizável, coloca os pacotes destinados ao salto seguinte em espera e envia uma solicitação para encontrar o endereço MAC. Os mecanismos aqui diferem um pouco entre v4 e v6.
Na v4, as solicitações arp são enviadas. Isso normalmente é transmitido, mas em alguns casos, se o host tiver uma entrada obsoleta, ele poderá tentar uma solicitação de unicast primeiro e só voltará a transmitir se isso falhar. A resposta é normalmente unicast.
Na v6, as solicitações de solicitação de vizinhos são enviadas para um endereço multicast gerado a partir do endereço do próximo salto. O destino responde com um anúncio de vizinho unicast. Os hosts também podem enviar anúncios vizinhos ao grupo "multicast de todos os nós" (também conhecido como broadcast eficaz) para atualizar as entradas nos caches de descoberta de vizinhos de mesmo nível.
fonte