Ставити цео 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 поставка постаје делимична.

Повезани чланци