![Reenvío bidireccional como puente con iptables](https://rvso.com/image/164730/Reenv%C3%ADo%20bidireccional%20como%20puente%20con%20iptables.png)
Tengo caja de linux. y tiene dos interfaces (eth0, eth1).
eth0 es una conexión al alza y eth1 es una conexión a la baja.
eth0, eth1 está conectado con cada interruptor (s/w0, s/w1).
s/w0 sale a Internet y s/w1 está conectado con una computadora portátil.
Y quiero eth0, eth1 reenvío bidireccional como puente.
Pero no usando brctl, solo usando iptables.
Entonces, si el conjunto de reglas de iptables es correcto, entonces la computadora portátil debe tener acceso a Internet.
Probé estas reglas, pero no funcionó.
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
Agradecería cualquier ayuda.
EDITAR.
Mi red es como la siguiente.
internet - router - switch0 - eth0:linuxBox:eth1 - switch1 - laptop
Cuando se crea un puente usando brctl como se muestra a continuación, la computadora portátil puede usar Internet
brctl addbr br0
brctl addif br0 eth0
brctl addif br0 eth1
brctl stp br0 off
ifconfig br0 up
Mi objetivo es crear reglas de iptables para reemplazar brctl.
Respuesta1
Debes especificar lo que quieres. Un puente no tiene NAT e Internet no funciona como Ethernet donde funciona un puente.
Si desea tener una puerta de enlace a Internet con Nat y reenviar sus paquetes de acuerdo con las tablas de enrutamiento IP de su caja Linux, sus rutas iptables se ven bastante bien. Solo necesita asegurarse de que el reenvío de IP esté habilitado en esa caja y que la computadora portátil tenga su puerta de enlace predeterminada configurada en la dirección eth1 de la caja Linux.
Entonces, después de tus actualizaciones: no necesitas un puente. La puerta de enlace es suficiente.
1. Asegúrese de que las interfaces de Linux Box estén en subredes distintas. O, alternativamente, asegúrese de que en sus tablas de enrutamiento tenga la ruta predeterminada en eth0 a través del enrutador de Internet de la puerta de enlace y que el resto del tráfico para la red local (donde se encuentra su computadora portátil, por ejemplo) se envíe en eth1.
2, realice una configuración de IP estática en su computadora portátil con una IP en la misma red que eth1 y con el enrutador predeterminado configurado en la dirección de interfaz si es eth1. O configure un servidor dhcp en Linux para lo mismo.
3. Asegúrese de que el reenvío de IP esté habilitado en su máquina Linux.
Respuesta2
puedes probar
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
luego guarde las reglas de las tablas ip
iptables-save
iptables-save > /etc/sysconfig/iptables
systemctl restart iptables.service
luego abra el archivo iptables y edite las reglas, mueva estas reglas encima de las reglas de rechazo
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