172 похожих чатов

Всем привет! Кто в теме? Создал сеть macvlan: docker network create -d

macvlan \
--subnet=192.168.174.0/22 \
--gateway=192.168.172.253 \
--ip-range 192.168.174.180/32 \
-o parent=ens192 \
test-net

Далее настроил docker-compose.yml:
version: '3.9'
services:

alpine: image: alpine:latest
hostname: alpine container_name: alpine
command: ['ping', '192.168.172.253', '-c4'] networks:
test-net: ipv4_address: 192.168.174.180
restart: unless-stopped

networks: test-net:
name: test-net
driver: macvlan
driver_opts:
parent: ens192
ipam:
config:
- subnet: "192.168.174.0/22"
ip_range: "192.168.174.180/32"
gateway: "192.168.172.253"

Запускаю docker-compose up и вижу, что пинг не проходит из контейнера до шлюза в локалке:
Recreating alpine ... done
Attaching to alpine
alpine | PING 192.168.172.253 (192.168.172.253): 56 data bytesalpine |
alpine | --- 192.168.172.253 ping statistics ---
alpine | 4 packets transmitted, 0 packets received, <span style="font-family: markup-bold;">100% packet loss</span>

С хоста где стоит docker шлюз 192.168.172.253 пингуется:
192.168.172.253 ping statistics ---4 packets transmitted, 4 received, 0% packet loss

Подскажите, что может мешать пингу?

16 ответов

13 просмотров

А нужно это все, чтобы ...?

Vladimir- Автор вопроса
Максим Мартынов
А нужно это все, чтобы ...?

чтоб контейнер был в одной подсети локальной. контейнер кстати получает IP 192.168.174.180

Насколько помню (года полтора назад решал такую задачку), еще на самом хосте нужно создать интерфейс macvlan и настроить маршрутизацию через него. А так все, как обычно, отдебажить надо. Как минимум, посмотреть на хосте ip a и ip route до и после создания сети/контейнеров в докере.

Вячеслав Малютин
Насколько помню (года полтора назад решал такую за...

Причем если создать на хосте macvlan с указанием гейтвея , то работать не будет, надо именно без гейтвея. И доступ будет только с хоста до контейнера и с контейнера до хоста и гейтвея. А для доступа с других машин в сети к контейнеру надо еще нат между интерфейсами - пакеты проходят в контейнер, а ответ нет. Вообще, я тоже до конца не доразобрался. Если у кого-то есть хорошая дока по теме, поделитесь.

Vanya Stogramm
Причем если создать на хосте macvlan с указанием г...

Да. Интерфейс macvlan без гейта нужно создавать, потому что уже есть основной интерфейс с гейтом. Потом роутингом через интерфейс macvlan хоста обеспечивается связанность между локалкой и контейнерами. Дока гуглится быстро - https://www.linuxtechi.com/create-use-macvlan-network-in-docker/

Вячеслав Малютин
Да. Интерфейс macvlan без гейта нужно создавать, п...

Спс за доку. Но мне кажется, что надо не роутинг, а достаточно нат-a. Я ставил pi-hole и юдп днс запросы в нее приходили в лог админки, даже снифер не понадобился, а ответы нет - явный признак нехватки ната.

Vanya Stogramm
Спс за доку. Но мне кажется, что надо не роутинг, ...

Как сделать NAT, если сеть хоста и сеть контейнеров одинаковые?

Вячеслав Малютин
Как сделать NAT, если сеть хоста и сеть контейнеро...

Ну может оно между родительским и созданным на хосте macvlan бегает и где-то там трансляция надо? Я не знаю) Надо будет разобраться))

Vanya Stogramm
Ну может оно между родительским и созданным на хос...

Насколько я помню, IP-адреса на физическом и macvaln интерфейсах хоста были разные. Этого было достаточно для решения моей задачи.

Vladimir- Автор вопроса
Вячеслав Малютин
Да. Интерфейс macvlan без гейта нужно создавать, п...

Эта инструкция, а где здесь gateway нужно пропустить?

Vladimir
screenshot Эта инструкция, а где здесь gateway нужно пропусти...

Емнип если руками создаешь  c помощью ip, то создается без гейтвея. Но такой вариант живет до перезагрузки. А когда будешь создавать с помощью nmcli , то с гейтвеем и надо явно задать для него пустое значение.

Vladimir- Автор вопроса
Vanya Stogramm
Емнип если руками создаешь  c помощью ip, то созда...

А можно подробнее. Ткни пальцем в этой инструкции где не нужно вручную вводить gateway?

Vladimir
А можно подробнее. Ткни пальцем в этой инструкции ...

Ну когда на хосте создаешь macvlan который надо для доступности контейнера с хоста или из локалки. В примере с ip оно создаст интерфейс без дефолтного гейтвея для него. А если будешь с nmcli создавать, то оно создаст интерфейс и соединение для него с гейтвеем... По идее если просто повторяешь мануал, то можешь не паритсья, это просто на будущее замечание, может пригодится ))

Vladimir
А можно подробнее. Ткни пальцем в этой инструкции ...

Я пока не читал. Вот мои какие-то записи. 1) способ, как в инструкциях sudo ip link add mac0 link enp3s0 type macvlan mode bridge sudo ip addr add 192.168.1.78/24 dev mac0 sudo ifconfig mac0 up 2) способ, если захочешь чтобы автоматом поднимался ифейс после ребута name=macvlan0 parent=enp3s0 ip="192.168.1.75/24" nmcli connection add type macvlan con-name $name ifname $name mode bridge dev $parent ip4 $ip ipv4.gateway "" nmcli connection modify macvlan0 connection.autoconnect yes nmcli connection up $name ну как-то так у меня было, я сам один раз делал )

Vladimir- Автор вопроса
Vanya Stogramm
Ну когда на хосте создаешь macvlan который надо дл...

Я тебя понял спасибо. Сегодня проверю.

Похожие вопросы

Обсуждают сегодня

читать файл максимально быстро? странный вопрос))
zamtmn
53
тоесть, указав return eax, сгенерируется никому ненужная инструкция mov eax,eax ?
Aiwan \ (•◡•) / _bot
24
Кто-нибудь решал проблему с автоматическим скроллингом к выбранной ячейке в TDBGrid в Lazarus? Проблема в том, что есть допустим 3 столбца, третий столбец виден наполовину, вк...
Дмитрий Логинов
1
Приветствуем всех! Устали без проектов? Если вы программист и хотите получать стабильные заказы, компания Elif предлагает вам недельный курс по поиску проектов и их ведению. ...
Elif
1
А чего сейчас в моде вместо Error для эксепшенов? А то я тут внезапно узрел что он не рекомендуется :) У Try::Tiny какой-то совершенно ужасный синтаксис если надо конкретные э...
Denis F
19
а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Чорт! Чорт! Чорт! Стала ставить через GetIt (написано же, что ручками не рекомендуется) Сломалось на дублировании моей TSkLabel. Чтож мне ее по всем проектам переименовывать в...
Катерина Свиридова
7
Привет. Сразу скажу, что на C/C++/Rust я не пишу, но тем не менее возникла потребность дебага C/C++/Rust кода. Суть: есть серверное приложение, которое периодически ведёт себ...
ninekeem 🐳
4
Hey someone plz help to resolve my issue here is my table... Log { id user_id type target_ct target_obj_id action_ct action_obj_id workspace_id created_at } i wanna fil...
Rahul Singh
1
всем привет! углубившись в плюсы и начав изучать реверсинг понял, что без асм'а никуда со своими высокоабстрактными представлениями начал изучать механизмы асма, и не совсем п...
9
Карта сайта