రూటింగ్ అనేది TCP/IP నెట్వర్క్ల ద్వారా ప్యాకెట్లను ప్రసారం చేయడానికి ఉత్తమమైన మార్గాన్ని కనుగొనే ప్రక్రియ. IPv4 నెట్వర్క్కు కనెక్ట్ చేయబడిన ఏదైనా పరికరం ప్రాసెస్ మరియు రూటింగ్ పట్టికలను కలిగి ఉంటుంది.
ఈ కథనం HOWTO కాదు, ఇది రూటర్ఓఎస్లో స్టాటిక్ రూటింగ్ను ఉదాహరణలతో వివరిస్తుంది, నేను ఉద్దేశపూర్వకంగా మిగిలిన సెట్టింగులను (ఉదాహరణకు, ఇంటర్నెట్ని యాక్సెస్ చేయడానికి srcnat) విస్మరించాను, కాబట్టి మెటీరియల్ని అర్థం చేసుకోవడానికి నెట్వర్క్లు మరియు రూటర్ఓఎస్ల గురించి నిర్దిష్ట స్థాయి జ్ఞానం అవసరం.
మారడం మరియు రూటింగ్
స్విచింగ్ అనేది ఒక లేయర్ 2 విభాగంలో (ఈథర్నెట్, పిపిపి, ...) ప్యాకెట్లను మార్పిడి చేసే ప్రక్రియ. ప్యాకెట్ గ్రహీత దానితో పాటు అదే ఈథర్నెట్ సబ్నెట్లో ఉన్నట్లు పరికరం చూసినట్లయితే, అది arp ప్రోటోకాల్ను ఉపయోగించి Mac చిరునామాను నేర్చుకుంటుంది మరియు రూటర్ను దాటవేస్తూ ప్యాకెట్ను నేరుగా ప్రసారం చేస్తుంది. ఒక ppp (పాయింట్-టు-పాయింట్) కనెక్షన్ ఇద్దరు పాల్గొనేవారిని మాత్రమే కలిగి ఉంటుంది మరియు ప్యాకెట్ ఎల్లప్పుడూ 0xff చిరునామాకు పంపబడుతుంది.
రౌటింగ్ అనేది లేయర్2 సెగ్మెంట్ల మధ్య ప్యాకెట్లను బదిలీ చేసే ప్రక్రియ. ఈథర్నెట్ సెగ్మెంట్ వెలుపల ఉన్న గ్రహీత ప్యాకెట్ని పంపాలనుకుంటే, అది దాని రూటింగ్ టేబుల్ని చూసి, ప్యాకెట్ను గేట్వేకి పంపుతుంది, ఆ ప్యాకెట్ను తదుపరి ఎక్కడికి పంపాలో తెలుసు (లేదా ప్యాకెట్ యొక్క అసలు పంపేవారికి తెలియకపోవచ్చు. దీని గురించి తెలియదు).
రెండు లేదా అంతకంటే ఎక్కువ లేయర్2 సెగ్మెంట్లకు కనెక్ట్ చేయబడిన పరికరం మరియు రూటింగ్ టేబుల్ నుండి ఉత్తమ మార్గాన్ని నిర్ణయించడం ద్వారా వాటి మధ్య ప్యాకెట్లను పాస్ చేయగల సామర్థ్యం రూటర్ గురించి ఆలోచించడానికి సులభమైన మార్గం.
మీరు ప్రతిదీ అర్థం చేసుకుంటే, లేదా మీకు ఇప్పటికే తెలిసి ఉంటే, చదవండి. మిగిలిన వాటి కోసం, మీరు చిన్న, కానీ చాలా సామర్థ్యంతో మిమ్మల్ని పరిచయం చేసుకోవాలని నేను గట్టిగా సిఫార్సు చేస్తున్నాను
RouterOS మరియు PacketFlowలో రూటింగ్
స్టాటిక్ రూటింగ్కు సంబంధించిన దాదాపు అన్ని కార్యాచరణలు ప్యాకేజీలో ఉన్నాయి వ్యవస్థ. ప్లాస్టిక్ సంచి రౌటింగ్ డైనమిక్ రూటింగ్ అల్గారిథమ్లు (RIP, OSPF, BGP, MME), రూటింగ్ ఫిల్టర్లు మరియు BFDలకు మద్దతును జోడిస్తుంది.
రూటింగ్ సెటప్ చేయడానికి ప్రధాన మెనూ: [IP]->[Route]
. కాంప్లెక్స్ స్కీమ్లకు ప్యాకెట్లను రూటింగ్ మార్క్తో ముందే లేబుల్ చేయడం అవసరం కావచ్చు: [IP]->[Firewall]->[Mangle]
(గొలుసులు PREROUTING
и OUTPUT
).
IP ప్యాకెట్ రూటింగ్ నిర్ణయాలు తీసుకునే PacketFlowలో మూడు ప్రదేశాలు ఉన్నాయి:
- రౌటర్ అందుకున్న రూటింగ్ ప్యాకెట్లు. ఈ దశలో, ప్యాకెట్ స్థానిక ప్రక్రియకు వెళుతుందా లేదా నెట్వర్క్కు మరింత పంపబడుతుందా అనేది నిర్ణయించబడుతుంది. రవాణా ప్యాకేజీలు అందుతాయి అవుట్పుట్ ఇంటర్ఫేస్
- స్థానిక అవుట్గోయింగ్ ప్యాకెట్లను రూట్ చేయడం. అవుట్గోయింగ్ ప్యాకెట్లు అందుతాయి అవుట్పుట్ ఇంటర్ఫేస్
- అవుట్గోయింగ్ ప్యాకెట్ల కోసం అదనపు రూటింగ్ దశ, రూటింగ్ నిర్ణయాన్ని మార్చడానికి మిమ్మల్ని అనుమతిస్తుంది
[Output|Mangle]
- బ్లాక్స్ 1, 2 లోని ప్యాకెట్ పాత్ నియమాలపై ఆధారపడి ఉంటుంది
[IP]->[Route]
- పాయింట్లు 1, 2 మరియు 3లోని ప్యాకెట్ పాత్ నియమాలపై ఆధారపడి ఉంటుంది
[IP]->[Route]->[Rules]
- బ్లాక్లు 1, 3లోని ప్యాకేజీ పాత్ని ఉపయోగించి ప్రభావితం చేయవచ్చు
[IP]->[Firewall]->[Mangle]
RIB, FIB, రూటింగ్ కాష్
రూటింగ్ ఇన్ఫర్మేషన్ బేస్
డైనమిక్ రూటింగ్ ప్రోటోకాల్లు, ppp మరియు dhcp నుండి రూట్లు, స్టాటిక్ మరియు కనెక్ట్ చేయబడిన రూట్ల నుండి రూట్లను సేకరించే ఆధారం. ఈ డేటాబేస్ అడ్మినిస్ట్రేటర్ ద్వారా ఫిల్టర్ చేయబడినవి మినహా అన్ని మార్గాలను కలిగి ఉంది.
షరతులతో, అని మనం అనుకోవచ్చు [IP]->[Route]
RIBని ప్రదర్శిస్తుంది.
ఫార్వార్డింగ్ సమాచార స్థావరం
RIB నుండి ఉత్తమ మార్గాలను సేకరించిన బేస్. FIBలోని అన్ని మార్గాలు సక్రియంగా ఉంటాయి మరియు ప్యాకెట్లను ఫార్వార్డ్ చేయడానికి ఉపయోగించబడతాయి. మార్గం నిష్క్రియంగా మారితే (నిర్వాహకుడు (సిస్టమ్) ద్వారా నిలిపివేయబడితే లేదా ప్యాకెట్ పంపవలసిన ఇంటర్ఫేస్ సక్రియంగా లేకుంటే), FIB నుండి మార్గం తీసివేయబడుతుంది.
రూటింగ్ నిర్ణయం తీసుకోవడానికి, FIB పట్టిక IP ప్యాకెట్ గురించి కింది సమాచారాన్ని ఉపయోగిస్తుంది:
- మూల చిరునామా
- చేరవలసిన చిరునామా
- మూల ఇంటర్ఫేస్
- రూటింగ్ గుర్తు
- ToS (DSCP)
FIB ప్యాకేజీలోకి ప్రవేశించడం క్రింది దశల గుండా వెళుతుంది:
- ప్యాకేజీ స్థానిక రూటర్ ప్రక్రియ కోసం ఉద్దేశించబడిందా?
- ప్యాకెట్ సిస్టమ్ లేదా యూజర్ PBR నియమాలకు లోబడి ఉందా?
- అవును అయితే, ప్యాకెట్ పేర్కొన్న రూటింగ్ టేబుల్కి పంపబడుతుంది
- ప్యాకెట్ ప్రధాన పట్టికకు పంపబడుతుంది
షరతులతో, అని మనం అనుకోవచ్చు [IP]->[Route Active=yes]
FIBని ప్రదర్శిస్తుంది.
రూటింగ్ కాష్
రూట్ కాషింగ్ మెకానిజం. ప్యాకెట్లు ఎక్కడికి పంపబడ్డాయో రౌటర్ గుర్తుంచుకుంటుంది మరియు సారూప్యమైనవి (బహుశా అదే కనెక్షన్ నుండి) ఉంటే, అది వాటిని FIBలో తనిఖీ చేయకుండా అదే మార్గంలో వెళ్లేలా చేస్తుంది. రూట్ కాష్ క్రమానుగతంగా క్లియర్ చేయబడుతుంది.
RouterOS అడ్మినిస్ట్రేటర్ల కోసం, వారు రూటింగ్ కాష్ని వీక్షించడానికి మరియు నిర్వహించడానికి సాధనాలను తయారు చేయలేదు, అయితే దీన్ని డిసేబుల్ చెయ్యవచ్చు [IP]->[Settings]
.
ఈ మెకానిజం linux 3.6 కెర్నల్ నుండి తీసివేయబడింది, అయితే RouterOS ఇప్పటికీ కెర్నల్ 3.3.5ని ఉపయోగిస్తుంది, బహుశా రూటింగ్ cahce ఒక కారణం కావచ్చు.
మార్గం డైలాగ్ని జోడించండి
[IP]->[Route]->[+]
- మీరు మార్గాన్ని సృష్టించాలనుకుంటున్న సబ్నెట్ (డిఫాల్ట్: 0.0.0.0/0)
- గేట్వే IP లేదా ప్యాకెట్ పంపబడే ఇంటర్ఫేస్ (చాలా ఉండవచ్చు, దిగువ ECMP చూడండి)
- గేట్వే లభ్యత తనిఖీ
- రికార్డ్ రకం
- మార్గం కోసం దూరం (మెట్రిక్).
- రూటింగ్ టేబుల్
- ఈ మార్గం ద్వారా స్థానిక అవుట్గోయింగ్ ప్యాకెట్ల కోసం IP
- స్కోప్ మరియు టార్గెట్ స్కోప్ యొక్క ఉద్దేశ్యం వ్యాసం చివరలో వ్రాయబడింది.
రూట్ జెండాలు
- X - అడ్మినిస్ట్రేటర్ ద్వారా మార్గం నిలిపివేయబడింది (
disabled=yes
) - A - ప్యాకెట్లను పంపడానికి మార్గం ఉపయోగించబడుతుంది
- D - రూట్ డైనమిక్గా జోడించబడింది (BGP, OSPF, RIP, MME, PPP, DHCP, కనెక్ట్ చేయబడింది)
- సి - సబ్నెట్ నేరుగా రూటర్కి కనెక్ట్ చేయబడింది
- S - స్టాటిక్ రూట్
- r,b,o,m - డైనమిక్ రూటింగ్ ప్రోటోకాల్లలో ఒకదాని ద్వారా రూట్ జోడించబడింది
- B,U,P - వడపోత మార్గం (ప్రసారానికి బదులుగా ప్యాకెట్లను వదులుతుంది)
గేట్వేలో ఏమి పేర్కొనాలి: ip-చిరునామా లేదా ఇంటర్ఫేస్?
సిస్టమ్ రెండింటినీ పేర్కొనడానికి మిమ్మల్ని అనుమతిస్తుంది, అయితే అది ప్రమాణం చేయదు మరియు మీరు ఏదైనా తప్పు చేస్తే సూచనలు ఇవ్వదు.
IP చిరునామా
గేట్వే చిరునామా తప్పనిసరిగా లేయర్2లో యాక్సెస్ చేయబడాలి. ఈథర్నెట్ కోసం, రౌటర్ తప్పనిసరిగా క్రియాశీల ip ఇంటర్ఫేస్లలో ఒకదానిలో అదే సబ్నెట్ నుండి చిరునామాను కలిగి ఉండాలి, ppp కోసం, గేట్వే చిరునామా సక్రియ ఇంటర్ఫేస్లలో ఒకదానిలో సబ్నెట్ చిరునామాగా పేర్కొనబడింది.
Layer2 కోసం యాక్సెసిబిలిటీ షరతు పాటించకపోతే, మార్గం నిష్క్రియంగా పరిగణించబడుతుంది మరియు FIBలోకి రాదు.
ఇంటర్ఫేస్
ప్రతిదీ మరింత క్లిష్టంగా ఉంటుంది మరియు రౌటర్ యొక్క ప్రవర్తన ఇంటర్ఫేస్ రకంపై ఆధారపడి ఉంటుంది:
- PPP (Async, PPTP, L2TP, SSTP, PPPoE, OpenVPN *) కనెక్షన్ ఇద్దరు పాల్గొనేవారిని మాత్రమే ఊహిస్తుంది మరియు ప్యాకెట్ ఎల్లప్పుడూ ట్రాన్స్మిషన్ కోసం గేట్వేకి పంపబడుతుంది, గ్రహీత స్వయంగా ఉన్నట్లు గేట్వే గుర్తిస్తే, అది ప్యాకెట్ను దీనికి బదిలీ చేస్తుంది దాని స్థానిక ప్రక్రియ.
- ఈథర్నెట్ చాలా మంది పాల్గొనేవారి ఉనికిని ఊహిస్తుంది మరియు ప్యాకెట్ గ్రహీత యొక్క చిరునామాతో ఆర్ప్ ఇంటర్ఫేస్కు అభ్యర్థనలను పంపుతుంది, కనెక్ట్ చేయబడిన మార్గాల కోసం ఇది ఊహించబడింది మరియు చాలా సాధారణ ప్రవర్తన.
కానీ మీరు రిమోట్ సబ్నెట్ కోసం ఇంటర్ఫేస్ను ఒక మార్గంగా ఉపయోగించడానికి ప్రయత్నించినప్పుడు, మీరు క్రింది పరిస్థితిని పొందుతారు: మార్గం సక్రియంగా ఉంది, గేట్వేకి పింగ్ వెళుతుంది, కానీ పేర్కొన్న సబ్నెట్ నుండి గ్రహీతను చేరుకోదు. మీరు స్నిఫర్ ద్వారా ఇంటర్ఫేస్ను చూస్తే, మీరు రిమోట్ సబ్నెట్ నుండి చిరునామాలతో ఆర్ప్ అభ్యర్థనలను చూస్తారు.
సాధ్యమైనప్పుడల్లా ip చిరునామాను గేట్వేగా పేర్కొనడానికి ప్రయత్నించండి. మినహాయింపు కనెక్ట్ చేయబడిన మార్గాలు (స్వయంచాలకంగా సృష్టించబడుతుంది) మరియు PPP (Async, PPTP, L2TP, SSTP, PPPoE, OpenVPN*) ఇంటర్ఫేస్లు.
OpenVPNలో PPP హెడర్ లేదు, కానీ మీరు మార్గాన్ని సృష్టించడానికి OpenVPN ఇంటర్ఫేస్ పేరును ఉపయోగించవచ్చు.
మరింత నిర్దిష్ట మార్గం
ప్రాథమిక రూటింగ్ నియమం. చిన్న సబ్నెట్ను వివరించే మార్గం (అతిపెద్ద సబ్నెట్ మాస్క్తో) ప్యాకెట్ రూటింగ్ నిర్ణయంలో ప్రాధాన్యతనిస్తుంది. రౌటింగ్ పట్టికలోని ఎంట్రీల స్థానం ఎంపికకు సంబంధించినది కాదు - ప్రధాన నియమం మరింత నిర్దిష్టంగా ఉంటుంది.
పేర్కొన్న పథకం నుండి అన్ని మార్గాలు సక్రియంగా ఉన్నాయి (FIBలో ఉన్నాయి). విభిన్న సబ్నెట్లను సూచించండి మరియు ఒకదానితో ఒకటి విభేదించవద్దు.
గేట్వేలలో ఒకటి అందుబాటులో లేనట్లయితే, అనుబంధిత మార్గం నిష్క్రియంగా పరిగణించబడుతుంది (FIB నుండి తీసివేయబడుతుంది) మరియు మిగిలిన మార్గాల నుండి ప్యాకెట్లు శోధించబడతాయి.
సబ్నెట్ 0.0.0.0/0తో ఉన్న మార్గానికి కొన్నిసార్లు ప్రత్యేక అర్ధం ఇవ్వబడుతుంది మరియు దీనిని "డిఫాల్ట్ రూట్" లేదా "గేట్వే ఆఫ్ లాస్ట్ రిసార్ట్" అని పిలుస్తారు. వాస్తవానికి, దాని గురించి అద్భుతంగా ఏమీ లేదు మరియు ఇది సాధ్యమయ్యే అన్ని IPv4 చిరునామాలను కలిగి ఉంటుంది, కానీ ఈ పేర్లు దాని పనిని చక్కగా వివరిస్తాయి - ఇది ఇతర, మరింత ఖచ్చితమైన మార్గాలు లేని ప్యాకెట్లను ఎక్కడ ఫార్వార్డ్ చేయాలో గేట్వేని సూచిస్తుంది.
IPv4 కోసం గరిష్టంగా సాధ్యమయ్యే సబ్నెట్ మాస్క్ /32, ఈ మార్గం ఒక నిర్దిష్ట హోస్ట్కు సూచించబడుతుంది మరియు రూటింగ్ పట్టికలో ఉపయోగించవచ్చు.
ఏదైనా TCP/IP పరికరానికి మరింత నిర్దిష్టమైన మార్గాన్ని అర్థం చేసుకోవడం ప్రాథమికమైనది.
దూరం
బహుళ గేట్వేల ద్వారా యాక్సెస్ చేయగల ఒకే సబ్నెట్కు రూట్ల అడ్మినిస్ట్రేటివ్ ఫిల్టరింగ్ కోసం దూరాలు (లేదా మెట్రిక్లు) అవసరం. తక్కువ మెట్రిక్ ఉన్న మార్గం ప్రాధాన్యతగా పరిగణించబడుతుంది మరియు FIBలో చేర్చబడుతుంది. తక్కువ మెట్రిక్ ఉన్న మార్గం సక్రియంగా ఉండటం ఆపివేస్తే, అది FIBలో అధిక మెట్రిక్తో ఉన్న మార్గం ద్వారా భర్తీ చేయబడుతుంది.
ఒకే మెట్రిక్తో ఒకే సబ్నెట్కు అనేక మార్గాలు ఉంటే, రూటర్ దాని అంతర్గత తర్కం ద్వారా మార్గనిర్దేశం చేయబడిన FIB పట్టికకు వాటిలో ఒకదాన్ని మాత్రమే జోడిస్తుంది.
మెట్రిక్ 0 నుండి 255 వరకు విలువను తీసుకోవచ్చు:
- 0 - కనెక్ట్ చేయబడిన మార్గాల కోసం మెట్రిక్. అడ్మినిస్ట్రేటర్ ద్వారా దూరం 0 సెట్ చేయబడదు
- 1-254 - రూట్లను సెట్ చేయడానికి అడ్మినిస్ట్రేటర్కు కొలమానాలు అందుబాటులో ఉన్నాయి. తక్కువ విలువ కలిగిన కొలమానాలకు అధిక ప్రాధాన్యత ఉంటుంది
- 255 - రూట్లను సెట్ చేయడానికి అడ్మినిస్ట్రేటర్కు మెట్రిక్ అందుబాటులో ఉంది. 1-254 వలె కాకుండా, 255 మెట్రిక్ ఉన్న మార్గం ఎల్లప్పుడూ నిష్క్రియంగా ఉంటుంది మరియు FIBలోకి రాదు
- నిర్దిష్ట కొలమానాలు. డైనమిక్ రూటింగ్ ప్రోటోకాల్ల నుండి తీసుకోబడిన మార్గాలు ప్రామాణిక మెట్రిక్ విలువలను కలిగి ఉంటాయి
గేట్వేని తనిఖీ చేయండి
చెక్ గేట్వే అనేది icmp లేదా arp ద్వారా గేట్వే లభ్యతను తనిఖీ చేయడానికి MikroTik RoutesOS పొడిగింపు. ప్రతి 10 సెకన్లకు ఒకసారి (మార్చబడదు), ఒక అభ్యర్థన గేట్వేకి పంపబడుతుంది, ప్రతిస్పందన రెండుసార్లు అందకపోతే, మార్గం అందుబాటులో లేదని పరిగణించబడుతుంది మరియు FIB నుండి తీసివేయబడుతుంది. చెక్ గేట్వేని నిలిపివేసినట్లయితే చెక్ రూట్ కొనసాగుతుంది మరియు ఒక విజయవంతమైన చెక్ తర్వాత రూట్ మళ్లీ యాక్టివ్ అవుతుంది.
చెక్ గేట్వే కాన్ఫిగర్ చేయబడిన ఎంట్రీని మరియు పేర్కొన్న గేట్వేతో అన్ని ఇతర ఎంట్రీలను (అన్ని రూటింగ్ పట్టికలు మరియు ecmp మార్గాలలో) నిలిపివేస్తుంది.
సాధారణంగా, గేట్వేకి ప్యాకెట్ నష్టంతో సమస్యలు లేనంత వరకు చెక్ గేట్వే బాగా పనిచేస్తుంది. చెక్ చేసిన గేట్వే వెలుపల కమ్యూనికేషన్తో ఏమి జరుగుతుందో చెక్ గేట్వేకి తెలియదు, దీనికి అదనపు సాధనాలు అవసరం: స్క్రిప్ట్లు, రికర్సివ్ రూటింగ్, డైనమిక్ రూటింగ్ ప్రోటోకాల్లు.
చాలా VPN మరియు టన్నెల్ ప్రోటోకాల్లు కనెక్షన్ కార్యాచరణను తనిఖీ చేయడానికి అంతర్నిర్మిత సాధనాలను కలిగి ఉంటాయి, వాటి కోసం చెక్ గేట్వేని ప్రారంభించడం వలన నెట్వర్క్ మరియు పరికర పనితీరుపై అదనపు (కానీ చాలా చిన్నది) లోడ్ అవుతుంది.
ECMP మార్గాలు
ఈక్వల్-కాస్ట్ మల్టీ-పాత్ - రౌండ్ రాబిన్ అల్గారిథమ్ని ఉపయోగించి ఏకకాలంలో అనేక గేట్వేలను ఉపయోగించి గ్రహీతకు ప్యాకెట్లను పంపడం.
ఒక సబ్నెట్ (లేదా స్వయంచాలకంగా, రెండు సమానమైన OSPF మార్గాలు ఉంటే) కోసం బహుళ గేట్వేలను పేర్కొనడం ద్వారా ECMP మార్గం నిర్వాహకునిచే సృష్టించబడుతుంది.
ECMP రెండు ఛానెల్ల మధ్య లోడ్ బ్యాలెన్సింగ్ కోసం ఉపయోగించబడుతుంది, సిద్ధాంతపరంగా, ecmp మార్గంలో రెండు ఛానెల్లు ఉంటే, ప్రతి ప్యాకెట్కు అవుట్గోయింగ్ ఛానెల్ భిన్నంగా ఉండాలి. కానీ రౌటింగ్ కాష్ మెకానిజం మొదటి ప్యాకెట్ తీసుకున్న మార్గంలో కనెక్షన్ నుండి ప్యాకెట్లను పంపుతుంది, ఫలితంగా, మేము కనెక్షన్ల ఆధారంగా ఒక రకమైన బ్యాలెన్సింగ్ను పొందుతాము (ప్రతి కనెక్షన్ లోడింగ్ బ్యాలెన్సింగ్).
మీరు రూటింగ్ కాష్ని నిలిపివేస్తే, ECMP మార్గంలోని ప్యాకెట్లు సరిగ్గా భాగస్వామ్యం చేయబడతాయి, కానీ NATతో సమస్య ఉంది. NAT నియమం కనెక్షన్ నుండి మొదటి ప్యాకెట్ను మాత్రమే ప్రాసెస్ చేస్తుంది (మిగిలినవి స్వయంచాలకంగా ప్రాసెస్ చేయబడతాయి), మరియు ఒకే మూల చిరునామాతో ఉన్న ప్యాకెట్లు వేర్వేరు ఇంటర్ఫేస్లను వదిలివేస్తాయని తేలింది.
ECMP మార్గాలలో గేట్వే పని చేయదు (RouterOS బగ్). కానీ మీరు ECMPలో ఎంట్రీలను నిలిపివేసే అదనపు ధ్రువీకరణ మార్గాలను సృష్టించడం ద్వారా ఈ పరిమితిని అధిగమించవచ్చు.
రూటింగ్ ద్వారా వడపోత
ప్యాకేజీతో ఏమి చేయాలో టైప్ ఎంపిక నిర్ణయిస్తుంది:
- యూనికాస్ట్ - పేర్కొన్న గేట్వే (ఇంటర్ఫేస్)కి పంపండి
- బ్లాక్ హోల్ - ఒక ప్యాకెట్ విస్మరించండి
- నిషేధించండి, చేరుకోలేము - ప్యాకెట్ను విస్మరించండి మరియు పంపినవారికి icmp సందేశాన్ని పంపండి
తప్పు మార్గంలో ప్యాకెట్లను పంపడాన్ని సురక్షితంగా ఉంచడానికి అవసరమైనప్పుడు వడపోత సాధారణంగా ఉపయోగించబడుతుంది, అయితే, మీరు దీన్ని ఫైర్వాల్ ద్వారా ఫిల్టర్ చేయవచ్చు.
కొన్ని ఉదాహరణలు
రూటింగ్ గురించి ప్రాథమిక విషయాలను ఏకీకృతం చేయడానికి.
సాధారణ హోమ్ రౌటర్
/ip route
add dst-address=0.0.0.0/0 gateway=10.10.10.1
- 0.0.0.0/0కి స్టాటిక్ రూట్ (డిఫాల్ట్ రూట్)
- ప్రొవైడర్తో ఇంటర్ఫేస్లో కనెక్ట్ చేయబడిన మార్గం
- LAN ఇంటర్ఫేస్లో కనెక్ట్ చేయబడిన మార్గం
PPPoEతో సాధారణ హోమ్ రూటర్
- డిఫాల్ట్ మార్గానికి స్టాటిక్ రూట్, స్వయంచాలకంగా జోడించబడింది. ఇది కనెక్షన్ లక్షణాలలో పేర్కొనబడింది
- PPP కనెక్షన్ కోసం కనెక్ట్ చేయబడిన మార్గం
- LAN ఇంటర్ఫేస్లో కనెక్ట్ చేయబడిన మార్గం
ఇద్దరు ప్రొవైడర్లు మరియు రిడెండెన్సీతో కూడిన సాధారణ హోమ్ రూటర్
/ip route
add dst-address=0.0.0.0/0 gateway=10.10.10.1 distance=1 check-gateway=ping
add dst-address=0.0.0.0/0 gateway=10.20.20.1 distance=2
- మెట్రిక్ 1 మరియు గేట్వే లభ్యత తనిఖీతో మొదటి ప్రొవైడర్ ద్వారా డిఫాల్ట్ మార్గానికి స్టాటిక్ రూట్
- మెట్రిక్ 2తో రెండవ ప్రొవైడర్ ద్వారా డిఫాల్ట్ మార్గానికి స్టాటిక్ రూట్
- కనెక్ట్ చేయబడిన మార్గాలు
ఈ గేట్వే అందుబాటులో ఉన్నప్పుడు 0.0.0.0/0కి ట్రాఫిక్ 10.10.10.1 గుండా వెళుతుంది, లేకుంటే అది 10.20.20.1కి మారుతుంది
అలాంటి పథకం ఛానల్ రిజర్వేషన్గా పరిగణించబడుతుంది, అయితే ఇది లోపాలు లేకుండా కాదు. ప్రొవైడర్ గేట్వే వెలుపల (ఉదాహరణకు, ఆపరేటర్ నెట్వర్క్ లోపల) విరామం ఏర్పడితే, మీ రూటర్ దాని గురించి తెలుసుకోదు మరియు మార్గాన్ని సక్రియంగా పరిగణించడం కొనసాగిస్తుంది.
రిడెండెన్సీ మరియు ECMP అనే రెండు ప్రొవైడర్లతో కూడిన సాధారణ హోమ్ రూటర్
/ip route
add dst-address=0.0.0.0/0 gateway=10.10.10.1 check-gateway=ping
add dst-address=0.0.0.0/0 gateway=10.20.20.1 check-gateway=ping
add dst-address=0.0.0.0/0 gateway=10.10.10.1,10.20.20.1 distance=1
- చాక్ గేట్వేని తనిఖీ చేయడానికి స్టాటిక్ మార్గాలు
- ECMP మార్గం
- కనెక్ట్ చేయబడిన మార్గాలు
తనిఖీ చేయాల్సిన మార్గాలు నీలం రంగులో ఉంటాయి (క్రియారహిత మార్గాల రంగు), కానీ ఇది చెక్ గేట్వేతో జోక్యం చేసుకోదు. RoS యొక్క ప్రస్తుత వెర్షన్ (6.44) ECMP మార్గానికి ఆటోమేటిక్ ప్రాధాన్యతనిస్తుంది, అయితే ఇతర రూటింగ్ పట్టికలకు (ఎంపిక) పరీక్ష మార్గాలను జోడించడం ఉత్తమం routing-mark
)
స్పీడ్టెస్ట్ మరియు ఇతర సారూప్య సైట్లలో, వేగం పెరగదు (ECMP ట్రాఫిక్ని కనెక్షన్ల ద్వారా విభజిస్తుంది, ప్యాకెట్ల ద్వారా కాదు), కానీ p2p అప్లికేషన్లు వేగంగా డౌన్లోడ్ చేసుకోవాలి.
రూటింగ్ ద్వారా వడపోత
/ip route
add dst-address=0.0.0.0/0 gateway=10.10.10.1
add dst-address=192.168.200.0/24 gateway=10.30.30.1 distance=1
add dst-address=192.168.200.0/24 gateway=10.10.10.1 distance=2 type=blackhole
- డిఫాల్ట్ మార్గానికి స్టాటిక్ రూట్
- ఐపిప్ టన్నెల్ మీదుగా 192.168.200.0/24కి స్టాటిక్ రూట్
- ISP రూటర్ ద్వారా 192.168.200.0/24కి స్టాటిక్ మార్గాన్ని నిషేధించడం
ipip ఇంటర్ఫేస్ నిలిపివేయబడినప్పుడు టన్నెల్ ట్రాఫిక్ ప్రొవైడర్ రూటర్కి వెళ్లని ఫిల్టరింగ్ ఎంపిక. ఇటువంటి పథకాలు చాలా అరుదుగా అవసరమవుతాయి, ఎందుకంటే మీరు ఫైర్వాల్ ద్వారా నిరోధించడాన్ని అమలు చేయవచ్చు.
రూటింగ్ లూప్
రూటింగ్ లూప్ - ttl గడువు ముగిసేలోపు రౌటర్ల మధ్య ప్యాకెట్ నడుస్తున్నప్పుడు పరిస్థితి. సాధారణంగా ఇది కాన్ఫిగరేషన్ లోపం యొక్క ఫలితం, పెద్ద నెట్వర్క్లలో ఇది డైనమిక్ రౌటింగ్ ప్రోటోకాల్ల అమలు ద్వారా, చిన్న వాటిలో - జాగ్రత్తతో చికిత్స పొందుతుంది.
ఇది ఇలా కనిపిస్తుంది:
సారూప్య ఫలితాన్ని ఎలా పొందాలో ఉదాహరణ (సరళమైనది):
రూటింగ్ లూప్ ఉదాహరణ ఎటువంటి ఆచరణాత్మక ఉపయోగం లేదు, కానీ ఇది రూటర్లకు వారి పొరుగువారి రూటింగ్ టేబుల్ గురించి ఎటువంటి ఆలోచన లేదని చూపిస్తుంది.
పాలసీ బేస్ రూటింగ్ మరియు అదనపు రూటింగ్ పట్టికలు
మార్గాన్ని ఎంచుకున్నప్పుడు, రూటర్ ప్యాకెట్ హెడర్ (Dst. చిరునామా) నుండి ఒక ఫీల్డ్ను మాత్రమే ఉపయోగిస్తుంది - ఇది ప్రాథమిక రూటింగ్. మూల చిరునామా, ట్రాఫిక్ రకం (ToS), ECMP లేకుండా బ్యాలెన్సింగ్ వంటి ఇతర షరతులపై ఆధారపడిన రూటింగ్, పాలసీ బేస్ రూటింగ్ (PBR)కి చెందినది మరియు అదనపు రూటింగ్ పట్టికలను ఉపయోగిస్తుంది.
మరింత నిర్దిష్ట మార్గం అనేది రూటింగ్ పట్టికలో ప్రధాన మార్గం ఎంపిక నియమం.
డిఫాల్ట్గా, అన్ని రూటింగ్ నియమాలు ప్రధాన పట్టికకు జోడించబడతాయి. నిర్వాహకుడు అదనపు రౌటింగ్ పట్టికల యొక్క ఏకపక్ష సంఖ్యను మరియు వాటికి రూట్ ప్యాకెట్లను సృష్టించవచ్చు. వేర్వేరు పట్టికలలోని నియమాలు ఒకదానితో ఒకటి విభేదించవు. ప్యాకేజీ పేర్కొన్న పట్టికలో తగిన నియమాన్ని కనుగొనలేకపోతే, అది ప్రధాన పట్టికకు వెళుతుంది.
ఫైర్వాల్ ద్వారా పంపిణీకి ఉదాహరణ:
- 192.168.100.10 -> 8.8.8.8
- 192.168.100.10 నుండి ట్రాఫిక్ లేబుల్ చేయబడింది ద్వారా-isp1 в
[Prerouting|Mangle]
- పట్టికలో రూటింగ్ దశలో ద్వారా-isp1 8.8.8.8కి మార్గం కోసం శోధిస్తుంది
- మార్గం కనుగొనబడింది, ట్రాఫిక్ గేట్వే 10.10.10.1కి పంపబడుతుంది
- 192.168.100.10 నుండి ట్రాఫిక్ లేబుల్ చేయబడింది ద్వారా-isp1 в
- 192.168.200.20 -> 8.8.8.8
- 192.168.200.20 నుండి ట్రాఫిక్ లేబుల్ చేయబడింది ద్వారా-isp2 в
[Prerouting|Mangle]
- పట్టికలో రూటింగ్ దశలో ద్వారా-isp2 8.8.8.8కి మార్గం కోసం శోధిస్తుంది
- మార్గం కనుగొనబడింది, ట్రాఫిక్ గేట్వే 10.20.20.1కి పంపబడుతుంది
- 192.168.200.20 నుండి ట్రాఫిక్ లేబుల్ చేయబడింది ద్వారా-isp2 в
- గేట్వేలలో ఒకటి (10.10.10.1 లేదా 10.20.20.1) అందుబాటులో లేకుంటే, ప్యాకెట్ టేబుల్కి వెళుతుంది. ప్రధాన మరియు అక్కడ తగిన మార్గం కోసం చూస్తారు
పరిభాష సమస్యలు
RouterOSకి కొన్ని పరిభాష సమస్యలు ఉన్నాయి.
నిబంధనలతో పని చేస్తున్నప్పుడు [IP]->[Routes]
రౌటింగ్ టేబుల్ సూచించబడింది, అయితే ఇది లేబుల్ అని వ్రాయబడింది:
В [IP]->[Routes]->[Rule]
పట్టిక చర్యలో లేబుల్ స్థితిలో ప్రతిదీ సరైనది:
నిర్దిష్ట రౌటింగ్ టేబుల్కి ప్యాకెట్ను ఎలా పంపాలి
RouterOS అనేక సాధనాలను అందిస్తుంది:
- లో నియమాలు
[IP]->[Routes]->[Rules]
- రూట్ మార్కర్స్ (
action=mark-routing
) లో[IP]->[Firewall]->[Mangle]
- వీఆర్ఎఫ్
నియమాలు [IP]->[Route]->[Rules]
నియమాలు క్రమానుగతంగా ప్రాసెస్ చేయబడతాయి, ప్యాకెట్ నియమ నిబంధనలకు సరిపోలితే, అది మరింత ముందుకు సాగదు.
రౌటింగ్ నియమాలు గ్రహీత చిరునామాపై మాత్రమే కాకుండా, ప్యాకెట్ను స్వీకరించిన మూల చిరునామా మరియు ఇంటర్ఫేస్పై కూడా ఆధారపడే రూటింగ్ యొక్క అవకాశాలను విస్తరించడానికి మిమ్మల్ని అనుమతిస్తాయి.
నియమాలు షరతులు మరియు చర్యను కలిగి ఉంటాయి:
- షరతులు. FIBలో ప్యాకేజీ తనిఖీ చేయబడిన సంకేతాల జాబితాను ఆచరణాత్మకంగా పునరావృతం చేయండి, ToS మాత్రమే లేదు.
- చర్యలు
- లుక్అప్ - టేబుల్కి ప్యాకెట్ను పంపండి
- పట్టికలో మాత్రమే చూడండి - ప్యాకేజీని పట్టికలో లాక్ చేయండి, మార్గం కనుగొనబడకపోతే, ప్యాకేజీ ప్రధాన పట్టికకు వెళ్లదు
- డ్రాప్ - ఒక ప్యాకెట్ వదలండి
- చేరుకోలేనిది - పంపినవారి నోటిఫికేషన్తో ప్యాకెట్ను విస్మరించండి
FIBలో, స్థానిక ప్రక్రియలకు ట్రాఫిక్ నిబంధనలను దాటవేస్తూ ప్రాసెస్ చేయబడుతుంది [IP]->[Route]->[Rules]
:
మార్కింగ్ [IP]->[Firewall]->[Mangle]
దాదాపు ఏదైనా ఫైర్వాల్ పరిస్థితులను ఉపయోగించి ప్యాకెట్ కోసం గేట్వేని సెట్ చేయడానికి రూటింగ్ లేబుల్లు మిమ్మల్ని అనుమతిస్తాయి:
ఆచరణాత్మకంగా, ఎందుకంటే అవన్నీ అర్ధవంతం కావు మరియు కొన్ని అస్థిరంగా పని చేయవచ్చు.
ప్యాకేజీని లేబుల్ చేయడానికి రెండు మార్గాలు ఉన్నాయి:
- వెంటనే చాలు రూటింగ్ గుర్తు
- మొదటి ఉంచండి కనెక్షన్-మార్క్, తర్వాత ఆధారంగా కనెక్షన్-మార్క్ ఉంచాలి రూటింగ్ గుర్తు
ఫైర్వాల్ల గురించి ఒక వ్యాసంలో, రెండవ ఎంపిక ఉత్తమం అని నేను వ్రాసాను. cpuపై లోడ్ను తగ్గిస్తుంది, మార్గాలను గుర్తించే విషయంలో - ఇది పూర్తిగా నిజం కాదు. ఈ మార్కింగ్ పద్ధతులు ఎల్లప్పుడూ సమానంగా ఉండవు మరియు సాధారణంగా వివిధ సమస్యలను పరిష్కరించడానికి ఉపయోగిస్తారు.
ఉపయోగించే ఉదాహరణలు
పాలసీ బేస్ రూటింగ్ని ఉపయోగించే ఉదాహరణలకు వెళ్దాం, ఇవన్నీ ఎందుకు అవసరమో చూపించడం చాలా సులభం.
మల్టీవాన్ మరియు రిటర్న్ అవుట్గోయింగ్ (అవుట్పుట్) ట్రాఫిక్
MultiWAN కాన్ఫిగరేషన్తో ఒక సాధారణ సమస్య: Mikrotik ఇంటర్నెట్ నుండి "యాక్టివ్" ప్రొవైడర్ ద్వారా మాత్రమే అందుబాటులో ఉంటుంది.
రిక్వెస్ట్ ఏ ipకి వచ్చిందనేది రూటర్ పట్టించుకోదు, ప్రతిస్పందనను రూపొందించేటప్పుడు, isp1 ద్వారా రూట్ సక్రియంగా ఉన్న రూటింగ్ టేబుల్లో రూట్ కోసం చూస్తుంది. ఇంకా, అటువంటి ప్యాకెట్ చాలా మటుకు స్వీకర్తకు వెళ్లే మార్గంలో ఫిల్టర్ చేయబడుతుంది.
మరో ఆసక్తికరమైన అంశం. ఈథర్1 ఇంటర్ఫేస్లో "సింపుల్" సోర్స్ nat కాన్ఫిగర్ చేయబడితే: /ip fi nat add out-interface=ether1 action=masquerade
ప్యాకేజీ srcతో ఆన్లైన్లోకి వెళ్తుంది. చిరునామా=10.10.10.100, ఇది పరిస్థితిని మరింత దిగజార్చింది.
సమస్యను పరిష్కరించడానికి అనేక మార్గాలు ఉన్నాయి, కానీ వాటిలో దేనికైనా అదనపు రూటింగ్ పట్టికలు అవసరం:
/ip route
add dst-address=0.0.0.0/0 gateway=10.10.10.1 check-gateway=ping distance=1
add dst-address=0.0.0.0/0 gateway=10.20.20.1 check-gateway=ping distance=2
add dst-address=0.0.0.0/0 gateway=10.10.10.1 routing-mark=over-isp1
add dst-address=0.0.0.0/0 gateway=10.20.20.1 routing-mark=over-isp2
ఉపయోగం [IP]->[Route]->[Rules]
పేర్కొన్న సోర్స్ IPతో ప్యాకెట్ల కోసం ఉపయోగించబడే రూటింగ్ పట్టికను పేర్కొనండి.
/ip route rule
add src-address=10.10.10.100/32 action=lookup-only-in-table table=over-isp1
add src-address=10.20.20.200/32 action=lookup-only-in-table table=over-isp2
ఉపయోగించవచ్చు action=lookup
, కానీ స్థానిక అవుట్గోయింగ్ ట్రాఫిక్ కోసం, ఈ ఐచ్ఛికం తప్పు ఇంటర్ఫేస్ నుండి కనెక్షన్లను పూర్తిగా మినహాయిస్తుంది.
- సిస్టమ్ Srcతో ప్రతిస్పందన ప్యాకెట్ను రూపొందిస్తుంది. చిరునామా: 10.20.20.200
- రూటింగ్ నిర్ణయం(2) దశ తనిఖీలు
[IP]->[Routes]->[Rules]
మరియు ప్యాకెట్ రూటింగ్ టేబుల్కి పంపబడుతుంది ఓవర్-isp2 - రూటింగ్ టేబుల్ ప్రకారం, ప్యాకెట్ తప్పనిసరిగా గేట్వే 10.20.20.1కి ఈథర్2 ఇంటర్ఫేస్ ద్వారా పంపబడాలి
ఈ పద్ధతికి మాంగిల్ పట్టికను ఉపయోగించడం వలె కాకుండా, పని చేసే కనెక్షన్ ట్రాకర్ అవసరం లేదు.
ఉపయోగం [IP]->[Firewall]->[Mangle]
కనెక్షన్ ఇన్కమింగ్ ప్యాకెట్తో ప్రారంభమవుతుంది, కాబట్టి మేము దానిని గుర్తు చేస్తాము (action=mark-connection
), గుర్తించబడిన కనెక్షన్ నుండి అవుట్గోయింగ్ ప్యాకెట్ల కోసం, రూటింగ్ లేబుల్ని సెట్ చేయండి (action=mark-routing
).
/ip firewall mangle
#Маркировка входящих соединений
add chain=input in-interface=ether1 connection-state=new action=mark-connection new-connection-mark=from-isp1
add chain=input in-interface=ether2 connection-state=new action=mark-connection new-connection-mark=from-isp2
#Маркировка исходящих пакетов на основе соединений
add chain=output connection-mark=from-isp1 action=mark-routing new-routing-mark=over-isp1 passthrough=no
add chain=output connection-mark=from-isp2 action=mark-routing new-routing-mark=over-isp2 passthrough=no
ఒక ఇంటర్ఫేస్లో అనేక ips కాన్ఫిగర్ చేయబడితే, మీరు షరతుకు జోడించవచ్చు dst-address
ఖచ్చితంగా.
- ఒక ప్యాకెట్ ఈథర్2 ఇంటర్ఫేస్లో కనెక్షన్ని తెరుస్తుంది. ప్యాకేజీలోకి వెళుతుంది
[INPUT|Mangle]
ఇది కనెక్షన్ నుండి అన్ని ప్యాకెట్లను ఇలా గుర్తు పెట్టాలని చెబుతుంది నుండి-isp2 - సిస్టమ్ Srcతో ప్రతిస్పందన ప్యాకెట్ను రూపొందిస్తుంది. చిరునామా: 10.20.20.200
- రూటింగ్ డెసిషన్(2) దశలో, రౌటింగ్ టేబుల్కు అనుగుణంగా ప్యాకెట్ ఈథర్10.20.20.1 ఇంటర్ఫేస్ ద్వారా గేట్వే 1కి పంపబడుతుంది. మీరు ప్యాకేజీలను లాగిన్ చేయడం ద్వారా దీన్ని ధృవీకరించవచ్చు
[OUTPUT|Filter]
- వేదిక వద్ద
[OUTPUT|Mangle]
కనెక్షన్ లేబుల్ తనిఖీ చేయబడింది నుండి-isp2 మరియు ప్యాకెట్ రూట్ లేబుల్ను పొందుతుంది ఓవర్-isp2 - రూటింగ్ సర్దుబాటు(3) దశ రౌటింగ్ లేబుల్ ఉనికిని తనిఖీ చేస్తుంది మరియు దానిని తగిన రూటింగ్ టేబుల్కి పంపుతుంది
- రూటింగ్ టేబుల్ ప్రకారం, ప్యాకెట్ తప్పనిసరిగా గేట్వే 10.20.20.1కి ఈథర్2 ఇంటర్ఫేస్ ద్వారా పంపబడాలి
MultiWAN మరియు రిటర్న్ dst-nat ట్రాఫిక్
ఒక ఉదాహరణ మరింత క్లిష్టంగా ఉంటుంది, ప్రైవేట్ సబ్నెట్లో రూటర్ వెనుక సర్వర్ (ఉదాహరణకు, వెబ్) ఉంటే ఏమి చేయాలి మరియు మీరు ప్రొవైడర్లలో ఎవరి ద్వారా అయినా దానికి ప్రాప్యతను అందించాలి.
/ip firewall nat
add chain=dstnat proto=tcp dst-port=80,443 in-interface=ether1 action=dst-nat to-address=192.168.100.100
add chain=dstnat proto=tcp dst-port=80,443 in-interface=ether2 action=dst-nat to-address=192.168.100.100
సమస్య యొక్క సారాంశం ఒకే విధంగా ఉంటుంది, పరిష్కారం ఫైర్వాల్ మాంగిల్ ఎంపికను పోలి ఉంటుంది, ఇతర గొలుసులు మాత్రమే ఉపయోగించబడుతుంది:
/ip firewall mangle
add chain=prerouting connection-state=new in-interface=ether1 protocol=tcp dst-port=80,443 action=mark-connection new-connection-mark=web-input-isp1
add chain=prerouting connection-state=new in-interface=ether2 protocol=tcp dst-port=80,443 action=mark-connection new-connection-mark=web-input-isp2
add chain=prerouting connection-mark=web-input-isp1 in-interface=ether3 action=mark-routing new-routing-mark=over-isp1 passthrough=no
add chain=prerouting connection-mark=web-input-isp2 in-interface=ether3 action=mark-routing new-routing-mark=over-isp2 passthrough=no
రేఖాచిత్రం NATని చూపించదు, కానీ ప్రతిదీ స్పష్టంగా ఉందని నేను భావిస్తున్నాను.
MultiWAN మరియు అవుట్బౌండ్ కనెక్షన్లు
మీరు వివిధ రౌటర్ ఇంటర్ఫేస్ల నుండి బహుళ vpn (ఉదాహరణలో SSTP) కనెక్షన్లను సృష్టించడానికి PBR సామర్థ్యాలను ఉపయోగించవచ్చు.
అదనపు రూటింగ్ పట్టికలు:
/ip route
add dst-address=0.0.0.0/0 gateway=192.168.100.1 routing-mark=over-isp1
add dst-address=0.0.0.0/0 gateway=192.168.200.1 routing-mark=over-isp2
add dst-address=0.0.0.0/0 gateway=192.168.0.1 routing-mark=over-isp3
add dst-address=0.0.0.0/0 gateway=192.168.100.1 distance=1
add dst-address=0.0.0.0/0 gateway=192.168.200.1 distance=2
add dst-address=0.0.0.0/0 gateway=192.168.0.1 distance=3
ప్యాకేజీ గుర్తులు:
/ip firewall mangle
add chain=output dst-address=10.10.10.100 proto=tcp dst-port=443 action=mark-routing new-routing-mark=over-isp1 passtrough=no
add chain=output dst-address=10.10.10.101 proto=tcp dst-port=443 action=mark-routing new-routing-mark=over-isp2 passtrough=no
add chain=output dst-address=10.10.10.102 proto=tcp dst-port=443 action=mark-routing new-routing-mark=over-isp3 passtrough=no
సాధారణ NAT నియమాలు, లేకపోతే ప్యాకెట్ తప్పు Srcతో ఇంటర్ఫేస్ను వదిలివేస్తుంది. చిరునామా:
/ip firewall nat
add chain=srcnat out-interface=ether1 action=masquerade
add chain=srcnat out-interface=ether2 action=masquerade
add chain=srcnat out-interface=ether3 action=masquerade
పార్సింగ్:
- రూటర్ మూడు SSTP ప్రక్రియలను సృష్టిస్తుంది
- రూటింగ్ డెసిషన్ (2) దశలో, ప్రధాన రౌటింగ్ పట్టిక ఆధారంగా ఈ ప్రక్రియల కోసం ఒక మార్గం ఎంపిక చేయబడుతుంది. అదే మార్గం నుండి, ప్యాకెట్ Srcని అందుకుంటుంది. చిరునామా ఈథర్1 ఇంటర్ఫేస్కు కట్టుబడి ఉంది
- В
[Output|Mangle]
వేర్వేరు కనెక్షన్ల నుండి ప్యాకెట్లు వేర్వేరు లేబుల్లను పొందుతాయి - ప్యాకెట్లు రూటింగ్ సర్దుబాటు దశలో లేబుల్లకు సంబంధించిన పట్టికలను నమోదు చేస్తాయి మరియు ప్యాకెట్లను పంపడానికి కొత్త మార్గాన్ని అందుకుంటాయి
- కానీ ప్యాకేజీలకు ఇప్పటికీ Src ఉంది. వేదికపై ఉన్న ఈథర్1 నుండి చిరునామా
[Nat|Srcnat]
చిరునామా ఇంటర్ఫేస్ ప్రకారం భర్తీ చేయబడుతుంది
ఆసక్తికరంగా, రూటర్లో మీరు ఈ క్రింది కనెక్షన్ పట్టికను చూస్తారు:
కనెక్షన్ ట్రాకర్ ముందుగా పని చేస్తుంది [Mangle]
и [Srcnat]
, కాబట్టి అన్ని కనెక్షన్లు ఒకే చిరునామా నుండి వస్తాయి, మీరు మరింత వివరంగా చూస్తే, ఇన్ Replay Dst. Address
NAT తర్వాత చిరునామాలు ఉంటాయి:
VPN సర్వర్లో (పరీక్ష బెంచ్లో నా దగ్గర ఒకటి ఉంది), అన్ని కనెక్షన్లు సరైన చిరునామాల నుండి వచ్చినట్లు మీరు చూడవచ్చు:
దారి పట్టుకోండి
సులభమైన మార్గం ఉంది, మీరు ప్రతి చిరునామాకు నిర్దిష్ట గేట్వేని పేర్కొనవచ్చు:
/ip route
add dst-address=10.10.10.100 gateway=192.168.100.1
add dst-address=10.10.10.101 gateway=192.168.200.1
add dst-address=10.10.10.102 gateway=192.168.0.1
కానీ అలాంటి మార్గాలు అవుట్గోయింగ్పైనే కాకుండా రవాణా ట్రాఫిక్పై కూడా ప్రభావం చూపుతాయి. అదనంగా, మీకు అనుచితమైన కమ్యూనికేషన్ ఛానెల్ల ద్వారా వెళ్లడానికి vpn సర్వర్కు ట్రాఫిక్ అవసరం లేకపోతే, మీరు దీనికి మరో 6 నియమాలను జోడించాలి. [IP]->[Routes]
с type=blackhole
. మునుపటి సంస్కరణలో - 3 నియమాలు [IP]->[Route]->[Rules]
.
కమ్యూనికేషన్ ఛానెల్ల ద్వారా వినియోగదారు కనెక్షన్ల పంపిణీ
సాధారణ, రోజువారీ పనులు. మళ్ళీ, అదనపు రూటింగ్ పట్టికలు అవసరం:
/ip route
add dst-address=0.0.0.0/0 gateway=10.10.10.1 dist=1 check-gateway=ping
add dst-address=0.0.0.0/0 gateway=10.20.20.1 dist=2 check-gateway=ping
add dst-address=0.0.0.0/0 gateway=10.10.10.1 dist=1 routing-mark=over-isp1
add dst-address=0.0.0.0/0 gateway=10.20.20.1 dist=1 routing-mark=over-isp2
ఉపయోగించి [IP]->[Route]->[Rules]
/ip route rules
add src-address=192.168.100.0/25 action=lookup-only-in-table table=over-isp1
add src-address=192.168.100.128/25 action=lookup-only-in-table table=over-isp2
మీరు ఉపయోగిస్తే action=lookup
, ఆపై ఛానెల్లలో ఒకటి నిలిపివేయబడినప్పుడు, ట్రాఫిక్ ప్రధాన పట్టికకు వెళ్లి పని చేసే ఛానెల్ ద్వారా వెళుతుంది. ఇది అవసరమా కాదా అనేది పనిపై ఆధారపడి ఉంటుంది.
లో గుర్తులను ఉపయోగించడం [IP]->[Firewall]->[Mangle]
ip చిరునామాల జాబితాలతో ఒక సాధారణ ఉదాహరణ. సూత్రప్రాయంగా, దాదాపు ఏదైనా షరతులను ఉపయోగించవచ్చు. లేయర్ 7 యొక్క ఏకైక హెచ్చరిక, కనెక్షన్ లేబుల్లతో జత చేసినప్పటికీ, ప్రతిదీ సరిగ్గా పనిచేస్తున్నట్లు అనిపించవచ్చు, కానీ కొన్ని ట్రాఫిక్ ఇప్పటికీ తప్పు మార్గంలో వెళ్తుంది.
/ip firewall mangle
add chain=prerouting src-address-list=users-over-isp1 dst-address-type=!local action=mark-routing new-routing-mark=over-isp1
add chain=prerouting src-address-list=users-over-isp2 dst-address-type=!local action=mark-routing new-routing-mark=over-isp2
మీరు ఒక రూటింగ్ పట్టికలో వినియోగదారులను "లాక్" చేయవచ్చు [IP]->[Route]->[Rules]
:
/ip route rules
add routing-mark=over-isp1 action=lookup-only-in-table table=over-isp1
add routing-mark=over-isp2 action=lookup-only-in-table table=over-isp2
ద్వారా గాని [IP]->[Firewall]->[Filter]
:
/ip firewall filter
add chain=forward routing-mark=over-isp1 out-interface=!ether1 action=reject
add chain=forward routing-mark=over-isp2 out-interface=!ether2 action=reject
రిట్రీట్ ప్రో dst-address-type=!local
అదనపు పరిస్థితి dst-address-type=!local
వినియోగదారుల నుండి ట్రాఫిక్ రూటర్ యొక్క స్థానిక ప్రక్రియలను చేరుకోవడం అవసరం (dns, winbox, ssh, ...). అనేక స్థానిక సబ్నెట్లు రౌటర్కు కనెక్ట్ చేయబడితే, వాటి మధ్య ట్రాఫిక్ ఇంటర్నెట్కు వెళ్లకుండా చూసుకోవడం అవసరం, ఉదాహరణకు, ఉపయోగించడం dst-address-table
.
ఉపయోగించి ఉదాహరణలో [IP]->[Route]->[Rules]
అటువంటి మినహాయింపులు లేవు, కానీ ట్రాఫిక్ స్థానిక ప్రక్రియలకు చేరుకుంటుంది. వాస్తవం ఏమిటంటే, గుర్తించబడిన FIB ప్యాకేజీలోకి ప్రవేశించడం [PREROUTING|Mangle]
రూట్ లేబుల్ని కలిగి ఉంది మరియు స్థానిక ఇంటర్ఫేస్ లేని ప్రధాన కాకుండా వేరే రూటింగ్ టేబుల్లోకి వెళుతుంది. రూటింగ్ నియమాల విషయంలో, ముందుగా ప్యాకెట్ స్థానిక ప్రక్రియ కోసం ఉద్దేశించబడిందో లేదో తనిఖీ చేయబడుతుంది మరియు వినియోగదారు PBR దశలో మాత్రమే అది పేర్కొన్న రూటింగ్ టేబుల్కి వెళుతుంది.
ఉపయోగించి [IP]->[Firewall]->[Mangle action=route]
ఈ చర్య మాత్రమే పని చేస్తుంది [Prerouting|Mangle]
మరియు గేట్వే చిరునామాను నేరుగా పేర్కొనడం ద్వారా అదనపు రూటింగ్ పట్టికలను ఉపయోగించకుండా పేర్కొన్న గేట్వేకి ట్రాఫిక్ని మళ్లించడానికి మిమ్మల్ని అనుమతిస్తుంది:
/ip firewall mangle
add chain=prerouting src-address=192.168.100.0/25 action=route gateway=10.10.10.1
add chain=prerouting src-address=192.168.128.0/25 action=route gateway=10.20.20.1
ప్రభావం route
రూటింగ్ నియమాల కంటే తక్కువ ప్రాధాన్యత ఉంది ([IP]->[Route]->[Rules]
) రూట్ మార్కుల విషయంలో, ప్రతిదీ నియమాల స్థానంపై ఆధారపడి ఉంటుంది, నియమం ఉంటే action=route
కంటే ఎక్కువ విలువైనది action=mark-route
, అప్పుడు అది ఉపయోగించబడుతుంది (జెండాతో సంబంధం లేకుండా passtrough
), లేకపోతే మార్గాన్ని గుర్తించడం.
ఈ చర్య గురించి వికీలో చాలా తక్కువ సమాచారం ఉంది మరియు అన్ని తీర్మానాలు ప్రయోగాత్మకంగా పొందబడ్డాయి, ఏ సందర్భంలోనైనా, ఈ ఎంపికను ఉపయోగించడం ఇతరులపై ప్రయోజనాలను ఇచ్చినప్పుడు నేను ఎంపికలను కనుగొనలేదు.
PPC ఆధారిత డైనమిక్ బ్యాలెన్సింగ్
ప్రతి కనెక్షన్ వర్గీకరణ - ECMP యొక్క మరింత సౌకర్యవంతమైన అనలాగ్. ECMP వలె కాకుండా, ఇది ట్రాఫిక్ను మరింత కఠినంగా కనెక్షన్ల ద్వారా విభజిస్తుంది (ECMPకి కనెక్షన్ల గురించి ఏమీ తెలియదు, కానీ రూటింగ్ కాష్తో జత చేసినప్పుడు, అలాంటిదే ఏదైనా లభిస్తుంది).
పీసీసీ తీసుకుంటుంది పేర్కొన్న ఫీల్డ్లు ip హెడర్ నుండి, వాటిని 32-బిట్ విలువకు మారుస్తుంది మరియు దీని ద్వారా విభజిస్తుంది హారం. విభజన యొక్క మిగిలిన భాగం పేర్కొన్న దానితో పోల్చబడింది మిగిలినవి మరియు అవి సరిపోలితే, పేర్కొన్న చర్య వర్తించబడుతుంది.
మూడు చిరునామాలతో ఉదాహరణ:
192.168.100.10: 192+168+100+10 = 470 % 3 = 2
192.168.100.11: 192+168+100+11 = 471 % 3 = 0
192.168.100.12: 192+168+100+12 = 472 % 3 = 1
మూడు ఛానెల్ల మధ్య src.address ద్వారా ట్రాఫిక్ యొక్క డైనమిక్ పంపిణీకి ఉదాహరణ:
#Таблица маршрутизации
/ip route
add dst-address=0.0.0.0/0 gateway=10.10.10.1 dist=1 check-gateway=ping
add dst-address=0.0.0.0/0 gateway=10.20.20.1 dist=2 check-gateway=ping
add dst-address=0.0.0.0/0 gateway=10.30.30.1 dist=3 check-gateway=ping
add dst-address=0.0.0.0/0 gateway=10.10.10.1 dist=1 routing-mark=over-isp1
add dst-address=0.0.0.0/0 gateway=10.20.20.1 dist=1 routing-mark=over-isp2
add dst-address=0.0.0.0/0 gateway=10.30.30.1 dist=1 routing-mark=over-isp3
#Маркировка соединений и маршрутов
/ip firewall mangle
add chain=prerouting in-interface=br-lan dst-address-type=!local connection-state=new per-connection-classifier=src-address:3/0 action=mark-connection new-connection-mark=conn-over-isp1
add chain=prerouting in-interface=br-lan dst-address-type=!local connection-state=new per-connection-classifier=src-address:3/1 action=mark-connection new-connection-mark=conn-over-isp2
add chain=prerouting in-interface=br-lan dst-address-type=!local connection-state=new per-connection-classifier=src-address:3/2 action=mark-connection new-connection-mark=conn-over-isp3
add chain=prerouting in-interface=br-lan connection-mark=conn-over-isp1 action=mark-routing new-routing-mark=over-isp1
add chain=prerouting in-interface=br-lan connection-mark=conn-over-isp2 action=mark-routing new-routing-mark=over-isp2
add chain=prerouting in-interface=br-lan connection-mark=conn-over-isp3 action=mark-routing new-routing-mark=over-isp3
మార్గాలను గుర్తించేటప్పుడు, అదనపు షరతు ఉంది: in-interface=br-lan
, కింద లేకుండా action=mark-routing
ఇంటర్నెట్ నుండి ప్రతిస్పందన ట్రాఫిక్ పొందుతుంది మరియు రూటింగ్ టేబుల్లకు అనుగుణంగా, ప్రొవైడర్కి తిరిగి వెళ్తుంది.
కమ్యూనికేషన్ ఛానెల్లను మార్చడం
చెక్ పింగ్ ఒక మంచి సాధనం, కానీ ఇది సమీప IP పీర్తో కనెక్షన్ను మాత్రమే తనిఖీ చేస్తుంది, ప్రొవైడర్ నెట్వర్క్లు సాధారణంగా పెద్ద సంఖ్యలో రౌటర్లను కలిగి ఉంటాయి మరియు సమీప పీర్ వెలుపల కనెక్షన్ బ్రేక్ ఏర్పడవచ్చు, ఆపై వెన్నెముక టెలికాం ఆపరేటర్లు కూడా ఉంటారు. సమస్యలు ఉన్నాయి, సాధారణంగా చెక్ పింగ్ గ్లోబల్ నెట్వర్క్కు యాక్సెస్ గురించిన తాజా సమాచారాన్ని ఎల్లప్పుడూ చూపదు.
ప్రొవైడర్లు మరియు పెద్ద సంస్థలు BGP డైనమిక్ రూటింగ్ ప్రోటోకాల్ను కలిగి ఉంటే, గృహ మరియు కార్యాలయ వినియోగదారులు ఒక నిర్దిష్ట కమ్యూనికేషన్ ఛానెల్ ద్వారా ఇంటర్నెట్ యాక్సెస్ని ఎలా తనిఖీ చేయాలో స్వతంత్రంగా గుర్తించాలి.
సాధారణంగా, స్క్రిప్ట్లు ఉపయోగించబడతాయి, నిర్దిష్ట కమ్యూనికేషన్ ఛానెల్ ద్వారా, ఇంటర్నెట్లో ip చిరునామా లభ్యతను తనిఖీ చేయండి, విశ్వసనీయమైనదాన్ని ఎంచుకునే సమయంలో, ఉదాహరణకు, google dns: 8.8.8.8. 8.8.4.4. కానీ మైక్రోటిక్ సంఘంలో, దీని కోసం మరింత ఆసక్తికరమైన సాధనం స్వీకరించబడింది.
రికర్సివ్ రూటింగ్ గురించి కొన్ని మాటలు
Multihop BGP పీరింగ్ను నిర్మించేటప్పుడు పునరావృత రూటింగ్ అవసరం మరియు అదనపు స్క్రిప్ట్లు లేకుండా కమ్యూనికేషన్ ఛానెల్లను మార్చడానికి చెక్ గేట్వేతో జత చేసిన పునరావృత మార్గాలను ఎలా ఉపయోగించాలో కనుగొన్న మోసపూరిత MikroTik వినియోగదారుల కారణంగా మాత్రమే స్టాటిక్ రూటింగ్ యొక్క ప్రాథమికాలను గురించి కథనంలోకి వచ్చింది.
సాధారణ పరంగా స్కోప్ / టార్గెట్ స్కోప్ ఎంపికలను మరియు మార్గం ఇంటర్ఫేస్కు ఎలా కట్టుబడి ఉందో అర్థం చేసుకోవడానికి ఇది సమయం:
- మార్గం దాని స్కోప్ విలువ ఆధారంగా ప్యాకెట్ను పంపడానికి ఇంటర్ఫేస్ను చూస్తుంది మరియు ప్రధాన పట్టికలోని అన్ని ఎంట్రీల కంటే తక్కువ లేదా సమానమైన లక్ష్య స్కోప్ విలువలతో ఉంటుంది
- కనుగొనబడిన ఇంటర్ఫేస్ల నుండి, మీరు పేర్కొన్న గేట్వేకి ప్యాకెట్ను పంపగలిగేది ఎంచుకోబడుతుంది
- ప్యాకెట్ను గేట్వేకి పంపడానికి కనుగొనబడిన కనెక్ట్ చేయబడిన ఎంట్రీ యొక్క ఇంటర్ఫేస్ ఎంచుకోబడింది
పునరావృత మార్గం సమక్షంలో, ప్రతిదీ ఒకే విధంగా జరుగుతుంది, కానీ రెండు దశల్లో:
- 1-3 కనెక్ట్ చేయబడిన మార్గాలకు మరో మార్గం జోడించబడింది, దీని ద్వారా పేర్కొన్న గేట్వేని చేరుకోవచ్చు
- 4-6 "ఇంటర్మీడియట్" గేట్వే కోసం కనెక్ట్ చేయబడిన మార్గాన్ని కనుగొనడం
పునరావృత శోధనతో అన్ని అవకతవకలు RIBలో జరుగుతాయి మరియు తుది ఫలితం మాత్రమే FIBకి బదిలీ చేయబడుతుంది: 0.0.0.0/0 via 10.10.10.1 on ether1
.
మార్గాలను మార్చడానికి పునరావృత రూటింగ్ని ఉపయోగించడం యొక్క ఉదాహరణ
ఆకృతీకరణ:
/ip route
add dst-address=0.0.0.0/0 gateway=8.8.8.8 check-gateway=ping distance=1 target-scope=10
add dst-address=8.8.8.8 gateway=10.10.10.1 scope=10
add dst-address=0.0.0.0/0 gateway=10.20.20.1 distance=2
ప్యాకెట్లు 10.10.10.1కి పంపబడతాయో లేదో మీరు తనిఖీ చేయవచ్చు:
చెక్ గేట్వేకి రికర్సివ్ రూటింగ్ గురించి ఏమీ తెలియదు మరియు 8.8.8.8 చిరునామాకు పింగ్లను పంపుతుంది, ఇది (ప్రధాన పట్టిక ఆధారంగా) గేట్వే 10.10.10.1 ద్వారా చేరుకోవచ్చు.
10.10.10.1 మరియు 8.8.8.8 మధ్య కమ్యూనికేషన్ కోల్పోయినట్లయితే, అప్పుడు మార్గం డిస్కనెక్ట్ చేయబడుతుంది, అయితే 8.8.8.8 నుండి ప్యాకెట్లు (టెస్ట్ పింగ్లతో సహా) 10.10.10.1 ద్వారా కొనసాగుతాయి:
ఈథర్1కి లింక్ పోయినట్లయితే, 8.8.8.8కి ముందు ప్యాకెట్లు రెండవ ప్రొవైడర్ ద్వారా వెళ్ళినప్పుడు అసహ్యకరమైన పరిస్థితి ఏర్పడుతుంది:
8.8.8.8 అందుబాటులో లేనప్పుడు స్క్రిప్ట్లను అమలు చేయడానికి మీరు నెట్వాచ్ని ఉపయోగిస్తుంటే ఇది సమస్య. లింక్ విచ్ఛిన్నమైతే, నెట్వాచ్ బ్యాకప్ కమ్యూనికేషన్ ఛానెల్ ద్వారా పని చేస్తుంది మరియు అంతా బాగానే ఉందని ఊహిస్తుంది. అదనపు ఫిల్టర్ మార్గాన్ని జోడించడం ద్వారా పరిష్కరించబడింది:
/ip route
add dst-address=8.8.8.8 gateway=10.20.20.1 distance=100 type=blackhole
హాబ్రేలో ఉంది
మరియు అవును, అటువంటి రిజర్వేషన్ను ఉపయోగిస్తున్నప్పుడు, 8.8.8.8 చిరునామా ప్రొవైడర్లలో ఒకరికి హార్డ్-కోడ్ చేయబడుతుంది, కాబట్టి దీన్ని dns సోర్స్గా ఎంచుకోవడం మంచిది కాదు.
వర్చువల్ రూటింగ్ మరియు ఫార్వార్డింగ్ (VRF) గురించి కొన్ని మాటలు
VRF సాంకేతికత అనేక వర్చువల్ రౌటర్లను ఒకే భౌతికంగా రూపొందించడానికి రూపొందించబడింది, ఈ సాంకేతికతను టెలికాం ఆపరేటర్లు (సాధారణంగా MPLSతో కలిపి) L3VPN సేవలను అతివ్యాప్తి చెందుతున్న సబ్నెట్ చిరునామాలతో క్లయింట్లకు అందించడానికి విస్తృతంగా ఉపయోగిస్తున్నారు:
కానీ Mikrotik లో VRF రౌటింగ్ పట్టికల ఆధారంగా నిర్వహించబడుతుంది మరియు అనేక ప్రతికూలతలు ఉన్నాయి, ఉదాహరణకు, రూటర్ యొక్క స్థానిక ip చిరునామాలు అన్ని VRF ల నుండి అందుబాటులో ఉన్నాయి, మీరు మరింత చదవగలరు
vrf కాన్ఫిగరేషన్ ఉదాహరణ:
/ip route vrf
add interfaces=ether1 routing-mark=vrf1
add interfaces=ether2 routing-mark=vrf2
/ip address
add address=192.168.100.1/24 interface=ether1 network=192.168.100.0
add address=192.168.200.1/24 interface=ether2 network=192.168.200.0
ఈథర్ 2కి కనెక్ట్ చేయబడిన పరికరం నుండి, పింగ్ మరొక vrf నుండి రూటర్ చిరునామాకు వెళుతుందని మేము చూస్తాము (మరియు ఇది ఒక సమస్య), అయితే పింగ్ ఇంటర్నెట్కు వెళ్లదు:
ఇంటర్నెట్ను యాక్సెస్ చేయడానికి, మీరు ప్రధాన పట్టికను యాక్సెస్ చేసే అదనపు మార్గాన్ని నమోదు చేయాలి (vrf పరిభాషలో, దీనిని రూట్ లీకింగ్ అంటారు):
/ip route
add distance=1 gateway=172.17.0.1@main routing-mark=vrf1
add distance=1 gateway=172.17.0.1%wlan1 routing-mark=vrf2
మార్గం లీక్ కావడానికి ఇక్కడ రెండు మార్గాలు ఉన్నాయి: రూటింగ్ టేబుల్ని ఉపయోగించడం: 172.17.0.1@main
మరియు ఇంటర్ఫేస్ పేరును ఉపయోగించడం: 172.17.0.1%wlan1
.
మరియు తిరిగి వచ్చే ట్రాఫిక్ కోసం మార్కింగ్ని సెటప్ చేయండి [PREROUTING|Mangle]
:
/ip firewall mangle
add chain=prerouting in-interface=ether1 action=mark-connection new-connection-mark=from-vrf1 passthrough=no
add chain=prerouting connection-mark=from-vrf1 routing-mark=!vrf1 action=mark-routing new-routing-mark=vrf1 passthrough=no
add chain=prerouting in-interface=ether2 action=mark-connection new-connection-mark=from-vrf2 passthrough=no
add chain=prerouting connection-mark=from-vrf2 routing-mark=!vrf1 action=mark-routing new-routing-mark=vrf2 passthrough=no
అదే చిరునామాతో సబ్నెట్లు
VRF మరియు నెట్మ్యాప్ని ఉపయోగించి ఒకే రూటర్లో ఒకే చిరునామాతో సబ్నెట్లకు యాక్సెస్ యొక్క సంస్థ:
ప్రాథమిక కాన్ఫిగరేషన్:
/ip route vrf
add interfaces=ether1 routing-mark=vrf1
add interfaces=ether2 routing-mark=vrf2
/ip address
add address=192.168.100.1/24 interface=ether1 network=192.168.100.0
add address=192.168.100.1/24 interface=ether2 network=192.168.100.0
add address=192.168.0.1/24 interface=ether3 network=192.168.0.0
ఫైర్వాల్ నియమాలు:
#Маркируем пакеты для отправки в правильную таблицу маршрутизации
/ip firewall mangle
add chain=prerouting dst-address=192.168.101.0/24 in-interface=ether3 action=mark-routing new-routing-mark=vrf1 passthrough=no
add chain=prerouting dst-address=192.168.102.0/24 in-interface=ether3 action=mark-routing new-routing-mark=vrf2 passthrough=no
#Средствами netmap заменяем адреса "эфимерных" подсетей на реальные подсети
/ip firewall nat
add chain=dstnat dst-address=192.168.101.0/24 in-interface=ether3 action=netmap to-addresses=192.168.100.0/24
add chain=dstnat dst-address=192.168.102.0/24 in-interface=ether3 action=netmap to-addresses=192.168.100.0/24
తిరిగి వచ్చే ట్రాఫిక్ కోసం రూటింగ్ నియమాలు:
#Указание имени интерфейса тоже может считаться route leaking, но по сути тут создается аналог connected маршрута
/ip route
add distance=1 dst-address=192.168.0.0/24 gateway=ether3 routing-mark=vrf1
add distance=1 dst-address=192.168.0.0/24 gateway=ether3 routing-mark=vrf2
ఇచ్చిన రూటింగ్ పట్టికకు dhcp ద్వారా స్వీకరించిన మార్గాలను జోడిస్తోంది
మీరు స్వయంచాలకంగా డైనమిక్ మార్గాన్ని (ఉదాహరణకు, dhcp క్లయింట్ నుండి) నిర్దిష్ట రౌటింగ్ పట్టికకు జోడించాల్సిన అవసరం ఉంటే VRF ఆసక్తికరంగా ఉంటుంది.
vrfకి ఇంటర్ఫేస్ జోడిస్తోంది:
/ip route vrf
add interface=ether1 routing-mark=over-isp1
పట్టిక ద్వారా ట్రాఫిక్ (అవుట్గోయింగ్ మరియు ట్రాన్సిట్) పంపడానికి నియమాలు ఓవర్-isp1:
/ip firewall mangle
add chain=output out-interface=!br-lan action=mark-routing new-routing-mark=over-isp1 passthrough=no
add chain=prerouting in-interface=br-lan dst-address-type=!local action=mark-routing new-routing-mark=over-isp1 passthrough=no
పని చేయడానికి అవుట్బౌండ్ రూటింగ్ కోసం అదనపు, నకిలీ మార్గం:
/interface bridge
add name=bare
/ip route
add dst-address=0.0.0.0/0 gateway=bare
ఈ మార్గం మాత్రమే అవసరమవుతుంది కాబట్టి స్థానిక అవుట్గోయింగ్ ప్యాకెట్లు ముందు రూటింగ్ నిర్ణయం (2) ద్వారా వెళ్లగలవు [OUTPUT|Mangle]
మరియు రౌటింగ్ లేబుల్ను పొందండి, ప్రధాన పట్టికలో 0.0.0.0/0 కంటే ముందు రూటర్లో ఇతర క్రియాశీల మార్గాలు ఉంటే, అది అవసరం లేదు.
గొలుసు connected-in
и dynamic-in
в [Routing] -> [Filters]
రూట్ ఫిల్టరింగ్ (ఇన్బౌండ్ మరియు అవుట్బౌండ్) అనేది సాధారణంగా డైనమిక్ రూటింగ్ ప్రోటోకాల్లతో కలిపి ఉపయోగించే సాధనం (అందువల్ల ప్యాకేజీని ఇన్స్టాల్ చేసిన తర్వాత మాత్రమే అందుబాటులో ఉంటుంది. రౌటింగ్), కానీ ఇన్కమింగ్ ఫిల్టర్లలో రెండు ఆసక్తికరమైన గొలుసులు ఉన్నాయి:
- కనెక్ట్-ఇన్ — కనెక్ట్ చేయబడిన మార్గాలను ఫిల్టర్ చేయడం
- డైనమిక్-ఇన్ - PPP మరియు DCHP ద్వారా అందుకున్న డైనమిక్ మార్గాలను ఫిల్టరింగ్ చేస్తుంది
వడపోత మిమ్మల్ని మార్గాలను విస్మరించడానికి మాత్రమే కాకుండా, అనేక ఎంపికలను మార్చడానికి కూడా అనుమతిస్తుంది: దూరం, రూటింగ్-మార్క్, వ్యాఖ్య, పరిధి, లక్ష్య పరిధి, ...
ఇది చాలా ఖచ్చితమైన సాధనం మరియు మీరు రూటింగ్ ఫిల్టర్లు లేకుండా ఏదైనా చేయగలిగితే (కానీ స్క్రిప్ట్లు కాదు), అప్పుడు రూటింగ్ ఫిల్టర్లను ఉపయోగించవద్దు, మిమ్మల్ని మరియు మీ తర్వాత రూటర్ను కాన్ఫిగర్ చేసేవారిని గందరగోళానికి గురిచేయవద్దు. డైనమిక్ రూటింగ్ సందర్భంలో, రూటింగ్ ఫిల్టర్లు చాలా తరచుగా మరియు మరింత ఉత్పాదకంగా ఉపయోగించబడుతుంది.
డైనమిక్ రూట్ల కోసం రూటింగ్ మార్క్ని సెట్ చేస్తోంది
హోమ్ రూటర్ నుండి ఒక ఉదాహరణ. నేను రెండు VPN కనెక్షన్లను కాన్ఫిగర్ చేసాను మరియు వాటిలోని ట్రాఫిక్ రూటింగ్ టేబుల్లకు అనుగుణంగా చుట్టబడి ఉండాలి. అదే సమయంలో, ఇంటర్ఫేస్ సక్రియం చేయబడినప్పుడు మార్గాలు స్వయంచాలకంగా సృష్టించబడాలని నేను కోరుకుంటున్నాను:
#При создании vpn подключений указываем создание default route и задаем дистанцию
/interface pptp-client
add connect-to=X.X.X.X add-default-route=yes default-route-distance=101 ...
add connect-to=Y.Y.Y.Y add-default-route=yes default-route-distance=100 ...
#Фильтрами отправляем маршруты в определенные таблицы маршрутизации на основе подсети назначения и дистанции
/routing filter
add chain=dynamic-in distance=100 prefix=0.0.0.0/0 action=passthrough set-routing-mark=over-vpn1
add chain=dynamic-in distance=101 prefix=0.0.0.0/0 action=passthrough set-routing-mark=over-vpn2
నాకు ఎందుకు తెలియదు, బహుశా బగ్, కానీ మీరు ppp ఇంటర్ఫేస్ కోసం vrfని సృష్టిస్తే, అప్పుడు 0.0.0.0/0 మార్గం ఇప్పటికీ ప్రధాన పట్టికలోకి వస్తుంది. లేకపోతే, ప్రతిదీ మరింత సులభం అవుతుంది.
కనెక్ట్ చేయబడిన మార్గాలను నిలిపివేస్తోంది
కొన్నిసార్లు ఇది అవసరం:
/route filter
add chain=connected-in prefix=192.168.100.0/24 action=reject
డీబగ్గింగ్ సాధనాలు
రూటింగ్ను డీబగ్గింగ్ చేయడానికి రూటర్ఓఎస్ అనేక సాధనాలను అందిస్తుంది:
[Tool]->[Tourch]
- ఇంటర్ఫేస్లలో ప్యాకెట్లను వీక్షించడానికి మిమ్మల్ని అనుమతిస్తుంది/ip route check
- ప్యాకెట్ ఏ గేట్వేకి పంపబడుతుందో చూడటానికి మిమ్మల్ని అనుమతిస్తుంది, రూటింగ్ టేబుల్లతో పని చేయదు/ping routing-table=<name>
и/tool traceroute routing-table=<name>
- పేర్కొన్న రూటింగ్ పట్టికను ఉపయోగించి పింగ్ మరియు ట్రేస్ చేయండిaction=log
в[IP]->[Firewall]
- ప్యాకెట్ ప్రవాహంతో పాటు ప్యాకెట్ యొక్క మార్గాన్ని గుర్తించడానికి మిమ్మల్ని అనుమతించే అద్భుతమైన సాధనం, ఈ చర్య అన్ని గొలుసులు మరియు పట్టికలలో అందుబాటులో ఉంటుంది
మూలం: www.habr.com