Por que os endereços MAC não podem ser usados ​​em vez do IPv4 | 6 para rede? [fechadas]

184

Estou lendo sobre TCP / IP e outros protocolos e tecnologias relacionados. Os endereços MAC são descritos como sendo (razoavelmente :) únicos e com um grande espaço de possibilidade (várias centenas de trilhões), além de serem atribuídos a todas as interfaces de rede. Quais são as razões históricas e técnicas pelas quais os endereços IPv4 ou IPv6 são usados ​​em vez dos endereços MAC para comunicação entre redes?

Estou perdendo algo fundamental ou é apenas uma razão boba (por exemplo, construindo sobre tecnologia legada)?

Félix Saparelli
fonte
55
Correção pedante: razoavelmente única; placas com endereços MAC HW idênticos foram avistadas na natureza - esse é um problema de rede "divertido" para depuração.
Piskvor 24/07/12
9
Eu testemunhei pessoalmente um driver com erros que realmente atribuiu o mesmo endereço MAC a diferentes placas de rede em máquinas diferentes (que tinham endereços HW exclusivos antes de instalar esse driver). Bem, isso foi doloroso .
Massimo
3
Massimo, eu vi exatamente a mesma coisa. Não é incomum que um driver faça isso no desenvolvimento e que os programadores se esqueçam de ativar esse componente quando ele for produzido. @Felix, também é comum os fabricantes reutilizarem MACs ao longo do tempo e em diferentes partes do mundo. Um cartão vendido em 2005 nos EUA pode ter o mesmo MAC que um vendido na China em 2013, por exemplo.
Robert Kaucher
30
Endereçar um pacote com um endereço MAC seria como endereçar uma carta com um número de segurança social.
Mikey
14
Como você saberia onde está um endereço MAC específico agora? Na frente, sem a necessidade de ter todos os nós da Internet notificados quando você se muda para outra rede?
Thorbjørn Ravn Andersen

Respostas:

345

O endereço MAC pode ser único, mas não há nada de especial no número que indicaria onde ele está. O MAC 00-00-00-00-00-00pode estar do outro lado do planeta 00-00-00-00-00-01.

IP é um esquema de numeração arbitrário imposto de maneira hierárquica a um grupo de computadores para distingui-los logicamente como um grupo (é isso que é uma sub-rede). O envio de mensagens entre esses grupos é feito por tabelas de roteamento, divididas em vários níveis, para que não tenhamos que acompanhar todas as sub-redes. Por exemplo, 17.x.x.xestá dentro da rede da Apple. A partir daí, a Apple saberá onde estão localizadas cada uma das milhares de sub-redes e como acessá-las (ninguém mais precisa saber essas informações, só precisa saber que 17. tudo o que interessa à Apple).

Também é muito fácil relacionar isso com outro par de sistemas. Você tem um número de identificação emitido pelo estado, por que precisaria de um endereço para correspondência se esse número de identificação já é exclusivo apenas para você? Você precisa do endereço para correspondência, pois é um sistema arbitrário que descreve para onde deve ir o destino exclusivo das comunicações.

Chris S
fonte
23
Esta é uma ótima resposta. Eu acrescentaria que os endereços MAC são finalmente utilizados nas comunicações IP quando os computadores determinam que estão na mesma sub-rede; é por isso que o envenenamento por ARP funciona como um ataque. A mesma coisa com um gateway padrão, o computador endereça pacotes destinados a outra sub-rede ao endereço MAC retornado pela pesquisa ARP para o IP do gateway padrão. O endereçamento de camada 3 / IP é usado principalmente pelos roteadores e somente pelo host para determinar se o destino está na mesma sub-rede.
Sean C.
7
Os endereços MAC @SeanC são utilizados em comunicações IP através de protocolos de linha baseados em 802.1 (Ethernet, WiFi, Token Ring, etc). Mas não sobre protocolos ATM, como PoSDH e IPoATM.
Chris S
25
Além disso, você pode manter o mesmo endereço IP quando a placa de rede (ou o computador inteiro) precisar ser substituída. Imagine como seria chato sem a abstração de IP.
22412 OrangeDog
3
@ Chrisis Tenho um amigo que, como administrador do sistema, recebeu um lote de cartões de um único fornecedor e os cartões tinham apenas um endereço MAC em toda a paleta. O fornecedor disse que os cartões não foram misturados corretamente na distribuição de varejo, de modo que havia duplicatas, já que o pedido foi uma queda direta da fábrica. Antes dos cartões irem para a distribuição no varejo, eles deveriam se misturar para espalhar as bobagens. Portanto, para um determinado fornecedor, os destinatários MAC não são únicos, muito menos entre os fornecedores.
4
Há uma variedade de razões históricas para ocorrências duplicadas de endereços mac, incluindo erros de firmware do fornecedor .
9788 Mike Pennington
73

Porque as tabelas de roteamento se tornariam impossivelmente grandes.

Os endereços IP são alocados hierarquicamente, para que um roteador possa agrupar rotas por prefixos de endereço. O número de sistemas autônomos presentes na rede agora é razoável o suficiente para caber no hardware atual.

Por outro lado, a distribuição de endereços MAC na rede é aleatória e completamente não relacionada à topologia. O agrupamento de rotas seria impossível, todo roteador precisaria acompanhar as rotas de todos os dispositivos que transmitem tráfego através dele. É isso que os comutadores da camada 2 fazem, e que não ultrapassa um certo número de hosts.

b0fh
fonte
Você pode elaborar sobre isso? Por que eles? Por que não é esse o caso do IPv *?
Félix Saparelli
2
Não há razão intrínseca para que as tabelas de roteadores que usem um endereço no formato MAC sejam "impossivelmente grandes" em comparação com os formatos IPv4 / 6. O problema é que a alocação de endereços IP está ligada a uma hierarquia que viabiliza o roteamento da WAN. Os endereços MAC são atribuídos aos dispositivos Ethernet pelos fabricantes (e podem ser alterados no software) e, à medida que o dispositivo de hardware se move, fazer essas revisões ad hoc nas tabelas de roteamento da WAN seria uma tarefa "impossivelmente grande".
hardmath
34

O mundo não roda exclusivamente em Ethernet (pelo menos historicamente). A camada IP é independente da camada de hardware abaixo dela.

Nós PPP não têm endereços Mac. Nem arcnet, token ring, fddi, hppi. Esses outros padrões podem não ser tão relevantes hoje em dia, mas a Ethernet pode ser substituída por outras tecnologias no futuro e seria transparente para a camada IP.

Há uma discussão mais longa sobre como continuamos inventando novos protocolos de hardware e chamando-os de ethernet, mas discordo ...

Jeff Sacksteder
fonte
5
O Token Ring tem endereços MAC.
Chris S
Você quer dizer que eles também não podem mudar para o ipv6 porque o nó PPP não possui um endereço v6? (Ou pelo menos não tinha um há 5 a 10 anos). Tanto quanto eu posso dizer que nunca parou a implantação do ipv6 hoje. Isso também não faz diferença para o MAC.
Dorus
6
@Dorus: Seu comentário não faz sentido. Os nós PPP podem ter endereços IPv4 e IPv6, porque são precisos porque o IP se baseia nos protocolos subjacentes, como Ethernet ou PPP. No entanto, os nós PPP não possuem um endereço MAC (porque o padrão PPP não os possui).
sleske
Após três anos (e um pouco mais experiente), eu gostaria de ler essa "discussão mais longa sobre como continuamos inventando novos protocolos de hardware e chamando-os de ethernet". ; P
Félix Saparelli
Este é um bom começo - standards.ieee.org/events/ethernet/history.html
Jeff Sacksteder
30

Além do roteamento hierárquico do IP, separá-los dos endereços MAC permite alterar a placa de rede ou o computador inteiro, mantendo o mesmo endereço IP (e, portanto, a topologia lógica da rede).

Essa abstração permite uma rede muito mais flexível e sustentável.

OrangeDog
fonte
22

Dê uma olhada no modelo OSI : http://en.wikipedia.org/wiki/OSI_model

Isso explica por que não faz sentido fazer roteamento, um conceito de camada 3, decisões baseadas em um mecanismo físico de camada 2.

A rede moderna é dividida em várias camadas diferentes para realizar sua comunicação completa. Sua placa de rede (que é endereçada pelo endereço mac [endereço físico]) precisa ser responsável apenas pela comunicação com os colegas da rede física.

A comunicação que você tem permissão para realizar com o seu endereço MAC será limitada a outros dispositivos que residem em contato físico com a sua máquina. Na internet, por exemplo, você não está conectado fisicamente a cada máquina. É por isso que usamos o mecanismo TCP / IP (uma camada 3, endereço lógico) quando precisamos nos comunicar com uma máquina à qual não estamos fisicamente conectados.

barancw
fonte
6
+1 por mencionar o modelo OSI.
Massimo
7

b0fh está certo - mas também porque os endereços MAC nem sempre são únicos.

Veja, por exemplo, em cenários de virtualização. Aqui, vários hosts podem servir máquinas virtuais com os mesmos endereços MAC.

Frederik Nielsen
fonte
4

As tabelas de roteamento para endereços MAC precisariam de quase todos os dispositivos com um endereço MAC listado. O roteamento para a Internet para IP é uma única entrada 0.0.0.0/0. Para as classes de rede, elas são divididas em 10.0.0.0/8 172.16.0.0/16 e 192.168.0.0/24. Muitos deles podem ser agregados como 172.16.0.0/12 e 192.168.0.0/16, reduzindo ainda mais o tamanho da tabela de roteamento.

As rotas são pesquisadas na ordem inversa para o número de um bit em sua máscara. Isso faz o roteamento para 192.168.100.0/24 funcionar quando há uma rota para 192.168.0.0/16 e outra para 0.0.0.0/0 (rota padrão).

EDIT: Originalmente, o intervalo de IP foi dividido em várias classes; A, B e C são os mais significativos. A classe A compôs a primeira metade do intervalo de endereços, a faixa B no próximo trimestre e a faixa C nos oito próximos do intervalo. Essas classes tinham máscaras de 8, 16 e 24 bits, respectivamente. Posteriormente, o uso estrito dessas máscaras foi descartado e a alocação de endereços foi feita em vários tamanhos.

O tamanho da alocação é sempre uma potência de 2 e o endereço mais alto e mais baixo em cada alocação é reservado. Cada alocação também terá um endereço para um roteador. Geralmente, esse é o endereço não reservado mais baixo ou mais alto. A menor alocação prática é um endereço / 30.

O IPv6 usa a mesma forma de alocação, com a / 64 a menor alocação que pode aparecer na Internet. Normalmente, o ISP recebe uma alocação muito maior, o que todos os roteadores da Internet precisariam conhecer. As alocações esperadas são especificadas nos RFCs. O ISP precisaria saber como rotear sua própria sub-rede e quais endereços encaminhar para quais roteadores de interconexão. Isso é significativamente mais simples do que saber rotear cada endereço MAC.

BillThor
fonte
7
Não há mais aulas em rede e não existem mais desde 1994. = [
Chris S
As pesquisas PTR do IPv4 do @ChrisS ainda são feitas por classe, embora a delegação seja possível. As agregações ainda se aplicam com ou sem classes, e as agregações B e C ainda são aplicadas mesmo antes das redes sem classe.
BillThor
2
As pesquisas de PTR são feitas pelo Octet, não há classes. Veja RFC 1517-1520.
Chris S
2
@ChrisS Entre as pessoas com quem trabalho, as classes são usadas para se referir ao número de octetos na máscara de rede A = 1, B = 2 e C = 3. Nós não os associamos a esses intervalos históricos e dividimos a classe A 10.0.0.0 em pedaços B e C. As aulas continuam na tradição, se não no significado original.
BillThor
2

Eu acho que o ponto principal que eles estão tentando transmitir é que os endereços MAC são determinados pelos fornecedores, portanto, não existe um esquema de endereçamento coerente que possa ser adotado em uma sub-rede local devido à enorme variedade de fabricantes que fazem interfaces.

Os endereços MAC são usados ​​quando o endereço de destino está na sub-rede local (192.168.0.x, por exemplo). Quando o tráfego não corresponde à sub-rede local, o computador se refere à tabela de roteamento. Geralmente, a tabela de roteamento informa qualquer tráfego que não corresponda à sub-rede local (0.0.0.0) para ir para o gateway local; nesse ponto, qualquer afiliação aos endereços MAC é totalmente removida. A única maneira de os endereços MAC serem usados ​​globalmente seria ter uma sub-rede grande e plana, o que seria totalmente impraticável.

Alex Berry
fonte
2

O endereço MAC pode ser o mesmo em diferentes adaptadores Ethernet na mesma máquina. O SUN tinha um endereço MAC uniqe para cada máquina. Portanto, as placas Ethernet para computadores SUN não tinham nenhum endereço MAC exclusivo, a máquina tinha.

Portanto, quando você conectou a máquina a duas redes diferentes, ela tinha o mesmo endereço MAC nas duas redes.

Anders
fonte
2

Os endereços MAC são os endereços da camada de link (2n) no modelo ISO / OSI e no modelo TCP / IP . Isso significa que os endereços MAC são usados ​​para conectar nós dentro de uma rede local (ponto a ponto). Endereços IP são os endereços da camada de rede (3º) dentro da Internet (ponta a ponta).

Ambos os endereços são usados ​​apenas em sua camada e não devem ser usados ​​fora dela.

sair
fonte
1

O endereço MAC de um endereço IP de destino é útil apenas para entrega de pacotes em um único domínio de broadcast local.

mr_eclair
fonte
1

As pessoas aqui afirmaram que o problema de usar endereços MAC em vez de endereços IPv4 é o roteamento, porque as tabelas de roteamento aumentariam - no entanto, isso pressupõe roteadores IPv4. É possível ter pequenas tabelas de roteamento e, se você estiver interessado, procure o roteamento de espaço para nome simples. Um dos trabalhos que descrevem essa técnica é este: http://www.cs.uiuc.edu/~caesar/papers/rofl.pdf

Nikola Knezevic
fonte
2
O ROFL propõe que todo roteador dentro do AS acompanhe cada host desse AS ... E use hashes criptográficos para identificadores do host ... Portanto, não haverá apenas milhões de entradas nas tabelas de roteamento e requisitos monstruosos de transferência / manutenção, mas algoritmos criptográficos são necessários para interpretar a tabela. O autor está maluco. O IP pode ter deficiências, mas pelo menos não há suposições insanas no design básico.
Chris S
No ROFL, apenas os roteadores de primeiro salto precisam manter o conjunto de nós conectados, e não todos os nós no AS. A seção 2 menciona o cache, mas isso é uma otimização. A criptografia é necessária apenas quando os nós estão ingressando no roteador, não para a interpretação da tabela de roteamento. O roteamento é feito em um DHT, que é muito mais resiliente que o roteamento hierárquico.
Nikola Knezevic
1

Lembro-me de que os endereços MAC são realmente endereços Ethernet. Os endereços Ethernet são divididos em duas partes: uma parte do fornecedor - que identifica o vendedor da placa Ethernet e uma parte do endereço que é atribuída pelo fornecedor. Cabe ao fornecedor torná-los únicos - ou não.

Portanto, o espaço de endereço MAC de 48 bits não é usado com eficiência nem - como mencionado várias vezes acima - hierarquicamente.

O endereço foi projetado para ter endereços exclusivos em uma rede de rede CSMA local.

Pelo menos, o melhor que me lembro.

Os endereços IP são projetados para dimensionar muito mais geralmente e para resolver um problema diferente.

Mike Howard
fonte
É necessário que os endereços MAC sejam únicos - isso nem sempre acontece como outros observaram, mas é um requisito. Os fabricantes podem obter mais de um ID do fornecedor. Existem cerca de 4 milhões de IDs de fornecedores possíveis (no espaço de endereço MAC48, também há um espaço de endereço MAC64 futuro) e menos de um décimo foi atribuído. Dentro de cada ID de fornecedor, existem 16 milhões de IDs de dispositivo, leva um tempo até que grandes fornecedores acabem.
Chris S