Двете решенија се нарекуваат VPN и решаваат различни проблеми. Тунелот помеѓу локации поврзува две порти, така што секој домаќин зад нив може да достигне дозволени адреси од другата страна без да инсталира нешто. Тунелот за далечински пристап поврзува поединечни уреди со мрежа, еден клиент истовремено. Споредбата е важна затоа што повеќето грешки при распоредување произлегуваат од конфигурирање на едното очекувајќи го однесувањето на другото, а симптомот обично е истекување на времето кај услуга до која тунелот навистина стигнал.

Две решенија, две граници

Site-to-siteRemote access
Endpointstwo gatewaysa gateway and each client
Who configuresnetwork ownerseach user or an MDM
Scope of reachwhatever the gateways routewhatever the client is granted
Broadcast discoverynot carriednot carried

Ниту едно решение не го проширува LAN доменот на емитување. Уредите од другата страна не се појавуваат на локална листа за откривање, а очекувањето тоа да се случи е првата претпоставка од која треба да се откаже. Приватните DNS имиња што намерно ги објавувате се попредвидливи од кој било протокол за откривање и преживуваат промена на добавувачот.

Земете 10.10.0.0/24 на едната локација и 10.20.0.0/24 на другата. Портата A и треба маршрута или селектор на сообраќај што го испраќа префиксот 10.20.0.0/24 во тунелот, а на портата B и треба неговиот огледален одраз. Потоа домаќините од двете страни користат обична IP поврзаност и никогаш не дознаваат дека постои тунел. Таа невидливост е функцијата, и затоа дефектите изгледаат како обични мрежни грешки, а не како грешки на тунелот.

Засновано на политика и засновано на маршрута не се истиот тунел

При распоредување на IPsec засновано на политика, договорените селектори на сообраќај точно одредуваат кои парови извор и одредиште се заштитени. Ако зад една порта се појави нова подмрежа и ниту еден селектор не ја покрива, тунелот останува активен, а новата подмрежа едноставно не се пренесува. Кај решението засновано на маршрута, интерфејсот го прима сообраќајот, а одлучува табелата за маршрутирање, што додавањето префикс го прави промена на маршрута, а не повторно преговарање на тунелот.

StrongSwan ги прикажува двете гледишта директно, а нивното заедничко читање е начинот да утврдите кој модел всушност сте го распоредиле.

swanctl --list-sas
ip xfrm policy
ip -4 route show table all | grep -E '10\.(10|20)\.'

Листа на селектори во која недостасува префиксот што ви е важен го објаснува дефектот без никакво фаќање пакети, а маршрута што покажува на погрешен интерфејс го објаснува огледалниот дефект на враќањето. Прочитајте ги двете пред да преговарате повторно за нешто, зашто обновувањето на клучот нема да додаде селектор што никогаш не сте го конфигурирале.

Испланирајте го адресирањето пред тунелот

Преклопувачките опсези се грешката во дизајнот што не може да се поправи со конфигурација. Ако двете локации користат 192.168.1.0/24, домаќинот на кој му треба 192.168.1.50 има два кандидати и никаков начин да избере. Тунелот ќе се автентицира, безбедносните асоцијации ќе се воспостават, а одлуката за маршрутирање сепак ќе биде погрешна или двосмислена.

Изберете една од трите чесни опции: пренумерирајте една локација, преведете го преклопувачкиот опсег на портата за секоја страна да гледа различен префикс, или откажете се од директно маршрутирање за тие домаќини и објавете ја услугата на друг начин. Секоја има цена, а првата обично е најевтина на двегодишен хоризонт. Одлучете пред тунелот да постои, зашто подоцна промената допира секој уред што ја има старата адреса.

Решете го и прашањето за MTU рано. Тунелот ја намалува корисната носивост, а решение што се потпира на фрагментација се однесува поинаку од тоа што го фиксира MSS на портите.

Преносот и политиката стојат надвор од тунелот

Портата мора да биде подготвена да пренесува пакети помеѓу интерфејсот на тунелот и LAN интерфејсот, а двата правца имаат потреба од политика што ја дозволува услугата. Во Linux тоа се две одделни поставки, плус правилата на огнениот ѕид што одлучуваат дали пренесениот тек воопшто е дозволен.

sysctl -w net.ipv4.ip_forward=1
iptables -A FORWARD -s 10.20.0.0/24 -d 10.10.0.0/24 -j ACCEPT
iptables -A FORWARD -s 10.10.0.0/24 -d 10.20.0.0/24 -j ACCEPT

Домаќинот што прима додава трет слој: неговиот сопствен огнен ѕид сепак мора да прими клиент од далечната подмрежа. Датотечен сервер што дозволува само својата локална /24 ќе го одбие пренесениот сообраќај од 10.20.0.7, колку и да изгледа здрав тунелот, а тоа одбивање лесно се чита како дефект во маршрутирањето.

Тестирајте од домаќин, а не од портата

Ping што го испраќа самата порта може да следи друга изворна адреса и друга политика од пренесениот кориснички сообраќај. Тоа го прави слаб тест, а понекогаш и измамен: успева кога апликацијата не успева, или не успева кога апликацијата работи.

ip route get 10.10.0.5 from 10.20.0.7
ping -I 10.20.0.7 10.10.0.5
curl -sv --max-time 5 http://files.10-10.internal/ -o /dev/null

Користете вистински домаќин, вистинска изворна адреса и вистинскиот протокол што го користи апликацијата. Потоа прочитајте го повратниот пат одделно, зашто насоката напред што работи без повратна маршрута дава истекување на времето што изгледа исто како блокирана услуга.

Изберете го решението според прашањето на кое одговарате: дали поврзувате мрежи или примате уреди? Сето останато, вклучително и кој добавувач го конфигурирате, произлегува од тој одговор.

Поврзани статии