Mae blychau sy’n llwybro ar gyfer LAN ac ar yr un pryd yn deialu VPN yn cyrraedd yr un ddadl â nhw eu hunain: mae’r twnnel eisiau meddiannu’r llwybr diofyn, ac mae ar y LAN ei eisiau yn ôl. Pan fydd OpenVPN yn cysylltu, gall osod llwybr diofyn trwy’r twnnel neu bâr o hanner llwybrau diofyn, sy’n iawn ar gyfer gliniadur ac yn anghywir ar gyfer porth y mae ei chymydogion yn disgwyl atebion o’i chyfeiriad LAN. Nid yr ateb yw hepgor y VPN. Yr ateb yw rhoi dau dabl gwahanol i’r ddau benderfyniad.

Un llwybr diofyn, dau berchennog

Nid oes rhaid i draffig a anfonir ymlaen a thraffig a gychwynnir yn lleol fynd yr un ffordd. Dim ond ar gyfer y cyrchfannau a ddewch chi y mae angen y twnnel ar gleientiaid LAN, tra bo sesiynau rheoli’r gwesteiwr ei hun a’i atebion i’r cleientiaid hynny angen llwybr diofyn y LAN. Mae cymysgu’r ddau yn y prif dabl yn gorfodi un ateb ar ddau gwestiwn gwahanol.

Mae gan OpenVPN switsh ar gyfer hyn yn union. route-noexec yn atal y cleient rhag cyffwrdd â’r prif dabl o gwbl, ac mae’r gwerthoedd y byddai wedi’u defnyddio yn cael eu hallforio i sgript route-up fel route_vpn_gateway, dev a chyfeiriadau’r rhyngwyneb. Yna chi sy’n penderfynu pa dabl sy’n cael pa lwybr, mewn cod y gallwch ei ddarllen yn ddiweddarach.

Tabl polisi yn erbyn ailysgrifennu’r prif dabl

ApproachWhat it buysWhat it costs
Separate table plus source ruleLAN traffic and host traffic keep independent defaultsEvery lookup now depends on rule order
Editing the main table onlyFewer moving parts on a single-purpose hostOne mistake takes the gateway offline entirely
Two half-default routesWorks for a full-tunnel clientAmbiguous on a host that must answer on its LAN address

Y tabl ar wahân yw’r unig opsiwn sy’n graddio y tu hwnt i un is-rwydwaith. Enwch ef unwaith, yna cyfeiriwch ato wrth ei enw fel na fydd yn rhaid i neb gofio rhif:

echo "10 vpn" >> /etc/iproute2/rt_tables
ip rule add from 192.168.50.0/24 table vpn
ip route add default via 10.8.0.1 dev tun0 table vpn

Mae’r cyfeiriadau yma’n ddeiliaid lle. Amnewidiwch ragddodiad y LAN, porth y twnnel ac enw’r ddyfais o’ch defnyddiad eich hun cyn rhedeg unrhyw beth.

Rhaid i’r rheol gyd-fynd â’r gwesteiwr hefyd

Mae rheol sy’n cyd-fynd â rhagddodiad y LAN yn unig yn cwmpasu pecynnau a anfonir ymlaen. Nid yw’n cwmpasu traffig y mae’r borth ei hun yn ei gychwyn, ac nid yw’n cwmpasu’r atebion a anfonir yn ôl at gleientiaid LAN, sy’n cario cyfeiriad LAN y borth fel eu ffynhonnell. Mae’r chwiliadau hynny’n syrthio i main a gallant o hyd fynd allan trwy’r twnnel.

Ychwanegwch ail reol ar gyfer cyfeiriad LAN y borth ei hun, neu ehangu’r rheol gyntaf i set sy’n cynnwys y ddau. Mae’r drefn yn bwysig: rhowch y rheol fwy penodol yn gyntaf, a gwirio’r canlyniad gyda chwiliad sy’n enwi’r ffynhonnell yn benodol.

ip route get 203.0.113.9 from 192.168.50.1

Os yw hynny’n adrodd dyfais y twnnel ar gyfer cyrchfan a ddylai aros yn lleol, mae’r set rheolau’n anghywir beth bynnag sydd yn y tabl.

NAT neu lwybr ar yr ochr bell

Mae gweinydd VPN yn gwybod is-rwydwaith y twnnel a dim arall. Nid oes gan becynnau sy’n cyrraedd â chyfeiriad ffynhonnell LAN unrhyw lwybr dychwelyd oni bai bod rhywun yn darparu un, ac mae yna ddwy ffordd yn union o’i ddarparu. Mae ychwanegu llwybr ar gyfer rhagddodiad y LAN ar y gweinydd yn cadw’r ffynhonnell wreiddiol yn weladwy o’r naill ben i’r llall, sef yr hyn y mae dyluniad archwiliedig fel arfer yn ei eisiau. Mae masgio ar y borth yn ailysgrifennu’r ffynhonnell i gyfeiriad y twnnel ac nid oes angen cydweithrediad gan y gweinydd.

iptables -t nat -A POSTROUTING -s 192.168.50.0/24 -o tun0 -j MASQUERADE

Dewiswch NAT pan nad ydych yn rheoli’r gweinydd ac na allwch ychwanegu llwybrau yno. Dewiswch lwybr ar ochr y gweinydd pan fo logiau, rheolaeth mynediad neu gymesuredd y llwybr dychwelyd yn bwysig, oherwydd mae masgio’n dileu’r cyfeiriad gwreiddiol o bopeth y mae’r ochr bell yn ei gofnodi.

Naill ffordd neu’r llall, rhaid i anfon ymlaen fod wedi’i alluogi, a gall hidlo llwybr cefn llym ollwng yr ateb pan na fyddai main wedi dewis y twnnel ar gyfer y ffynhonnell honno. Gwiriwch y gwerth effeithiol cyn beio’r twnnel.

Gwneud i’r hollt oroesi ailgysylltiad

Mae rheolau a llwybrau a ychwanegwyd â llaw yn diflannu pan gaiff y rhyngwyneb ei ail-greu, a gall cofnod tabl hen ffasiwn oroesi’r sesiwn a’i cyfiawnhaodd. Rhowch reol y tabl, llwybr y twnnel a chofnod y masgio y tu mewn i sgript route-up y cleient, a fflysjo’r tabl ar frig y sgript fel na all hen borth oroesi i’r sesiwn newydd.

Gwiriwch o’r ddau ben: chwiliad ar y borth gyda ffynhonnell y LAN, a chais go iawn o gleient LAN i gyrchfan a ddylai fynd trwy’r twnnel. Mae llwybr sy’n bodoli ond nad yw byth yn cael ei ddewis yn ymddwyn yn union fel dim llwybr o gwbl nes i chi ddarllen y cownteri.

Erthyglau cysylltiedig