Riadok servera, ktorý mieša príponu CIDR s bodkovanou maskou, zastaví démona skôr, než vôbec otvorí port. Pomocník server pre IPv4 chce dva samostatné argumenty: zarovnanú sieťovú adresu a potom masku siete v bodkovanej podobe. Všetko ostatné na tom riadku je odhad a práve v odhade sa veľkosti fondu a masky klientov pokazia.

Dva argumenty, ktoré pomocník prijíma

Napíšte najprv sieť a potom masku, s ničím pripojeným k adrese:

server 10.72.16.0 255.255.240.0

Toto je podoba pre /20. Riadok nižšie je chyba a zlyháva pri parsovaní volieb, nie za behu:

server 10.72.16.0/20 255.255.240.0

Pri ladení tohto držte obe myšlienky oddelene. Dĺžka prefixu a bodkovaná maska opisujú rovnaký rozsah, ale pomocník neprijíma oboje naraz, a odmietnutý riadok vyvolá chybu volieb, ktorá pomenúva direktívu, nie aritmetiku.

Zarovnajte sieť, kým napíšete masku

Prvá adresa je sieťová adresa rozsahu, nie pohodlná adresa klienta vnútri neho. Pre /20 ide rozsah od 10.72.16.0 do 10.72.31.255 a platným sieťovým argumentom je len tá prvá. /21 používa 255.255.248.0 a zahŕňa 10.72.16.0 až 10.72.23.255, takže jeho riadok je server 10.72.16.0 255.255.248.0.

Zmena prefixu mení rozsah a nič iné. Nemení, koľko adries dostane jeden klient, pretože to je vlastnosť topológie, nie masky na tomto riadku.

Potvrďte fond zo strany servera

Spustite inštanciu v popredí s podrobným logovaním a čítajte riadky, ktoré pomocník vypisuje. Fond, ktorý zostavil, sa vypisuje pri štarte, čo je spoľahlivejšie ako počítať aritmetiku ručne:

openvpn --config /etc/openvpn/server.conf --verb 4 --dev tun9 --port 1195

Hľadajte zhrnutie fondu blízko hornej časti výstupu. Uvádza rozsah, ktorý pomocník rezervoval, a ak ten rozsah nezodpovedá vášmu zámeru, argumenty na riadku sú nesprávne bez ohľadu na to, čo hovorí aritmetika masky.

Potom pripojte jedného klienta a nájdite riadok, ktorý zaznamenáva pridelenú adresu. Tá jediná adresa vedľa rozsahu fondu vám povie, či klient pristál vnútri rezervovaného bloku, alebo niekde, kde ste to nečakali. Ak sa obe nezhodujú, opravte argumenty, nie klienta. Ak sa zhodujú a klient napriek tomu nikam nedosiahne, fond nikdy nebol problém.

Čítajte masku klienta s ohľadom na topológiu

Klient, ktorý na svojom tunelovom rozhraní zobrazuje /30, nie je dôkazom pokazeného fondu. Pri adresovaní bod-bod dostane každý klient malý blok a jeho maska rozhrania opisuje tento blok, zatiaľ čo fond servera pokrýva celok. Pri topológii podsiete namiesto toho maska klienta zodpovedá maske fondu. Samotná maska teda hovorí, ktorá topológia je v hre, nie či je fond napísaný správne.

Skontrolujte nakonfigurovanú topológiu a pridelenú adresu spoločne, kým urobíte záver:

ip -4 addr show tun0

Ak je adresa vnútri fondu a maska je užšia ako fond, robí topológia svoju prácu. Ak je adresa mimo fondu, fond je nesprávny a žiadna kontrola na strane klienta to nespraví.

Zmena živého fondu

Vyberte rozsah, ktorý sa neprekrýva s aktuálnym fondom, sieťou LAN ani žiadnou trasou už odoslanou klientom. Prekrytie je porucha, ktorá prežije reštart a o dni neskôr sa prejaví ako jedno miesto nedostupné z jedného smeru.

Zmeňte riadok, reštartujte a znova prečítajte štartovací fond, kým pustíte používateľov späť. Ak sa nový rozsah s niečím zrazí, ten istý štartovací výstup to hneď ukáže, a návrat je úprava jedného riadku plus ďalší reštart.

Ponechajte starý rozsah po zmene ešte nejaký čas rezervovaný. Klienti, ktorí sa pripoja neskoro, môžu stále držať adresu z predchádzajúceho fondu, a nový rozsah, ktorý tieto adresy znova použije, vytvára duplicitné pridelenia, ktoré vyzerajú ako porucha smerovania. Manuál OpenVPN 2.6 dokumentuje argumenty pomocníka a jeho expanziu, čo stojí za prečítanie skôr, než predpokladáte, že direktíva preberá rovnakú notáciu ako jej susedka.

Súvisiace články