
tengo estoniebla clara proPlaca enrutadora con imagen armbiana. Lo que quiero hacer es tener 6 raspberryPi conectados a Internet a través de clearfog pro. Al final, quiero que las 7 computadoras tengan una dirección IP para poder comunicarme con todas ellas. Después de leer en Internet, vi que necesitaba configurar un puente de red para que esto sucediera.
Primero probé estas configuraciones.aquí. Pero no funcionaron para mí.
esta es la configuración actual en mi archivo /etc/network/interfaces
auto lo br0 eth1 lan1
iface lo inet loopback
iface br0 inet dhcp
bridge_ports eth0 lan1
esta es la salida deip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: bond0: <BROADCAST,MULTICAST,MASTER> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000 link/ether fe:cc:39:e2:0e:81 brd ff:ff:ff:ff:ff:ff
3: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master br0 state UP mode DEFAULT group default qlen 532 link/ether 00:50:43:25:fb:84 brd ff:ff:ff:ff:ff:ff
4: eth1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN mode DEFAULT group default qlen 532 link/ether 00:50:43:84:25:2f brd ff:ff:ff:ff:ff:ff
5: eth2: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 532 link/ether 00:50:43:0d:19:18 brd ff:ff:ff:ff:ff:ff
6: tunl0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN mode DEFAULT group default qlen 1 link/ipip 0.0.0.0 brd 0.0.0.0
7: lan1@eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br0 state UP mode DEFAULT group default qlen 1000 link/ether 00:50:43:84:25:2f brd ff:ff:ff:ff:ff:ff
13: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000 link/ether 00:50:43:25:fb:84 brd ff:ff:ff:ff:ff:ff
yip route
192.168.178.0/24 dev br0 proto kernel scope link src 192.168.178.44
así que traté de hacerle 192.168.178.44
creer que me llevaría a la computadora en lan1, pero no fue así. Me conecté nuevamente al clearfog.
También intenté unir eth1 y eth0 pero volviócan't add eth1 to bridge br0: Invalid argument
entonces mi pregunta es: ¿cuál es la configuración correcta del puente?
EDITAR: según lo solicitado mibrctl show
bridge name bridge id STP enabled interfaces
br0 8000.00504325fb84 no eth0
lan1
ifconfig
br0 Link encap:Ethernet HWaddr 00:50:43:25:fb:84
inet addr:192.168.178.44 Bcast:192.168.178.255 Mask:255.255.255.0
inet6 addr: fe80::250:43ff:fe25:fb84/64 Scope:Link
inet6 addr: 2001:984:6433:1:250:43ff:fe25:fb84/64 Scope:Global
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:572 errors:0 dropped:0 overruns:0 frame:0
TX packets:86 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:147582 (144.1 KiB) TX bytes:11762 (11.4 KiB)
eth0 Link encap:Ethernet HWaddr 00:50:43:25:fb:84
inet addr:192.168.178.44 Bcast:192.168.178.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1225 errors:0 dropped:0 overruns:0 frame:0
TX packets:118 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:532
RX bytes:318910 (311.4 KiB) TX bytes:15514 (15.1 KiB)
Interrupt:38
eth1 Link encap:Ethernet HWaddr 00:50:43:84:25:2f
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:532
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Interrupt:39
lan1 Link encap:Ethernet HWaddr 00:50:43:84:25:2f
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
yip route show
default via 192.168.178.1 dev br0
192.168.178.0/24 dev br0 proto kernel scope link src 192.168.178.44
192.168.178.0/24 dev eth0 proto kernel scope link src 192.168.178.44
Respuesta1
Para que entienda correctamente, tienes 6 RPi conectados a un interruptor que también está conectado al clearfrog. Simplemente desea que los RPi puedan comunicarse entre sí y acceder a Internet a través de clearfrog. De ahora en adelante me referiré a Clearfrog como CF.
Ahora echemos un vistazo a sus enlaces IP:
1: lo <- loopback
2: bond0 <- special interface for traffic aggregation/bonding
3: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> <- Assuming this is your uplink
4: eth1: <NO-CARRIER,BROADCAST,MULTICAST,UP> <- Assuming this is physically connected to your switch
5: eth2: <BROADCAST,MULTICAST> <- Assuming this is inactive
6: tunl0@NONE: <NOARP> <- Tunnel interface for vpn
7: lan1@eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> <- Lan1 isn't physical, it's a VLAN inteface.
13: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> <- bridge interface you created
Lo que no me queda claro es si su enrutador recibirá una dirección IP pública en el lado WAN o si permanecerá detrás de otra puerta de enlace. En el caso de que esté detrás de otra puerta de enlace, debe tener sus RPi en una subred separada e indicarle a CF que enrute el tráfico por usted.
Así por ejemplo:
*internets*
^
|modem| -> |gateway| -> | switch |
^ ^ ^ ^
192.168.178.0/25 PC1 PC2 PC3 CF Primary Network
^
| switch |
^ ^ ^ ^ ^ ^
192.168.178.128/25 Pi Pi Pi Pi Pi Pi Pi Network
Le asigné a su red principal la subred 192.168.178.0/25 que tendrá un rango utilizable .1-.126; He asignado la subred 192.168.178.128/25 a su red Pi, que tendrá un rango utilizable .129-.254
Creo que lo que intentabas hacer antes era unir los dos adaptadores. Cuando tiene varios hosts detrás de dos adaptadores que también tienen direcciones mac, entonces debe hacerenrutamiento, no puente.
Después de todo, este es un enrutador, ¿no? La pregunta era "cómo hacer un cambio", pero ¿no estás usando este dispositivo para controlar el tráfico entre las dos redes? De lo contrario, podría eliminar CF e implementar un interruptor tonto, sin necesidad de Linux incorporado.
Para eliminar br0:
brctl show | awk '{if(NR>1)print}' | awk '{print $NF}' | while read line ; do brctl delif br0 $line ; done
ifconfig br0 down
brctl delbr br0
A continuación, preparemos el enrutador para hacer las cosas del enrutador.
Editar /etc/red/interfaces
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.178.126
network 192.168.178.0
netmask 255.255.255.128
gateway 192.168.178.1
broadcast 192.168.178.127
auto eth1
iface eth1 inet static
address 192.168.178.129
network 192.168.178.128
netmask 255.255.255.128
broadcast 192.168.178.255
Luego edite /etc/sysctl.conf y habilite el reenvío. realmente solonecesidadla primera línea, pero esto es lo que generalmente uso para los enrutadores:
net.ipv4.conf.all.forwading=1
net.ipv4.conf.default.accept_source_route = 1
net.ipv4.tcp_synack_retries = 2
net.ipv4.conf.all.send_redirects = 1
net.ipv4.conf.default.send_redirects = 1
net.ipv4.conf.all.accept_source_route = 1
net.ipv4.conf.all.accept_redirects = 1
net.ipv4.conf.all.secure_redirects = 1
Luego ejecute: sysctl -p
Ahora vamos a agregar las rutas. Voy a sugerir realizar una ruta IP para vaciar todo; sin embargo, querrás estar en la consola cuando hagas esto porque te desconectará inmediatamente de ssh.
ip route flush all
ip rule flush
ip route add 192.168.178.0/25 via 192.168.178.1 dev eth0
ip route add 192.168.178.128/25 src 192.168.178.129
ip route add default via 192.168.178.1 dev eth0
Ahora desea ir a su enrutador de red principal y agregar una ruta estática: 192.168.178.128/25 a través de 192.168.178.129. Esto le indica a su puerta de enlace/enrutador principal que cuando un host en la red interna quiera conectarse a su red RPi, reenvíe las solicitudes a CF (que actúa como puerta de enlace) se enrutarán más.
Volviendo a CF, lo último que haría es agregar reglas de reenvío en iptables:
#Allow rpi's to connect to the outside world but not initiate new connections to hosts on your primary network
iptables -I FORWARD -i eth1 -o eth0 -s 192.168.178.128/25 ! -d 192.168.178.0/25 -m conntrack --ctstate NEW -j ACCEPT
# Allow forwarding for established connections
iptables -I FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
# Allow hosts on your primary network to initiate new connections to pi's
iptables -I FORWARD -i eth0 -o eth1 -s 192.168.178.0/25 -d 192.168.178.128/25 -m conntrack --ctstate NEW -j ACCEPT
Querrá guardar estas reglas con iptables-save > /etc/iptables/rules.v4
Ahora necesitará un servidor dhcp en CF para asignar IP a las Pi o deberá asignarles direcciones estáticas. En cualquier caso, querrás configurar su puerta de enlace predeterminada en la IP de CF 192.168.178.129.
Eso deberia ser todo lo que necesitas. Si tienes algún problema, no dudes en comentar y te ayudaré lo mejor que pueda.
Respuesta2
en su archivo de red/interfaces:
auto lo br0 eth1 lan1
iface lo inet loopback
iface br0 inet dhcp
bridge_ports eth0 lan1
Ayuda a separar las cosas algunas
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
auto eth1
iface eth1 inet manual
auto br0
iface br0 inet static #or dhcp
address <your address>
netmask 255.255.255.0
gateway <your gateway>
bridge_ports eth1
bridge_stp off
bridge_fd 0
Espero que esto ayude