Virtio పై pfSense: offload ఆఫ్ అయ్యే వరకు TCP నిలిచిపోతుంది
వర్చువలైజ్ చేసిన pfSense పింగ్కు సమాధానం ఇచ్చి ఆ తర్వాత పెద్ద TCP పై నిలిచిపోతుంది. NIC మార్చడం బదులు virtio చెక్సమ్ offload మార్గాన్ని ఆఫ్ చేసి ఖర్చును కొలవండి.
ఒక క్లయింట్ నివేదిస్తాడు: టన్నెల్ కనెక్ట్ అవుతుంది, పింగ్ సమాధానం ఇస్తుంది, లాగిన్ పేజీ లోడ్ అవుతుంది, ఆ తర్వాత ప్రతి ప్రయత్నంలో బదిలీ అదే స్థలంలో గడ్డకట్టుకుపోతుంది. ఈ నమూనా ఇప్పటికే చాలా చెబుతుంది: చేరుకోగలుగుట పనిచేస్తుంది, నిరంతర త్రూపుట్ పనిచేయదు. ఫైర్వాల్ తెరవడానికి ముందు VPN ఈ వైఫల్యంలో అసలు పాల్గొంటుందా అని కనుక్కోండి. అదే గేట్వే ద్వారా మార్గంలో టన్నెల్ లేకుండా పెద్ద TCP పంపండి; అది కూడా గడ్డకట్టితే OpenVPN ఎప్పుడూ పాల్గొనలేదు.
virtio నెట్వర్క్ కార్డ్ ఉపయోగించే pfSense అతిథికి సరిగ్గా ఆ ఆకారంలో విఫలం కావడానికి చాలా మంచి కారణం ఉంది.
చిన్న ప్యాకెట్లు దాటుతాయి, పెద్ద TCP వేలాడుతుంది
హ్యాండ్షేక్లు, DNS సమాధానాలు మరియు ICMP ప్రతిధ్వనులు చిన్నవి మరియు సాధారణంగా దాటుతాయి. నిరంతర బదిలీలు అతిథిని విభజించమని బలవంతం చేస్తాయి, అక్కడే దెబ్బతిన్న offload మార్గం బయటపడుతుంది. లోపం సమరూపంగా ఉండాల్సిన అవసరం లేదు: బయటకు వెళ్లే ట్రాఫిక్ శుభ్రంగా ఉండగా లోపలికి వచ్చేది పడిపోవచ్చు, లేదా దీనికి విరుద్ధంగా, కాబట్టి వినియోగదారు లాగిన్ అయి ఆ తర్వాత మొదటి పెద్ద స్పందన వద్ద ఆగిపోవచ్చు. అదే క్లయింట్ మరో గేట్వే ద్వారా పనిచేస్తుంది కాబట్టి, తప్పు కొత్త భాగంపై మోపబడుతుంది.
అందువల్ల టన్నెల్ లేకుండా గేట్వేను పరీక్షించండి. కొన్ని సెకన్లు నడవగలిగేంత పెద్ద LAN-నుండి-WAN డౌన్లోడ్ సరిపోతుంది, మరియు తర్వాతి పోలిక అర్థవంతంగా ఉండాలంటే ఏదైనా సెట్టింగ్ మార్పుకు ముందే దాన్ని చేయాలి.
offload నిజంగా ఏమి వాగ్దానం చేస్తుంది
virtio పారావర్చువల్: హోస్ట్ మరియు అతిథి పనిని పంచుకుంటాయి, హోస్ట్ చెక్సమ్ మరియు విభజన సామర్థ్యాలను ప్రకటిస్తుంది మరియు అతిథి ప్రారంభించినదాన్ని పూర్తి చేస్తుందని ఆశిస్తుంది. అతిథి స్టాక్ అలా చేయకపోతే, ఫ్రేమ్లు అసంపూర్ణ చెక్సమ్తో బయటకు వెళ్తాయి లేదా హోస్ట్ వాటిని విసిరేస్తుంది. ఎమ్యులేట్ చేసిన E1000 సరళమైన మరియు నెమ్మదైన నమూనాను అందిస్తుంది, అందులో pfSense లో ఒక్క మార్పు లేకుండా సమస్య మాయమవుతుంది. సామర్థ్యాల చర్చ ప్రతి పరికరానికి విడివిడిగా జరుగుతుంది, ఇదే ఒక అతిథి నెలల తరబడి నడుస్తుండగా దాని పునర్నిర్మిత కవల మొదటి రోజే విఫలమవడానికి వివరణ.
చర్చించిన సమితి హైపర్వైజర్ సంస్కరణ మరియు ఎంచుకున్న NIC నమూనాపై ఆధారపడి ఉంటుంది, మీరు దిగుమతి చేసిన కాన్ఫిగరేషన్పై మాత్రమే కాదు.
ఒక చెక్బాక్స్ virtio ను ఉంచుతుంది
pfSense ఇంటర్ఫేస్లో, సిస్టమ్ తర్వాత అధునాతన తర్వాత నెట్వర్కింగ్లో హార్డ్వేర్ చెక్సమ్ offload నిలిపివేయి అనే చెక్బాక్స్ ఉంది. దాన్ని ఎంచుకుంటే అతిథి సాఫ్ట్వేర్లో చెక్సమ్లను లెక్కిస్తుంది, ఇది pfSense వెనుక ఉన్న FreeBSD స్టాక్ పారావర్చువల్ పరికరం నుండి ఆశించే దానికి సరిపోతుంది. అదే పేజీలోని రెండు సంబంధిత ఎంపికలు హార్డ్వేర్ TCP విభజన offload మరియు హార్డ్వేర్ పెద్ద స్వీకరణ offload ను కవర్ చేస్తాయి. హ్యాండ్షేక్లు విజయవంతమై పెద్ద బదిలీలు కాకపోతే వాటి వైపు మళ్లండి.
మార్పు చేస్తున్నప్పుడు NIC ను virtio గానే ఉంచండి. E1000 కి మారితే VM జీవితకాలం మొత్తం ప్రతి ప్యాకెట్పై CPU కాలిపోతుంది మరియు హోస్ట్ను వారసత్వంగా పొందే ఎవరి నుండైనా కాన్ఫిగరేషన్ సమస్యను దాచుతుంది, ఇది కొంచెం నెమ్మదైన కానీ అంచనా వేయగల డేటా మార్గం కంటే చెడ్డ లావాదేవీ.
ఇప్పుడే అంగీకరించిన ఖర్చును కొలవండి
సాఫ్ట్వేర్ చెక్సమ్ పనిని అతిథిలోకి కదిలిస్తుంది, కాబట్టి ఏమీ ఖర్చు లేదని ఊహించడం బదులు తర్వాత త్రూపుట్ కొలవండి. చిన్న VM లో శిక్ష నిజమైనది, కానీ నిశ్శబ్ద నష్టానికి భిన్నంగా అది కనిపిస్తుంది మరియు స్థిరంగా ఉంటుంది. ముందు మరియు తర్వాత ఇంటర్ఫేస్ లోపాల కౌంటర్లు మరియు అతిథి కెర్నల్ లాగ్ పోల్చండి. వంతెనను ఫిల్టర్ చేసే హైపర్వైజర్ వేరే సాక్ష్యాలతో కూడిన ప్రత్యేక లోపం, ఏ offload జెండా దాన్ని నయం చేయదు.
ప్రతి పరీక్షలో ఒక విషయం మార్చి మెను మార్గం, మీరు ఎంచుకున్న బాక్స్ మరియు కొలిచిన సంఖ్యను రాయండి. తదుపరి పునర్నిర్మిత అతిథిని ఎదుర్కొనేవారికి మూడూ అవసరం.
BSD ఆధారిత ఇతర ఫైర్వాల్లు తమ సొంత ఇంటర్ఫేస్ సెట్టింగ్లలో సమాన నియంత్రణను అందిస్తాయి, కాబట్టి మెను మార్గం లేకపోయినా వాదన వర్తిస్తుంది.