Как можно передать внешние пакеты mdns в Docker-контейнер? - PullRequest
0 голосов
/ 26 октября 2019

В моем контейнере работает демон avahi. Мобильное устройство находится в той же сети, что и хост этого докера (linux in vm), и мобильное приложение отправляет пакет mDNS и ожидает, что пакет mDNS с мобильного устройства может быть найден демоном avahi enter code here в контейнере. Кстати: хост - это Fedaro27 в ВМ.

  1. Образ контейнера и avahi не должны иметь проблем, так как это официальный релиз.
  2. Пакеты mDNS можно увидеть в докерепроверка хоста по Wireshark.
  3. В том же контейнере находится веб-сервер, к которому мобильное устройство может получить доступ через ip-вход (например: http://192.168.1.xx:8080)

docker run --sysctl "net.ipv6.conf.all.disable_ipv6=0 \
           net.ipv4.conf.all.forwarding=1 net.ipv6.conf.all.forwarding=1" \
           -p 8080:80 --dns=127.0.0.1 -it --volume \
           /dev/ttyACM0:/dev/ttyACM0 --privileged openthread/otbr \
           --ncp-path /dev/ttyACM0

2> Ниже приведен результат ifconfig

docker0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.17.0.1  netmask 255.255.0.0  broadcast 0.0.0.0
        inet6 fe80::42:cfff:fef7:6af2  prefixlen 64  scopeid 0x20<link>
        ether 02:42:cf:f7:6a:f2  txqueuelen 0  (Ethernet)
        RX packets 1161  bytes 364090 (355.5 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 55  bytes 7265 (7.0 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.0.101  netmask 255.255.255.0  broadcast 192.168.0.255
        inet6 fe80::ac79:aae9:d8ad:19b3  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:af:db:d0  txqueuelen 1000  (Ethernet)
        RX packets 59922  bytes 78671020 (75.0 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 30041  bytes 2255156 (2.1 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 14  bytes 1500 (1.4 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 14  bytes 1500 (1.4 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

veth4c4aef3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet6 fe80::5c3b:57ff:fe75:c77  prefixlen 64  scopeid 0x20<link>
        ether 5e:3b:57:75:0c:77  txqueuelen 0  (Ethernet)
        RX packets 36  bytes 4682 (4.5 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 182  bytes 23469 (22.9 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255
        ether 52:54:00:86:84:76  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

В настоящее время avahi в контейнере не может видеть пакеты mDNS мобильного телефона. Либо интерфейс Ethernet (docker0) не может видеть эти пакеты (проверка по Wireshark). Как настроить параметры хоста или докера?

...