ఒక రోజు నా క్లయింట్లలో ఒకరికి కేటాయించిన /28 సబ్నెట్ యొక్క PTR రికార్డ్లను సవరించే హక్కును ఇచ్చే పనిని నేను ఎదుర్కొన్నాను. బయటి నుండి BIND సెట్టింగ్లను సవరించడానికి నా దగ్గర ఆటోమేషన్ లేదు. అందువల్ల, నేను వేరే మార్గంలో వెళ్లాలని నిర్ణయించుకున్నాను - /24 సబ్నెట్ యొక్క PTR జోన్ యొక్క భాగాన్ని క్లయింట్కు అప్పగించడానికి.
ఇది కనిపిస్తుంది - ఏది సరళమైనది? మేము సబ్నెట్ను అవసరమైన విధంగా నమోదు చేస్తాము మరియు సబ్డొమైన్తో చేసినట్లుగా దానిని కావలసిన NSకి నిర్దేశిస్తాము. కానీ కాదు. ఇది అంత సులభం కాదు (వాస్తవానికి ఇది సాధారణంగా ప్రాచీనమైనది, కానీ అంతర్ దృష్టి సహాయం చేయదు), అందుకే నేను ఈ కథనాన్ని వ్రాస్తున్నాను.
తమను తాము గుర్తించాలనుకునే ఎవరైనా చదవగలరు
ఎవరు రెడీమేడ్ పరిష్కారం కావాలి, పిల్లికి స్వాగతం.
కాపీ-పేస్ట్ పద్ధతిని ఇష్టపడేవారికి ఆలస్యం చేయకుండా, నేను మొదట ప్రాక్టికల్ భాగాన్ని పోస్ట్ చేస్తాను, ఆపై సిద్ధాంతపరమైన భాగాన్ని పోస్ట్ చేస్తాను.
1. సాధన. డెలిగేటింగ్ జోన్ /28
మనకు సబ్నెట్ ఉందని అనుకుందాం 7.8.9.0/24. మేము సబ్నెట్ను డెలిగేట్ చేయాలి 7.8.9.240/28 dns క్లయింట్కి 7.8.7.8 (ns1.client.domain).
ప్రొవైడర్ యొక్క DNSలో మీరు ఈ సబ్నెట్ యొక్క రివర్స్ జోన్ను వివరించే ఫైల్ను కనుగొనాలి. అలా ఉండనివ్వండి 9.8.7.in-addr.harp.
మేము 240 నుండి 255 వరకు ఎంట్రీలు ఏవైనా ఉంటే వాటిపై వ్యాఖ్యానిస్తాము. మరియు ఫైల్ చివరిలో మేము ఈ క్రింది వాటిని వ్రాస్తాము:
255-240 IN NS 7.8.7.8
$GENERATE 240-255 $ CNAME $.255-240
సీరియల్ జోన్ను పెంచడం మరియు చేయడం మర్చిపోవద్దు
rndc reload
ఇది ప్రొవైడర్ భాగాన్ని పూర్తి చేస్తుంది. క్లయింట్ dnsకి వెళ్దాం.
ముందుగా, ఒక ఫైల్ని క్రియేట్ చేద్దాం /etc/bind/master/255-240.9.8.7.in-addr.arpa కింది కంటెంట్:
$ORIGIN 255-240.9.8.7.in-addr.arpa.
$TTL 1W
@ 1D IN SOA ns1.client.domain. root.client.domain. (
2008152607 ; serial
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
@ IN NS ns1.client.domain.
@ IN NS ns2.client.domain.
241 IN PTR test.client.domain.
242 IN PTR test2.client.domain.
245 IN PTR test5.client.domain.
మరియు లో name.conf మా కొత్త ఫైల్ యొక్క వివరణను జోడించండి:
zone "255-240.9.8.7.in-addr.arpa." IN {
type master;
file "master/255-240.9.8.7.in-addr.arpa";
};
B బైండ్ ప్రక్రియను పునఃప్రారంభించండి.
/etc/init.d/named restart
అన్నీ. ఇప్పుడు మీరు తనిఖీ చేయవచ్చు.
#> host 7.8.9.245
245.9.8.7.in-addr.arpa is an alias for 245.255-240.9.8.7.in-addr.arpa.
245.255-240.9.8.7.in-addr.arpa domain name pointer test5.client.domain.
PTR రికార్డ్ మాత్రమే ఇవ్వబడిందని దయచేసి గమనించండి, కానీ CNAME కూడా. అది ఎలా ఉండాలి. ఎందుకు అని మీరు ఆలోచిస్తున్నట్లయితే, తదుపరి అధ్యాయానికి స్వాగతం.
2. సిద్ధాంతం. అది ఎలా పని చేస్తుంది.
బ్లాక్ బాక్స్ను కాన్ఫిగర్ చేయడం మరియు డీబగ్ చేయడం కష్టం. మీరు లోపల ఏమి జరుగుతుందో అర్థం చేసుకుంటే చాలా సులభం.
మేము డొమైన్లో సబ్డొమైన్ను డెలిగేట్ చేసినప్పుడు డొమైన్, అప్పుడు మేము ఇలా వ్రాస్తాము:
client.domain. NS ns1.client.domain.
ns1.client.domain. A 7.8.7.8
ఈ సైట్కు మేము బాధ్యులం కాదని అడిగే ప్రతి ఒక్కరికీ మేము తెలియజేస్తాము మరియు బాధ్యులు ఎవరో చెప్పండి. మరియు అన్ని అభ్యర్థనలు client.domain 7.8.7.8కి దారి మళ్లించబడింది. తనిఖీ చేస్తున్నప్పుడు, మేము ఈ క్రింది చిత్రాన్ని చూస్తాము (క్లయింట్ వద్ద ఉన్న వాటిని మేము విస్మరిస్తాము. ఇది పట్టింపు లేదు):
# host test.client.domain
test.client.domain has address 7.8.9.241
ఆ. అటువంటి A రికార్డ్ ఉందని మరియు దాని ip 7.8.9.241 అని మాకు తెలియజేయబడింది. అనవసర సమాచారం లేదు.
సబ్నెట్తో అదే పనిని ఎలా చేయవచ్చు?
ఎందుకంటే మా DNS సర్వర్ RIPEలో నమోదు చేయబడింది, ఆపై మా నెట్వర్క్ నుండి PTR IP చిరునామాను అభ్యర్థించినప్పుడు, మొదటి అభ్యర్థన ఇప్పటికీ మాకు ఉంటుంది. లాజిక్ డొమైన్ల మాదిరిగానే ఉంటుంది. కానీ మీరు జోన్ ఫైల్లో సబ్నెట్ను ఎలా నమోదు చేస్తారు?
దీన్ని ఇలా నమోదు చేయడానికి ప్రయత్నిద్దాం:
255-240 IN NS 7.8.7.8
మరి... అద్భుతం జరగలేదు. మేము ఏ అభ్యర్థన దారి మళ్లింపును స్వీకరించడం లేదు. విషయమేమిటంటే, రివర్స్ జోన్ ఫైల్లోని ఈ ఎంట్రీలు IP చిరునామాలు అని బైండ్కి తెలియదు మరియు అంతకంటే ఎక్కువ పరిధి నమోదు అర్థం కాలేదు. అతనికి, ఇది ఒక రకమైన సింబాలిక్ సబ్డొమైన్ మాత్రమే. ఆ. బైండ్ కోసం "మధ్య తేడా ఉండదు255-240"మరియు"మా సూపర్ క్లయింట్". మరియు అభ్యర్థన ఎక్కడికి వెళ్లాలి అంటే, అభ్యర్థనలోని చిరునామా ఇలా ఉండాలి: 241.255-240.9.8.7.in-addr.arpa. లేదా మనం క్యారెక్టర్ సబ్డొమైన్ని ఉపయోగిస్తే ఇలా చేయండి: 241.oursuperclient.9.8.7.in-addr.arpa. ఇది సాధారణం నుండి భిన్నంగా ఉంటుంది: 241.9.8.7.in-addr.harp.
అటువంటి అభ్యర్థనను మాన్యువల్గా చేయడం కష్టం. మరియు అది పనిచేసినప్పటికీ, నిజ జీవితంలో దీన్ని ఎలా ఉపయోగించాలో ఇప్పటికీ అస్పష్టంగా ఉంది. అన్ని తరువాత, అభ్యర్థనపై 7.8.9.241 ప్రొవైడర్ యొక్క DNS ఇప్పటికీ మాకు సమాధానం ఇస్తుంది, క్లయింట్కి కాదు.
మరియు ఇక్కడే వారు ఆటలోకి వస్తారు CNAME.
ప్రొవైడర్ వైపు, మీరు అభ్యర్థనను క్లయింట్ DNSకి ఫార్వార్డ్ చేసే ఫార్మాట్లో సబ్నెట్ యొక్క అన్ని IP చిరునామాలకు మారుపేరును రూపొందించాలి.
255-240 IN NS ns1.client.domain.
241 IN CNAME 241.255-240
242 IN CNAME 242.255-240
и т.д.
ఇది కష్టపడి పనిచేసేవారి కోసం =).
మరియు సోమరితనం కోసం, దిగువ డిజైన్ మరింత అనుకూలంగా ఉంటుంది:
255-240 IN NS ns1.client.domain.
$GENERATE 240-255 $ CNAME $.255-240
ఇప్పుడు సమాచారాన్ని అభ్యర్థించండి 7.8.9.241 నుండి 241.9.8.7.in-addr.harp ప్రొవైడర్ యొక్క DNS సర్వర్కి మార్చబడుతుంది 241.255-240.9.8.7.in-addr.arpa మరియు dns క్లయింట్కి వెళుతుంది.
క్లయింట్ వైపు అటువంటి అభ్యర్థనలను నిర్వహించవలసి ఉంటుంది. దీని ప్రకారం, మేము ఒక జోన్ను సృష్టిస్తాము 255-240.9.8.7.in-addr.arpa. దీనిలో, మేము సూత్రప్రాయంగా, మొత్తం /24 సబ్నెట్లోని ఏదైనా ip కోసం రివర్స్ ఎంట్రీలను ఉంచవచ్చు, కానీ ప్రొవైడర్ మాకు ఫార్వార్డ్ చేసే వాటి గురించి మాత్రమే వారు మమ్మల్ని అడుగుతారు, కాబట్టి మేము చుట్టూ ఆడలేము =).
వివరించడానికి, నేను క్లయింట్ వైపు నుండి రివర్స్ జోన్ ఫైల్ యొక్క కంటెంట్లకు మరోసారి ఉదాహరణ ఇస్తాను:
$ORIGIN 255-240.9.8.7.in-addr.arpa.
$TTL 1W
@ 1D IN SOA ns1.client.domain. root.client.domain. (
2008152607 ; serial
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
@ IN NS ns1.client.domain.
@ IN NS ns2.client.domain.
241 IN PTR test.client.domain.
242 IN PTR test2.client.domain.
245 IN PTR test5.client.domain.
ఎందుకంటే మేము ప్రొవైడర్ వైపున CNAMEని ఉపయోగిస్తాము మరియు IP చిరునామా ద్వారా డేటా కోసం చేసిన అభ్యర్థనకు ప్రతిస్పందనగా మేము ఒకటి కాదు రెండు రికార్డ్లను అందుకుంటాము.
#> host 7.8.9.245
245.9.8.7.in-addr.arpa is an alias for 245.255-240.9.8.7.in-addr.arpa.
245.255-240.9.8.7.in-addr.arpa domain name pointer test5.client.domain.
మరియు ACLని సరిగ్గా కాన్ఫిగర్ చేయడం మర్చిపోవద్దు. ఎందుకంటే మీ కోసం PTR జోన్ను తీసుకోవడం మరియు బయటి నుండి ఎవరికీ స్పందించకపోవడం =).
మూలం: www.habr.com