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 ответов

19 просмотров

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

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 который надо дл...

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

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

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

А как старый хаскел с новым стыковать ? потому как тут работает https://play.haskell.org/saved/C3xpMzcd, а вот тут https://stepik.org/lesson/7602/step/9?unit=1473 нет ошибка C...
Fedor
131
что насчет пагинга? на осдеве непонятно(
Vi Chapmann 🪙
26
Вопрос я правильно понимаю что в коде newtype ArrowMap k v = ArrowMap { getArrowMap :: k -> Maybe v } getArrowMap есть функция типа k -> Maybe v, если да, то не понимаю задач...
Fedor
64
Ребят, что лучше для реверса: гидра или ида?
En Vind Av Sorg
26
Делаю велосипед логгер. К сообщению хочу прикрутить некоторую информацию, типа, кем отправлено, какой уровень, и всякое такое. И тут подумалось мне, почему бы не хранить весь...
Serjone
24
Как Вы считаете нормально ли в двадцатых годах 21 века в ВУЗах Российской Федерации обучать студентов работе с TASM? Не слишком ли это "архаично"? (Если оффтоп или флейм для э...
Spiker01
52
Всем привет! Использую gitlab-ci. Настроил gitlab-agent для деплоя в куб. При деплое проекта в логах такая ошибка: Executing deploy plan failed to watch "ns:my-project/Ingress...
Konstantin Moiseev
4
Комрады, хотел уточнить. Проперть в OnDestroy юнита-хозяина по-прежнему доступна? И еще уточнение: finalization юнита наступает раньше или позже OnDestroy?
Ed Doc
48
Продолжая диалог про свифт в проде – сейчас возник вопрос в активном наборе бекендеров. В основном в нашей компании мы фанаты Java Spring и полностью ей довольны. Однако найм ...
Guseyn
27
если загрузчик efi? если сама PML4 PDPT PDT PT лежит в неудобном для меня месте?
Vi Chapmann 🪙
8
Карта сайта