Ní theastaíonn ach líne amháin NAT chun gléas LAN a chur i láthair ar cheann de sheoltaí tolláin an gheata féin. Teipeann an nasc fós, mar níl a fhios ag an ngléas a fhreagraíonn go bhfuil seoladh an chliaint inrochtana tríd an ngeata sin. Lean an paicéad ón gcliant isteach, ansin lean an freagra ar ais amach, agus beidh an leath atá ar iarraidh soiléir.

Tosaigh ó dhearcadh an chliaint

Tá an cliant sa sampla seo sa linn VPN 10.62.0.0/24 agus nascann sé le 10.62.0.1 ar phort 8080. Baineann an seoladh sin leis an ngeata féin, mar sin sroicheann an paicéad eithne an gheata seachas piara eile. Taobh thiar den gheata tá an LAN 172.21.4.0/24. Coinníonn an geata 172.21.4.10 agus is é 172.21.4.40 an gléas a fhreastalaíonn ar HTTP i ndáiríre.

Ní féidir seoladh a bhaineann le piara VPN eile a mhalartú le seoladh seirbhíse an gheata. Má nascann an cliant le seoladh piara, ní bhíonn aon riail gheata i gceist ar chor ar bith, agus is é an cás mícheart an siúlóid iomlán seo.

Srian an t-aistriú cinn scríbe d’aon ghnó

Cuireann an leagan cúng port amháin i láthair agus ní athscríobhann sé ach an ceann scríbe. Coimeádann an paicéad a phrótacal agus a fhoinse, agus sin a fhágann an chuid eile den siúlóid suimiúil.

iptables -t nat -A PREROUTING -i tun0 -s 10.62.0.0/24 -d 10.62.0.1 -p tcp --dport 8080 -j DNAT --to-destination 172.21.4.40:80

Is é an leagan leathan riail gan chritéir phrótacail agus phoirt: coimeádann sé cibé port a roghnaigh an cliant agus ní athraíonn sé ach an seoladh. Tá sin dlisteanach nuair atá an t-óstach iomlán le cur i láthair, agus mícheart nuair a bhí seirbhís amháin i gceist. Léigh an riail ar ais agus deimhnigh ainm an chomhéadain. Ní mheaitseálann riail DNAT ar an gcomhéadan mícheart rud ar bith, rud a tháirgeann an teorainn ama chéanna le riail atá ar iarraidh agus a chaitheann uair an chloig ag féachaint ar an ngléas.

Lig teorainn an atreoraithe a bheith ar aon intinn

Athraíonn an t-aistriú an ceanntásc, ní thugann sé cead. Le polasaí réamhshocraithe diúltaithe teastaíonn glacadh dá chuid féin ón sreabhadh atreoraithe, agus teastaíonn an riail nasctha bhunaithe ón treo fillte a bhfuil sé de chosúlacht ar do pholasaí a bheith aici cheana.

iptables -A FORWARD -i tun0 -o lan0 -d 172.21.4.40 -p tcp --dport 80 -m conntrack --ctstate NEW -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

Tá glacadh gan choinníoll do gach sreabhadh DNAT níos leithne ná an dearadh seo agus ceadóidh sé mapálacha a chuireann duine éigin eile leis níos déanaí. Ainmnigh an ceann scríbe agus an port, agus fág an chuid eile dúnta. Má fhanann na cuntair ar an riail atreoraithe ag náid agus cuntair NAT ag ardú, tá an paicéad á scaoileadh roimh do riail. Léigh ord na slabhraí seachas cóip eile a chur leis.

Caithfidh an gléas freagra a thabhairt ar bhealach éigin

Tar éis an aistrithe feiceann an gléas foinse in 10.62.0.0/24. Téann a fhreagra chuig a gheata réamhshocraithe, is é sin ródaí an LAN, ní an geata VPN, mura n-insíonn rud éigin a mhalairt dó. Réitíonn dhá shocrú é sin, agus níl siad coibhéiseach. Seolann ród ar an ngléas nó ar ródaí an LAN 10.62.0.0/24 chuig 172.21.4.10 agus coinníonn sé foinse an chliaint. Folaíonn aistriú foinse srianta an cliant taobh thiar de sheoladh LAN an gheata ina ionad.

ip route add 10.62.0.0/24 via 172.21.4.10 dev eth1
iptables -t nat -A POSTROUTING -s 10.62.0.0/24 -d 172.21.4.40 -o lan0 -p tcp --dport 80 -j SNAT --to-source 172.21.4.10

Roghnaigh de réir an rud a theastaíonn ón tseirbhís. Teastaíonn an fhoirm ródaithe ó pholasaí in aghaidh an chliaint agus ó logaí bríocha; gléas nach féidir ród a thabhairt dó, nó seirbhís nach mór di seoladh LAN a fheiceáil, díríonn siad ar an bhfoirm aistrithe. Ná sroich riail masquerade dhomhanda chun freagra amháin a chur ag obair. Folaíonn sé gach cliant ó gach ceann scríbe agus briseann sé go ciúin na polasaithe a bhraitheann ar sheoltaí foinse.

Ná déan tástáil ón ngeata féin

Iarratas a ghintear ar an ngeata chuig 10.62.0.1 fhágann sé trí shlabhra OUTPUT, ní tríd an PREROUTING isteach. Ní deir a mhainneachtain ná a rath rud ar bith faoin riail atá dírithe ar an gcliant, agus is mar sin a thagann daoine ar an gconclúid go bhfuil riail atá ag obair briste.

conntrack -L | grep 172.21.4.40
tcpdump -ni any 'port 8080 or port 80'

Rith iarratas cliaint dáiríre agus léigh an dá rud. Taispeánann iontráil conntrack an t-aistriú a cuireadh i bhfeidhm, agus taispeánann na gabhálacha ar thrasnaigh an t-iarratas chuig an LAN agus ar tháinig freagra ar ais i dtreo an tolláin. Úsáid nasc úr tar éis rialacha a athrú, mar coinníonn an stát atá ann an mapáil roimhe seo agus leanfaidh sé ag teip ar an tseanbhealach. Ansin deimhnigh an comhrá iomlán: cuireann seoladh an ghléis, cead an atreoraithe agus ród an fhreagra síos ar an sreabhadh céanna.

Ailt ghaolmhara