Unicast e Direct Broadcast

DekkeR

Power Member
Estava a ler um manual da CramSession sobre DHCP e lá diz que os DHCP Relay Agents pegam nos pacotes de broadcast dos clientes, transformam-nos em unicast e enviam-no para o servidor de DHCP.
Depois falam em BOOTP Forwarders que transformam os pacotes em direct broadcast em vez de unicast.
Eu tenho as noções de broadcast, multicast e unicast .. mas nunca tinha ouvido falar em direct broadcast.

A minha questão é: qual é a diferença entre direct broadcast e unicast ?

Cumps
 
DekkeR disse:
Estava a ler um manual da CramSession sobre DHCP e lá diz que os DHCP Relay Agents pegam nos pacotes de broadcast dos clientes, transformam-nos em unicast e enviam-no para o servidor de DHCP.
Depois falam em BOOTP Forwarders que transformam os pacotes em direct broadcast em vez de unicast.
Eu tenho as noções de broadcast, multicast e unicast .. mas nunca tinha ouvido falar em direct broadcast.

A minha questão é: qual é a diferença entre direct broadcast e unicast ?

Cumps

Oi.

Imagina o seguinte:
Uma máquina numa rede precisa de obter Ip a partir de um DHCP Server que está noutra rede.
É necessário que o "DHCP Discovery (Broadcast)" possa passar o router através de BOOTP.
Imagina que a máquina que necessita de IP, tb precisa de um NETBIOS Server (e que é outro servidor diferente do DHCP Server e com IP diferente)?
Neste caso (e em muitos outros semelhantes), o router que deixa passar os pedidos de serviços, através do BOOTP, não pode apenas enviar pacotes Unicast, dirigidos apenas a um servidor especifico (neste caso apenas DHCP), precisa tb de outros serviços (O NETBIOS) e por isso precisa de enviar um direct Broadcast, para que os servers tanto de DHCP como o de NETBIOS possam responder. Caso fosse apenas unicast, apenas um deles iria responder.
Um direct Broadcast, encaminha o pedido de serviços (através do router que permite passar o broadcast pq tem o BOOTP), para toda a rede seguinte, onde se encontram os servidores que a máquina inicial necessita. Neste caso o DHCP Server e o NETBIOS Server.

EDIT: Não podes tb esquecer que, o router tb tem que estar definido para permitir que passem direct Broadcasts (por defeito não permitem), para que deste modo possam converter "logical broadcasts"(ex: 172.24.1.255 ) em "physical Broadcasts" com um endereço Layer 2 (estilo FF-FF-FF-FF-FF-FF)

Dá para entender?

Cumps.
 
Última edição:
Boas Exup,

Sinceramente, não fiquei completamente esclarecido porque essa definição parece-me ser multicast visto que o cliente, nesse caso, quer comunicar com vários destinatários.

Como o RA só quer comunicar o DHCP Discovery directamente ao server manda um unicast .. isso percebe-se. Agora se o cliente quiser DHCP e NetBIOS, enviava um multicast destinado ao DHCP server e ao NetBIOS server.
 
Desculpa meter-me no meio da thread mas como é um assunto do qual tem a ver com o que estou neste momento estudar... :)

Pelo que sei os DHCP Relay Agents aceitam broadcast e mandam um unicast para os servers DHCP especificados.
Tenho ideia que os routers "BOOTP enabled" passam o tráfico Broadcast DHCP de um segmento para outro injectando sobre a forma de broadcast, Direct Broadcas será então isto pelo que percebi n?
 
Última edição:
DekkeR disse:
Boas Exup,

Sinceramente, não fiquei completamente esclarecido porque essa definição parece-me ser multicast visto que o cliente, nesse caso, quer comunicar com vários destinatários.

Como o RA só quer comunicar o DHCP Discovery directamente ao server manda um unicast .. isso percebe-se. Agora se o cliente quiser DHCP e NetBIOS, enviava um multicast destinado ao DHCP server e ao NetBIOS server.

É diferente...
No caso que eu expliquei ele envia um Direct Broadcast (não multicast).
Um direct broadcast é enviado pelo router "Bootp enabled" para obter as respostas APENAS dos servidores e não de outras máquinas.
Um direct Broadcast já vai "formatado" com o que necessita (neste caso com as portas definidas).

Um router Bootp enabled (por exemplo um Cisco com o Comando "ip helper-address") faz o forward de 8 portas UDP por defeito (Time 37, TACACS 49, DNS 53,BOOTP/DHCP server 67,BOOTP/DHCP client 68, TFTP 69,NETBIOS 137 e 138).
Quando a máquina numa rede apenas necessita dos serviços de um servidor (por ex DHCP) que está noutra rede, o router que encaminha os pedidos usa o Unicast apenas para a máquina de está a fazer de DHCP server. O router está explicitamente definido que a máquina que "dá" aquele serviço tem o IP xpto. Neste caso é APENAS usado UNICAST
Exemplo:

Uma máquina com IP 10.1.1.3
DHCP Server: 172.24.1.9
Router com Ip's em ambas as redes a servir de relay...

configurava-se no router o seguinte:
RTA(config)#interface e0

RTA(config-if)#ip helper-address 172.24.1.9

Neste caso era usado apenas UNICAST pq ele só encaminha os pedidos de serviços (os que mencionei em cima) APENAS para o 172.24.1.9

Quando é necessário outros serviços (cobertos pelo relay), é necessário que seja enviado um Direct Broadcast a todos os servers (e apenas esses) para que possam responder.

Exemplo:

RTA(config)#interface e0

RTA(config-if)#ip helper-address 172.24.1.255

É sempre possivel configurar para que seja usado apenas Unicast (introduzindo manualmente todos os servidores que oferecem serviços), mas normalmente é mais eficiente (dando menos azo a que sejam criados erros humanos), fazer através de Direct Broadcast.

Espero que tenha explicado alguma coisa e não vos ter confundido ainda mais.

Cumps.

EDIT: dêem uma vista de olhos aqui:
http://www.cisco.com/univercd/cc/td/doc/cisintwk/ics/cs006.htm

Se lerem até reparam que o "Ip helper-address" nem é a melhor solução (embora o seja para outros casos que não envolvam redundancia), mas dá para ver uns exemplos curiosos.
Se por acaso "tropeçar" em algo mais concreto, eu coloco aqui.
 
Última edição:
BROADCAST: Vai sempre com o destination addr 255.255.255.255
DIRECT-BROADCAST: Vai para um segmento de rede determinado, ex: 10.1.10.255


BOOTP é versão pai (antiga) do DHCP.

... The Dynamic Host Configuration Protocol (DHCP) provides a framework
for passing configuration information to hosts on a TCPIP network.
DHCP is based on the Bootstrap Protocol (BOOTP) [7], adding the
capability of automatic allocation of reusable network addresses and
additional configuration options [19]. DHCP captures the behavior of
BOOTP relay agents [7, 21], and DHCP participants can interoperate
with BOOTP participants [9].


BOOTP forwarder = BOOTP Relay Agent

... In many cases, BOOTP clients and their associated BOOTP
server(s) do not reside on the same IP network or subnet. In
such cases, some kind of third-party agent is required to
transfer BOOTP messages between clients and servers. Such an
agent was originally referred to as a "BOOTP forwarding agent."
However, in order to avoid confusion with the IP forwarding
function of an IP router, the name "BOOTP relay agent" is
hereby adopted instead ...



Routers que funcionem como DHCP/BOOTP relay agents são chamados RFC1432 compliant. Broadcasts NÃO são propagados por routers isso é regra. Direct-broadcasts PODEM ser configurados para serem passados, depende do router.

O comando "ip helper-address" não é especifico para configurar o router como dhcp/bootp relay, mas sim para uma série de portos UDP que geralmente trafegam nas redes por defeito. Pedidos DHCP/BOOTP vão sempre usar o porto UDP 67. Ou seja, um router RFC1432 compliant (BOOTP/DHCP relay enabled) não vai fazer forward de nenhuma porta para além daquelas necessárias para tal (UDP 67 e 68 em algumas implementações).

A ideia do direct-broadcast, no caso DHCP/BOOTP é simples. Imaginas que tenhas mais de um DHCP server (em um mesmo segmento de rede/subnet/vlan), se configuras um router para fazer relay tens que obrigatoriamente repassar o pedido via direct-broadcast para que todos os DHCP servers recebam o pedido e possam responder ao cliente, qual a oferta e de que servidor o cliente vai aceitar é responsabilidade do protocolo.
 
Última edição:
BROADCAST: Vai sempre com o destination addr 255.255.255.255
DIRECT-BROADCAST: Vai para um segmento de rede determinado, ex: 10.1.10.255

Só com isto já fiquei esclarecido :D

Muito obrigado pelas explicações, Exup e _jr ;)
 
Back
Topo