Então, já faz algum tempo que estou batendo a cabeça com isso.
Eu tenho a seguinte configuração:
- Servidor OpenVPN, IP 1.2.3.1
- Servidor Asterisk, conectado ao servidor OpenVPN, IP 1.2.3.3
- Raspberry PI, interface local 192.168.0.17, conectado ao OpenVPN IP 1.2.3.6
- Telefone IP na mesma rede local do Raspberry PI, ip local 192.168.0.81
As redes são configuradas da seguinte forma:
- A conexão local no Raspberry é eth0
- Raspberry possui interface virtual adicional eth0:1 com ip 192.168.0.91
- A conexão OpenVPN no Raspberry é tun0
- O telefone tem ip local 192.168.0.81 e gateway configurado para 192.168.0.91 (framboesa)
No Raspberry, o iptables é o seguinte:
#Empty all routing tables
sudo iptables -t nat -F
sudo iptables -F
#Masquerade all traffic leaving tun0 as if coming from 1.2.3.6
sudo iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
#redirect all traffic coming from eth0:1 to tun0
sudo iptables -A FORWARD -i eth0:1 -o tun0 -j ACCEPT
#redirect all traffic coming from tun0 to eth0:1
sudo iptables -A FORWARD -i tun0 -o eth0:1 -j ACCEPT
#Modify all packets coming to tun0 to forward then to the IP telephone
sudo iptables -t nat -A PREROUTING -i tun0 -j DNAT --to-destination 192.168.0.81
Assim, posso ligar e receber chamadas (tenho outro laptop que está conectado diretamente ao servidor VPN e usa Zoiper para teste). Posso ligar para o telefone e do telefone e o áudio do telefone para o laptop funciona, mas não há nenhum áudio recebido no telefone.
O que estou fazendo de errado?
ATUALIZAR
Eu também tentei o seguinte
O telefone tem configurações 192.168.200.1 / 255.255.255.0, conectado ao raspberry que tem 192.168.200.2 / 255.255.255.0 (raspberry ip é gateway para telefone)
Raspberry pi com tun ip 10.34.87.2 (conectado ao wifi usando wlan0 e depois ao vpn).
Tabelas IP
sudo iptables -A FORWARD -i eth0 -o tun0 -j ACCEPT sudo iptables -A FORWARD -i tun0 -o eth0 -j ACCEPT
No servidor VPN (10.34.87.1)
route add 192.168.200.0/24 10.34.87.2
NOTA: o iptables não tem máscara. Agora consegui rotear o tráfego de 192.168.200.1 -> 10.34.87.1 (servidor VPN), mas não o contrário.
Alguma ideia?
Responder1
O mascaramento é um requisito? caso contrário, como seus telefones têm o Pi como gateway padrão, eles podem acessar o servidor sem nenhum esforço adicional, apenas certifique-se de que o servidor possa acessar os telefones de volta, adicione uma rota no servidor (se necessário) para 192.168.0.0/ 24 (adaptá-lo conforme necessário) através do Pi.