systemd-networkd తో తిరిగి కనెక్ట్ అయిన తర్వాత కూడా ip rule నిలిచి ఉండేలా చేయండి
షెల్ నుండి జోడించిన ip నియమం తదుపరి లింక్ సంఘటనలో మాయమవుతుంది. నియమాన్ని, దాని పట్టికను, దాని మార్గాలను systemd-networkd లో ప్రకటించండి, అప్పుడు విధానం తిరిగి సృష్టించబడుతుంది.
ip rule తో ఒక విధాన నియమాన్ని జోడించండి, అది లింక్ పోయే వరకు పని చేస్తుంది; ఆ క్షణంలో అది కేవలం లేదు. ఏదీ గట్టిగా విఫలం కాలేదు: కెర్నల్ స్థితి మారింది, మరియు నియమం ఉండాలని ఏ కాన్ఫిగరేషన్ యజమానికీ తెలియదు. నిలిచే మరియు నిలవని నియమం మధ్య మొత్తం భేదం అదే. systemd-networkd ఉన్న హోస్ట్ లో పరిష్కారం నియమానికి యజమానిని ఇవ్వడం, ప్రతి తిరిగి కనెక్షన్ తర్వాత ఆదేశాన్ని మళ్లీ నడపడం కాదు.
ఎవరైనా దానిని కలిగి ఉంటేనే నియమం ఉంటుంది
కెర్నల్ రూటింగ్ విధానం స్థితి, కాన్ఫిగరేషన్ కాదు. అది నడుస్తున్న వ్యవస్థలో నివసిస్తుంది, మరియు అది ఆధారపడే ఇంటర్ఫేస్ను పడగొట్టే ఏదైనా దానిని తనతో తీసుకుపోగలదు. షెల్ ఆదేశం ఆ స్థితిని మారుస్తుంది మరియు ఉద్దేశ్యం గురించి ఎలాంటి రికార్డు వదలదు.
నెట్వర్క్ నిర్వాహకులు వ్యతిరేకంగా పని చేస్తారు: వారు కాన్ఫిగరేషన్ చదివి, వర్తింపజేసి, లింక్ సంఘటన మునుపటి స్థితిని చెల్లనిదిగా చేసినప్పుడు మళ్లీ వర్తింపజేస్తారు. వారి కాన్ఫిగరేషన్లో ప్రకటించిన నియమం తిరిగి సృష్టించబడుతుంది, వారి పక్కన జోడించిన నియమం మాత్రం యజమాని లేని బయటి వస్తువు.
ఆ భేదానికి networkd లో పేరు ఉంది, ఏదైనా ప్రారంభించే ముందు దాన్ని చదవడం విలువైనది. ఇటీవలి సంస్కరణల్లో బయటి నియమాలు డిఫాల్ట్గా తొలగించబడతాయి, ఇది తమ చేతితో రాసిన నమోదులు నిలిచి ఉంటాయని భావించిన వారిని ఆశ్చర్యపరుస్తుంది.
ఏదైనా సెట్టింగ్ను నమ్మే ముందు సంస్కరణను చదవండి
యాజమాన్య ప్రవర్తన networkd.conf లోని సెట్టింగ్ ద్వారా నియంత్రించబడుతుంది, ఆ సెట్టింగ్ పాత systemd విడుదలల్లో లేదు. దాని చుట్టూ రూపకల్పన చేసే ముందు ఇన్స్టాల్ చేసిన సంస్కరణను తనిఖీ చేయండి, ఎందుకంటే పాత హోస్ట్ మీరు చదువుతున్న పత్రాలకు భిన్నంగా ప్రవర్తిస్తుంది.
రెండు విలువలు ముఖ్యం. ఒకటి networkd కాన్ఫిగరేషన్లో ప్రకటించని నియమాలు తొలగించబడతాయా అని నిర్ణయిస్తుంది, మరొకటి మార్గాలకు అదే చేస్తుంది. రెండూ విధానం యొక్క విషయంపై కాదు, యాజమాన్యంపై, మరియు రెండూ ప్రస్తుత విడుదలల్లో డిఫాల్ట్గా కఠినమైన ప్రవర్తనను ఎంచుకుంటాయి. వాటిని ప్రపంచవ్యాప్తంగా ఆఫ్ చేస్తే ప్రతి బయటి నియమం సజీవంగా ఉంటుంది, ఇది ఒక లక్ష్య VPN విధానాన్ని ప్రకటించడం కంటే చాలా విస్తృతమైన నిర్ణయం.
systemctl --version | head -1
networkctl --version | head -1
grep -R "ManageForeign" /etc/systemd/ /usr/lib/systemd/ 2>/dev/null
ఆ grep మీకు స్థానికంగా ఏమి సెట్ అయిందో మరియు విక్రేత డిఫాల్ట్ ఏమిటో చెబుతుంది. లేకపోవడం కూడా సమాచారం, ఎందుకంటే అది కంపైల్ చేసిన డిఫాల్ట్ వర్తిస్తుందని అర్థం. డిఫాల్ట్ను మీ నోట్స్లో రాయండి, తదుపరి వ్యక్తి దాన్ని మళ్లీ కనుగొనాల్సిన అవసరం ఉండదు.
నియమాన్ని మరియు అది సూచించే పట్టికను ప్రకటించండి
.network ఫైల్లోని నియమం ఒక పట్టికకు పేరు పెడుతుంది, పేరు చేసేది అంతే. అది ఆ పట్టికలోని మార్గాలను సృష్టించదు మరియు అవి అర్థవంతమైనవా అని తనిఖీ చేయదు. మార్గాలు లేకుండా నియమాన్ని ప్రకటిస్తే ట్రాఫిక్ను సరిపోల్చి తర్వాత పడవేసే విధానం ఏర్పడుతుంది.
మార్గాలను అదే ఫైల్లో ప్రకటించండి, చేరుకోగల తదుపరి హాప్లు మరియు సరైన పట్టికతో. ప్రకటించిన నియమంలో ప్రాధాన్యతను ఉంచండి, అది క్రమబద్ధమైన జాబితాలో మీరు ఆశించిన స్థానంలో పడుతుంది. తప్పు పట్టికను సమయానికి ముందే చేరుకునే నియమం మీరు సరిచేయదలచిన సేవ కంటే ఎక్కువ ట్రాఫిక్ను మారుస్తుంది. క్రింది భాగాన్ని పూర్తి ఫైల్గా కాకుండా ఒక ఆకారంగా చదవండి, ఎందుకంటే ఇంటర్ఫేస్ యాజమాన్యం మరియు కనెక్షన్ మిగిలిన భాగం ఇంకా ఉండాలి.
[RoutingPolicyRule]
Family=ipv4
IPProtocol=tcp
SourcePort=443
Table=100
Priority=1000
[Route]
Destination=10.80.0.0/24
Gateway=10.80.0.1
Table=100
తర్వాత మళ్లీ లోడ్ చేసి ఫైల్ బదులు కెర్నల్ స్థితిని చదవండి. శుభ్రంగా పార్స్ అయిన కాన్ఫిగరేషన్ కూడా మీరు ఉద్దేశించని నియమాన్ని ఉత్పత్తి చేయవచ్చు, ప్రకటన పూర్తిగా ఉన్నప్పుడే రెండు దృశ్యాలు సరిపోతాయి.
ఇంటర్ఫేస్కు ఒకే యజమానిని ఎంచుకోండి
ఒకే సొరంగంపై ఇద్దరు నిర్వాహకులు రెండింటిలోనూ బగ్గా కనిపించే గొడవను సృష్టిస్తారు. ఇప్పటికే ఉన్న wg-quick సెటప్ను networkd లోకి దిగుమతి చేయడం జోడింపు కాదు, స్థలాంతరం, రెండింటినీ నడిపిస్తే ఇంటర్ఫేస్ మరియు దాని నియమాలు ఇద్దరు యజమానుల కింద ఉంటాయి.
స్థలాంతరాన్ని ఒకేసారి చేయండి: పాత యూనిట్ను ఆపి, నిలిపివేసి, networkd లో ఇంటర్ఫేస్ మరియు దాని మార్గాలను ప్రకటించి, తర్వాత మళ్లీ లోడ్ చేయండి. పాత యూనిట్ బూట్లో తిరిగి రాలేదని తనిఖీ చేయండి. రీబూట్ తర్వాత మళ్లీ సక్రియమయ్యే మిగిలిన యూనిట్ మీరు ఇప్పుడే ప్రకటించిన స్థితిపై రాస్తుంది. కొత్తది ఒక తిరిగి కనెక్షన్ను దాటే వరకు పాత కాన్ఫిగరేషన్ ఫైల్ను ఉంచండి, తర్వాత పదవీ విరమణ చేయండి.
గుర్తు యాజమాన్యానికి కూడా అదే శ్రద్ధ అవసరం: నియమం ఫైర్వాల్ గుర్తుతో సరిపోలితే, ఎవరో ఆ గుర్తును సెట్ చేయాలి. ఎవరూ సెట్ చేయని గుర్తును సూచించే నియమం ఉద్దేశపూర్వకంగా చేసినట్టు కనిపించే చనిపోయిన కాన్ఫిగరేషన్.
జీవిత చక్ర సంఘటనలను సాధన చేయండి
కాన్ఫిగరేషన్ సంఘటనల అంతటా దాని ప్రవర్తనంత విలువైనది. లింక్ను కిందకు దించి, మళ్లీ పైకి తీసుకురండి, సేవను పునఃప్రారంభించి, చిరునామాను పునరుద్ధరించండి. ప్రతి దాని తర్వాత నియమాల జాబితా మరియు పట్టికలోని విషయాన్ని చదవండి.
sudo networkctl reload
ip rule show
ip route show table 100
sudo systemctl restart systemd-networkd
ఉద్దేశించిన ఫలితం అదే యాజమాన్య విధానం తిరిగి సృష్టించబడటం మరియు పాత స్థితి పదవీ విరమణ చేయడం, ఇది ప్రతి తిరిగి కనెక్షన్ తర్వాత షెల్ నియమాన్ని మళ్లీ జోడించడం కంటే ఎక్కువ కాలం నిలుస్తుంది. మార్పు-రికార్డులో నియమానికి యజమాని అయిన ఫైల్ మరియు దాన్ని మద్దతిచ్చే సంస్కరణను పేర్కొనే ఒక వరుస ఉంచండి. అప్పుడు తదుపరి ఇంజనీర్ షెల్ చరిత్ర తవ్వకుండా విధానాన్ని కనుగొనగలరు. ఎవరికీ యాజమాన్యం లేని నియమం మళ్లీ కోల్పోయే నియమం.