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

49 просмотров

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

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

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

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта