LINUX.ORG.RU

Docker, сеть и мои заблуждения.

 ,


0

2

Прошу не пинать, честно гуглил старался и грыз кактус пока все лицо в иголках не стало. Но так и не понял.
Оскорблять можно, но только в одном сообщение с обьяснением в чем тут дело))

Есть Docker контейнер с L2TP серваком внутри. К нему подключается сервак. Хочется наладить связь между сервером на котором поднят Docker и тем что подключается к L2TP контейнеру. И все бы хорошо. Как прокинуть роуты вопрос не стоит. Да собственно не понятен только один момент.

Когда я с сервака на котором хостится Docker пингую внешний сервер. То IP адрессом источника является внешний IP сервера, а не внутрений в Docker сети.

Чтобы было понятнее:
8.8.8.8 - Внешний IP сервака с Docker.
172.17.0.1 - IP сервака с Docker в Docker сети.
172.17.0.2 - IP Docker контейнера
192.168.100.1 - IP L2TP сервера
192.168.100.10 - IP сервера который соединяется по L2TP

Тоесть когда я с сервера с Docker-ом пингую 192.168.100.10, на контейнер запрос приходит с 8.8.8.8 а не с 172.17.0.1 как я ожидаю. Пакет отлично доходит до 192.168.100.10, но ответ как вы понимаете он пытается отдать на 8.8.8.8. Даже если ping-у указать интерфейс с адресом 172.17.0.1 один черт пакеты приходят с 8.8.8.8



Последнее исправление: alter78rus (всего исправлений: 1)

8.8.8.8 - Внешний IP сервака с Docker.

Ларри, перелогинься уже.

ответ как вы понимаете он пытается отдать на 8.8.8.8

И правильно. Из-за любого ната это именно так и работает. Если он попытается отправить ответ на адрес во внутренней сети докера - он уже гарантированно никуда не дойдет.

Deleted
()

Все верно, контейнер ходит через NAT. Ты можешь запустить с --network host и жить спокойно. Докер все равно не про безопасность. А вот как металинкер — самое то.

anonymous
()
Ответ на: комментарий от Deleted

С NAT-ом как раз все понятно именно так он и работает. Тут притензий нету все так как и должно. Или я не уловил суть вашего ответа.
Но я не про то почему и как так, а как сделать так что-бы вся эта балалайка бегала не через NAT.
Я конечно сейчас воспользуюсь советом тов.Анона.
И на всякий случай вдруг я что-то не правильно понимаю. Я как говориться мужик простой делаю ifconfig вижу интерфейс docker0 с IP 172.17.0.1 и не понимаю почему я должен(а реальность говорит хожу) в эту подсеть через NAT. Или мне стоит перечитать документацию?

alter78rus
() автор топика
Ответ на: комментарий от alter78rus

Ты можешь своему контейнеру даже внешний IP назначить если очень хочется. Но я бы просто порт пробросил.

slapin ★★★★★
()
Ответ на: комментарий от slapin

Могу, но это не очень-то элегантно.
Но согласен очень даже могу, сейчас попробуем.

alter78rus
() автор топика
Ответ на: комментарий от slapin

Странно, но не могу просто порты прокнуть.
Похоже что не работает forwarding через контейнер, но он включен и на хосте и на контейнере. И в iptables from any to any.
Странно все это обычно красноглазю до победного, но что-то пропускаю зараза((

alter78rus
() автор топика
Ответ на: комментарий от slapin

Могу ошибаться, средствами самого Docker я могу лишь прокинуть порты из хоста в Docker. Но никак не не внутри контейнера.

alter78rus
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.