eth0:0 yw label, nid dyfais: trwsiwch y cyfatebiad SNAT
Mae cownter sero yn golygu bod y rheol yn enwi rhyngwyneb na all fodoli. Darllenwch y ddyfais go iawn, trwsiwch y cyfatebiad -o, yna dewiswch y cyfeiriad cyfieithiedig yn fwriadol.
Mae rheol NAT a oedd i fod i roi ei chyfeiriad cyhoeddus ei hun i un pwll cleientiaid VPN yn eistedd ar sero pecyn, tra mae'r un pwll yn dal i adael dan y ffynhonnell anghywir. Fel arfer nid yw'r rheol yn anghywir ynglŷn â'r cyfeiriad; mae'n anghywir ynglŷn â'r rhyngwyneb. -o eth0:0 yn cyfeirio at ddyfais nad yw'n bodoli, oherwydd eth0:0 yw label sydd ynghlwm wrth gyfeiriad, a dyfais y cyfeiriad hwnnw yw eth0. Gwylio'r cownteri yw'r ffordd gyflymaf i gadarnhau hynny, ac mae'r trwsiad yn llai nag y mae'r ymchwiliad yn ei awgrymu.
Gwiriwch beth mae'r cnewyllyn yn ei alw'n ddyfais
Darllenwch y ddau olygfa ar wahân cyn newid unrhyw beth:
ip link show
ip address show dev eth0
ip route get 203.0.113.20
Mae'r rhestr cysylltau yn dangos rhyngwynebau. Gall y rhestr cyfeiriadau ddangos ail gyfeiriad IPv4 sy'n cario'r label: eth0:0, a dyfais y cyfeiriad hwnnw yw eth0. Mae llawlyfr cyfeiriadau iproute2 yn trin y label fel enw ar y cyfeiriad, nid fel ail gyswllt, a dyna'r gwahaniaeth y mae'r broblem gyfan yn troi arno.
Mae'r hanes yn egluro'r dryswch. Roedd yr hen gystrawen ifconfig eth0:0 wir yn edrych fel rhyngwyneb newydd, ac mae sgriptiau o'r cyfnod hwnnw'n dal i gyfeirio at un. Ar system gyfredol, label ar gyfeiriad yw'r alias, ac nid oes unrhyw beth ar lwybr llwybro na netfilter yn ei drin fel pwynt allbwn ar wahân.
Gwiriwch beth gydweddodd y rheol ag ef mewn gwirionedd
Darllenwch y cownteri gyda'r rhestr rheolau, nid o'r cof:
iptables -t nat -L POSTROUTING -v -n --line-numbers
Nid yw rheol y mae ei chownter pecynnau'n aros ar sero tra bo traffig cyfatebol yn llifo yn cael ei gwerthuso, ac mae amod rhyngwyneb allbwn sy'n enwi eth0:0 yn achos cyffredin. Y ddyfais allbwn a ddewiswyd gan y llwybr yw eth0, felly nid yw amod sy'n chwilio am enw gwahanol yn dod yn wir byth, ni waeth pa gyfeiriad ffynhonnell a ddewisodd y cnewyllyn.
Newidiwch yr amod i'r wir ddyfais a gadewch y label allan ohoni. Os oes angen gwahaniaethu dau bwll cleientiaid sy'n rhannu'r ddyfais honno, gwahaniaethwch nhw trwy ragddodiad ffynhonnell, nid trwy enw rhyngwyneb na all fodoli. Mae dwy reol â -s chyfatebiadau nad ydynt yn gorgyffwrdd yn ddarllenadwy ac yn brofadwy; nid yw un rheol â dyfais ffug yn un o'r ddau. Rhowch sylw i bob rheol sy'n enwi'r pwll, oherwydd ymhen chwe mis ni fydd y rhagddodiad ar ei ben ei hun yn dweud wrth neb pam mae yno.
Gwiriwch y llwybr a ddewisodd y ddyfais
Mae NAT ôl-lwybro yn rhedeg ar ôl i'r llwybr ddewis rhyngwyneb allbwn yn barod, felly rhaid i'r rhyngwyneb yn y rheol fod yr un a ddewiswyd gan y llwybr. Gofynnwch i'r cnewyllyn yn uniongyrchol gyda ip route get am gyfeiriad cleient cynrychioladol a darllenwch y ddyfais a'r ffynhonnell y mae'n ei hadrodd.
Os yw'r ateb yn enwi eth0, mae rhan rhyngwyneb y rheol wedi'i setlo. Os yw'n enwi dyfais twnnel, nid yw'r pecyn byth yn cyrraedd y rheol rydych chi'n ei golygu, ac mae'r chwiliad yn symud i'r tabl llwybro a'i flaenoriaethau. Mae rheol nad yw byth yn cyfateb oherwydd i'r pecyn adael yn rhywle arall yn edrych yn union yr un fath yn allbwn y cownteri â rheol â dyfais wedi'i sillafu'n anghywir. Cadarnhewch pa un o'r ddau sydd gennych cyn golygu unrhyw beth, oherwydd mae'r ail angen newid llwybro yn hytrach na newid testun.
Dewiswch y ffynhonnell gyfieithiedig yn fwriadol
Unwaith y bydd y ddyfais yn iawn, penderfyniad ar wahân yw'r cyfeiriad ffynhonnell. Dyma bwll IPv4 darluniadol a chyfeiriad enghreifftiol yn unig:
iptables -t nat -A POSTROUTING -s 10.8.1.0/24 -o eth0 \
-j SNAT --to-source 203.0.113.20
Nid yw ysgrifennu cyfeiriad i mewn i --to-source yn gwneud i unrhyw un ei lwybro'n ôl atoch. Rhaid i'r darparwr uwchradd neu berchennog y cyfeiriad gyflwyno atebion ar gyfer y cyfeiriad hwnnw i'r gwesteiwr hwn, a rhaid i'r cyfeiriad fod yn un y cawsoch eich awdurdodi i'w ddefnyddio. Os nad ydyw, bydd y rheol yn cyfateb ac yn cyfieithu, a bydd yr atebion yn dal i fynd yn rhywle arall.
Nid yw newid y cyfeiriad ffynhonnell yr un peth â newid y cyswllt i fyny. Pan fo'r gwir ofyniad yn llwybr corfforol gwahanol, rhaid i'r polisi llwybro ddewis y llwybr hwnnw'n gyntaf; yna mae SNAT yn ailysgrifennu'r ffynhonnell ar ba bynnag ddyfais a ddewisodd y polisi. Nid yw ychwanegu mwy o labeli at eth0 yn darparu'r llwybr na'r awdurdodiad.
Gwiriwch â chysylltiad yr ydych newydd ei agor
Agorwch gysylltiad cleient newydd yn hytrach na ailddefnyddio un sy'n bodoli. Mae olrhain cysylltiadau'n cadw'r cyfieithiad a gofnodwyd ganddo pan ddechreuodd y llif, felly gall hen sesiwn barhau i ddefnyddio'r cyfeiriad ffynhonnell blaenorol a gwneud i reol newydd gywir edrych yn doredig. Gwyliwch y cownter yn cynyddu, yna arsylwch y ffynhonnell gyfieithiedig ar y wifren neu yn y pen pell.
Ar gyfer sawl pwll sy'n rhannu un rhyngwyneb, rhowch gyfatebiad ffynhonnell penodol a'i gyfeiriad cyfieithu ei hun i bob un, cadwch nhw yn y ffurfweddiad rheoledig y mur tân, a nodwch y drefn y cânt eu gwerthuso. Yna cofnodwch yr hyn a wiriwyd gennych: y ddyfais o ip route get, y cownter a symudodd, a'r ffynhonnell a welodd yr ochr bell. Mae'r cofnod hwnnw'n ateb yr adroddiad nesaf heb ailadrodd y dryswch alias.