A yw enw gwesteiwr porth Pi yn diweddaru llwybrau statig ar ei ben ei hun?
Nid yw enw DNS ar gyfer eich porth Pi byth yn ailysgrifennu naid nesaf sydd wedi'i osod. Gwelwch beth mae'r cnewyllyn yn ei storio a phwy sydd raid diweddaru'r llwybr.
Mae pwyntio llwybr statig at enw porth yn teimlo fel y dylai oroesi newid cyfeiriad, ac nid yw'n gwneud. Mae'r enw'n byw yn DNS, tra bod y llwybr yn eistedd yn nhabl llwybro'r cleient fel naid nesaf rifiadol. Pan fydd y Pi yn symud i gyfeiriad gwahanol, mae pob defnyddiwr sydd eisoes wedi gosod yr hen naid yn parhau i anfon traffig at yr un rhif. Nid oes unrhyw ddatryswr wedi'i wifro i'r tabl anfon, felly nid oes dim yn ailysgrifennu'r cofnod hwnnw drosoch.
Mae'r ateb DNS a'r llwybr yn wahanol wrthrychau
Dywedwch fod eich Pi yn ateb i vpn-gw.lan ac yn anfon 10.44.0.0/16 i mewn i dwnnel. Mae cleientiaid ar 192.168.30.0/24 yn ei gyrraedd drwy lwybr statig. Pan symudodd cyfeiriad y Pi o 192.168.30.4 i 192.168.30.11, dilynodd y cofnod o fewn ei TTL ac ni wnaeth y llwybrau.
Mae'r ddau olwg yn anghytuno mewn ffordd sy'n hawdd ei cholli, oherwydd mae'r ddau yn edrych yn gredadwy pan fyddwch yn holi amdanynt ar wahân:
$ ip route get 10.44.0.1
10.44.0.1 via 192.168.30.4 dev eth0 src 192.168.30.20
$ dig +short vpn-gw.lan
192.168.30.11
Dim ond y llinell gyntaf sy'n penderfynu i ble mae pecynnau'n mynd. Mae'r ail linell yn ateb cwestiwn na ofynnodd y cnewyllyn erioed. Nid yw cofnod gyda sawl cofnod A yn dod yn bolisi methiant chwaith, gan fod yn rhaid i bob cyfeiriad fod yn naid nesaf ymarferol ar y segment hwnnw.
Beth sy'n goroesi yn y tabl ar ôl i'r gorchymyn ddod i ben
Mae llwybr Linux yn cofnodi dau beth sy'n bwysig yma: y naid nesaf fel cyfeiriad protocol, a'r rhyngwyneb allan fel rhif mynegai. Mae'r priodoleddau llwybr rtnetlink yn enwi'r maes cyntaf hwnnw RTA_GATEWAY, ac mae'n dal beitiau. Unwaith y bydd y cofnod yn ei le, nid oes TTL ynghlwm wrtho ac nid oes unrhyw chwiliad cefndir yn ei adnewyddu.
Dyma pam y gall ip route add 10.44.0.0/16 via vpn-gw.lan ymddangos fel petai'n gweithio. Mae'r offeryn yn datrys yr enw wrth i'r gorchymyn redeg, yn ysgrifennu'r cyfeiriad sy'n deillio o hynny, ac yn anghofio'r enw'n llwyr. Rhedwch ip route show 10.44.0.0/16 wedyn a chewch gyfeiriad llythrennol yn ôl.
Mae'r ymddygiad hwnnw'n werth ei wybod cyn i chi feio'r twnnel.
Offerynnau sy'n datrys enw drosoch, a phryd
Mae rhai llwybryddion a muriau tân yn derbyn enwau gwesteiwr mewn maes llwybr neu borth. Y peth sy'n bwysig yw pryd mae'r datrysiad yn digwydd. Os yw'r ddyfais yn datrys yr enw dim ond pan fyddwch yn cyflwyno'r ffurfweddiad, mae'r cofnod a storiwyd yr un mor statig â chyfeiriad wedi'i deipio, ac mae newid cyfeiriad yn hwyrach angen cyflwyniad arall. Nid yw'r maes yn derbyn enw yn dweud dim wrthych am adnewyddu.
Mae gosodiadau a reolir yn tueddu i rannu'r gwaith. Mae cadwfa DHCP neu brydles statig yn cadw'r Pi ar un cyfeiriad, ac mae'r cofnod DNS yn dilyn y brydles yn syml. Nid oes rhaid i ddim olrhain targed symudol oherwydd nad yw'r targed yn symud.
Mae diweddarwr a fonitrwyd yn batrwm dilys arall, ac mae angen perchennog arno.
Pinwch y cyfeiriad neu redwch y diweddarwr eich hun
Ar gyfer LAN fach, cadwfa ar y gweinydd DHCP yw'r atgyweiriad rhataf. Dewiswch gyfeiriad y tu allan i'r pwll dynamig, ei rwymo i gyfeiriad MAC y Pi, a'i gadarnhau gyda ip -4 addr show dev eth0 ar ôl yr adnewyddiad prydles nesaf. Yna pwyntiwch naid nesaf y cleientiaid at y cyfeiriad hwnnw unwaith. Nawr mae gennych borth sefydlog a chofnod sy'n ei ddisgrifio, a dyna'r drefn y mae'r berthynas yn gweithio ynddi mewn gwirionedd.
Os oes rhaid i'r Pi symud o ddifrif, cadwch y gwaith atgyweirio llwybr mewn un man yn hytrach na golygu pob cleient â llaw. Mae sgript fer sy'n datrys, yn cymharu ac yn disodli yn ddigon i wneud y cam yn ailadroddadwy:
new=$(dig +short vpn-gw.lan | head -n1)
cur=$(ip route get 10.44.0.1 | awk '{print $3}')
if [ "$new" != "$cur" ]; then
ip route replace 10.44.0.0/16 via "$new"
fi
ip route get 10.44.0.1
Y gorchymyn olaf yw'r prawf derbyn, oherwydd mae'n argraffu'r porth y bydd y cnewyllyn yn ei ddefnyddio mewn gwirionedd. Os yw'r cyfeiriad a argraffwyd yn dal yn un hen, rhedodd y sgript yn y gofod enw rhwydwaith anghywir neu nid oedd ganddi ganiatâd, ac mae ochr DNS yn amherthnasol.
Gwiriwch y llwybr dychwelyd hefyd. Rhaid i'r Pi wybod sut i gyrraedd is-rwydwaith y cleientiaid, a rhaid i'w mur tân ganiatáu traffig y twnnel. Mae llwybr diofyn a ychwanegwyd i guddio'r anghysondeb fel arfer yn cuddio'r bwlch go iawn ac yn torri rhywbeth arall wythnos yn ddiweddarach.