Como o Linux decide a interface para rotear o tráfego de um aplicativo?

0

Eu tenho uma caixa Linux virtualizada rodando com duas interfaces, digamos int1 e int2 . int1 é uma "rede NAT" e int2 é um adaptador "somente host" no VirtualBox.

Eu não recebo nenhuma resposta se eu tentar pingar "google.com" no terminal, pois o tráfego está sendo roteado de int2 . Mas, se eu tentar visitar "google.com" no navegador, ele responde sem problemas.

Como tanto o terminal quanto o Firefox são simplesmente aplicativos, pergunto-me como o Linux decide qual tráfego do aplicativo deve ser roteado através de qual interface e como posso alterá-lo.

PS: A caixa do Linux é na verdade "Linux Backbox", um sistema operacional baseado no Ubuntu, no caso de ser importante.

PPS: Eu sei que posso fazer uma conexão em ponte se eu quiser acessar tanto a internet quanto o sistema operacional host do meu sistema operacional convidado, mas este é o computador da minha empresa em que estou trabalhando e não quero o departamento de TI para ir em busca de uma máquina fantasma na rede com um host "assustador" (é literalmente "assustador": D).

    
por 7_R3X 29.01.2018 / 13:43

1 resposta

2

O Linux decide qual interface usar por meio de regras e rotas.

As regras especificam as condições do pacote e qual tabela de roteamento deve ser consultada, as regras podem ser vistas com ip rule show se você estiver usando o iproute2. Principalmente, isso apenas indica as tabelas local, principal e padrão nessa ordem.

As tabelas de roteamento simplesmente contêm listas de destinos e para quem o pacote deve ser enviado (incluindo a interface para a qual ele deve ser enviado). A tabela de roteamento main pode ser verificada com ip route show .

O AFAIK Linux não usa rotas diferentes para aplicativos diferentes (desde que estejam no mesmo namespace de rede e você não tenha um sistema de fwmarking do iptables estranho).

    
por 29.01.2018 / 16:40