Consegui configurar um servidor OpenVPN com vários clientes usando ips estáticos, o ip estático é definido adicionando uma linha como ifconfig-push 192.168.254.6 192.168.255.1
no ccd para cada um dos clientes. Posso fazer ping ou ssh do servidor para cada um desses clientes. Na configuração do meu servidor tenho as seguintes linhas (entre outras configurações):
server 192.168.255.0 255.255.255.0
e
route 192.168.254.0 255.255.255.0
Agora o que estou tentando fazer é conseguir fazer ssh ou curl de um cliente para outro, então depois de ler a documentação adicionei a linha client-to-client
na configuração. Percebi que ao reiniciar os servidores e reconectar os clientes, adicionou a seguinte linha ip route
aos meus clientes:
192.168.255.0/24 via 192.168.255.1 dev tun0
O que eu entendo é indicar ao cliente que todo endereço desse tipo 192.168.255.X
iria para o servidor VPN. E, de fato, tentei verificar executando traceroute 192.168.255.30
e obtendo:
traceroute to 192.168.255.30 (192.168.255.30), 30 hops max, 60 byte packets
1 192.168.255.1 (192.168.255.1) 11.454 ms 14.491 ms 14.493 ms
No entanto, os outros clientes aos quais desejo me conectar têm endereços assim, 192.168.254.X
acho que estou faltando alguma coisa e não sei o quê. Tentei adicionar manualmente esta rota:
ip route add 192.168.254.0/24 via 192.168.255.1 dev tun0
O que para mim significaria que endereços como 192.168.254.X também estão passando pelo servidor VPN. Mas se eu fizer isso, traceroute 192.168.254.30
os resultados serão diferentes:
traceroute 192.168.254.30
traceroute to 192.168.254.30 (192.168.254.30), 30 hops max, 60 byte packets
Também posso fazer ping na máquina cliente, ping 192.168.255.1
mas não consigo executar ping em outros clientes no intervalo 254, como ping 192.168.254.30
.
Meu conhecimento de rede é bastante limitado. O que falta para permitir que um cliente como 192.168.254.30
acesse serviços em outro cliente como192.168.254.32
Atualizar:Conectei um novo cliente à VPN, desta vez atribuindo no arquivo ccd um ip na faixa 192.168.255.X, e então tentei rodar o traceroute do cliente que estava testando. Também não consigo me conectar a este cliente na faixa 255, além disso, se eu executar o traceroute acontece o seguinte.
Este novo cliente possui 192.168.255.22
, se no meu cliente de teste eu traceroute 192.168.255.3
obtiver:
traceroute to 192.168.255.3 (192.168.255.3), 30 hops max, 60 byte packets
1 192.168.255.1 (192.168.255.1) 11.481 ms 21.192 ms 21.472 ms
O mesmo acontece para os ips 4, 5, 6... que não tem clientes, até chegar 22
qual é o ip do novo cliente, nesse caso quando faço traceroute 192.168.255.22
eu recebo:
traceroute to 192.168.255.22 (192.168.255.22), 30 hops max, 60 byte packets
Por que isso está acontecendo?
Responder1
Parece que você está tentando rotear o tráfego entre diferentes sub-redes no servidor OpenVPN. É possível fazer isso, mas você precisará fazer algumas alterações adicionais na configuração do OpenVPN.
A primeira coisa a notar é que a server
diretiva no seu arquivo de configuração OpenVPN define a sub-rede que o próprio servidor usará. No seu caso, o servidor usará a 192.168.255.0/24
sub-rede. Isso significa que os clientes receberão endereços IP no 192.168.255.X
intervalo.
A route
diretiva, por outro lado, define uma rota para o tráfego dos clientes OpenVPN para uma sub-rede específica. No seu caso, a route
diretiva informa ao servidor OpenVPN que o tráfego dos clientes deve ser roteado para a 192.168.254.0/24
sub-rede.
No entanto, isso não é suficiente para permitir que os clientes se comuniquem entre si em diferentes sub-redes. Você também precisará adicionar uma push
diretiva ao arquivo de configuração do servidor OpenVPN. Esta diretiva diz ao servidor OpenVPN para enviar rotas aos clientes, para que eles saibam como rotear o tráfego para outras sub-redes.
Aqui está um exemplo de como a diretiva push pode parecer em seu arquivo de configuração:
push "route 192.168.254.0 255.255.255.0"
Esta diretiva diz ao servidor OpenVPN para enviar uma rota aos clientes, instruindo-os a rotear o tráfego para a 192.168.254.0/24
sub-rede através do servidor OpenVPN.
Você também precisará certificar-se de que a client-to-client
diretiva está habilitada na configuração do seu servidor. Esta diretiva diz ao servidor OpenVPN para permitir que os clientes se comuniquem diretamente entre si, sem rotear o tráfego através do servidor.
Depois de fazer essas alterações em sua configuração, você poderá conectar seus clientes ao servidor OpenVPN e se comunicar entre si em diferentes sub-redes.
Vale a pena notar que a client-to-client
diretiva só permite que os clientes se comuniquem entre si se estiverem usando a mesma sub-rede. Por exemplo, se um cliente tiver um endereço IP no 192.168.255.X
intervalo, ele só poderá se comunicar com outros clientes que também possuam endereços IP no 192.168.255.X
intervalo. Para que clientes em sub-redes diferentes se comuniquem entre si, você precisará usar a diretiva push conforme descrito acima.