LINUX.ORG.RU
ФорумAdmin

Docker mtu

 ,


0

1

Добрый день. Да я знаю что тема избитая, но ни как не могу найти ответ.

Тут озвучивают идентичную проблему

Опишу вопрос: Я пытаюсь изменить mtu для docker сети. Вот что имею сейчас

NETWORK ID     NAME              DRIVER      SCOPE
cd2d01a8acc6   bridge            bridge      local
dd8c6a9f4517   docker_gwbridge   bridge      local
3e35ba2e2099   host              host        local
0cc1f316585d   none              null        local
d1ce1ec9acbb   weave             weavemesh   local
brctl show
bridge name	bridge id		STP enabled	interfaces
docker0		8000.0242fcaba1fc	no		
docker_gwbridge		8000.0242521e3da7	no		veth07f48e9
							veth1652ce1
							veth1893f80
weave		8000.da8c4dfe6225	no		vethwe-bridge
							vethwl068b34874
							vethwl0d2d738d7

Три варианта как я пробую изменить mtu

1.Вар

/etc/docker/daemon.json
{
    "mtu": 1400
}

2.Вар

systemd docker 
--mtu=1400

Так как у меня не исп docker0 (он даже в состоянии DOWN) патаюсь поменять конкретно для docker_gwbridge

3.Вар - самый малопредпочтительный для меня.

docker network create -d bridge \
 --subnet 172.18.0.0/16 \
 --opt com.docker.network.bridge.name=docker_gwbridge \
 --opt com.docker.network.bridge.enable_icc=false \
 --opt com.docker.network.bridge.enable_ip_masquerade=true \
 --opt com.docker.network.driver.mtu=1400 \
 docker_gwbridge

Проверяю (рестартанул докер, перезагрузил ПК, создал сервер с нуля, повторил тест на родной ubuntu. Результат один и тот же) но mtu остаётся 1500.

13: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default 
    inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
23: docker_gwbridge: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    inet 172.18.0.1/16 brd 172.18.255.255 scope global docker_gwbridge

Правда при 3.Вар вижу 1400 в inspect

docker network inspect docker_gwbridge | grep mtu 
            "com.docker.network.driver.mtu": "1400"

Но интеррфейс то 1500!

И это не поведение конкретной сборки, ядра, версии. Тут какая то иная логика. И понять какая не могу.

Подскажите пожалуйста. Буду рад ссылке, ману, комменту, да хоть пинку в нужную сторону.

Спасибо.


Попробуй поменять его ifconfig-ом или какие там утилиты сейчас в линуксе для тюнинга параметров интерфейса (всмысле, те что ядру сразу сообщают а не обёртки в 10 слоёв).

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

firkax ★★★★★
()

Подсказки:

Связь между хостом и контейнером осуществляется с помощью пары интерфейсов типа veth. Это труба, то с типом ethernet, и оба конца этой трубы настраиваются отдельно.

В твоём случае, один из концов трубы подключается в бридж, другой передается контейнеру.

конфигурация сети докера и конфигурация сети контейнера - это разные конфигурации.

mtu пустого бриджа можно изменить после создания или в момент создания.

mtu бриджа может измениться после добавления в него интерейсов. Обычно он понижается до минимального mtu интерфейсов.

Теоретически, если ты правильно сконфигурировал в контейнере mtu, то увидеть ты это сможешь только после запуска контейнера.

vel ★★★★★
()
Последнее исправление: vel (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.