Não estou familiarizado com o CentOS e preciso de ajuda para fazer o roteamento para isso. Eu tenho uma caixa CentOS com 3 NICs.
eth0 Link encap:Ethernet
inet addr:10.50.121.16 Bcast:10.50.121.255 Mask:255.255.255.0
eth1 Link encap:Ethernet
inet addr:10.50.128.134 Bcast:10.50.128.255 Mask:255.255.255.0
eth2 Link encap:Ethernet
inet addr:10.50.140.97 Bcast:10.50.140.255 Mask:255.255.255.0
eth0 era uma interface existente e tem a rota padrão, adicionei eth1 e eth2. Existem gateways nos segmentos eth1 e eth2 (o endereço .1 em ambos). Preciso ter alguns fluxos de rede entre as NICs eth1 e eth2 (através de seus respectivos gateways) para fazer alguns testes. Então, acho que preciso configurar o roteamento de política para isso?
Editar: desculpe ser claro, não estou dizendo que estou tentando rotear pacotes entre as duas novas interfaces. Preciso enviar alguns pacotes do IP da eth1 para o IP da eth2 através de alguma infraestrutura (simulando assim uma conversa entre vlan da eth1 e vlan da eth2). Então eu quero fazer isso eth1 -> eth1-vlan-router -> ??? -> eth2-vlan-router->eth2 e então poder responder usando a rota reversa. Que pena não ter sido completamente claro aqui.
Responder1
Modifique /etc/sysctl.conf
e habilite o roteamento ipv4.
net.ipv4.ip_forward = 1
Em seguida, execute sysctl -p
para aplicar as configurações.
Para mostrar o valor atual de net.ipv4.ip_forward
, use:
sysctl net.ipv4.ip_forward
Responder2
Você não poderá fazer isso usando APIs de rede padrão.
A pilha de rede Linux usa o chamadomodelo de hospedeiro fraco, o que implica em particular que qualquer endereço atribuído a uma interface local é considerado local. Se você tentar enviar um pacote para uma interface local, ele entrará em loop localmente e nunca atingirá a rede.
Embora você provavelmente possa hackear algo usando soquetes brutos, a melhor solução é provavelmente usar um segundo host, talvez implementado como uma máquina virtual.