Como os roteadores lidam com transmissões limitadas e direcionadas
A primeira coisa a entender para responder às suas perguntas é que os quadros de transmissão limitados não são roteados. Por padrão, quando um roteador recebe um quadro com um endereço de destino que é transmitido nas camadas 2 ou 3, o roteador simplesmente descarta o quadro. É por isso que os roteadores são considerados o limite dos domínios de broadcast.
Alguns exemplos disso seriam:
ff-ff-ff-ff-ff-ff
(transmissão da camada 2)
255.255.255.255
(transmissão limitada da camada 3)
Pensando nisso, isso faz sentido. Se os roteadores encaminhados transmitissem, uma única solicitação arp chegaria a todos os hosts acessíveis na Internet, o que seria terrivelmente ineficiente e bastante tolo.
As transmissões direcionadas, por outro lado, às vezes são roteadas. (IE 192.168.1.255/24
) Normalmente, por padrão, essa funcionalidade está desativada, mas pode ser ativada emitindo o ip directed-broadcast
comando no roteador. Isso permitirá encaminhar transmissões direcionadas de acordo com sua tabela de roteamento como se fossem pacotes normais. No entanto, isso não permite que o roteador encaminhe transmissões limitadas, que ainda estão bloqueadas por padrão. Este tópico também está um pouco fora da questão, consulte esta página de formulários da Cisco para obter mais informações.
Transmissão da camada 3, mas não da camada 2?
Para responder sua segunda pergunta, não faria sentido ter um quadro com um endereço de broadcast da camada 3 sem um endereço de broadcast da camada 2. Isso anularia todo o propósito de ser um quadro de transmissão e simplesmente não funcionaria completamente. Ter um endereço de destino da camada 2 de unicast não mudaria o comportamento do roteador, uma vez que o roteador toma suas decisões na camada 3. Tudo o que o roteador se importa é 255.255.255.255
o endereço de destino e descarta o pacote.
Onde isso importa é com switches que não se importam com o endereço da camada 3. Os comutadores apenas veriam o endereço da camada 2 de unicast. Em vez de enviar o pacote para todas as interfaces na mesma vlan, ele usaria a tabela de endereços de origem (SAT), como faria com qualquer outro endereço de destino de unicast. Com efeito, ao atribuir um endereço da camada 2 de unicast, o quadro não é mais um quadro de difusão, mesmo que tenha o 255.255.255.255
endereço na camada 3.
Como a retransmissão DHCP funciona na prática
Quanto à sua última pergunta, a retransmissão DHCP é uma maneira de o roteador "enganar" a regra de não encaminhar pacotes de difusão. Vejamos um pacote DHCP Discover:
- MAC de origem: [unicast mac da fonte]
- Destino MAC:
ff-ff-ff-ff-ff-ff
- IP fonte:
0.0.0.0
- IP de destino:
255.255.255.255
- Porta de origem: UDP 68
- Porta de destino: UDP 67
Quando o roteador vê um pacote chegar em uma interface com o ip helper-address
comando configurado, ele verifica se ele corresponde a algum dos protocolos "ajudados" por padrão ou configurados com o ip forward-protocol
comando global . Nesse caso, por ser DHCP, o roteador vê que a porta de destino corresponde ao UDP 67 e permite que o pacote seja "ajudado". O roteador altera o endereço IP de destino 255.255.255.255
para o endereço IP configurado pelo ip helper-address
comando, além de alterar o endereço de origem para o endereço da interface do roteador em que o pacote chegou e passa o pacote para o restante da lógica de roteamento.
Agora que o pacote tem um endereço de destino unicast, o roteador o trata como qualquer outro pacote. Ele busca o endereço IP de destino (que agora é o endereço auxiliar) e substitui os endereços da camada 2 antes de enviar o pacote para a interface apropriada.
Voltando novamente
O roteador usa essencialmente o mesmo processo ao contrário para a oferta DHCP que é enviada de volta ao cliente. Os servidores DHCP enviam a oferta ao endereço IP especificado como o endereço de origem no pacote DHCP Discover. Portanto, o pacote que sai do servidor DHCP se parece com:
- MAC de origem: mac unicast do servidor DHCP
- Dest MAC: endereço mac do roteador ou gateway padrão do servidor DHCP
- IP de origem: endereço IP de unicast do servidor DHCP
- IP de destino: endereço IP da primeira interface do roteador que o pacote DHCP Discover alcançou
- Porta de origem: UDP 67
- Porta de destino: UDP 68
Como este pacote possui um endereço de destino da camada 3 de unicast, os roteadores encaminham o pacote normalmente até chegar ao roteador com uma interface que possui um endereço IP correspondente ao IP de destino do pacote. Lembre-se de que este roteador ainda tem a ip helper-address
configuração nessa interface ainda. O roteador verifica se o pacote é uma oferta DHCP, em seguida, reescreve o pacote para se tornar um pacote de transmissão e envia de volta a interface sabendo que o cliente DHCP está em algum lugar desse segmento de rede. O pacote que sai do roteador agora se parece com isso.
- MAC de origem: mac unicast da interface do roteador
- Destino MAC:
ff-ff-ff-ff-ff-ff
- IP de origem: endereço IP de unicast do servidor DHCP
- IP de destino:
255.255.255.255
- Porta de origem: UDP 67
- Porta de destino: UDP 68
TL: DR; A retransmissão DHCP usando o ip helper-address
subcomando da interface "engana" a regra de que os roteadores não podem encaminhar difusões limitadas alterando o endereço IP de destino do pacote para o endereço IP unicast do servidor DHCP antes de rotear o mesmo. Isso permite que todos os roteadores abaixo da linha direcionem o pacote adequadamente para o servidor DHCP. Ao responder, o servidor DHCP envia o pacote de volta ao endereço IP unicast da interface do roteador que recebeu o pacote DHCP Discover pela primeira vez (aquele com o ip helper-interface
comando). Quando o roteador recebe a oferta de volta, ele a converte novamente em um pacote de broadcast e envia a interface com o cliente em seu domínio de broadcast.