easy-nmos icon indicating copy to clipboard operation
easy-nmos copied to clipboard

Can not access to control page via browser

Open SileNt525 opened this issue 2 years ago • 3 comments

Hi Richard,

I'm a beginner of docker and Linux only have a little bit experience of docker and docker-compose. My problem is that when I modify the docker-compose.yaml file and change the ip address to match the subnet of my ubuntu 22.04 laptop NIC, such as the enp4s0 or wlp5s0 interface, cpp will run but nmos-testing will not. Based on another issue report and the log, I understand that the problem of nmos-testing is relate to internet connection, but my question is, when easy-nmos set the macvlan to based on both the docker0 and enp4s0 or wlp5s0, I cannot access to the easy-nmos controller page via browser, even if I use the ip address or localhost:80. Could you please guild me to solve this problem?

My docker0 is 172.17.0.0/16, wls5p0 is 192.168.2.0/24, if I modify the macvlan interface to docker0, and use 172.17.0.0/16, the docker-compose shows failed to create network easy-nmos-master_external: Error response from daemon: Pool overlaps with other one on this address space if I use wlp5s0 which is a wireless nic but only for testing easy-nmos and to make sure the internet connection, the container will running, but I can't access both controller or others page.

Many thanks!

My docker-compose file content:

version: '3.6'

services:

Create NMOS Registry/Controller container instance

nmos-registry: image: rhastie/nmos-cpp:latest container_name: nmos-registry hostname: nmos-registry domainname: local ports: - "80-81:80-81" - "1883:1883" volumes: - "./registry.json:/home/registry.json" environment: - RUN_NODE=FALSE networks: external: ipv4_address: '172.17.0.241'

Create NMOS Virtual Node container instance

nmos-virtnode: image: rhastie/nmos-cpp:latest container_name: nmos-virtnode hostname: nmos-virtnode domainname: local ports: - "80-81:80-81" volumes: - "./node.json:/home/node.json" environment: - RUN_NODE=TRUE networks: external: ipv4_address: '172.17.0.242' depends_on: - nmos-registry

Create AMWA NMOS Testing container instance

nmos-testing: image: amwa/nmos-testing:latest container_name: nmos-testing hostname: nmos-testing domainname: local entrypoint: | /bin/bash -c "/etc/init.d/dbus start; /etc/init.d/avahi-daemon start; python3 nmos-test.py" ports: - "5000:5000" volumes: - "./UserConfig.py:/config/UserConfig.py" networks: external: ipv4_address: '172.17.0.243' depends_on: - nmos-virtnode

networks: external: # Create external macvlan subnet using host physical interface allowing containers to have their own IP addresses driver: macvlan driver_opts: parent: docker0 ipam: config: - subnet: 172.17.0.0/16

SileNt525 avatar Oct 05 '22 12:10 SileNt525

Also, I try to change the NIC from wireless interface wlp5s0 to wired interface enp4s0, the subnet also 192.168.2.0/24 which is same than wlp5s0, but still cannot access the controller page. BTW, when I input the docker network ls, I can see the macvlan interface is running, and based on this wired interface, the nmos-testing container can be work, or not stop due to no internet connection.

NETWORK ID NAME DRIVER SCOPE e961fb0a99c6 bridge bridge local 360fb110c122 easy-nmos-master_external macvlan local d3ec9ba43cad host host local e0f7ff562623 none null local

SileNt525 avatar Oct 05 '22 18:10 SileNt525

Ok... You have a couple of mistakes here...

Firstly, in the networks sections of the YAML you have a parent paramater. This refers to the "interface" you want to use for the MACVLAN bridge. In your case you want to use either enp4s0 or wlp5s0 and not docker0

Secondly, the MACLAN creates a bridge to this interface. You must have the interface IP and all the static IP's you define in the YAML in the same subnet and also set this subnet in the networks section of the YAML. In your example you wire IP address might be 192.168.2.20 on your interface. As such you need to set the subnet to 192.168.2.0/24 and then set static IP's such as 192.168.2.220 - 192.168.2.222 etc.

Finally you should use an external host (eg. browser) to communication with the IP address of the controller. You must not use Firefox on the host etc. There is no communication path between your IP address on the host and the static IP addresses. I always use a browser on another host completely.

Good luck and I hope this helps... Rich.

rhastie avatar Oct 05 '22 18:10 rhastie

Wooo, many thanks, it's really work, finally I change to my Mac and running ubuntu in VM, all is no problem! Thanks again, and have a great day!

SileNt525 avatar Oct 05 '22 19:10 SileNt525