контейнер?
Конкретнее: форвардит только пакеты которые приходят из локалки, пакеты же которые приходят через port forward на роутере не форвардит
Запускаю: docker run -p 192.168.1.120:53:53/udp -p 192.168.1.120:53:53/tcp -it --rm alpine sh -c 'apk add tcpdump; tcpdump -iany port 53'
Если сделать nslookup lolava.xyz 192.168.1.120 на компе в сети роутера то все работает и пакеты приходят в контейнер:
Хост:
15:11:25.138166 eno2 In IP 192.168.1.6.38890 > 192.168.1.120.53: 45804+ A? lolava.xyz. (28)
15:11:25.138249 docker0 Out IP 192.168.1.6.38890 > 172.17.0.3.53: 45804+ A? lolava.xyz. (28)
15:11:25.138259 veth5f51395 Out IP 192.168.1.6.38890 > 172.17.0.3.53: 45804+ A? lolava.xyz. (28)
Контейнер:
12:11:25.138262 eth0 In IP 192.168.1.6.38890 > 024efd551902.53: 45804+ A? lolava.xyz. (28)
Если сделать nslookup lolava.xyz <MY_IP> на впске то пакеты приходят на хост, но не попадают в контейнер:
Хост:
15:13:01.324673 eno2 In IP <VPS_IP>.60256 > 192.168.1.120.53: 22303+ A? lolava.xyz. (28)
А потом тишина и на хосте и в контейнере
В докер чате как я понял идей нет ни у кого
1) сети в контейнере реализованы через нетворк неймспейс - по сути виртуальный хост 2) смотри iptables таблицы на хосте 3) глянь через tcpdump через ip netns yourns exec tcpdump ... что вообще ходит по сети - может арпы какие нить прилетают или еще чет ps погугли как вытянуть нетнс докера чтоб он для ip netns был доступен - там симлинку кинуть из /proc/PID/... надо в нужную папку вроде
Я правильно понял, что -p это порт маппинг? Ну так конечно у тебя ничего работать не будет, ты маппишь только на конкретный destination address. Просто мапь через -p 53.
У меня два интерфейса и мне нужно чтобы именно с одного слушался трафик
Ооо, спасибо за указание в сторону нетнс Буду копать
Обсуждают сегодня