( tselmeci | 2020. 05. 07., cs – 09:07 )

Adott egy beágyazott HW eszköz, ami raw ethernet frame-eket (L2) bocsát ki magából. A type mező értéke nem szabványos, mivel házi protokollt használunk (beacon, low level management az eszközökön). Adott a vezérlő SW (linux), ami ezeket a raw ethernet frame-eket veszi, illetve önmaga is ki tud adni ilyeneket (pl. beacon). A HW eszközök által kibocsátott beacon frame-eket látva tud egy listát készíteni az adott switchen lévő eszközökből. Hasznos, bevált.

Ha a vezérlő SW-t (linux) átteszem egy docker konténerbe (linux hoston), akkor ezek a L2 raw ethernet frame-ek nem jutnak el hozzá, így a SW nem tud automatikus felderítést végezni a HW eszközök között. A konténer a docker default bridge networkinget használja. Minden (docker host, HW eszköz) ugyanazon a switchen van.

A cél az lenne, hogy a konténerben futó SW megkapja a raw ethernet frame-eket a konténeren kívüli, de ugyanazon a switchen lévő HW-től.

(A konténerben futó SW által kibocsátott ugyanolyan raw ethernet frame-ek látszódnak a host gépen)

Láttam, hogy szóba jöhet esetleg host vagy macvlan networking használata, de egy kicsit bonyolultnak tűnik a bekonfigurálása. A konfigurálást szerelők fogják végezni, és emiatt nem lehet túl bonyolultra terveznünk.

Valami egyszerű megoldás kéne ;) Amúgy arra is nyitott vagyok, hogy docker helyett más konténerizálót használjak (lxc?), ha azzal ez egyszerűbben oldható meg.

Kösz a segítséget!