Бүкіл LAN-ды VPN туннелінің артына қою оңай бөлігі; алыс жақ бұл клиенттерді қалай көретінін шешу оңай емес. Маскарад әрбір LAN көзін шлюздің туннель мекенжайына қайта жазады, сондықтан алыс жақ бір серіктеске жауап береді. Саясат бойынша маршруттау бастапқы мекенжайларды сақтайды және алыс жақ оларға қалай жетуді білуін талап етеді. Екеуі де әдепкі емес; таңдау алыс жақтың кімге тиесілі екеніне және құрылғы бойынша сәйкестіктің маңыздылығына байланысты.

Екі дизайн әртүрлі нәрселерге уәде береді

Маскарад LAN-ды бір көрінетін хостқа дейін қысқартады: шлюз. Алыс желі сол бір мекенжайға жауап береді, ал шлюз жауаптарды ағынды бастаған клиентке қайта аударады. Алыс жақта жеке префикстеріңізге маршрут қажет емес, сондықтан бұл дизайн оларды тасымалдаудан бас тартатын провайдермен де өмір сүреді. Шлюз әрбір қосылымның көзіне айналады, сондықтан алыс жақ екі клиентті ажырата алмайды.

Саясат бойынша маршруттау әрбір клиенттің мекенжайын бұлжытпай сақтайды. Алыс желі нақты көзді көреді және оны журналға жаза алады, хост бойынша ереже қолдана алады немесе жауапты тура сол мекенжайға жібере алады. Бұл көріну — бүкіл мән, және ол міндеттеме әкеледі: алыс жақта LAN префиксі үшін туннель арқылы қайтатын маршрут болуы керек. Ережені қоспас бұрын сол маршрутты жоспарлаңыз, өйткені туннель қалай да көтеріледі және тек жауаптар жетіспейді.

Сәтсіздік режимдері уәделер қаншалықты әртүрлі болса, соншалықты әртүрлі. Жоқ маскарад ережесі жеке көздермен шығып, ешқашан қайтпайтын пакеттер жасайды. Жоқ қайтару маршруты саясат бойынша маршруттауда сол белгіні береді, бірақ түзету шлюзде емес, алыс маршрутизаторда.

Маскарад: алыс жақта бір серіктес

Маскарад жолының маңызды реті бар. Кез келген NAT ережесі пайдалы болудан бұрын қайта жіберу қосулы болуы керек, сүзгі кестесі екі бағытта да өтуге рұқсат беруі керек, содан кейін ғана туннель интерфейсінде аударма қолданылады.

sysctl -w net.ipv4.ip_forward=1
iptables -A FORWARD -i eth1 -o tun0 -j ACCEPT
iptables -A FORWARD -i tun0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE

Клиенттерге әлі де шлюзге жол қажет. Немесе шлюз олардың әдепкі маршрутизаторы, немесе олар алыс префикс үшін нақты маршрут ұстайды; егер бөлек маршрутизатор әдепкі болып қалса, оған туннель межелері үшін статикалық маршрут қажет, әйтпесе пакет шлюз оны көрместен бұрын дұрыс емес хопқа кетеді.

DNS — бөлек шешім. Алыс жақтағы шешуші тек жауабы клиентке қайта алатын болса ғана жауап береді. Маскарад кезінде сұраныс шлюзден келгендей көрінеді, сондықтан шешушінің қайтару жолы әлдеқашан қамтамасыз етілген; саясат бойынша маршруттау кезінде шешушіге кез келген басқа алыс қызмет сияқты сол қайтару маршруты қажет.

Саясат бойынша маршруттау: көзді сақта, қайтару жолын қос

Саясат бойынша маршруттау кестеден және оны таңдайтын ережеден басталады. LAN интерфейсінен кіретін трафик арнайы кестеге жіберіледі, және сол кесте туннель арқылы әдепкі маршрутты ұстайды. Негізгі кесте тиіспеген күйде қалады, сондықтан шлюздің өзі жасаған трафик басқа жолмен жүре алады.

ip rule add iif eth1 table vpn
ip route add default dev tun0 table vpn

Содан кейін алыс жақ LAN префиксін туннель арқылы қайта маршруттауы керек. Бұл осы шлюзде емес, алыс маршрутизатордағы параметр. Шлюз сонымен қатар негізгі кесте күтпеген басқа интерфейске келетін жауаптарды да қабылдауы керек; қатаң режим сол пакеттерді тастағанда, бос кері жол сүзгісі (rp_filter 2-ге қойылған) әдеттегі түзету.

Екі туннель белсенді болғанда, әр ағынды кіре берісте белгілеңіз және белгі кестені таңдасын. Тек кіру интерфейсіне қарайтын ереже екі туннельдің трафигін бір кестеге жібереді, сондықтан екінші туннель біріншіден ағындарды ұрлайды. Бұл белгіні қайта қосылудан аман өтетін байланыспен сынап көріңіз, аралас саясат дәл сонда көрінеді.

Меншікке және алыс жақтың нені журналға жазатынына қарай шеш

Егер туннель провайдерде аяқталса, маскарадты пайдаланыңыз. Ол оператор жеке LAN ауқымдарыңызды маршруттамайды және шлюзіңіздің артындағы жекелеген клиенттерді ажыратуға себебі жоқ. Бір көрінетін серіктес — оның саясаты қолдайтын жалғыз модель, сондықтан соны беріңіз және аударманы өз шетіңізде ұстаңыз. Провайдер бір серіктесті көреді, бұл дәл оның саясаты күтетін нәрсе, ал клиенттеріңіз сол бір сәйкестікті мұра етеді.

Егер екі шет те сіздікі болса және алыс қызметтер көз мекенжайларына сүйенсе, саясат бойынша маршруттау өзінің қосымша маршрутына лайық. Сонда брандмауэр ережелері, пайдаланушы бойынша қатынас және аудит журналдары клиенттерді ажырата алады. Егер алыс жаққа тек қолжетімділік қажет болса, маскарад қарапайым және қайтару маршруты қателерінің бір тұтас класын жояды.

Гибридті дизайндар қалыпты: өз желіңізде саясат бойынша маршруттау, провайдер шетінде маскарад. Маңыздысы — қай хоп аударатынын және қай хоп маршруттайтынын жазып қою, өйткені бір клиент үшін кездейсоқ қосылған NAT ережесі сол тізбектегі әрбір клиенттің көзін жасырады.

Бір клиенттен тексеріңіз, содан кейін екінші клиенттен

Тесті трафик басталатын жерде орындаңыз. Хост қолданатын маршрутты тексеріңіз, пакеттің туннель интерфейсінде пайда болуын бақылаңыз және аударма үшін conntrack-ты қараңыз. Бұл реттілік пакеттің көзделген жолмен жүргенін дәлелдейді, жай ғана бір жерге жеткенін емес.

Қайта қосылғаннан кейін тесті қайталаңыз. Интерфейсті атайтын маскарад ережесі жаңа туннель мекенжайына төтеп береді; ескі мекенжайды атайтын ереже төтеп бермейді. Содан кейін екінші LAN хостты сынап көріңіз, өйткені бір машинада жұмыс істейтін дизайн көбіне сол машинаның өз маршрутына тәуелді, шлюз саясатына емес.

Таңдалған модельді, аударылған немесе сақталған көзді және қайтару маршрутының иесін шлюз жазбаларына жазыңыз. Әйтпесе клиент немесе туннель қосатын келесі адам болжайды, ал болжау — жұмыс істеп тұрған LAN-нан-VPN-ге конфигурациясын жартылай ететін жол.

Қатысты мақалалар