Tudo que você precisa fazer é ativar o encaminhamento de ip em A e B (como root):
echo 1 > / proc / sys / net / ipv4 / ip_forward
Cenário estranho para você:
Eu tenho dois Raspberry Pis rodando Raspbian 8 (jessie) conectados um ao outro por um cabo cross-over entre suas portas Ethernet. A porta Ethernet na unidade A é configurada estaticamente como 10.5.10.1. A porta Ethernet na unidade B é configurada estaticamente como 10.5.10.2. A máscara de sub-rede para a interface Ethernet é 255.255.255.0 - / 24.
Ambas as unidades estão executando o daemon de ponto de acesso do host (hostapd) e o servidor DHCP em sua interface Wifi (wlan0). Cada um deles tem um único SSID: a unidade A é “raspiA” enquanto a unidade B é “raspiB”. A unidade A é executada no canal 1. A unidade B é executada no canal 11.
O adaptador wlan0 na unidade A é atribuído estaticamente como 10.10.1.1. O servidor DHCP na unidade A atende a endereços no intervalo de 10.10.1.50 a 10.10.1.250. O adaptador wlan0 na unidade B é atribuído estaticamente como 10.10.2.1. O servidor DHCP na unidade B sete endereços no intervalo de 10.10.2.50 - 10.10.2.250. Máscaras de sub-rede para os adaptadores wlan0 são ambas / 24.
Os sistemas estão completamente isolados - não há conexão com a Internet.
Ambos os sistemas executam um processo que executa um servidor HTTP na porta 80, disponível em qualquer interface (eth0 ou wlan0).
Eu quero um cliente conectado ao ponto de acesso no sistema A para poder acessar o processo no sistema B no 10.10.1.2.
Eu quero que um cliente conectado ao ponto de acesso no sistema B possa acessar o processo no sistema A no 10.10.2.2.
[Client 1] [Unit A ] [Unit B ]
10.10.1.50 —wifi—> 10.10.1.2 —> 10.5.10.1 —eth—> 10.5.10.2
E ...
[Unit A ] [Unit B ] [Client 2]
10.5.10.1 <—eth— 10.5.10.2 <— 10.10.2.2 <—wifi— 10.10.2.50
Qual é a melhor maneira de fazer isso acontecer?
Tudo que você precisa fazer é ativar o encaminhamento de ip em A e B (como root):
echo 1 > / proc / sys / net / ipv4 / ip_forward
Eu finalmente encontrei uma configuração que funciona. Permite que um cliente entre na rede e tenha acesso a ambos os sistemas. Também não requer roteamento, o que é importante, pois qualquer esquema que atribua um roteador (gateway padrão) faz com que os clientes móveis (iOS, Android) priorizem sua interface Wi-Fi na interface 4G, impedindo o acesso à Internet.
Eu simplifiquei o esquema de IP movendo tudo para o mesmo segmento / 24 (classe c). Eu estabeleço pontes entre a interface eth0 e a interface wlan0 em ambos os sistemas. A ponte no sistema A foi atribuída 0,1 e a ponte no sistema B foi atribuída. Todos os serviços fornecidos pelo sistema estão vinculados a / disponíveis no endereço da ponte.
Eu ajustei os daemons DHCP em cada sistema para atender a um intervalo diferente do / 24 (ou seja, o sistema A era .50 - .149 e o sistema B era de 150 - 249). Como os sistemas são interligados (isto é, todos no mesmo segmento), qualquer solicitação DHCP se transforma em uma corrida, com os dois daemons respondendo. Como as duas ofertas estarão no mesmo / 24, não importa qual delas "ganha".
Isso cria uma certa forma de redundância. Se algum dos sistemas morre, os clientes podem se associar novamente ao ponto de acesso no outro sistema. Se o aplicativo em qualquer sistema falhar, os clientes poderão se conectar à instância no outro sistema. Os dois sistemas também podem monitorar uns aos outros, espelhar a configuração e cruzar os dados.
Uma limitação dessa abordagem é que os clientes devem saber que os aplicativos estão disponíveis em .1 e .2. Uma iteração futura pode incluir algum tipo de suporte MDSN / Avahi que permita que os clientes descubram servidores automaticamente.
Etapas:
bridge-utils
, hostapd
e isc-dhcp-server
/etc/sysctl.conf
:
net.ipv4.ip_forward = 1
/etc/network/interfaces
:
/etc/dhcpcd.conf
:
denyinterfaces eth0 wlan0
na parte inferior. /etc/default/isc-dhcp-server
:
INTERFACES
para br0
/etc/dhcp/dhcpd.conf
:
/etc/hostapd/hostapd.conf
:
bridge=br0
na parte inferior Repita este processo para o outro sistema, alterando o IP atribuído à ponte (passo 2.2) e o intervalo de endereços servido pelo servidor DHCP (passo 5.2). Conecte as portas Ethernet com um cabo. Reinicie. Voila - redundante, rede plana.