Então eu entendo que para encaminhar um pacote, um roteador precisa de 3 informações: o próximo salto, a interface de saída e a Adjacência (informação L2). Em um roteador Cisco, isso será armazenado em FIB e CEF.
O que me confunde é que parece que o próximo salto é necessário apenas para descobrir informações de adjacência (por ARP), porque realmente apenas informações de L2 são necessárias ao encaminhar um pacote IP para o próximo roteador.
Então, minha pergunta é por que há essa indireção entre o próximo salto - > adjacência? Por que essa informação de adjacência não pode ser coletada diretamente? E como esta interface de saída é decidida dentro de um roteador?
Ou seria mais útil se alguém pudesse explicar como as duas tabelas (FIB e CEF) são preenchidas?
Editar:
Acho que minha pergunta é muito confusa. Então, aqui estou tentando torná-lo mais específico / claro.
Estou ciente de que existem muitos protocolos de roteamento diferentes. No entanto, minha pergunta não é realmente sobre como as rotas são recebidas ou calculadas. Está mais de acordo com o que acontece em um roteador depois que essas informações são recebidas. Para ser mais específico, em um roteador, a adjacência geralmente é inserida pela instância do ARP. E as informações do próximo salto são aquelas inseridas por instâncias de roteamento. Então, aqui estou assumindo que o próximo salto já é conhecido / calculado pela instância de roteamento.