A all cleientiaid ar ddau weinydd OpenVPN gyrraedd ei gilydd?
Mae dau weinydd OpenVPN yn creu dau gronfa cleientiaid, nid un rhwydwaith. Llwybrwch rhyngddynt gyda is-rwydweithiau gwahanol, llwybrau cilyddol a ffin ymddiriedaeth glir.
Mae sefydlu ail OpenVPN weinydd yn rhoi ail le i gleientiaid gysylltu, a dim mwy. Nid yw’n rhoi’r cleientiaid hynny ar rwydwaith y gweinydd cyntaf, a dim ond opsiwn o’r enw client-to-client sy’n newid anfon ymlaen o fewn un broses weinydd. Daw’r ddwy gronfa yn un rhwydwaith pan lwybrwch rhyngddynt yn fwriadol, gyda pherchennog ar gyfer pob cyfeiriad. Mae popeth isod yn tybio modd TUN yn lle defnyddiwr gyda’r anfon ymlaen mewnol hwnnw wedi’i ddiffodd, felly’r cnewyllyn sy’n penderfynu.
Y chwedl: un rhestr gyfrifon, un rhwydwaith
Mae dilysu a chyrhaeddiad yn cael eu cymysgu oherwydd bod y ddau yn byw yng nghyfluniad y gweinydd. Mae defnyddiwr sy’n gallu mewngofnodi i’r naill borth neu’r llall, o’r tu allan, yn edrych fel defnyddiwr ar un system â dwy ddör. Y tu mewn, mae pob gweinydd yn dosbarthu cyfeiriadau o’i gronfa ei hun ac yn gosod llwybrau dim ond ar gyfer y cleientiaid y mae’n eu gorffen. Felly mae cleient ar borth A sy’n anfon pecyn at gleient ar borth B yn gofyn am gyrchfan nad yw ei weinydd ei hun erioed wedi clywed amdani. Aiff y pecyn i lwybr diofyn A, yn gadael y tiwnel, ac yn cyrraedd mur tân na ofynnwyd iddo erioed ei ganiatáu.
Felly nid yw ychwanegu ail weinydd yn ychwanegu ail ddyblygedd, darganfod na pharth darlledu a rennir. Mae’n ychwanegu rhwydwaith a lwybrwyd sydd angen cynllun, ac mae’r cynllun yn dechrau gyda chyfeiriannu.
Rhowch gronfa a chyfeiriad trosglwyddo ei hun i bob porth
Dwy ystod na allant orgyffwrdd â dim arall, ynghyd â chyswllt trosglwyddo bach rhwng y gwesteiwyr, yw’r cynllun cyfeiriadau cyfan. Cadwch y trosglwyddo ar segment preifat a reolwch, ac ysgrifennwch y rhifau i lawr cyn i unrhyw weinydd roi les.
| Gateway | Client pool | Transit address |
|---|---|---|
| gateway-a | 10.64.10.0/24 | 172.28.44.1/30 |
| gateway-b | 10.64.20.0/24 | 172.28.44.2/30 |
Gwrthwynebwch y demtasiwn i roi’r un gronfa i’r ddau weinydd fel bod proffiliau’n aros yr un fath. Ni all llwybr cnewyllyn ddweud pa un o ddau westai sy’n berchen ar gyfeiriad mympwyol o fewn ystod a rennir ar hyn o bryd, felly byddai’r tabl llwybro yn pwyntio at un porth ac efallai bod y cleient ynghlwm wrth y llall. Confensiynau lleol yw enwau rhyngwyneb, nid cyflwr a rennir. Mae’r ddau westai yma yn galw’r ddyfais diwnel tun0 a’r cyswllt trosglwyddo transit0, sy’n iawn oherwydd nad oes pecyn yn cario’r enwau hynny.
Gosodwch y llwybr ar y ddwy ochr
Mae angen llwybr ar bob porth ar gyfer cronfa’r llall drwy’r cyfeiriad trosglwyddo, ac mae’n rhaid i anfon ymlaen fod ymlaen i’r naill na’r llall weithredu fel naid. Cadarnhewch y tabl presennol yn gyntaf, yna ychwanegwch y cofnod a’i gadw drwy reolwr rhwydwaith y gwestai yn hytrach na bachyn ailgysylltu.
sysctl net.ipv4.ip_forward
ip route add 10.64.20.0/24 via 172.28.44.2 dev transit0
ip route get 10.64.20.37
Adlewyrchwch hynny ar y gwestai arall gyda’r cronfeydd wedi’u cyfnewid. Ailadrodd yr un llwybr o sgript ddigyswllt yw sut mae gwestai yn gorffen â sawl copi a newid dirgel y tro nesaf y bydd rhywun yn darllen y tabl. Os yw’r cyswllt trosglwyddo ei hun yn diwnel, mae’r llwybr yn pwyntio at dopoleg y tiwnel hwnnw a rhaid i’r naid oroesi ei ailgysylltiad. Mae cyfeiriad trosglwyddo sy’n diflannu am ddeg ar hugain o eiliadau yn cymryd y llwybr rhwng cronfeydd gydag ef, sy’n briodoledd dylunio sy’n werth ei datgan yn hytrach na’i darganfod.
Gwthiwch lwybr y cleient heb ffugio perchnogaeth
Mae angen llwybr ar gleientiaid ar gyfer y gronfa bell, fel arall mae eu system weithredu eu hunain yn anfon y pecyn i’w phorth diofyn ac ni fydd y tiwnel byth yn ei weld. Cyfluniad y gweinydd yw’r lle naturiol i gyflenwi hynny.
push "route 10.64.20.0 255.255.255.0"
Rhowch y llinell adlewyrchu yng nghyfluniad y gweinydd arall, yna ailgysylltwch gleient prawf a darllenwch ei thabl. Mae cleient sy’n anwybyddu llwybrau wedi’u gwthio angen ei gyfluniad cymeradwy ei hun, ac nid yw llwybr nad yw byth yn cyrraedd yn rheolaeth mynediad. Peidiwch â rhoi iroute i gleient ar gyfer holl gronfa’r porth arall. Mae’r gyfarwyddeb honno’n bodoli ar gyfer is-rwydwaith y tu ôl i un cleient cysylltiedig, ac mae ei defnyddio i orchuddio llwybr rhyngborth coll yn cynhyrchu gweinydd sy’n credu ei fod yn berchen ar gyfeiriadau na all eu cyrraedd.
Profwch un cais a gwrthodwch un arall
Dewiswch weithrediad go iawn, er enghraifft HTTPS o gleient yn 10.64.10.21 i wasanaeth yn 10.64.20.37, a chaniatáu’n union hynny ar y ddau westai. Mae pob mur tân yn derbyn y cais ar ei ochr fewnol a’r ateb wedi’i dracio ar yr ochr dychwelyd; rhaid i bolisi gwasanaeth y gyrchfan ei dderbyn o hyd.
iptables -A FORWARD -i tun0 -o transit0 -s 10.64.10.21 -d 10.64.20.37 -p tcp --dport 443 -j ACCEPT
iptables -A FORWARD -i transit0 -o tun0 -d 10.64.10.21 -s 10.64.20.37 -p tcp --sport 443 -m conntrack --ctstate ESTABLISHED -j ACCEPT
Gyda llwybrau cilyddol, mae NAT ffynhonnell yn ddiangen ac yn niweidiol yma: mae cyfieithu’r ffynhonnell yn cuddio pa gleient a wnaeth y cais ac yn trechu polisi sy’n seiliedig ar ffynhonnell ar ochr y gyrchfan. Gwiriwch nad yw rheol masgu presennol ar gyfer allanfa’r rhyngrwyd hefyd yn dal y llwybr hwn. Yna profwch y gwrthodiad. Rhaid i wasanaeth a ddylai aros yn lleol i gronfa B aros yn anghyrhaeddadwy o gronfa A, ac mae angen profi parau cleientiaid ar yr un porth hefyd, gan fod y polisi anfon ymlaen a newidiwyd gennych yn union nawr yn berthnasol iddynt hwythau.
Un cywiriad arall i’r model meddwl: mae’r cyswllt trosglwyddo yn cario pecynnau mewnol wedi’u dadgryptio, felly ffin ymddiriedaeth ydyw yn hytrach na gwarant breifat. Os yw’n croesi rhwydwaith nad ydych yn ei reoli, amddiffynnwch y naid honno â thiwnel amgryptiedig cymeradwy a llwybrwch drwy ei dopoleg go iawn. Mae TLS o’r dechrau i’r diwedd yn dal i ddilysu’r cymhwysiad ar ei liwt ei hun, a dyna pam y dylai’r gwasanaeth mewnol barhau i’w ddefnyddio.