Reverse path forwarding (encaminhamento invertido)

O "encaminhamento invertido" (RPF) é uma técnica usada em roteadores modernos para garantir o encaminhamento sem loops de pacotes multicast em roteamento multicast e para ajudar a prevenir o spoofing de endereços IP em roteamento unicast. No roteamento unicast padrão, o roteador encaminha o pacote para longe da origem para avançar ao longo da árvore de distribuição e evitar loops de roteamento. Em contraste, o estado de encaminhamento multicast do roteador é organizado com base no caminho inverso, do receptor de volta à raiz da árvore de distribuição na fonte do multicast. Esse método é conhecido como encaminhamento invertido.

O RPF multicast, normalmente denotado simplesmente como RPF, é usado em conjunto com um protocolo de roteamento multicast, como o Protocolo de Descoberta de Fonte Multicast ou o Protocolo Independente de Multicast, para garantir o encaminhamento sem loops de pacotes multicast. No roteamento multicast, a decisão de encaminhar o tráfego é baseada no endereço de origem e não no endereço de destino, como no roteamento unicast. Ele faz isso utilizando uma tabela de roteamento multicast dedicada ou, alternativamente, a tabela de roteamento unicast do roteador. Quando um pacote multicast entra na interface de um roteador, o roteador verifica a lista de redes que são alcançáveis por meio dessa interface (ou seja, ele verifica os caminhos pelos quais o pacote poderia ter chegado). Se o roteador encontrar uma entrada de roteamento correspondente para o endereço IP de origem do pacote multicast, a verificação RPF passa e o pacote é encaminhado para todas as outras interfaces que estão participando daquele grupo multicast. Se a verificação RPF falhar, o pacote é descartado. Como resultado, o encaminhamento do pacote é decidido com base no caminho inverso do pacote e não no caminho direto.

Ao encaminhar apenas os pacotes que entram na interface que também contém a entrada de roteamento para a origem do pacote, os loops são evitados. Isso é muito importante em topologias multicast redundantes. Como o mesmo pacote multicast pode chegar ao mesmo roteador por meio de várias interfaces, a verificação RPF é fundamental na decisão de encaminhar ou não os pacotes. Se o roteador encaminhasse todos os pacotes que chegam na interface A para a interface B e também encaminhasse todos os pacotes que chegam na interface B para a interface A e ambas as interfaces recebessem o mesmo pacote, isso criaria um loop de roteamento onde os pacotes seriam encaminhados em ambas as direções até que seus TTLs IP expirassem. Os loops de roteamento devem ser evitados, pois consomem desnecessariamente recursos da rede e do roteador. As suposições subjacentes a uma verificação RPF são que a tabela de roteamento unicast está correta e estável e que o caminho usado de um remetente para um roteador e o caminho inverso do roteador de volta ao remetente são simétricos.