Поставувањето на цел 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 поставка станува делумна.

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