Екі ішкі файрвол, бір жеке транзит сегменті және әрбір LAN-дағы бірнеше хосттың екіншісімен сөйлесуіне рұқсат беру өтініші. Әдеттегі реакция — VPN көтеру немесе екінші NAT қабатын қосу, ал екі реакция да мәселенің құнынан қымбат. Қарапайым маршруттау үш шарт орындалғанда жеткілікті: мекенжай ауқымдары қабаттаспайды, екі жақ та трафикті екінші LAN-ға қайтара алады және транзит сегменті деректер үшін жеткілікті сенімді. Бірдеңе жобаламас бұрын осы үшеуін тексеріңіз, өйткені әрқайсысы жауапты өзгертеді.

Жобаны анықтайтын үш шарт

Бірінші шарт — мекенжай кеңістігі. Егер екі LAN да бірдей RFC 1918 блогын қолданса, маршруттау оларды ажырата алмайды және аудару міндетті болады, таңдаулы емес. Екіншісі — қайтару жолы: A-дан B-ге маршрут B де A-ның LAN-ына қалай жетуді білмесе, пайдасыз, ал асимметриялық білім маршрутталған жобаның жауаптарды үнсіз тастауының ең көп тараған себебі.

Үшіншісі — сенім. Маршруттау пакеттерді жылжытады; ол оларды қорғамайды. Бір ғимараттың ішіндегі жеке транзит сегменті провайдерге тапсырудан немесе ортақ кампус магистралінен өтетін байланыстан өзгеше. Егер сегмент сенімді болмаса, жауап — екі файрвол арасындағы туннель, ал төмендегі маршруттау жоспары оның ішінде де қолданылады.

Қарапайым жоба үшеуі бір бағытқа көрсеткенде ғана жеңеді. Олардың біреуі сәтсіз болса, сол шартты аударумен жасырмай, анық түзетіңіз, өйткені NAT ақауды жасырады, шешпейді.

Маршрут жоспарын транзит желісінде құрыңыз

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

FirewallRemote LANNext hop on the transit
A10.40.0.0/24192.0.2.20
B10.30.0.0/24192.0.2.10

A файрволы 10.30.0.0/24 желісіне қызмет көрсетеді, B файрволы 10.40.0.0/24-ке, ал екі транзит мекенжайы 192.0.2.0/24-те. Әрбір LAN хост өзінің жергілікті файрволын шлюз ретінде ұстайды, сондықтан жалғыз жаңа күй — әр жақта бір маршрут. Linux негізіндегі файрволда дәл осы жоспар осылай көрінеді, ал қайта бағыттауды қосу керек, әйтпесе маршрут шешіледі, пакет тасталады.

sysctl -w net.ipv4.ip_forward=1
ip route add 10.40.0.0/24 via 192.0.2.20 dev eth1
ip route get 10.40.0.15
traceroute -n 10.40.0.15

Сүзуді аударудан бөлек ұстаңыз

Маршруттау мен саясат — бөлек басқарулар, ал көп жағдайда маршрутталған жобалар дәл екіншісінде сәтсіз болады. Пакеттер нақты кесіп өтетін кіру шекарасында нақты көздерге, тағайындалуларға және қызметтерге рұқсат беріңіз және WAN сияқты интерфейс белгісі атау екенін, сенім туралы мәлімдеме емес екенін ұмытпаңыз. Жеке трафикті тасымалдайтын транзит портында жеке мекенжайларды блоктау әдепкі бойынша қосулы болуы мүмкін.

Содан кейін NAT болмайды деп қорытынды жасамас бұрын шығыс аударуға қараңыз. Автоматты шығыс ережелері аударуға ешқашан арналмаған трафикті қайта жаза алады, бұл екінші жаққа өз саясаты мен журналдары үшін қажет көз мекенжайларын жояды. Таңдалған ағындардың бастапқы мекенжайларын сақтайтынын растаңыз және әлі де қажет трафик үшін интернетті аудару ережелерін тиістірмеңіз.

iptables -t nat -S POSTROUTING
iptables -t nat -L POSTROUTING -n -v
tcpdump -ni eth1 -c 5 host 10.40.0.15

NAT шынайы жауап болған кезде

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

Дауыстап айтуға тиіс салдар — екінші жақ енді жекелеген көздерді көре алмайды немесе сүзе алмайды. Журналдар аударатын мекенжайға жинақталады, хост бойынша саясат жұмысын тоқтатады, ал ақаулықтарды жою белгілі бір сәтте қай ішкі хост ағынды ұстағанын іздеуге айналады. Егер мұның ешқайсысы қарастырылып отырған трафик үшін маңызды болмаса, NAT дұрыс.

Транзиттің өзі қате болжам болған кезде

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

Мұны бірінші бөлімдегі сенім сұрағынан шешіңіз, VPN қауіпсіздеу деген әдеттен емес. Әлдеқашан жеке сегмент үстіндегі туннель пайдасыз операциялық шығын мен тағы бір ақау режимін қосады, ал сенімсіз сегмент үстіндегі маршруттау құпиялылықты өзіңіз көтере алмайтын қарапайымдылыққа айырбастайды. Үш шарттың қайсысы таңдауды басқарғанын жазып қойыңыз, келесі инженер оны қайта талқыламайды.

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