Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Configure MTU on azure-iot-edge network #6802

Closed
frankvdbh opened this issue Nov 29, 2022 · 2 comments
Closed

Configure MTU on azure-iot-edge network #6802

frankvdbh opened this issue Nov 29, 2022 · 2 comments

Comments

@frankvdbh
Copy link

I am trying to deploy a custom module that is setting up a VPN Connection.

I am investigating an issue with packet loss which might be related to MTU settings.
For this reason I want to lower the default MTU of the azure-iot-edge network.

Based on the documentation provided here: https://github.com/Azure/iotedge/blob/main/doc/networking.md
This should be possible by configuring moby engine out of band but I am not able to find how I could configure e.g. option com.docker.network.driver.mtu setting.
Second option according to the documentation is to pre-create the network.
I removed the default azure-iot-edge network, created it manually with modified MTU setting and then started iotedge services again. This results in an error that it is not able to find the network with the previous guid.

2022-11-29T19:59:46Z [INFO] - Starting module edgeAgent...
2022-11-29T19:59:46Z [INFO] - Starting new listener for module edgeAgent
2022-11-29T19:59:46Z [INFO] - Starting workload API...
2022-11-29T19:59:46Z [INFO] - Workload API stopped
2022-11-29T19:59:46Z [WARN] - container runtime error
Caused by:
HTTP 404 Not Found: network 9e1e637bba1807a09af6214a7cc61b1cd88fce2d9c89955691414be1d498c994 not found
2022-11-29T19:59:46Z [WARN] - Error in watchdog: Failed to start Edge runtime: runtime operation error: start module "edgeAgent"

Some related references:
https://mlohr.com/docker-mtu/
moby/libnetwork#2661
https://techulus.xyz/fixing-docker-mtu-for-private-networks-and-vpns/

Expected Behavior

Support for changing the MTU setting of the azure-iot-edge network, ideally through some options in config.toml / env. vars /..

Current Behavior

Not yet able to change

Context (Environment)

Device Information

  • Host OS : Ubuntu 20.04
  • Architecture : amd64
  • Container OS : Linux containers

Runtime Versions

  • aziot-edged : 1.4.3
  • Edge Agent: 1.2
  • Edge Hub: 1.2
  • Docker/Moby:

:/etc/aziot# docker version
Client:
Version: 20.10.21+azure-1
API version: 1.41
Go version: go1.18.7
Git commit: baeda1f82a10204ec5708d5fbba130ad76cfee49
Built: Tue Oct 25 17:53:02 UTC 2022
OS/Arch: linux/amd64
Context: default
Experimental: true

Server:
Engine:
Version: 20.10.21+azure-1
API version: 1.41 (minimum version 1.12)
Go version: go1.18.7
Git commit: 3056208812eb5e792fa99736c9167d1e10f4ab49
Built: Tue Oct 25 11:44:15 2022
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.5.14+azure-1
GitCommit: b84d0b151c2395a5917996d602b192ce1e0fa461
runc:
Version: 1.1.4
GitCommit: 5fd4c4d144137e991c4acebb2146ab1483a97925
docker-init:
Version: 0.19.0
GitCommit:

@arsing
Copy link
Member

arsing commented Nov 30, 2022

This should be possible by configuring moby engine out of band but I am not able to find how I could configure e.g. option com.docker.network.driver.mtu setting.

It's not possible to configure the MTU via the IoT Edge config. The dockerd API for creating networks is https://docs.docker.com/engine/api/v1.41/#tag/Network/operation/NetworkCreate . Out of that, the IoT Edge config lets you specify the EnableIPv6 value and the IPAM object, but what you want to configure is the Options object.

So yes, creating the network yourself is the way to go.

This results in an error that it is not able to find the network with the previous guid.

The "it" in this case is the edgeAgent container that was created against the original network. You need to docker rm all the containers that were created against the original network, so that edged will recreate them on the new network.

@arsing arsing self-assigned this Nov 30, 2022
@frankvdbh
Copy link
Author

Many thanks!
I indeed removed the containers explicitly now and then they take the manually created network.
The MTU setting also fixed my original issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants