EdgeVPNio / evio

Virtualized overlay networking for the fog. The Evio network spans the continuum, from the cloud to the edge, providing a virtual private layer 2 network suitable for edge devices in IoT workloads.
MIT License
44 stars 15 forks source link

Node nodes cannot communicate with each other #28

Closed hothotstreet closed 1 year ago

hothotstreet commented 2 years ago

I deployed an XMPP server by myself, then deployed node node according to the operation manual on the official website, and loaded node node using the configuration given on the server, but failed to connect. The following is the configuration and error.log of my node, please check where the problem is.

config-001.json ` { "CFx": { "Model": "Default", "Overlays": [ "Test1" ] }, "Logger": { "LogLevel": "INFO", "Device": "File", "Directory": "/var/log/evio/", "CtrlLogFileName": "ctrl.log", "TincanLogFileName": "tincan_log", "MaxFileSize": 10000000, "MaxArchives": 2 }, "Signal": { "Enabled": true, "Overlays": { "Test1": { "HostAddress": "192.168.0.210", "Port": "5222", "Username": "Test1_node1", "Password": "ygxfvvmjqoqduufa", "AuthenticationMethod": "PASSWORD" } } }, "Topology": { "PeerDiscoveryCoalesce": 1, "Overlays": { "Test1": { "Name": "SymphonyRing", "Description": "Scalable Symphony Ring Overlay for Bounded Flooding.", "MaxSuccessors": 2, "MaxOnDemandEdges": 1, "MaxConcurrentEdgeSetup": 5, "Role": "Switch" } } }, "LinkManager": { "Dependencies": [ "Logger", "TincanInterface", "Signal" ], "Stun": [ "192.168.0.210:19302" ], "Turn": [{ "Address": "192.168.0.210:3478", "User": "Test1_node1", "Password": "ygxfvvmjqoqduufa" }], "Overlays": { "Test1": { "Type": "TUNNEL", "TapName": "tnl-" } } }, "UsageReport": { "Enabled": true, "TimerInterval": 3600, "WebService": "https://qdscz6pg37.execute-api.us-west-2.amazonaws.com/default/EvioUsageReport" }, "BridgeController": { "Dependencies": [ "Logger", "LinkManager" ], "BoundedFlood": { "LogDir": "/var/log/evio/", "LogFilename": "bf.log", "LogLevel": "INFO", "BridgeName": "edgbrTest1", "DemandThreshold": "100M", "FlowIdleTimeout": 60, "FlowHardTimeout": 60, "MulticastBroadcastInterval": 60, "MaxBytes": 10000000, "BackupCount": 0, "ProxyListenAddress": "", "ProxyListenPort": 5802, "Overlays": { "Test1": { "DemandThreshold": "10M", "FlowIdleTimeout": 60, "FlowHardTimeout": 60, "MaxOnDemandEdges": 3 } } }, "Overlays": { "Test1": { "NetDevice": { "AutoDelete": true, "Type": "OVS", "SwitchProtocol": "BF", "NamePrefix": "edgbr", "MTU": 1410, "AppBridge": { "AutoDelete": true, "Type": "OVS", "NamePrefix": "brl", "IP4": "10.10.100.1", "PrefixLen": 24, "MTU": 1410, "NetworkAddress": "10.10.100.0/24" } }, "SDNController": { "ConnectionType": "tcp", "HostName": "127.0.0.1", "Port": "6633" } } } } }

ctrl.log on noed [20220429 08:10:02.719] INFO:root: Logger: Module loaded [20220429 08:10:02.719] INFO:TincanInterface: Creating Tincan control link [20220429 08:10:02.737] INFO:TincanInterface: Module loaded [20220429 08:10:02.737] INFO:Signal: Module loaded [20220429 08:10:02.737] WARNING:LinkManager: OverlayVisualizer module not loaded. Visualization data will not be sent. [20220429 08:10:02.738] INFO:LinkManager: Module Loaded [20220429 08:10:02.738] WARNING:Topology: OverlayVisualizer module not loaded. Visualization data will not be sent. [20220429 08:10:02.738] INFO:Topology: Module loaded [20220429 08:10:02.739] INFO:Signal: No keyring available [20220429 08:10:04.349] INFO:BridgeController: Module Loaded [20220429 08:10:04.349] INFO:UsageReport: Module loaded [20220429 08:10:34.363] WARNING:root: Signal: Timer Method exception:'Transport' Traceback (most recent call last): File "/opt/evio/framework/CFxHandle.py", line 135, in __timer_worker self._cm_instance.timer_method() File "/opt/evio/modules/Signal.py", line 512, in timer_method self._circles[overlay_id]["Transport"].wait_until_initialized() KeyError: 'Transport'

[20220429 08:11:04.364] WARNING:root: Signal: Timer Method exception:'Transport' Traceback (most recent call last): File "/opt/evio/framework/CFxHandle.py", line 135, in __timer_worker self._cm_instance.timer_method() File "/opt/evio/modules/Signal.py", line 512, in timer_method self._circles[overlay_id]["Transport"].wait_until_initialized() KeyError: 'Transport'

[20220429 08:11:34.365] WARNING:root: Signal: Timer Method exception:'Transport' Traceback (most recent call last): File "/opt/evio/framework/CFxHandle.py", line 135, in __timer_worker self._cm_instance.timer_method() File "/opt/evio/modules/Signal.py", line 512, in timer_method self._circles[overlay_id]["Transport"].wait_until_initialized() KeyError: 'Transport'

`

kcratie commented 2 years ago

Thanks for reporting this issue. The slixmpp.ClientXMPP instance never completes initialization so the Transport entry in the dict is not set and hence the subsequent errors. The attached log snippet doesn't indicate what is causing the failure, just that the object was never created. I would suggest requesting and using a trial account (https://edgevpn.io/trial/) to eliminate the possibility that there maybe an issue interacting with your XMPP server. If it does persist, please verify that you are using Ubuntu 18 or 20, you are using python 3.8, and look for any errors from the command "journalctl -u evio". You can also check your XMPP server if user Test1_node1 is logged in.

hothotstreet commented 2 years ago

Thanks for reporting this issue. The slixmpp.ClientXMPP instance never completes initialization so the Transport entry in the dict is not set and hence the subsequent errors. The attached log snippet doesn't indicate what is causing the failure, just that the object was never created. I would suggest requesting and using a trial account (https://edgevpn.io/trial/) to eliminate the possibility that there maybe an issue interacting with your XMPP server. If it does persist, please verify that you are using Ubuntu 18 or 20, you are using python 3.8, and look for any errors from the command "journalctl -u evio". You can also check your XMPP server if user Test1_node1 is logged in.

hello,I used the configuration you sent to me and it still didn't work. The error is as follows ctrl.log [20220505 01:55:49.292] WARNING:OverlayVisualizer: Failed to send data to the collector webservice (http://:5000/EVIO/nodes/1bebd509af584913a09c89c6eb9e2599). Exception: Invalid URL 'http://:5000/EVIO/nodes/1bebd509af584913a09c89c6eb9e2599': No host supplied [20220505 01:56:20.568] WARNING:OverlayVisualizer: Failed to send data to the collector webservice (http://:5000/EVIO/nodes/1bebd509af584913a09c89c6eb9e2599). Exception: Invalid URL 'http://:5000/EVIO/nodes/1bebd509af584913a09c89c6eb9e2599': No host supplied [20220505 01:56:50.570] WARNING:OverlayVisualizer: Failed to send data to the collector webservice (http://:5000/EVIO/nodes/1bebd509af584913a09c89c6eb9e2599). Exception: Invalid URL 'http://:5000/EVIO/nodes/1bebd509af584913a09c89c6eb9e2599': No host supplied config-001.json { "CFx": { "Overlays": [ "TESTxi" ] }, "Logger": { "LogLevel": "WARNING", "Directory": "/var/log/evio/" }, "Signal": { "Overlays": { "TESTxi": { "HostAddress": "trial.edgevpn.io", "Port": "5222", "Username": "TESTxi_node1@trial.edgevpn.io", "Password": "xxxxxxxxxxxxxxxx", "AuthenticationMethod": "PASSWORD" } } }, "Topology": { "Dependencies": [ "Logger", "TincanInterface", "LinkManager", "OverlayVisualizer" ], "Overlays": { "TESTxi": { "MaxSuccessors": 2, "MaxOnDemandEdges": 3, "Role": "Switch" } } }, "LinkManager": { "Dependencies": [ "Logger", "TincanInterface", "Signal", "OverlayVisualizer" ], "Stun": [ "stun.l.google.com:19302", "stun1.l.google.com:19302" ], "Turn": [{ "Address": "trial.edgevpn.io:3478", "User": "TESTxi_node1", "Password": "hqaorzcctawvxkbz" }], "Overlays": { "TESTxi": { "Type": "TUNNEL", "TapNamePrefix": "tnl" } } }, "UsageReport": { "Enabled": true, "TimerInterval": 3600, "WebService": "https://qdscz6pg37.execute-api.us-west-2.amazonaws.com/default/EvioUsageReport" }, "BridgeController": { "BoundedFlood": { "LogDir": "/var/log/evio/", "LogFilename": "bf.log", "LogLevel": "WARNING", "MaxBytes": 10000000, "BackupCount": 10, "TrafficAnalysisInterval": 10, "StateLoggingInterval": 60, "ExtendedLogging": true, "ProxyListenAddress": "", "ProxyListenPort": 5802, "Overlays": { "TESTxi": { "DemandThreshold": "10M", "FlowIdleTimeout": 60, "FlowHardTimeout": 60, "MaxOnDemandEdges": 3 } } }, "Overlays": { "TESTxi": { "NetDevice": { "AutoDelete": true, "Type": "OVS", "SwitchProtocol": "BF", "NamePrefix": "evi", "MTU": 1410, "AppBridge": { "AutoDelete": true, "Type": "OVS", "NamePrefix": "app", "IP4": "10.10.100.1", "PrefixLen": 24, "MTU": 1370 } }, "SDNController": { "ConnectionType": "tcp", "HostName": "127.0.0.1", "Port": "6633" } } } } } Start docker under Node docker run -d -v /home/$USER/evio/config/config-001.json:/etc/opt/evio/config.json -v /home/$USER/evio/logs/001:/var/log/evio/ --rm --privileged --name evio001 --network dkrnet edgevpnio/evio-node:21.9.0 /sbin/init

what is the problem, The configuration file does not specify the connection to port 5000

hothotstreet commented 2 years ago

Thanks for reporting this issue. The slixmpp.ClientXMPP instance never completes initialization so the Transport entry in the dict is not set and hence the subsequent errors. The attached log snippet doesn't indicate what is causing the failure, just that the object was never created. I would suggest requesting and using a trial account (https://edgevpn.io/trial/) to eliminate the possibility that there maybe an issue interacting with your XMPP server. If it does persist, please verify that you are using Ubuntu 18 or 20, you are using python 3.8, and look for any errors from the command "journalctl -u evio". You can also check your XMPP server if user Test1_node1 is logged in.

hello,Can you help me with this problem

renatof commented 2 years ago

Hello, I can see this XMPP user logged in. The messages you show are warnings and they should not impact the execution of the system. Have you tried logging in with a second node and pinging? (Also, please remove credential information (TURN username, password) from configuration files if you post in the future) --rf

hothotstreet commented 2 years ago

Hello, I can see this XMPP user logged in. The messages you show are warnings and they should not impact the execution of the system. Have you tried logging in with a second node and pinging? (Also, please remove credential information (TURN username, password) from configuration files if you post in the future) --rf

Thanks for your reply. I changed the password. This log is an alarm, but more importantly, my two nodes are disconnected, the log is only this log.