Apenas para que eu entenda corretamente, você tem 6 RPi's conectados a um switch que também está conectado ao clearfrog. Você simplesmente quer que os RPIs sejam capazes de se comunicar uns com os outros, assim como acessar a internet através do clearfrog. Vou me referir ao Clearfrog como CF a partir de agora.
Agora vamos dar uma olhada nos seus links 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
O que não está claro para mim é se o seu roteador receberá um endereço IP público no lado da WAN ou se permanecerá atrás de outro gateway. No caso de estar atrás de outro gateway, você precisa ter seus RPIs em uma sub-rede separada e instruir o CF para rotear o tráfego para você.
SO por exemplo:
*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
Eu atribuímos à sua rede primária a sub-rede 192.168.178.0/25, que terá um intervalo útil de 0,1 a 126; Eu atribuí a sub-rede 192.168.178.128/25 à sua rede Pi, que terá um intervalo utilizável .129-.254
Acho que o que você estava tentando fazer antes era unir os dois adaptadores juntos. Quando você tem múltiplos hosts atrás de dois adaptadores que também possuem endereços mac, então você precisa fazer roteamento , sem fazer bridging.
Afinal, este é um roteador, não é? O questestion era "como fazer um switch", mas você não está usando este dispositivo para controlar o tráfego entre as duas redes? Caso contrário, você poderia remover o CF e colocar um switch mudo, sem necessidade de linux embutido.
Para remover o 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
Em seguida, vamos preparar o roteador para fazer as coisas do roteador.
Edite / etc / network / 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
Em seguida, edite /etc/sysctl.conf e habilite o encaminhamento. Você realmente só precisa da primeira linha, mas é isso que geralmente uso para roteadores:
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
Em seguida, execute: sysctl -p
Agora vamos adicionar as rotas. Eu vou sugerir a execução de um ip route flush all, no entanto você vai querer estar no console quando fizer isso porque ele irá desconectá-lo imediatamente do 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
Agora, você deseja ir ao seu roteador de rede principal e adicionar uma rota estática: 192.168.178.128/25 via 192.168.178.129 Isso informa ao seu gateway / roteador principal que quando um host na rede interna deseja se conectar à sua rede RPi, para encaminhar as solicitações para o CF (agindo como o gateway) para serem roteadas ainda mais. / p>
De volta ao CF, a última coisa que gostaria de fazer é adicionar regras de encaminhamento no 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
Você desejará salvar essas regras com o comando iptables-save > /etc/iptables/rules.v4
Agora, você precisará de um servidor dhcp no CF para atribuir IPs aos Pi's ou será necessário atribuir endereços estáticos. Em ambos os casos, você desejará configurar seu gateway padrão para o IP 192.168.178.129 do CF.
Isso deve ser tudo que você precisa. Se você tiver algum problema, fique à vontade para comentar e eu o ajudarei da melhor maneira possível.