Что я хочу получить:
Я хочу иметь возможность подключения к нескольким беспроводным маршрутизаторам с одной физической машины (ноутбука), я не могу изменить их конфигурацию, поэтому они должны быть запущены DHCP-сервер со своей стороны. Единственное, что я могу сделать, это настроить ноутбук так, как я хочу. насколько я исследовал, MACVLAN - это путь к go для подключения к нескольким сетям с одного физического компьютера.
Топология сети должна быть динамической c, чтобы новые устройства могли присоединяться / отключаться во время выполнения.
Я планирую написать скрипт, который запускается на хосте и запускает контейнер каждый раз, когда подключается новое устройство, а также помещает созданный контейнер в новый macvlan. Я могу добиться этого, имея один свободный контейнер, который все время ищет новые маршрутизаторы WIFI для подключения, после подключения он отправляет сигнал на хост-машину, чтобы хост мог создать новый macvlan и развернуть новый контейнер.
Что у меня уже есть:
- У меня Ubuntu 18.04 работает в Virtual Box, в котором есть сетевые настройки: режим Premiscouse включен и адаптер NAT включен
- Есть docker хост, работающий в Ubuntu с одним контейнером (альпийский дистрибутив).
Я подписался на этот пост .
, поэтому у меня есть docker контейнер, работающий на macvlan, который я могу пропинговать с хоста Ubuntu.
Вот вывод docker network inspect 92360e976cfd
:
[
{
"Name": "pub_net",
"Id": "92360e976cfde6fa9b2aa85b7dfe50a8ebf6e9dbec0c2ad4025de684d388a24c",
"Created": "2020-04-12T23:37:58.441847504+04:00",
"Scope": "local",
"Driver": "macvlan",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": {},
"Config": [
{
"Subnet": "10.0.2.15/24",
"Gateway": "10.0.2.1"
}
]
},
"Internal": false,
"Attachable": false,
"Ingress": false,
"ConfigFrom": {
"Network": ""
},
"ConfigOnly": false,
"Containers": {
"e222393f1f6215999bc26626acf0015071e05448763f4155dac4099b86df9796": {
"Name": "modest_turing",
"EndpointID": "0da3d13d8c685b32d421433d34fc6e887e69e55a929df6c1f610cfdf75678590",
"MacAddress": "02:42:0a:00:02:03",
"IPv4Address": "10.0.2.3/24",
"IPv6Address": ""
}
},
"Options": {
"parent": "enp0s3"
},
"Labels": {}
}
]
и docker network ls
:
9979b3a1a4d1 bridge bridge local
6331af1d0644 host host local
b25f38901cf1 none null local
92360e976cfd pub_net macvlan local
Вопрос:
Как разрешить контейнерам, работающим на хосте, подключаться к сетям WiFi?