![Encaminhamento bidirecional como ponte com iptables](https://rvso.com/image/164730/Encaminhamento%20bidirecional%20como%20ponte%20com%20iptables.png)
Eu tenho caixa Linux. e tem duas interfaces (eth0, eth1).
eth0 é uma conexão positiva e eth1 é uma conexão negativa.
eth0, eth1 está conectado a cada switch (s/w0, s/w1).
s/w0 está acessando a Internet e s/w1 está conectado a um laptop.
E eu quero eth0 , eth1 encaminhamento bidirecional como ponte.
Mas não usando brctl, apenas usando iptables.
Portanto, se o conjunto de regras do iptables estiver correto, o laptop deverá estar habilitado para Internet.
Eu tentei essas regras, mas não funcionou.
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
iptables -A FORWARD -i eth0 -o eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Eu apreciaria qualquer ajuda.
EDITAR.
minha rede é como abaixo.
internet - router - switch0 - eth0:linuxBox:eth1 - switch1 - laptop
Ao fazer bridge usando brctl como abaixo, o laptop pode usar a internet
brctl addbr br0
brctl addif br0 eth0
brctl addif br0 eth1
brctl stp br0 off
ifconfig br0 up
Meu objetivo é criar regras de iptables para substituir o brctl.
Responder1
Você deve especificar o que deseja. Uma ponte não faz NAT e a Internet não funciona como a Ethernet onde uma ponte funciona.
Se você deseja ter um gateway de Internet com Nat e encaminhar seus pacotes de acordo com as tabelas de roteamento IP de suas caixas Linux, suas rotas iptables parecem muito boas. Você só precisa garantir que o encaminhamento de IP esteja ativado nessa caixa e que o laptop tenha seu gateway padrão configurado para o endereço eth1 da caixa Linux.
Então, depois de suas atualizações: você não precisa de uma ponte. O gateway é suficiente.
Primeiro, certifique-se de que as interfaces da caixa Linux estejam em sub-redes distintas. Ou, alternativamente, garanta em suas tabelas de roteamento que ele tenha a rota padrão em eth0 via roteador de internet gateway e o outro tráfego para a rede local (onde seu laptop está, por exemplo) seja enviado em eth1.
2, faça uma configuração de IP estático em seu laptop com um IP na mesma rede que eth1 e com o roteador padrão definido para o endereço de interface se eth1. Ou configure um servidor DHCP na caixa Linux para o mesmo.
3. Certifique-se de que o encaminhamento de IP esteja habilitado em sua caixa Linux.
Responder2
podes tentar
iptables –t nat –A POSTROUTING –o eth0 –j MASQUERADE
iptables –A FORWARD –i eth0 –o eth1 –m state --state RELATED,ESTABLISHED –j ACCEPT
iptables –A FORWARD –i eth1 –o eth0 –j ACCEPT
então salve as regras das tabelas de ip
iptables-save
iptables-save > /etc/sysconfig/iptables
systemctl restart iptables.service
em seguida, abra o arquivo iptables e edite as regras, mova essas regras acima das regras de rejeição
iptables –A FORWARD –i eth0 –o eth1 –m state --state RELATED,ESTABLISHED –j ACCEPT
iptables –A FORWARD –i eth1 –o eth0 –j ACCEPT
A FORWARD -o vibr0 -j REJECT --reject-with icmp-port-unreachable
A FORWARD -i vibr0 -j REJECT --reject-with icmp-port-unreachable