Docker: за време на VPN-сесија не остануваат преддефинирани адресни базени
Грешката со преддефиниран базен се однесува на автоматската распределба, а не на јавните адреси. Избројте ги распределбите, споредете on-link рути и запазете ја VPN-политиката непроменета.
Неуспехот е конкретен: Docker не може да најде прифатлива автоматска подмрежа за нова мостова мрежа. Тоа не значи дека на машината ѝ снемало адреси, ниту дека VPN-от е расипан. Дијагнозата ја решаваат две прашања: кои кандидатски блокови ги гледа демонот и кои од нив неговиот распределувач ги исклучува во оваа околина. Поминете ги токму по тој редослед, бидејќи второто прашање е бесмислено додека не се одговори првото.
Потврдете што не успеало пред да промените нешто
Извршете ги чекорите подолу од домаќинот што го води демонот. Школка што разговара со оддалечен контекст опишува друга машина, и само таа грешка може да потроши еден час.
Запишете ја истовремено верзијата на Engine во тикетот. Секоја хеуристика во остатокот од овој прирачник е врзана за верзија, а тврдење без верзија е гласина.
Избројте ги распределбите што веќе ги имате
Наведете ги мрежите, потоа прегледајте ги важните: docker network ls, потоа docker network inspect NETWORK_NAME. Прочитајте ги нивните IPAM подмрежи и контејнерите приклучени на секоја. Неколку Compose проекти трошат повеќе блокови отколку што сугерира нивниот број контејнери, бидејќи секој проект има тенденција да создаде своја стандардна мрежа. Запретен контејнер не ја ослободува распределбата на својата мрежа.
Проверете ја и конфигурацијата на базенот, бидејќи стандардниот базен има основен опсег и големина на префиксот по мрежа. Големите распределби по мрежа ги исцрпуваат достапните блокови побрзо, а тоа е факт за капацитетот, не проблем со насочувањето.
Запишете го бројот. Тоа е основната линија што ви кажува дали следната промена помогнала.
Споредете како демонот ги гледа рутите
VPN може да влијае врз изборот на кандидати, но конкретната имплементација одлучува како. Во Moby 28.2.2 на Linux InferReservedNetworks собира адреси на сервери за имиња и одредени on-link IPv4 рути и не резервира едноставно секоја рута од секоја табела. Собраните линк-рути исто така исклучуваат неодредена одредишна адреса, така што една рута 0.0.0.0/1 сама по себе не ги резервира сите адреси. Друг широк on-link префикс, како 128.0.0.0/1, може да ги пресече познатите кандидатски опсези 172 и 192.
Споредете го ip -4 route show table all пред и по поврзувањето на VPN-от, на домаќинот на демонот. Разликата е доказот, а верзијата е опсегот на тврдењето.
Не генерализирајте ја хеуристиката на едно издание на сите изданија. Така одговорот од форум станува промена на политика.
Изберете ја најмалата исправка што функционира
Ако потврдена неискористена мрежа држи блок што ви треба, испланирајте го нејзиното насочено повлекување со сопственикот наместо широко поткастрување. За нова мрежа, експлицитно прегледана неискористена подмрежа целосно ја избегнува зависноста од автоматски избор. Таа подмрежа сепак мора да ги избегнува вистинските Docker, LAN и потребните VPN одредишта, бидејќи приватно не значи безбедно. Насочувањето на вистински оддалечен префикс би ја заменило грешката со распределбата за прекинат пристап.
Менувањето на default-address-pools е поширока политика за идните распределби. Изберете база без конфликт и соодветна распределена големина, спојте ја со постојните поставки на демонот и испланирајте го документираното влијание од рестартирање. Постојните мрежи не се пренумерираат тивко.
Не го исклучувајте испраќањето на корпоративните рути за распределбата да успее. Експлицитен план за адреси обично го решава локалниот проблем без да ослабне задолжителна политика.
Прифатете ја распределбата и насочувањето одделно
По промената, прегледајте ја подмрежата што Docker навистина ја создаде и тестирајте ги VPN и локалните зависности на апликацијата. Успешната распределба и правилното насочување при работа се две различни проверки за прифаќање, а поминувањето на првата не е доказ за втората. Ако апликацијата не може да стигне до ресурс зад тунелот, имате проблем со насочување што грешката на базенот го криеше. Запишете ги двата резултати во тикетот.
Чувајте ја разликата во рутите и бројот на базенот заедно со записот за промената, бидејќи следното ажурирање на VPN клиентот може да го промени првото без да го допре Docker.
Прирачникот е целосен кога некој друг може да ги повтори тие две проверки и да го добие истиот одговор.