Asterisk의 OpenVPN 라우터로 Raspberry PI 사용


3

그래서, 나는 꽤 오랫동안 이것으로 머리를 두드리고 있습니다.

다음과 같은 구성이 있습니다.

  • OpenVPN 서버, IP 1.2.3.1
  • OpenVPN 서버에 연결된 별표 서버, IP 1.2.3.3
  • RaVberry PI, 로컬 인터페이스 192.168.0.17, OpenVPN IP 1.2.3.6에 연결
  • Raspberry PI와 동일한 로컬 네트워크의 IP 전화, 로컬 IP 192.168.0.81

네트워크는 다음과 같이 구성됩니다.

  • 라즈베리의 로컬 연결은 eth0입니다
  • 라즈베리는 IP 192.168.0.91의 추가 가상 인터페이스 eth0 : 1을 갖습니다.
  • 라즈베리의 OpenVPN 연결은 tun0입니다
  • 전화의 로컬 IP는 192.168.0.81이며 게이트웨이는 192.168.0.91 (라즈베리)로 설정되어 있습니다.

라즈베리에서 iptables는 다음과 같습니다.

#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

따라서 전화를 걸고 전화를받을 수 있습니다 (VPN 서버에 직접 연결되어 있고 테스트를 위해 Zoiper를 사용하는 다른 랩톱이 있습니다). 전화로 전화를 걸 수 있고 전화에서 오디오로 전화에서 랩톱으로 작동하지만 전화에는 들어오는 오디오가 없습니다.

내가 뭘 잘못하고 있죠?

최신 정보

나는 또한 다음을 시도했다.

  1. 전화기에는 192.168.200.1 / 255.255.255.0 설정이 있으며 192.168.200.2 / 255.255.255.0이있는 라즈베리에 연결되어 있습니다 (라즈베리 ip는 전화의 관문입니다)

  2. tun ip 10.34.87.2가 포함 된 Raspberry pi (wlan0을 사용하여 wifi에 연결 한 다음 VPN에 연결)

  3. IPTables sudo iptables -A FORWARD -i eth0 -o tun0 -j ACCEPT sudo iptables -A FORWARD -i tun0 -o eth0 -j ACCEPT

  4. VPN 서버에서 (10.34.87.1)

route add 192.168.200.0/24 10.34.87.2

참고 : iptables는 가장 무도회가 없습니다. 이제 트래픽을 192.168.200.1-> 10.34.87.1 (vpn 서버)에서 라우팅 할 수 있었지만 다른 방법은 아닙니다.

어떤 아이디어?


나는 당신이 말하는 것과 정확히 작동하지 않는 것을 정확히 이해하지 못합니다. 랩톱에서 전화기로 전화를 걸 수 있으면 네트워크 라우팅에 문제가없는 것입니다. 통화가 제대로 설정되었지만 오디오가없는 경우 통화 설정 패킷을 통과 할 수 있지만 메시지가 아닌 필터링 설정이있을 수 있습니다 (VOIP 소프트웨어가 다른 포트 번호로 전환합니까?) 또는 랩톱의 오디오 구성에 문제가있을 수 있습니다.
JRI

TCP 덤프는 들어오는 RTP 트래픽이 전혀 없다는 것을 보여 주므로 오류를 찾았지만 어떻게 해결할 수 있는지 잘 모르겠습니다. RTP 시작 자체에는 보낸 사람의 IP 주소 (패킷 헤더가 아니라 본문)가 포함되어 있으므로 패킷이 라즈베리를 통해 전화에서 서버로 전송 될 때 라즈베리는 마치 라즈베리에서 온 것처럼 다시 씁니다. 패킷 내부에는 원래 IP가 남아 있습니다. 이제 netsed패킷을 즉시 다시 쓸 수 있는지 테스트 하고 있습니다.
Damir Kasipovic

구성된 IP 주소에 사용한 서브넷 마스크를 추가 할 수 있습니까?
Tim_Stewart

@ Tim_Stewart 255.255.255.0
Damir Kasipovic

답변:


-1

가장 무도회는 필수 요건입니까? 그렇지 않은 경우, 전화가 Pi를 기본 게이트웨이로 사용하므로 추가 노력없이 서버에 연결할 수 있습니다. 서버가 전화에 다시 연결할 수 있는지 확인하고 필요한 경우 서버에서 192.168.0.0/에 대한 경로를 추가하십시오. Pi를 통해 24 (필요에 따라 조정)


예. 그러나 VPN에 동적 IP가 있고 사전에 알려지지 않은 PI를 사용하여 여러 위치를 가질 것이라는 점을 감안할 때 서버에서 경로를 만드는 방법을 잘 모르겠습니다. 또한 이것은 실제로 해결 방법으로 들리지만 구현하려는 솔루션은 아닙니다.
Damir Kasipovic

해결책이 아니라 문제에 대한 해결책입니다. 원하는 것을 이해하면 파이를 구성하고 어딘가에 떨어 뜨려 작동합니까? pi가 이미 기본 게이트웨이 인 경우 서버의 경로에 대해서는 기본적으로 작동합니다. 그렇지 않은 경우 : ip route add 192.168.0.0/24 1.2.3.1을 통해 트릭을 수행해야합니다 (네트워크 주소 / 마스크를 필요에 맞게 조정하십시오). 이쪽을 봐 걸릴 : voip-info.org/wiki/view/NAT+and+VOIP
라우 프 M. Bencheraiet에게

그래서 기본적으로 제안하는 것은 라즈베리를 VPN 서버에 연결하고 IP ABCD를 얻은 다음 서버에 해당 경로를 추가하여 전화 IP (라즈베리에 연결됨)를 입력 한 다음 라즈베리에서 가장 무도회를 비활성화하는 것입니다. 그렇게하면 rtp 패킷을 수정할 필요가 없으며 연결된 장치는 원래 IP를 사용합니다. 이것의 단점은 옳다면 각 라즈베리가 서로 다른 로컬 IP 범위를 가져야하므로 서버에 여러 경로를 추가 할 수 있다는 것입니다.
다 미르 카 시포 비치

간단히 말해서, 그렇습니다! 단점은 당신이 언급 한대로입니다.
Raouf M. Bencheraiet

가능하면 편집을 참조하십시오
미르 Kasipovic
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.