Правилата на защитната стена приемат първи и последен адрес, например 192.168.0.200 до 192.168.0.255, а маршрутите — не. Записът на маршрут има място само за мрежа и маска, което значи, че непрекъснат диапазон трябва да стане един или повече подравнени префикса, преди OpenVPN да го инсталира. Профил, който съчетава route-nopull с неподравнен интервал, е мястото, където обикновено се крие отказът, защото файлът се разбира, а нито един маршрут не съвпада. Наредете блоковете правилно и отказът става видим с една команда.

Митът: диапазонът е маршрут

Маршрутните таблици пазят двойки мрежа и маска и избират най-дългото съвпадение, затова интервал с начало и край няма къде да живее. Един префикс, обхващащ 256 адреса, покрива .0 до .255, половината от този размер покрива .0 до .127 и само диапазон, подравнен по тези ръбове, се съпоставя с една стъпка. Всичко останало трябва да се нареже на блокове. По-малък маршрут все още означава първоначалния интервал.

Диапазон, който не е подравнен по префикс, не е компресиран маршрут. Той е различен вид обект и третирането му като маршрут е мястото, където започва тихият отказ.

Подравняването е аритметика, не стил

Размерите на блоковете се определят от дължината на префикса. /29 може да започва само на адрес, делим на 8, /28 — на такъв, делим на 16, /27 — на такъв, делим на 32. Преместете блок извън границата му и маската покрива друг набор адреси от предвидения.

Събирайте от долния край. На всяка стъпка вземайте най-големия подравнен блок, който не прекрачва края на диапазона, после продължавайте от първия адрес след него. Блоковете не могат да се припокриват, защото всеки започва там, където предишният е спрял.

Двама души, правещи това на ръка, трябва да стигнат до един и същ резултат. Разлика означава, че някой е допуснал начало, което не е било подравнено.

Минете през 200 до 255

StepStartBlock that fitsLine for the profile
1.200, multiple of 8/29, 8 addresses192.168.0.200 255.255.255.248
2.208, multiple of 16/28, 16 addresses192.168.0.208 255.255.255.240
3.224, multiple of 32/27, 32 addresses192.168.0.224 255.255.255.224

Диапазонът започва от .200, което е кратно на 8, така че първият блок е /29 от .200 до .207. След тези осем адреса първата свободна стойност е .208, която се дели на 16, затова /28 заема .208 до .223. Остава .224 до .255, тридесет и два адреса, започващи от кратно на 32, значи /27. Тези три реда са цялото разлагане.

Запишете ги като маршрутни редове, а не като проза. Профил само с първия ред покрива осем адреса и оставя останалите извън тунела.

route-nopull
route 192.168.0.200 255.255.255.248
route 192.168.0.208 255.255.255.240
route 192.168.0.224 255.255.255.224

Последният блок се нуждае от проверка на границата. Вътре в 192.168.0.224/27 .224 е адресът на мрежата, а .255 е широкомовният адрес, така че хост, който трябва да отговаря на .255, е покрит от префикса и все още недостъпен. Преместете този хост или разделете диапазона другояче, вместо да маршрутизирате блока и да се надявате.

Какво прави route-nopull с картината

Добавяйте route-nopull само когато изпращаните от сървъра маршрути са нежелани. Без директивата изпращаните маршрути и тези редове съществуват заедно и печели най-конкретният префикс. С нея изчезват и изпращаните опции за DNS и DHCP, затова вътрешното разрешаване на имена се нуждае от собствена конфигурация. Този страничен ефект изненадва хората, добавили директивата, за да оправят проблем с маршрут.

Добавете я по правилната причина, а не като автоматичен рефлекс. Премахването на изпращани маршрути е политическо решение с последица за DNS. Ако сървърът може да изпраща същите три префикса, нека го прави, а копията от страна на клиента изтрийте, така че един собственик да контролира списъка.

Проверки, които хващат обичайните грешки

Уверете се, че всяка маска е един непрекъснат низ от единици. Стойността 255.255.255.248 минава, а 255.255.255.200 не минава, и маска, която не е непрекъсната, се отхвърля или разчита погрешно. После потвърдете пътя за един адрес във всеки блок.

ip route get 192.168.0.205
ip route get 192.168.0.220
ip route get 192.168.0.240

Всеки отговор трябва да назове тунелния интерфейс. Резултат, който назовава физическия адаптер, значи, че редът никога не е бил инсталиран, което често се случва, когато настолен мрежов мениджър пренапише таблицата, след като профилът се свърже.

Изберете един собственик на списъка. Когато сървърът може да изпраща същите префикси, изпращайте ги и премахнете клиентските промени. Един собственик значи, че печатна грешка има едно място и клиентът и сървърът не могат да се разминават кои адреси са в тунела.

Подобни статии