Mae ffonau'n cysylltu â'r man mynediad, yn derbyn cyfeiriad, ac yna'n cyrraedd dim o gwbl unwaith y bydd y twnnel yn codi. Mae hostapd fel arfer yn iach yn y cyflwr hwnnw, ac OpenVPN hefyd; yr hyn sy'n torri yw'r llwybr diofyn, sydd naill ai byth wedi bod ar y bont neu wedi'i ddisodli gan y twnnel heb adael llwybr at weinydd VPN ei hun. Mae'r llawlyfr hwn yn rhoi'r llwybr hwnnw yn ôl lle mae'n perthyn ac yn profi'r canlyniad o gleient yn hytrach nag o'r Pi. Mae pob cam yn wrthdroi, ac nid oes unrhyw beth yma yn newid ffurfweddiad y twnnel nes eich bod yn gwybod pa draffig rydych chi ei eisiau y tu mewn iddo.

Rhestrwch y rhyngwynebau cyn i chi olygu unrhyw beth

Mae'r cynllun cyfarwydd yn rhoi'r radio diwifr a'r porth gwifrau y tu mewn i br0, yn cychwyn hostapd yn erbyn y bont ac yn dosbarthu prydlesi o dnsmasq, tra bo cleient OpenVPN yn creu tun0. Yna mae tri gofyniad ar wahân yn edrych fel un: mae angen y Pi fel eu porth ar gleientiaid y man mynediad, mae angen llwybr i'r rhyngrwyd ar y Pi i gyrraedd ei weinydd, ac mae angen cyfeiriad porth ar y bont y gall y cleientiaid hynny ei ddefnyddio.

Darllenwch y cyflwr cyfredol cyn ei newid, oherwydd mae'r pedwar gorchymyn hyn yn gwahanu problem rhyngwyneb oddi wrth broblem llwybro.

ip -br addr
ip route show
ip link show master br0
bridge link show

Os yw br0 yn cario cyfeiriad ond heb lwybr diofyn, mae cleientiaid yn cyrraedd y Pi a dim byd y tu hwnt. Os yw'r llwybr diofyn yn pwyntio at tun0 tra bo'r twnnel i lawr, nid oes gan y Pi unrhyw lwybr gweithredol o gwbl, ac mae symptom y cleient yn edrych yn union yr un fath. Mae'r ddau achos yn edrych yn unfath o ffôn, a dyna pam mae'n rhaid darllen y tabl llwybro yn uniongyrchol.

Rhowch lwybr diofyn i'r bont sy'n perthyn iddi

Mae Raspberry Pi OS yn aml yn gadael y bont heb lwybr diofyn pan ddaeth y bont i fod ar ôl ysgrifennu'r ffeil ryngwyneb. Mae'r bloc yn perthyn yn /etc/dhcpcd.conf, ac fe ddylai enwi'r llwybrydd uwch yn hytrach na'r Pi.

interface br0
static ip_address=192.168.50.2/24
static routers=192.168.50.1
static domain_name_servers=192.168.50.1

Yn yr enghraifft honno 192.168.50.1 yw'r llwybrydd presennol a 192.168.50.2 yw cyfeiriad pont y Pi yn yr un is-rwydwaith, felly rhoddwch eich cynllun eich hun yn lle copïo'r rhifau. Rhaid i aelodau'r bont beidio â gofyn am lwybryddion chwaith, neu bydd y Pi yn gorffen â llwybrau diofyn cystadleuol y mae eu hennillydd yn dibynnu ar fetrig ac amser yn hytrach nag ar fwriad.

Ar ôl systemctl restart dhcpcd, dylai ip route show default restru br0 unwaith ac heb ddyblygiad o'r porth gwifrau. Cadarnhewch yr edrychiad yn hytrach na'r tabl, oherwydd gall cofnod hen segur eistedd wrth ymyl un buddugol: rhaid i ip -4 route get 203.0.113.10 enwi br0. Daw'r cyfeiriad hwnnw o ystod dogfennaeth TEST-NET-3, felly ni all wrthdaro â gweinydd go iawn wrth i chi ddarllen hwn.

Atal y twnnel rhag herwgipio'r llwybr at ei weinydd ei hun

Mae cleient OpenVPN sy'n derbyn redirect-gateway yn cymryd y llwybr diofyn drosodd ac yn ei gyfeirio i'r twnnel. Mae hynny'n iawn pan ddylai pob cleient man mynediad ddefnyddio'r VPN, ac yn anghywir pan mai dim ond rhai cyrchfannau ddylai. Naill ffordd neu'r llall, ni ddylai cysylltiad y Pi ei hun â'r gweinydd deithio y tu mewn i'r twnnel y mae'n dal i'w adeiladu. Mae OpenVPN yn ychwanegu llwybr gwesteiwr at y pell trwy'r porth gwreiddiol pan fydd yn ailgyfeirio'r llwybr diofyn, a dyna'n union yr ymddygiad sy'n cadw'r cludiant yn fyw; os yw'r llwybr hwnnw ar goll, mae'r twnnel yn dymchwel cyn gynted ag y bydd yn sefydlu.

Mae cymhariaeth gyflym o'r llwybr cludo hwnnw cyn ac ar ôl cysylltu yn werth y deg eiliad. Dylai ip -4 route get 203.0.113.10 enwi'r ddyfais waelodol yn y ddau gyflwr, gyda dim ond y fetrig yn symud. Os yw'n enwi tun0 ar ôl i'r twnnel godi, ni osodwyd y llwybr gwesteiwr erioed a bydd yr ailgysylltiad nesaf yn methu.

Pan mai dim ond rhagddodiaid dethol ddylai groesi'r twnnel, defnyddiwch route-nopull ac ychwanegwch y llwybrau rydych chi eu heisiau â llaw, neu gwthiwch set gulach o'r gweinydd. Mae'r bont yn cadw'r llwybr diofyn yn y cynllun hwnnw, ac mae DNS yn dod yn benderfyniad nesaf: dim ond ar gyfer yr enwau sy'n byw yno mewn gwirionedd y mae anfon dnsmasq at ddatryswr cartref yn gwneud synnwyr.

Penderfynwch ar y stori anfon a NAT

Mae angen twnnel llawn ar anfon wedi'i alluogi ar y Pi a phorth ar yr ochr bell yn barod i lwybro is-rwydwaith y man mynediad. Gwiriwch anfon cyn unrhyw beth arall, oherwydd mae sero yn gwneud pob newid llwybr yn amherthnasol.

sysctl net.ipv4.ip_forward
sysctl -w net.ipv4.ip_forward=1
iptables -t nat -A POSTROUTING -s 192.168.50.0/24 -o tun0 -j MASQUERADE

Y rheol NAT yw'r llwybr byr sy'n gweithio pan na fydd y gweinydd yn derbyn rhagddodiad y man mynediad, ar gost pob cleient yn ymddangos fel cyfeiriad twnnel y Pi yng nghofnodion yr ochr bell. Mae llwybro'r rhagddodiad heb NAT yn cadw cyfeiriadau'n weladwy ac yn dibynnu ar lwybr dychwelyd ar gyfer 192.168.50.0/24 ar yr ochr gartref.

Ysgrifennwch y dewis wrth ymyl rheolau'r wal dân, oherwydd mae rheol NAT sy'n anweledig yn y cynllun yn dod yn anesboniadwy chwe mis yn ddiweddarach. Cadwch IPv6 yn yr un penderfyniad; mae llwybr IPv4 sy'n gweithio wrth ymyl llwybr IPv6 sydd wedi torri yn dal i ddarllen fel hanner toredig mewn porwr.

Gwiriwch o gleient, yna dadwnewch yn lân

Profwch yn y drefn hon o ffôn neu liniadur ar y man mynediad: prydles o dnsmasq, ping i gyfeiriad y bont, yna cyrchfan ar ochr bell y twnnel. Mae pob cam yn ynysu un haen yn lle cynhyrchu un methiant diwerth.

ip -4 route get 203.0.113.10
ping -c 3 -I br0 203.0.113.10

Yna cadarnhewch fod gan y Pi ei lwybr allan ei hun o hyd: dylai ip route get 203.0.113.10 enwi'r ddyfais waelodol, a dylai ping -c 3 -I br0 203.0.113.10 ateb os yw'r gweinydd yn caniatáu ICMP. Os yw dau gam cyntaf y cleient yn pasio ac mae'r trydydd yn methu, mae'r bai yn yr anfon neu'r NAT. Os yw'r ail gam yn methu, mae'r bont neu DHCP yn dal yn anghyflawn.

Mae dadwneud yn un golygiad ffeil a dau orchymyn: tynnwch y bloc, ailgychwynnwch dhcpcd, a disodlwch y llwybr diofyn yn benodol gyda ip route replace default via 192.168.50.1 dev br0. Gwnewch hynny cyn i'r ffenestr gynnal a chadw gau yn hytrach nag ar ôl, oherwydd mae Pi sydd wedi colli ei lwybr diofyn yn un na ellir ei gyrraedd o'r rhwydwaith y byddech yn ei ddefnyddio i'w atgyweirio.

Erthyglau cysylltiedig