FreeBSD కోడ్ బేస్ నెట్లింక్ కమ్యూనికేషన్ ప్రోటోకాల్ (RFC 3549) అమలును అవలంబిస్తుంది, ఇది వినియోగదారు స్థలంలో ప్రక్రియలతో కెర్నల్ పరస్పర చర్యను నిర్వహించడానికి Linuxలో ఉపయోగించబడుతుంది. ప్రాజెక్ట్ కెర్నల్లోని నెట్వర్క్ సబ్సిస్టమ్ స్థితిని నిర్వహించడం కోసం NETLINK_ROUTE ఫ్యామిలీ ఆఫ్ ఆపరేషన్లకు మద్దతు ఇవ్వడానికి పరిమితం చేయబడింది.
దాని ప్రస్తుత రూపంలో, నెట్లింక్ మద్దతు ఫ్రీబిఎస్డిని iproute2 ప్యాకేజీ నుండి Linux ip యుటిలిటీని నెట్వర్క్ ఇంటర్ఫేస్లను నిర్వహించడానికి, IP చిరునామాలను సెట్ చేయడానికి, రూటింగ్ని కాన్ఫిగర్ చేయడానికి మరియు ప్యాకెట్ను కావలసిన గమ్యస్థానానికి ఫార్వార్డ్ చేయడానికి ఉపయోగించే స్టేట్ డేటాను నిల్వ చేసే nexthop ఆబ్జెక్ట్లను మార్చడానికి అనుమతిస్తుంది. హెడర్ ఫైల్లలో చిన్న మార్పుల తర్వాత, బర్డ్ రూటింగ్ ప్యాకేజీలో నెట్లింక్ని ఉపయోగించడం సాధ్యమవుతుంది.
FreeBSD కోసం నెట్లింక్ అమలు అనేది లోడ్ చేయగల కెర్నల్ మాడ్యూల్గా రూపొందించబడింది, ఇది వీలైతే, ఇతర కెర్నల్ సబ్సిస్టమ్లను ప్రభావితం చేయదు మరియు ప్రోటోకాల్ ద్వారా వచ్చే సందేశాలను ప్రాసెస్ చేయడానికి మరియు అసమకాలిక రీతిలో కార్యకలాపాలను నిర్వహించడానికి ప్రత్యేక టాస్క్ క్యూలను (టాస్క్లు) సృష్టిస్తుంది. నెట్లింక్ను పోర్టింగ్ చేయడానికి కారణం కెర్నల్ సబ్సిస్టమ్లతో పరస్పర చర్య చేయడానికి ప్రామాణిక మెకానిజం లేకపోవడమే, ఇది వివిధ సబ్సిస్టమ్లు మరియు డ్రైవర్లు వారి స్వంత ప్రోటోకాల్లను కనిపెట్టడానికి దారితీస్తుంది.
నెట్లింక్ ఏకీకృత కమ్యూనికేషన్ లేయర్ మరియు ఎక్స్టెన్సిబుల్ మెసేజ్ ఫార్మాట్ను అందిస్తుంది, ఇది వివిధ మూలాల నుండి భిన్నమైన డేటాను ఒకే అభ్యర్థనగా స్వయంచాలకంగా మిళితం చేసే మధ్యవర్తిగా పని చేస్తుంది. ఉదాహరణకు, ప్రస్తుతం వారి స్వంత ioctl కాల్లను ఉపయోగిస్తున్న devd, jail మరియు pfilctl వంటి FreeBSD సబ్సిస్టమ్లను నెట్లింక్కి బదిలీ చేయవచ్చు, ఇది ఈ సబ్సిస్టమ్లతో పని చేయడానికి అప్లికేషన్ల సృష్టిని చాలా సులభతరం చేస్తుంది. అదనంగా, నెట్లింక్ని రౌటింగ్ స్టాక్లో నెక్స్ట్హాప్ ఆబ్జెక్ట్లు మరియు గ్రూప్లను సవరించడం ద్వారా యూజర్ స్పేస్ రూటింగ్ ప్రక్రియలతో మరింత సమర్థవంతమైన పరస్పర చర్యను ప్రారంభిస్తుంది.
ప్రస్తుతం అమలులో ఉన్న ఫీచర్లు:
- మార్గాలు, వస్తువులు మరియు నెక్స్ట్హాప్స్ సమూహాలు, నెట్వర్క్ ఇంటర్ఫేస్లు, చిరునామాలు మరియు పొరుగు హోస్ట్ల గురించి సమాచారాన్ని పొందడం (arp/ndp).
- నెట్వర్క్ ఇంటర్ఫేస్ల రూపాన్ని మరియు డిస్కనెక్ట్ గురించి నోటిఫికేషన్లను రూపొందించడం, చిరునామాలను సెట్ చేయడం మరియు తొలగించడం, మార్గాలను జోడించడం మరియు తొలగించడం.
- మార్గాలు, వస్తువులు మరియు నెక్స్ట్హాప్స్ సమూహాలు, గేట్వేలు, నెట్వర్క్ ఇంటర్ఫేస్లను జోడించడం మరియు తీసివేయడం.
- రూటింగ్ టేబుల్ మేనేజ్మెంట్ కోసం Rtsock ఇంటర్ఫేస్తో ఏకీకరణ.
మూలం: opennet.ru