OpenVPN серверинин жардамчысы: тармак плюс тармактык маска, эч качан CIDR эмес
IPv4 сервер жардамчысы тегизделген тармакты жана чекиттүү масканы алат, CIDR уландысын эмес. Диапазонду текшериңиз, журналда пулду ырастаңыз, анан өлчөмдү коопсуз өзгөртүңүз.
CIDR уландысын чекиттүү маска менен аралаштырган сервер сабы демонду порт ачканга чейин эле токтотот. IPv4 үчүн server жардамчысы эки өзүнчө аргументти каалайт: тегизделген тармак дареги, анан чекиттүү формадагы тармактык маска. Бул саптагы калганынын баары божомол, ал эми пул өлчөмдөрү менен кардар маскалары дал божомолдо ката кетирет.
Жардамчы кабыл алган эки аргумент
Алгач тармакты, анан масканы жазыңыз, дарекке эч нерсе тиркей бербей:
server 10.72.16.0 255.255.240.0Бул /20 формасы. Төмөнкү сап — ката, жана ал иштөө учурунда эмес, опцияларды талдоо учурунда ишке ашпайт:
server 10.72.16.0/20 255.255.240.0Муну оңдоодо эки ойду өзүнчө кармаңыз. Префикс узундугу жана чекиттүү маска бир эле диапазонду сүрөттөйт, бирок жардамчы экөөнү тең бир убакта кабыл албайт, ал эми четке кагылган сап арифметиканы эмес, директиваны атаган опция катасын чыгарат.
Масканы терүүдөн мурун тармакты тегиздеңиз
Биринчи дарек — диапазондун тармактык дареги, анын ичиндеги ыңгайлуу кардар дареги эмес. /20 үчүн диапазон 10.72.16.0-ден 10.72.31.255-ке чейин созулат, жана алардын ичинен биринчиси гана жарактуу тармактык аргумент. /21 255.255.248.0-ти колдонот жана 10.72.16.0-ден 10.72.23.255-ке чейин камтыйт, ошондуктан анын сабы — server 10.72.16.0 255.255.248.0.
Префиксти өзгөртүү диапазонду өзгөртөт, башка эч нерсени эмес. Ал бир кардар канча дарек алаарын өзгөртпөйт, анткени бул топологиянын касиети, бул саптагы масканыкы эмес.
Пулду сервер тарабынан ырастаңыз
Инстансты алдыңкы планда кенен журнал менен иштетиңиз жана жардамчы чыгарган саптарды окуңуз. Ал курган пул иштетилгенде басылып чыгат, бул арифметиканы кол менен эсептөөдөн ишенимдүүрөөк:
openvpn --config /etc/openvpn/server.conf --verb 4 --dev tun9 --port 1195Пулдун корутундусун чыгарыштын жогорку бөлүгүнөн издеңиз. Анда жардамчы коргоп койгон диапазон тизмеленет, жана ал диапазон ниетиңизге туура келбесе, саптагы аргументтер ката, масканын арифметикасы эмне десе да.
Анан бир кардарды туташтырыңыз жана ага берилген даректи жазуучу сапты табыңыз. Пул диапазонунун жанындагы ошол бир дарек кардар корголгон блоктун ичине түштүбү же күтпөгөн жерге түштүбү — ошону айтат. Экоо туура келбесе, кардарды эмес, аргументтерди оңдоңуз. Алар туура келип, кардар дагы эле эч жерге жетпесе, пул эч качан маселе болгон эмес.
Кардардын маскасын топологияны эске алуу менен окуңуз
Кардардын туннель интерфейсинде /30 көрсөтүүсү бузулган пулдун далили эмес. Чекиттен чекитке даректөөдө ар бир кардар кичине блок алат жана анын интерфейс маскасы ошол блокту сүрөттөйт, ал эми сервердин пулу бүтүндү камтыйт. Ички тармак топологиясында кардардын маскасы пулдун маскасына туура келет. Ошондуктан маска өзү кайсы топология иштеп жатканын айтат, пулдун туура жазылганын эмес.
Корутунду чыгардан мурун конфигурацияланган топология менен дайындалган даректи чогуу текшериңиз:
ip -4 addr show tun0Дарек пулдун ичинде болсо жана маска пулдан тар болсо, бул топология өз ишин аткарып жатат. Дарек пулдан тышкары болсо, пул ката, жана кардар тараптагы эч бир текшерүү аны оңдобойт.
Иштеп жаткан пулду өзгөртүү
Азыркы пул, LAN же кардарларга мурун эле жөнөтүлгөн кандайдыр бир маршрут менен кайчылашпаган диапазонду тандаңыз. Кайчылашуу — кайра иштеп кетүүдөн аман өтүп, андан кийин бир нече күндөн соң бир сайттын бир багыттан жеткиликсиз болуп көрүнүшүнө алып келген бузулуу.
Сапты өзгөртүңүз, кайра иштетиңиз жана колдонуучуларды кайтардан мурун иштетүү пулун кайра окуңуз. Жаңы диапазон бир нерсе менен кагылышса, ошол эле иштетүү чыгарышы муну дароо көрсөтөт, ал эми артка кайтаруу — бир сапты оңдоо жана дагы бир кайра иштетүү.
Өзгөртүүдөн кийин эски диапазонду бир аз убакыт коргоп туруңуз. Кеч туташкан кардарлар мурунку пулдун дарегин дагы эле кармашы мүмкүн, ал эми ошол даректерди кайра колдонгон жаңы диапазон маршруттоо бузулушуна окшош эки жолу дайындоолорду жаратат. OpenVPN 2.6 колдонмосу жардамчынын аргументтерин жана анын кеңейүүсүн сүрөттөйт, аны директива коңшусунукундай эле жазууну колдонот деп ойлоодон мурун окуган жөн.