Eu tenho um roteador quagga com dois vizinhos de trânsito e anunciando meu próprio espaço IP. Entrei recentemente em uma troca pública de pares (IXP) e, portanto, faço parte da rede local (/ 24), junto com todos os outros participantes. Até agora, tudo funciona bem.
Agora, por segurança, eu me pergunto se outros participantes não poderiam simplesmente rotear todo o tráfego de saída através de mim? Por exemplo, o que acontece se qualquer outro participante apontar uma rota padrão para o meu ip IXP. Se eu entendi corretamente, todo o tráfego de saída desse participante iria para o meu roteador, que o encaminharia para a Internet usando meu uplink de trânsito, certo?
Então, eu me pergunto se tenho que tomar alguma medida contra isso. Minhas idéias são:
Configure as regras do firewall (iptables) para que apenas o tráfego com um destino do meu próprio espaço IP seja aceito por outro participante do IXP. Abandone qualquer outro tráfego dos participantes do IXP.
De alguma forma, faça o quagga usar uma tabela de roteamento de kernel diferente para cada vizinho (ou grupo de pares). A tabela de roteamento para os vizinhos IXP não conteria nenhuma entrada, exceto meu próprio espaço IP e, portanto, nenhum roteamento usando meus uplinks de trânsito IP ocorreria. Olhando para a saída de
ip rule show
shows quagga não está fazendo isso automaticamente?
Estou no caminho certo? Por que o 2. não é implementado diretamente no Quagga? Como os roteadores de hardware (cisco, juniper, ..) lidam com esse problema?
Respostas:
Você está certo, se você não tomar nenhuma medida, isso pode acontecer. É uma violação da política de uso aceitável da maioria dos IXP que eu conheço, mas você ainda deseja impedir que isso aconteça.
Sua primeira solução é uma boa coisa a fazer e resolverá o seu problema. Apenas certifique-se de não acompanhar o estado da sessão no iptables, que provavelmente irá prejudicar o desempenho ou mesmo o seu roteador.
Você também pode considerar a filtragem de saída de maneira semelhante: não permita que pacotes deixem sua rede com origem em fontes desconhecidas. Isso impedirá que os hosts da sua rede enviem pacotes IP falsificados, comumente usados em ataques DDoS.
Eu não implementaria a segunda solução. É complicado e não tem uma escala adequada se você tiver vários roteadores lidando com seus trânsitos e pares ou se tiver um grande número de sessões de pares (um par de hunderds em um IXP não é incomum).
Em todas as plataformas de roteador de hardware, sei que esse problema foi resolvido na configuração, configurando o RPF na interface de saída e / ou escrevendo filtros.
fonte
Se você estiver executando o Quagga em uma caixa Linux, poderá ativar o RPF configurando o parâmetro do kernel
net.ipv4.conf.default.rp_filter
como 1 ou 2.Consulte esta página para obter mais detalhes: http://www.slashroot.in/linux-kernel-rpfilter-settings-reverse-path-filtering
fonte
Tanto quanto eu entendo, você tem 2 conexões com provedores de transporte público e 1 conexão com um ponto de mesmo nível, nessa situação, presumo que você esteja usando o BGP para fazer um par com seus provedores de transporte público e com um roteador IXP.
A maneira como o BGP funciona é que outros só podem alcançar os destinos que você anuncia para eles. Assim, por exemplo, você tem um / 24 e o anuncia aos seus provedores de transporte público, para que os hosts na Internet possam chegar até você através de seus pares de transporte e você também anunciaria seu / 24 no ponto de ponto para que os hosts conectados ao ponto de ponto possam entrar em contato diretamente com você sem acessar a Internet (pois esse seria o melhor caminho).
Para sessões do BGP, você normalmente filtraria o que anuncia para seus pares e o que eles anunciam para você (se você tiver pares a jusante) com uma lista de prefixos, por exemplo. Geralmente, você não filtra a entrada da bolsa de pares, pois a bolsa envia apenas rotas de pessoas conectadas à bolsa. Isso é semelhante aos seus provedores de transporte público, exceto pelo fato de geralmente enviarem a você a tabela de roteamento global completa (todos os destinos na Internet).
Nessa situação, você adicionaria uma lista de prefixos correspondente a uma ACL na direção de saída na sessão BGP conectada ao ponto de ponto para anunciar apenas o seu prefixo / 24, permitindo que os hosts na troca de pares alcancem apenas IPs no seu / 24 através do seu roteador (que é o que você deseja).
Se alguém anunciar uma rota padrão para você e você a aceitar, você não receberá o tráfego e o enviará à Internet. Nessa situação, você veria uma rota para a Internet através deles, porque seu roteador verá uma rota para 0.0.0.0/0 (a Internet) através deles, porque eles anunciaram para você.
O único momento em que os hosts conectados à troca de pares verão a Internet via você é se você anunciar uma rota padrão para a troca. A única outra ocasião em que você pode ser usado como um "AS de trânsito" é se você tiver clientes que estão no mesmo nível do cliente e eles solicitarem que você anuncie o espaço IP para o IXP para que eles possam alcançar a troca através de você.
fonte