bigbluebutton / bbb-install

BASH script to install BigBlueButton in 30 minutes.
GNU Lesser General Public License v3.0
617 stars 539 forks source link

Error with Check_host #205

Open tushrkhrbkr opened 4 years ago

tushrkhrbkr commented 4 years ago

I am trying to install BBB on a server. The server is behind NAT and has IP in series 192.168.x.x (local IP). The ADSL Modem has Public IP. Ports are forwarded. Checked as per the procedure mentioned here https://docs.bigbluebutton.org/2.2/configure-firewall.html . While running the script, it stopped at Check_host. If check_host is commented, the installation goes smooth. But, the BBB does not work and gives error ICE 1002 and ICE 1020. I checked nmap for my domain from external network and found 80 and 443 are open. I checked nmap for same external IP from BBB Server and found 21, 23 and 80 are open. Stucked here. Please help me to resolve the issue @ffdixon @farhatahmad .

tushrkhrbkr commented 4 years ago

@ffdixon Please find time to reply

ffdixon commented 4 years ago

The code at

https://github.com/bigbluebutton/bbb-install/blob/master/bbb-install.sh#L489

is going to make sure the DNS entry resolves, and then calls get_ip

https://github.com/bigbluebutton/bbb-install/blob/master/bbb-install.sh#L386

to try and determine if you have an externa/internal IP address. If the DNS resolves to an external IP address, the script will stop nginx, listen on port 443 (of the local host) and then try to make a connection to the external IP address on port 443 (using nc -zvw3 $external_ip 443).

If that check clears, than you server is reachable by it's external IP address. If not, it will fail because going forward (i.e. configuring BigBlueButton to use the external IP address) won't work as connections are not reaching the internal IP address of your server.

Setting up behind NAT is always challenging as you must have the proper ports and UDP mapping from your firewall to the BigBlueButton server.

But, the BBB does not work and gives error ICE 1002 and ICE 1020

This suggests the UDP mapping isn't in place.

Is it an option for you to install BigBlueButton on an external server with a public IP address and DNS name?

tushrkhrbkr commented 4 years ago

Thanks @ffdixon for reply. I tweaked the script by editing getIP() function to compulsory assign external and internal IP. It runs perfectly fine behind NAT. # Check if the external IP reaches the internal IP if [ ! -z "$external_ip" ] && [ "$IP" != "$external_ip" ]; then INTERNAL_IP=$IP IP=$external_ip fi But, may be it just a tweak and not a perfect solution. This is also possible only if I have static External IP. May be you can throw some light on using Dynamic External IP and about the changes in firewall so as not to use Tweak.

Thank You

tushrkhrbkr commented 4 years ago

@ffdixon Please reply to the questions

michi-80337 commented 2 years ago

I'm sorry, but BigBlueButton will not work with a dynamic IP address, because its components need to get reconfigured every time the IP address changes. Please see the install documentation for further details about the prerequisites to run a BigBlueButton server.

Negotiating a new IP address is a thing, that happens between your router and your providers router when the old connection was closed and a new connection is created. There is no praticable way for BigBlueButton to get informed about this reconnection and the IP address change. The same is true for DHCP in the local LAN. Whenever your DHCP server assigns your local system a new IP address, the configuration of BigBlueButton has to be changed, too.