మీకు రెండు అప్లింక్లు ఉన్నాయి, మరియు 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కు బదులు నియమానికి సరిపోయే ట్రాఫిక్తో పరీక్షించండి. తర్వాత ఒక అప్లింక్ను ఉద్దేశపూర్వకంగా ఆఫ్ చేసి కర్నెల్ ఏ రూట్కు వెనక్కి తిరుగుతుందో చూడండి; సమాధానం మీరు రాసిన దానితో సరిపోలాలి.

సంబంధిత వ్యాసాలు