இரண்டு அப்லிங்குகள் fe80::1 பகிரும்போது IPv6 கொள்கை வழிமாற்றம்
இரண்டு அப்லிங்குகள் வெவ்வேறு இணைப்புகளில் ஒரே fe80::1 அடுத்த ஹாப்பைக் காட்டலாம். ஒவ்வொரு கொள்கைக்கும் ஒரு அட்டவணையைத் தேர்ந்தெடுத்து, ஆயுட்காலங்களை நீங்களே வைத்து, வழித் தேடலால் சரிபார்க்கவும்.
உங்களிடம் இரண்டு அப்லிங்குகள் உள்ளன, மேலும் ip -6 route show இரண்டிலும் ஒரே அடுத்த ஹாப்பை அச்சிடுகிறது: default via fe80::1 dev uplink0 மற்றும் default via fe80::1 dev uplink1. இது முகவரி நகல் மோதல் அல்ல, மேலும் வெறும் அடுத்த ஹாப்பை fe80::1 கொள்கை அட்டவணைக்கு நகலெடுப்பது எந்த இணைப்பைக் குறிப்பிடுகிறீர்கள் என்பதை கர்னலுக்குச் சொல்லாது. உண்மையான கேள்வி அறிகுறி காட்டுவதை விடக் குறுகலானது: இரண்டாவது அட்டவணைக்கு ஒரு இணைப்பா அல்லது இரண்டுமா தேவை, மீள் தொடக்கத்திற்குப் பிறகு அந்த வழிகளை உயிர்ப்புடன் வைப்பது எது. வரிசையாகச் சரிபார்க்கப்படும் மூன்று நிபந்தனைகள் பெரும்பாலானவற்றைத் தீர்க்கின்றன.
அதே fe80::1 இரண்டு வெவ்வேறு அண்டைக்காரர்கள்
இணைப்பு-உள்ளூர் முகவரிகள் ஒரு இணைப்புக்கே எல்லைப்படுத்தப்படுகின்றன, எனவே fe80::1 இருமுறை அச்சிடப்பட்ட ஒரே முகவரி அல்ல; ஒரே பின்னொட்டைப் பகிரும் இரண்டு அண்டைக்காரர்கள். மண்டலக் குறியீடு என்பது எதைக் குறிக்கிறீர்கள் என்பதை ஹோஸ்ட் சொல்லும் வழி, எனவே fe80::1%uplink0 மற்றும் fe80::1%uplink1 கர்னலுக்கு வெவ்வேறு இலக்குகள், அந்தப் பின்னொட்டு எப்போதும் தொலை ரவுட்டருக்குச் செல்லாது. RFC 4007 இதற்குப் பின்னால் உள்ள மண்டல மாதிரியை விவரிக்கிறது, அதனால்தான் கொள்கை அட்டவணை ஒவ்வொரு இணைப்பு-உள்ளூர் அடுத்த ஹாப்புடன் ஒரு சாதனத்தையும் சுமக்க வேண்டும்.
ஒரு ஹோஸ்ட்டின் எண்ணியல் மண்டல ID-ஐ வார்ப்புருவுக்கு நகலெடுக்கும் VPN கட்டமைப்பு உருவாக்கி உள்ளூர் சூழலை முகவரியின் பகுதியாகக் கருதுகிறது, அது எழுதும் கோப்பு இடைமுகப் பெயர்கள் அல்லது குறியீடுகள் வேறுபடும் ஒவ்வொரு இயந்திரத்திலும் தவறானது. கொள்கை அட்டவணை இரண்டு இணைப்புகளையும் ஒன்றாக இணைக்காது: வழிமாற்றப்படும் VPN நெட்வொர்க்குகளுக்கு இடையே பாக்கெட்டுகளைக் கடத்துகிறது, ஆனால் தொலை ஈதர்நெட் அண்டைக்காரரின் இணைப்பு-உள்ளூர் அடையாளத்தை சுரங்கப்பாதை வழியாகக் கொண்டு செல்லாது, எனவே இணைப்பு-உள்ளூர் போக்குவரத்து அதன் இணைப்பிலேயே தங்கும்.
சாதனத்தை அகற்றினால் வழி எழுத முடியாததாகும். ip -6 route add default via fe80::1 table 200 நுழைவாயிலைத் தீர்க்க முடியாது, iproute2 அதை Error: Nexthop has invalid gateway. பிழையுடன் நிராகரிக்கிறது. dev uplink0 சேர்த்தால் கட்டளை வெற்றிபெறும், ஏனெனில் அடுத்த ஹாப்பை அந்த இரண்டு அண்டைக்காரர்களில் ஒருவருக்கு இணைப்பது சாதனமே. சாதனம் சொல்ல முடியாதது uplink0 இந்த அட்டவணைக்கு சரியான இணைப்பா என்பதுதான், மற்றொரு ஹோஸ்ட்டிலிருந்து நகலெடுத்த வழி அந்த ஹோஸ்ட்டின் இடைமுகப் பெயர்களையும் கொண்டு வரும், உண்மையான தவறுகள் அங்கிருந்தே வருகின்றன.
நிபந்தனை ஒன்று: அட்டவணையில் ஒரு இணைப்பா இரண்டா
இரண்டாவது அப்லிங் எதற்கானது என்பதிலிருந்து தொடங்குங்கள். இரண்டு இணைப்புகளும் ஒரே போக்குவரத்தைக் கொண்டு சென்று ஒன்று காப்பு என்றால், மாற்று அட்டவணையில் இரண்டு நுழைவாயில்களும் வெவ்வேறு மெட்ரிக்குகளுடன் இருக்க வேண்டும்: அதே இலக்குகள், ஒரு விருப்பப் பாதை, ஒரு தெளிவான இரண்டாவது தேர்வு. வெவ்வேறு போக்குவரத்து வெவ்வேறு வழங்குநர்கள் வழியாக வெளியேற வேண்டும் என்பதற்காகவோ, அல்லது இது பிளவுபட்ட சுரங்கப்பாதை என்றும் சில போக்குவரத்து VPN-ஐத் தவிர்த்துச் சென்று மீதி உள்ளே தங்கும் என்பதற்காகவோ அப்லிங்குகள் இருந்தால், அந்த இரண்டு இணைப்புகளும் ஒரே அட்டவணையில் சேரவே சேரா. அவை இரண்டு அட்டவணைகளில் சேரும், அவற்றை ஒரு விதி தேர்ந்தெடுக்கும், விதி சுரங்கப்பாதையை அல்ல, அட்டவணையைத் தேர்ந்தெடுக்கும்: தவிர்த்துச் செல்லும் போக்குவரத்து வழிமாற்றத்திற்கு முன் குறிக்கப்படும், அந்தக் குறியே அதை இரண்டாவது அட்டவணைக்கு அனுப்பும்.
அந்த இரண்டாவது நிலையில் எப்போது அட்டவணையைப் பார்க்க வேண்டும் என்பதை விதி தீர்மானிக்கும், பாக்கெட் எங்கே செல்ல வேண்டும் என்பதை வழி தீர்மானிக்கும்:
ip -6 rule add fwmark 0x2 table 201
ip -6 route add default via fe80::1 dev uplink1 metric 100 table 201
ip -6 route add 2001:db8:100::/48 dev uplink1 metric 100 table 201
ip -6 route show table 201எந்தப் பொருளும் மற்றொன்றுக்கு மாற்றாகாது, இயல்புநிலை மட்டும் உள்ள அட்டவணையும் அதன் நுழைவாயிலைத் தீர்க்கத் தவறலாம். சேர்ப்பு நிராகரிக்கப்பட்டாலோ, வழி இருந்தும் பயன்படுத்த முடியாததாயினாலோ, அந்த இடைமுகத்தின் இணைக்கப்பட்ட முன்னொட்டை அதே அட்டவணையில் இடுங்கள், அல்லது ஹாப்பை onlink எனக் குறியிடுங்கள் (அந்த முன்னொட்டு வேறெங்கு வழிமாற்றப்படும்போது). மேலே உள்ள தொகுதியில் 2001:db8:100::/48 எந்தவொரு தன்னிச்சையான இலக்கையும் அல்ல, uplink1 இல் உள்ள அந்த இணைக்கப்பட்ட முன்னொட்டையே குறிக்கிறது. fwmark விதி வேறொன்று அமைக்க வேண்டிய குறியை மட்டுமே பயன்படுத்துகிறது: அனுப்பும் பாதையில் உள்ள nftables அல்லது iptables விதியிலிருந்தோ, அல்லது SO_MARK சாக்கெட்டிலிருந்தோ, எனவே குறியின் மூலம் இல்லாது நகலெடுக்கப்பட்ட தொகுதி எதனுடனும் பொருந்தாது.
நிபந்தனை இரண்டு: மெட்ரிக்குகள் இறந்த வழங்குநரைக் கண்டறியா
மெட்ரிக் என்பது இருக்கும் வழிகளுக்கு இடையிலான விருப்பம், உடல்நலச் சோதனை அல்ல. இயக்குபவர் விழுந்தால் கர்னல் அந்தச் சாதனத்தின் வழிகளை அகற்றி இரண்டாவது இயல்புநிலை எடுத்துக்கொள்ளும். கேபிள் இயங்கிக்கொண்டிருக்கும்போது அதன் பின்னால் உள்ள வழங்குநர் இறந்தால், அட்டவணையில் எதுவும் மாறாது: விருப்ப வழி நிறுவப்பட்டுள்ளது, அண்டைக்காரர் அடுக்கு 2 இல் அடையக்கூடியவர், பாக்கெட்டுகள் கருந்துளைக்குச் செல்கின்றன. இந்த வேறுபாடு உங்கள் அமைப்புக்கு முக்கியம் என்றால், தோல்வி மாற்றம் பாதையை ஆய்ந்து வழியை அகற்றும் ஒன்றிலிருந்து வர வேண்டும்: அது வழிமாற்ற டீமனாகவோ அல்லது பதிவை நீக்கி மீண்டும் நிறுவும் சிறு ஸ்கிரிப்டாகவோ இருக்கலாம்.
அட்டவணை கட்டப்பட்ட பிறகு தேர்வைச் சரிபார்க்கவும், கர்னல் பார்க்கும் விதத்திலேயே சரிபார்க்கவும். ip -6 route get 2001:db8:100::1 பயன்படுத்தப்படும் வழியை அச்சிடும், அதில் சாதனமும் தேர்ந்தெடுக்கப்பட்ட மூல முகவரியும் அடங்கும், அது கொள்கை விதிகளை மதிக்கிறது. தவறான அப்லிங்கின் மூல முகவரி பொதுவாக ஒரு விதி நீங்கள் எதிர்பார்த்ததை விட முன்னதாகவே பொருந்தியதன் அறிகுறி.
நிபந்தனை மூன்று: நிலைத்தன்மையின் உரிமை யாருக்கு என்பதை முடிவு செய்யுங்கள்
வழி ip -6 route add மூலம் சேர்க்கப்பட்ட வழி மீள் தொடக்கம் வரை அல்லது ஏதோ அதை அழிக்கும் வரை நீடிக்கும். ரவுட்டர் அறிவிப்புகளிலிருந்து கற்ற இயல்புநிலை ஆயுட்காலத்தைச் சுமந்து ரவுட்டர் அதைத் திரும்பப் பெறலாம், ஆனால் கையால் சேர்க்கப்பட்ட இயல்புநிலை ஒருபோதும் தானாகக் காலாவதியாகாது. இரண்டையும் ஒரே அட்டவணையில் கலப்பதே பழைய நிரந்தர வழி புதிதாக அறிவிக்கப்பட்டதை மிஞ்சத் தொடங்கும் வழி, அது விவரித்த அப்லிங் வெகு காலத்திற்கு முன்பே இல்லாமல் போன பிறகும்.
ஒவ்வொரு அட்டவணைக்கும் ஒரு உரிமையாளரைத் தேர்ந்தெடுங்கள். நெட்வொர்க் மேலாளரோ வழிமாற்ற டீமனோ ஏற்கனவே இடைமுகத்தை நிர்வகித்தால், கொள்கை வழியை அங்கே விவரித்து கர்னலை விட்டுவிடுங்கள். ஸ்கிரிப்டால் செய்கிறீர்கள் என்றால், அதை இடம்பொட்டென்ட் ஆக்கி, அகற்றலை அதே நேரத்தில் எழுதுங்கள், ஏனெனில் முதல் மோசமான மாற்றத்திலேயே அது தேவைப்படும்:
ip -6 route flush table 201
ip -6 rule del fwmark 0x2 table 201மற்ற ஹோஸ்ட்களுக்காக அனுப்பும் ரவுட்டரில், அட்டவணையைக் குறை சொல்வதற்கு முன் net.ipv6.conf.all.forwarding சரிபார்க்கவும். அனுப்புதல் அணைக்கப்பட்டிருந்தால், வேறு நெட்வொர்க்கிற்கு முகவரியிடப்பட்ட பாக்கெட்டுகள் அட்டவணை 201 எவ்வளவு சரியாக இருந்தாலும் தூக்கி எறியப்படும்.
அடுத்தவர் தணிக்கை செய்யும் வகையில் வடிவமைப்பைப் பதிவு செய்யுங்கள்
வெறும் fe80::1 சேமிக்கும் பட்டியல் முக்கியமான புலங்களைத் தூக்கி எறிகிறது. இலக்கு, அடுத்த ஹாப், சாதனம், அட்டவணை மற்றும் மெட்ரிக்கை ஒன்றாகப் பதிவு செய்யுங்கள், ஒவ்வொரு வழியும் எங்கிருந்து வந்தது என்பதையும்: அறிவிக்கப்பட்டதா, மேலாளரால் உருவாக்கப்பட்டதா, நிலையானதா. பின்னர் யாராவது இரண்டாவது அப்லிங் உண்மையில் போக்குவரத்தைக் கொண்டு செல்கிறதா என்று கேட்டால், அந்தப் பதிவு ஊகமின்றிப் பதில் சொல்லும்.
அட்டவணை முடிந்தது என்று சொல்வதற்கு முன், அண்டைக்காரரை ip -6 neigh show dev uplink0 மூலம் உறுதிசெய்து, ip -6 rule show மீண்டும் படியுங்கள் — வரிசை விபத்துகளுக்காக, இயல்புநிலை வழியை எடுக்கும் ping-க்குப் பதிலாக விதிக்குப் பொருந்தும் போக்குவரத்தால் சோதியுங்கள். பின்னர் ஒரு அப்லிங்கை வேண்டுமென்றே கீழிறக்கி கர்னல் எந்த வழிக்குத் திரும்புகிறது எனப் பாருங்கள்; பதில் நீங்கள் எழுதியதற்குப் பொருந்த வேண்டும்.