Привет пользователям StackOverflow.
Сейчас я изучаю docker nat network, особенно в iptables.
Я выполнил команду docker, как показано ниже. Сделайте его доступным с удаленного сервера.
docker run -d -p 32170:80 --name nginx_server nginx
Когда я исследую таблицу iptables nat. Я нашел что-то странное.
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
DOCKER all -- anywhere anywhere ADDRTYPE match dst-type LOCAL
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
DOCKER all -- anywhere !localhost/8 ADDRTYPE match dst-type LOCAL
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
MASQUERADE all -- 172.17.0.0/16 anywhere
RETURN all -- 192.168.123.0/24 base-address.mcast.net/24
RETURN all -- 192.168.123.0/24 255.255.255.255
MASQUERADE tcp -- 192.168.123.0/24 !192.168.123.0/24 masq ports: 1024-65535
MASQUERADE udp -- 192.168.123.0/24 !192.168.123.0/24 masq ports: 1024-65535
MASQUERADE all -- 192.168.123.0/24 !192.168.123.0/24
MASQUERADE tcp -- 172.17.0.2 172.17.0.2 tcp dpt:5000
MASQUERADE tcp -- 172.17.0.3 172.17.0.3 tcp dpt:http
Chain DOCKER (2 references)
target prot opt source destination
RETURN all -- anywhere anywhere
DNAT tcp -- anywhere anywhere tcp dpt:5000 to:172.17.0.2:5000
DNAT tcp -- anywhere anywhere tcp dpt:32170 to:172.17.0.3:80
Когда я искал, пакет сначала зарегистрировался PREROUTING
. Таким образом, его правило, как показано ниже, и пакет должен go to DOCKER
цепочка.
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
DOCKER all -- anywhere anywhere ADDRTYPE match dst-type LOCAL
После того, как он пришел в DOCKER
цепочку. Мой вопрос здесь ... Как показано ниже, все пакеты сопоставляются с RETURN
и возвращаются к предыдущей цепочке. Если это правильно, то когда его исходный адрес изменяется на docker контейнер и когда его порт изменяется на docker порт?
Chain DOCKER (2 references)
target prot opt source destination
RETURN all -- anywhere anywhere
Подводя итог, у меня есть два вопроса
- Что означает
ADDRTYPE match dst-type LOCAL
? - Когда и где внешний источник и порт пакета будут изменены в iptables?
- Есть ли какие-либо ссылки на iptables NAT в docker ?