Суроо туннелдин IP дарегине келип, ошол эле контейнерден кошуна кызматтын дарегине чыгат. Ушул эки учурдун ортосунда DNAT багытты кайра жазды, ал эми пакет VPN контейнери үчүн кириш болуудан калды. Эми ал башка эреже менен бааланган багытталган трафик. Бул өзгөрүү туннел дареги үчүн туура көрүнгөн firewall эрежесинин которулган байланышка эмнеге таасир этпей турганын түшүндүрөт.

Которуудан кийин пакетти көзөмөлдөңүз

10.90.0.0/24 кардар пулун жана 10.90.0.1 туннел дарегин алыңыз. Бир көпүрөдө эки контейнер бар: 192.0.2.2 VPN ды, ал эми 192.0.2.3 колдонмону иштетет. Кардар 10.90.0.1:8080 ге туташат, ал эми VPN контейнеринин ат мейкиндигиндеги DNAT эрежеси аны колдонмонун чыныгы дарегине жана портуна кайра жазат. Андан кийин маршрут пакетти көпүрө аркылуу жөнөтөт. Бул даректер мисал катары берилген, жайгаштыруу рецепти эмес.

Колдонмо чындап угуучу порт хостто жарыяланган кандайдыр бир порттон айырмаланышы мүмкүн. Эки сан дал келет деп болжобостон, контейнердин ичиндеги угуучуну окуңуз.

Уруксат багыттоо жолуна таандык

VPN контейнерине IP багыттоо жана кардар пулу, колдонмонун дареги жана көздөлгөн порт менен чектелген багыттоо чечими керек. Орнотулган жоопторго өз уруксаты керек. Баштапкы туннел дарегине дал келген эреже DNAT тан кийин дал келбейт, анткени багыт буга чейин өзгөргөн. INPUT уруксаты бул хостко мындан ары адрестелбеген трафик үчүн туура эмес илгич.

Аймакты тар кармаңыз: бир булак диапазону, бир багыт, бир кызмат. Кенен багыттоо эрежесин жазуу оңой, ал эми кийин коргоо алда канча кыйын.

docker exec vpn-container ip route get 192.0.2.3
docker exec vpn-container iptables -t nat -S
docker exec vpn-container iptables -S FORWARD

Docker дин тизмелери сиздин контейнердин тизмелери эмес

Контейнердин ат мейкиндигиндеги эрежелер Docker хосттун эрежелери эмес. Трафик туннел интерфейсинен көпүрөгө өткөндө, хосттун көпүрө firewall ы башка чечим кабыл алышы мүмкүн. Docker дин iptables backend инде документтелген багыттоо тизмелери жана DNAT тан кийинки дал келүү чекиттери ушул чечим пайда болгон жер.

Docker firewall маалымдамасы ошол тизмелерди жана DNAT тан кийинки дал келүүнү сүрөттөйт. Жетишпеген уруксатты Docker дин firewall башкаруусун өчүрүү же ар бир тизмени кенен кылуу менен оңдобоңуз, анткени бул сиз колдонууга аракет кылган чекти алып салат.

Кайтуу жолун атайын тандоого айландырыңыз

Эгер булак дареги сакталса, колдонмо 10.90.0.x ти көрөт жана жоопторду VPN контейнери аркылуу кайтарып багыттоого тийиш. Болбосо анын кадимки Docker дарбазасы аларды туннелге ээ эмес хостко жөнөтөт. Альтернатива VPN контейнеринде тар чектелген булак котормосу, ал жоопту жөнөкөйлөтөт, бирок кардарды колдонмодон жашырат. Атайын тандаңыз жана кайсынысын тандаганыңызды жазыңыз.

Кадимки кардардан жаңы уруксат берилген байланышты сынап көрүңүз, анан байланышсыз порттор жабык бойдон калаарын ырастаңыз. Пакет жоголгондо, VPN ат мейкиндигин, колдонмонун ат мейкиндигин жана колдонмонун өз журналын карап чыгыңыз. Көпүрө дарбазасына ping кызмат үчүн кабыл алуу тести эмес.

Эрежелерди контейнердин колдоого алынган иштетүү конфигурациясында сактаңыз, анткени интерактивдүү өзгөртүүлөр ал кайра түзүлгөндө жоголот. Хост портун жарыялоо таасир этүүнүн башка жолу жана кызмат туннел аркылуу жеткиликтүү болгондуктан гана керек эмес.

Тектеш макалалар