У меня возникла проблема с запросом/ответом ARP от контейнера ubuntu с платформой Windows в качестве узла докера.
Эксперимент проводится с очень простой установкой.
Следующий сетевой режим доступен как часть установки рабочего стола Docker в Windows.
D:\Docker\ubuntu> сеть докеров ls
ИДЕНТИФИКАТОР СЕТИ НАЗВАНИЕ ДРАЙВЕР ОБЛАСТЬ ПРИМЕНЕНИЯ
8375175c22dc мост местный мост
1b9942f6e958 хост хост локальный
f15c87f3e568 нет нулевой локальный
Извлеките последний образ Ubuntu (FROM ubuntu: последний) и запустите его, используя докер запустить команда
D:\Docker\ubuntu> docker run -i -t dockertest /bin/bash
root@4895113a218d:~#
Контейнер ubuntu работает в режиме мостовой сети и может видеть следующий интерфейс, доступный в контейнере.
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
инет 172.17.0.2 сетевая маска 255.255.0.0 широковещательная рассылка 172.17.255.255
эфир 02:42:ac:11:00:02 txqueuelen 0 (Ethernet)
RX-пакеты 4129 байт 5898871 (5,8 МБ)
Ошибки RX 0 отброшено 0 переполнение 0 кадр 0
Пакеты TX 1674 байта 95577 (95,5 КБ)
Ошибки передачи 0 отброшено 0 превышение пропускной способности 0 несущей 0 коллизий 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
инет 127.0.0.1 сетевая маска 255.0.0.0
loop txqueuelen 1000 (локальная петля)
Пакеты RX 0 байт 0 (0,0 Б)
Ошибки RX 0 отброшено 0 переполнение 0 кадр 0
Пакеты TX 0 байт 0 (0,0 Б)
Ошибки передачи 0 отброшено 0 превышение пропускной способности 0 несущей 0 коллизий 0
Затем я установил nmap в контейнере Ubuntu и попытался отправить запрос ARP на один из узлов в локальной сети с помощью команды nping. Но от этого конкретного узла (192.168.10.207) нет ответа даже через его доступный из хоста Windows.
root@1fdc2acb5928:~# nping --arp-тип ARP 192.168.10.207
Начиная с Nping 0.7.80 ( https://nmap.org/nping ) 21 марта 2022 г., 12:39 UTC.
SENT (0.0770s) ARP у кого 192.168.10.207? Скажите 172.17.0.2
SENT (1.0774s) ARP у кого 192.168.10.207? Скажите 172.17.0.2
SENT (2.0789s) ARP у кого 192.168.10.207? Скажите 172.17.0.2
SENT (3.0803s) ARP у кого 192.168.10.207? Скажите 172.17.0.2
SENT (4.0819s) ARP у кого 192.168.10.207? Скажите 172.17.0.2
Макс. ртт: Н/Д | Мин. время: N/A | Среднее время ожидания: нет данных
Отправлено необработанных пакетов: 5 (210 байт) | Rcvd: 0 (0B) | Проиграно: 5 (100,00%)
Nping выполнен: 1 IP-адрес пропингован за 5,16 секунды
В качестве альтернативы я попробовал команду ping, и она работает абсолютно нормально. Может быть его протокол уровня 3.
root@1fdc2acb5928:~# пинг 192.168.10.207
PING 192.168.10.207 (192.168.10.207) 56 (84) байт данных.
64 байта от 192.168.10.207: icmp_seq=1 ttl=37 время=8,00 мс
64 байта от 192.168.10.207: icmp_seq=2 ttl=37 время=5,79 мс
64 байта от 192.168.10.207: icmp_seq=3 ttl=37 время=5,97 мс
Конфигурация системы
- Докер-хост: Windows 10
- Образ докера: ubuntu: последний
- Приложение, используемое для проверки ARP: nping (устанавливается через пакет nmap)
Почему ARP не работает в док-контейнере Ubuntu с сетевым режимом, выбранным в качестве моста? Есть ли проблемы с протоколами уровня 2 в режиме мостовой сети?
Может ли кто-нибудь помочь мне решить эту проблему?