ifconfig-push: peer-adress i net30 eller nätmask i subnet?
Det andra argumentet till ifconfig-push är en peer-adress i net30 och en nätmask under topology subnet. Jämför topologin som körs innan du redigerar CCD-filen.
Dynamiska klienter ansluter och dirigerar bra, men den enda klienten med fast adress når inte servern alls. Inget i brandväggen har ändrats, och CCD-raden ser rimlig ut. Den vanliga orsaken är ett andra argument skrivet för en annan TUN-topologi än den servern kör. Felet är tyst: klienten kommer upp med en adress och servern accepterar anslutningen, men ingen trafik passerar.
Under net30 är fältet en peer-adress; under subnet är det en nätmask. De två formerna är alternativ, aldrig en sekvens.
De två formerna, sida vid sida
I en traditionell net30-distribution äger varje klient ett /30-block: en nätverksadress, två användbara adresser och en broadcast-adress. ifconfig-push tar klientadressen och peer-adressen, och peeren är den andra användbara adressen i samma block, som används av serversidan av punkt-till-punkt-länken.
# net30: client address and its peer
ifconfig-push 10.99.0.6 10.99.0.5
# topology subnet: client address and the pool netmask
ifconfig-push 10.99.0.20 255.255.255.0
Under topology subnet delar klienten ett subnät med servern, och samma direktiv tar en adress och en nätmask. Serverns egen adress kommer från direktivet server, inte från det andra fältet. Att blanda formerna ger en klient som tror att den är på en punkt-till-punkt-länk medan servern dirigerar den som en subnätvärd, eller tvärtom. Därför får en nätmask aldrig paras ihop med net30.
Båda raderna i blocket är enskilda rader för en CCD-fil. En klient får exakt en av dem.
Läs topologin som servern faktiskt kör
Läs den körande konfigurationen i stället för en paketstandard, eftersom topologin kan ha satts för år sedan och kopierats vidare. Leta efter topology subnet eller frånvaron av det, kontrollera sedan hur raden server tilldelar adresser. En konfiguration som aldrig nämner topologi är inte samma sak som en som sätter subnet.
Läs sedan inställningarna som klienten har fått. Adressen, masken och peeren som den rapporterar berättar vilken tolkning servern använde.
Håll den fasta adressen utanför den dynamiska poolen
En fast adress måste ligga utanför den dynamiska poolen, annars kan två klienter få samma adress. Med subnet-topologi undertrycker nopool på raden server den automatiska poolen, och ett explicit intervall ifconfig-pool definierar vad dynamiska klienter får.
dev tun
topology subnet
server 10.99.0.0 255.255.255.0 nopool
ifconfig-pool 10.99.0.100 10.99.0.210 255.255.255.0
client-config-dir /etc/openvpn/ccd
Servern tar 10.99.0.1 själv, och den fasta klientadressen ligger utanför poolens intervall. CCD-filen namnges efter klientens effektiva identitet, inte profilfilens namn, och den tar ingen extra ändelse. Om username-as-common-name är aktivt är det autentiserade användarnamnet identiteten som ska matchas. Två enheter som delar en identitet delar också den fasta adressen, vilket är ett policyproblem och inte ett dirigeringsproblem.
Verifiera tilldelningen som klienten faktiskt fick
Anslut den avsedda klienten igen och bekräfta vilken CCD-fil som valdes innan du kontrollerar något annat. Verifiera sedan adressen, masken eller peeren, och vägen tillbaka till servern. En klient som visar en peer-adress i en subnet-distribution använder fortfarande fel form.
Att ändra topologi påverkar varje klient och varje åsidosättning, så behandla det som en migrering och inte som en reparation av en klient. Att rätta den statiska raden så att den matchar topologin som redan används är oftast den mindre ändringen. server-options-referensen dokumenterar hjälparen och de klientspecifika åsidosättningarna.