Pomocník serveru OpenVPN: síť plus maska, nikdy CIDR
Pomocník serveru IPv4 bere zarovnanou síť a tečkovanou masku, ne příponu CIDR. Zkontrolujte rozsah, potvrďte fond v logu a pak velikost bezpečně změňte.
Řádek serveru, který míchá příponu CIDR s tečkovanou maskou, zastaví démona dřív, než vůbec otevře port. Pomocník server pro IPv4 chce dva samostatné argumenty: zarovnanou síťovou adresu a potom masku sítě v tečkované podobě. Všechno ostatní na tom řádku je odhad a právě v odhadu se velikosti fondu a masky klientů zvrtnou.
Dva argumenty, které pomocník přijímá
Napište nejdřív síť a potom masku, s ničím připojeným k adrese:
server 10.72.16.0 255.255.240.0Toto je podoba pro /20. Řádek níže je chyba a selhává při parsování voleb, ne za běhu:
server 10.72.16.0/20 255.255.240.0Při ladění držte obě myšlenky odděleně. Délka prefixu a tečkovaná maska popisují stejný rozsah, ale pomocník nepřijímá obojí najednou a odmítnutý řádek vyvolá chybu voleb, která pojmenuje direktivu, ne aritmetiku.
Zarovnejte síť, než napíšete masku
První adresa je síťová adresa rozsahu, ne pohodlná adresa klienta uvnitř něj. Pro /20 jde rozsah od 10.72.16.0 do 10.72.31.255 a platným síťovým argumentem je jen ta první. /21 používá 255.255.248.0 a zahrnuje 10.72.16.0 až 10.72.23.255, takže jeho řádek je server 10.72.16.0 255.255.248.0.
Změna prefixu mění rozsah a nic jiného. Nemění, kolik adres dostane jeden klient, protože to je vlastnost topologie, ne masky na tomto řádku.
Potvrďte fond ze strany serveru
Spusťte instanci v popředí s podrobným logováním a čtěte řádky, které pomocník vypisuje. Fond, který sestavil, se vypisuje při startu, což je spolehlivější než počítat aritmetiku ručně:
openvpn --config /etc/openvpn/server.conf --verb 4 --dev tun9 --port 1195Hledejte souhrn fondu u horní části výstupu. Uvádí rozsah, který pomocník rezervoval, a pokud ten rozsah neodpovídá vašemu záměru, argumenty na řádku jsou špatné bez ohledu na to, co říká aritmetika masky.
Potom připojte jednoho klienta a najděte řádek, který zaznamenává přidělenou adresu. Ta jediná adresa vedle rozsahu fondu říká, zda klient přistál uvnitř rezervovaného bloku, nebo někde, kde jste to nečekali. Pokud se obě neshodují, opravte argumenty, ne klienta. Pokud se shodují a klient přesto nikam nedosáhne, fond nikdy nebyl problém.
Čtěte masku klienta s ohledem na topologii
Klient, který na svém tunelovém rozhraní ukazuje /30, není důkazem rozbitého fondu. Při adresování bod-bod dostane každý klient malý blok a jeho maska rozhraní popisuje tento blok, zatímco fond serveru pokrývá celek. Při topologii podsítě místo toho maska klienta odpovídá masce fondu. Samotná maska tedy říká, která topologie je ve hře, ne jestli je fond napsaný správně.
Zkontrolujte nakonfigurovanou topologii a přidělenou adresu společně, než uděláte závěr:
ip -4 addr show tun0Pokud je adresa uvnitř fondu a maska je užší než fond, dělá topologie svou práci. Pokud je adresa mimo fond, fond je špatný a žádná kontrola na straně klienta to nespraví.
Změna živého fondu
Vyberte rozsah, který se nepřekrývá s aktuálním fondem, sítí LAN ani žádnou trasou už odeslanou klientům. Překryv je porucha, která přežije restart a o dny později se projeví jako jedno místo nedostupné z jednoho směru.
Změňte řádek, restartujte a znovu si přečtěte startovní fond, než pustíte uživatele zpět. Pokud se nový rozsah s něčím střetne, stejný startovní výstup to hned ukáže, a návrat je úprava jednoho řádku plus další restart.
Ponechte starý rozsah po změně ještě nějakou dobu rezervovaný. Klienti, kteří se připojí pozdě, mohou stále držet adresu z předchozího fondu, a nový rozsah, který tyto adresy znovu použije, vytváří duplicitní přidělení, jež vypadají jako porucha směrování. Manuál OpenVPN 2.6 dokumentuje argumenty pomocníka a jeho expanzi, což stojí za přečtení dřív, než předpokládáte, že direktiva přebírá stejnou notaci jako její sousedka.