VPN шлюз на Windows: три задачи, три собственика
Затварянето на тунели, препредаването между мрежи и презаписването на адреси са отделни решения. Дайте на всяко собственик, преди да добавите още един слой NAT.
Три функции се обединяват всеки път, когато някой каже VPN сървър: затваряне на криптирания тунел, преместване на пакети между мрежи и по избор презаписване на адреси. В Windows те живеят в различни части на стека, дори когато една машина изпълнява и трите. Всяка има свои входове и свой начин на отказ, и всяка може да бъде възложена на различен продукт. Разделянето им на хартия е най-евтиният начин малко внедряване да остане разбираемо.
Четимият дизайн назовава собственика на всеки поток, вместо да описва машината като роля.
Затвори, препредай, преобразувай
RRAS се грижи за тунела в родния за Windows случай: удостоверява потребителя, отпуска адрес от пул и решава кои дестинации са разрешени. Друг VPN продукт може вместо това да притежава слушателя и виртуалния адаптер, оставяйки на Windows препредаването на дешифрираните пакети. Документацията на Microsoft за Remote Access разделя ролите VPN, сайт-към-сайт и маршрутизация, и инсталирането на ролята маршрутизация не създава втора самоличност VPN. Добавянето на друго VPN приложение също не дава адаптера му на всички съществуващи функции на шлюза.
Преобразуването е третата и най-незадължителна задача. То идва след препредаването и променя адреса на източника, който отдалечената мрежа вижда. Дали ви е нужно зависи от това какво ще приеме мрежата местоназначение като източник, а не от това, че машината се нарича VPN шлюз.
Кой притежава адаптера и пула
Когато няколко продукта споделят хоста, четири неща се нуждаят от по един собственик: портовете за слушане, животът на адаптера, пулът с клиентски адреси и маршрутите. Адаптерът е неудобният случай, защото VPN услуга може да го създаде динамично и да го унищожи при прекъсване. Третирането на този интерфейс като постоянно именувана мрежова карта и писането на правила срещу името му работи до следващото повторно свързване. Използвайте поддържаната от продукта точка за интеграция, вместо да кодирате твърдо име на интерфейс.
Пулът с адреси е вторият сблъсък. Два продукта, които раздават припокриващи се диапазони, произвеждат маршрутизация, която изглежда правилна и не доставя нищо. Дръжте пуловете в същия документ като маршрутите, така че промяната в единия да е видима спрямо другия.
Запазете източника или го презапишете
Запазването на адреса на източника на клиента поддържа видимост по потребители: журналите, квотите и правилата на защитната стена могат да различат един потребител от друг. Цената е, че целевата локална мрежа се нуждае от обратен маршрут към шлюза и някой трябва да го поддържа. Презаписването на източника с NAT премахва това изискване и премахва видимостта заедно с него. Избирайте съзнателно и запишете каква информация скрива презаписването.
Достъпът до частна мрежа, изходът към интернет и връзките, които завършват на самия шлюз, са три различни пътя. Не всички се нуждаят от еднакво третиране.
Опишете потока с едно изречение
Едно изречение трябва да опише дизайна: кои клиенти допуска тази услуга, какви ресурси дава тази политика за препредаване и как обратният път завършва потока. Ако изречението се нуждае от втори слой NAT, за да е вярно, това обикновено е знак, че предишните части не са били изяснени. Хостът също е споделена граница на отказ и доверие, така че промяна в маршрутизацията може да засегне както достъпа на потребителите, така и администрирането. За последното запазете независим път за възстановяване.
Поддържайте опис на ролите до конфигурацията: кой продукт затваря, кой препредава, кой преобразува и кой може да промени всеки от тях. Именно този списък прави следващата промяна проверима.
Когато изречението стане неясно, добавянето на още един слой преобразуване рядко го изяснява. Премахването на един обикновено го прави.