உங்கள் வழி வரி நிராகரிக்கப்பட்டு திரும்பி வருகிறது, நீங்கள் காணும் ஆலோசனை IP அனுப்புதலை இயக்கச் சொல்கிறது. இந்த இரண்டும் சிக்கலின் வெவ்வேறு நிலைகளில் உள்ளன. அனுப்புதல் ஒரு ஹோஸ்ட் இடைமுகங்களுக்கு இடையே பாக்கெட்டுகளை நகர்த்த முடியுமா என்பதைத் தீர்மானிக்கிறது; நீங்கள் தட்டச்சு செய்த இலக்கு செல்லுபடியாகும் நெட்வொர்க்கா என்பது பற்றி அதற்கு கருத்து இல்லை. முதலில் முன்னொட்டைச் சரிசெய்யுங்கள், ஏனெனில் ஒத்துப்போகாத முகவரியையும் முகமூடியையும் அனுப்புதல் காப்பாற்றாது.

பாகுபடுத்தி உண்மையில் எதைப் பற்றிப் புகார் சொல்கிறது

முகவரி மற்றும் முகமூடி என எழுதப்பட்ட இலக்கு ஒரு நெட்வொர்க்கை விவரிக்க வேண்டும், நெட்வொர்க் பூஜ்ஜியமாக்கப்பட்ட ஹோஸ்ட் பிட்களுடன் தொடங்குகிறது. நீங்கள் தரும் முகவரியில் இன்னும் ஹோஸ்ட் பகுதியில் மதிப்பு இருந்தால், ஜோடி உள்ரீதியாக முரண்படுகிறது: 172.20.130.0 பூஜ்ஜியத்தில் முடிவதால் சுத்தமாகத் தெரிகிறது, ஆனால் நான்காவது ஆக்டெட்டில் பூஜ்ஜியம் மட்டுமே முக்கியமான விஷயம் அல்ல. இங்கே தவறான பிட்களை வைத்திருப்பது மூன்றாவது ஆக்டெட் தான்.

கருவிகள் இந்த முரண்பாட்டை வெவ்வேறு வழிகளில் கையாளுகின்றன. கடுமையான பாகுபடுத்திகள் வரியை நிராகரித்து ஹோஸ்ட் பிட்களைப் பெயரிடுகின்றன. மென்மையான பாகுபடுத்திகள் முகவரியை முகமூடி செய்து நீங்கள் கேட்காத ஒன்றை நிறுவுகின்றன, அது மோசமானது, ஏனெனில் உள்ளமைவு இப்போது நீங்கள் ஒருபோதும் எண்ணாத வரம்பை வழிப்படுத்துகிறது. Python இன் ipaddress தொகுதி தேர்வை நேரடியாக வெளிப்படுத்துகிறது: கடுமையான நெட்வொர்க் பாகுபாடு பிழையை எழுப்புகிறது, strict=False ஹோஸ்ட் பிட்களை முகமூடி செய்கிறது. உங்கள் கிளையண்ட் பதிப்புகளுக்கு இடையே கடுமையாக, மென்மையாக அல்லது முரண்பாடாக இருக்கலாம், எனவே பழக்கத்தை நம்புவதற்குப் பதிலாக செய்தியைப் படியுங்கள்.

எடுத்துக்காட்டை கையால் செய்யுங்கள்

/20 முகமூடியுடன் 172.20.130.0 ஐ அடைய வேண்டிய சுரங்கப்பாதையை எடுத்துக் கொள்ளுங்கள். /20 மூன்றாவது ஆக்டெட்டிலிருந்து நான்கு பிட்களைக் கடன் வாங்குகிறது, எனவே அந்த ஆக்டெட் 16 இன் படிகளில் மட்டுமே கணக்கிடப்படுகிறது: 0, 16, 32 மற்றும் தொடர்ந்து 240 வரை. மதிப்பு 130, 128 மற்றும் 143 க்கு இடையே விழுகிறது, அதாவது சுற்றியுள்ள நெட்வொர்க் 172.20.128.0 இல் தொடங்குகிறது, கடைசி ஆக்டெட்டை பூஜ்ஜியமாக்கிய 172.20.130.0 இல் அல்ல.

எழுதப்பட்டபடி, தொகுதி 172.20.128.0 முதல் 172.20.143.255 வரை செல்கிறது மற்றும் 4,096 முகவரிகளை வைத்திருக்கிறது. அதே மதிப்புகளை கடுமையற்ற பாகுபடுத்திக்கு வழங்குவது அது உங்கள் சார்பாகச் செய்யும் மாற்றீட்டைக் காட்டுகிறது:

$ python3 -c "import ipaddress; n=ipaddress.ip_network('172.20.130.0/20', strict=False); print(n, n.num_addresses)"
172.20.128.0/20 4096

நீங்கள் உண்மையில் எந்த இலக்கை எண்ணினீர்கள் என்பதை முடிவு செய்யுங்கள்

நிராகரிக்கப்பட்ட வரி பொதுவாக மூன்று நோக்கங்களில் ஒன்றை மறைக்கிறது, தேர்ந்தெடுக்க நீங்கள் மட்டுமே முடியும். சுரங்கப்பாதைக்கு முழுத் தொகுதியும் தேவைப்பட்டால், நியதி நெட்வொர்க் முகவரியான 172.20.128.0/20 ஐ எழுதுங்கள். சுரங்கப்பாதைக்கு 130 பிரிவு மட்டும் தேவைப்பட்டால், முகமூடி தவறாக இருந்தது, 172.20.130.0/24 தான் நேர்மையான வடிவம். இலக்கு ஒரு இயந்திரம் என்றால், IPv4 ஹோஸ்ட் வழி /32 ஆகும் மேலும் எந்த முகமூடிக் கணக்கீடும் ஈடுபடவில்லை.

ஒவ்வொன்றும் வெவ்வேறு அளவு போக்குவரத்தை அனுமதிக்கிறது, புகார் நிற்கும் வரை முகமூடியை விரிவாக்கக் கூடாது என்பதற்கு அதுவே உண்மையான காரணம். /16 எங்கும் கிட்டத்தட்ட வரியை ஏற்று, சுரங்கப்பாதை வழியாக நீங்கள் ஒருபோதும் வழிப்படுத்த எண்ணாத இலக்குகளுக்குப் போக்குவரத்தை அனுப்புகிறது. நோக்கத்துடன் பொருந்தும் மிகக் குறுகிய முன்னொட்டை எழுதுங்கள், பின்னர் நீங்கள் எதிர்பார்க்கும் அடுத்த ஹாப்புக்கு எதிராக அதை உறுதிப்படுத்துங்கள், பாகுபடுத்தியின் மௌனத்திற்கு எதிராக அல்ல.

அனுப்புதல் ஏன் ஒருபோதும் தீர்வாக இருக்கவில்லை

நிராகரிக்கப்பட்ட வழி ஒருபோதும் அனுப்புதல் பாதையை அடையாது, எனவே net.ipv4.ip_forward ஐ மாற்றுவது முடிவை மாற்ற முடியாது. அந்த அமைப்பு பின்னர் முக்கியமானது, ஹோஸ்ட் இடைமுகங்களுக்கு இடையே பாக்கெட்டுகளை அனுப்ப வேண்டியிருக்கும் போது, அட்டவணை சரியாகும் முன் அதை இயக்குவது அடுத்து எந்த நிலை தோல்வியடையும் என்பதை மட்டுமே மாற்றுகிறது.

அதே புள்ளியில் மற்ற இரண்டு விஷயங்களும் அடிக்கடி குற்றம் சாட்டப்படுகின்றன. வழி ஏற்றுக்கொள்ளப்பட்டும் மிகவும் குறிப்பிட்ட வழிக்குத் தோற்கலாம், சரியான தேடலுக்குப் பிறகு தீவரச் சுவர் விதி போக்குவரத்தை வீழ்த்தலாம். நிலைகளைத் தனியாக வைத்திருங்கள்: தொடரியல், நிறுவல், தேர்வு, வடிகட்டுதல். தவறான நிலையில் வேலை செய்வது உற்பத்தித் தன்மையாகத் தோன்றுகிறது, ஏனெனில் ஒவ்வொரு மாற்றமும் ஏதாவது ஒன்றை மீண்டும் தொடங்குகிறது.

நிறுவப்பட்ட வழி மற்றும் அது வெல்லும் பாதையைச் சரிபார்க்கவும்

கிளையண்ட் வரியை ஏற்றுக்கொண்டதும், அது என்ன நிறுவியது, தொகுதிக்குள் உள்ள பிரதிநிதி முகவரிக்கு கர்னல் எந்த வழியைத் தேர்ந்தெடுக்கிறது என்பதைப் பாருங்கள். நிறுவப்பட்ட முன்னொட்டு நீங்கள் எழுதியதிலிருந்து வேறுபட்டால், ஒரு இயல்பாக்கி உங்கள் சார்பாகச் செயல்பட்டுள்ளது.

தொகுதிக்குள் ஒரு உறுப்பினர் முகவரியையும், வெளியே ஒன்றையும் கேளுங்கள், ஒப்பீடு ஒரு தேற்றும் வரியாக இல்லாமல் அர்த்தமுள்ளதாக இருக்க:

ip -4 route show 172.20.128.0/20
ip -4 route get 172.20.140.10
ip -4 route get 172.20.200.10

உங்கள் முன்னொட்டு சரியாக இருந்தால் மூன்றாவது வினவல் சுரங்கப்பாதைக்கு வெளியே விழ வேண்டும், விழாவிட்டால் நீங்கள் கட்டிய வழி நீங்கள் நினைப்பதை விட அகலமானது. அடுத்த அமைப்பைத் தொடும் முன் முன்னொட்டு எதை மூட வேண்டும் என்பதைப் பதிவு செய்யுங்கள், ஏனெனில் பாகுபடுத்தப்படும் வழியும் வேலை செய்யும் பாதையும் தனித்தனி அவதானிப்புகளாகவே இருக்கும்.

தொடர்புடைய கட்டுரைகள்