area29ff.com
29ff.com 时间:2021-03-20 阅读:(
)
CopyrightIBMCorporation2001TrademarksWritingasimpleIPv6programPage1of11WritingasimpleIPv6programConfiguringanIPv6addressandportinganIPv4applicationtoIPv6SenthilSundaramSeptember01,2001ThisarticlediscussestheconceptsbehindasimpleIPv6program--specifically,howIPv6solvestheproblemsofaddressspaceandlargeroutingtables.
AprogrammerfamiliarwithIPv4willbeabletorecogniseanIPv6addressandconfigureoneforhismachine.
Thearticlealsocoverstunneling,mappedaddresses,andportingIPv4toIPv6applications,aswellasthelogicofenablinganIPv4clienttohandleIPv6addresses.
Intoday'snetworkingworld,IPv4isthefoundationofnetworking,butinthelast10years,questionshavecomeupdueto:FearofrunningoutofIPv4addressspaceassoonas2002FearofrunningoutofcapacityinglobalroutingtablesNetworkAddressTranslation(NAT)andClasslessInter-DomainRouting(CIDR)(seeRelevantconcepts)havebeenusedasstopgapmeasuresforthesesimplebutseriousproblems.
IPv6--alsocalledIPng(IPnewgeneration)--hasbeenviewedasthelong-termsolution.
ThefollowingenhancementstoIPv4havealsobeenplanned:SimplifiedheaderprocessingSupportforextendedoptionsEnhancementslikequality-of-servicecapabilities,authenticationandprivacycapabilities,flowcontrolcapabilities,andautoconfigurationThekeyrulebehindallthischangeisthatIPv6applicationsshouldcontinuetolivewithIPv4applications.
ThebottomlineisthatIPv6shouldsupportamixedIPv6andIPv4environment.
ThisarticlewillhelpyouquicklyunderstandtheconceptsbehindIPv6andwriteasimpleprograminit.
Let'sstartwithIPv6addressing.
developerWorksibm.
com/developerWorks/WritingasimpleIPv6programPage2of11IPv6addressingTypesofaddressesinIPv6:AnycastisthenewbabyInIPv6,therearethreetypesofaddresses--unicast,multicast,andanycast.
WehadunicastaddressesinIPv4,andmanysystemssupportmulticast,aswell.
AnycastisanewtypeofaddressdefinedbyIPv6.
1.
Unicast:ThisislikeanynormalIPaddressonasingleinterface(forexample,theIPv4address9.
185.
101.
1onen0).
2.
Multicast:Apacketsenttoamulticastaddressisdeliveredtoallinterfacesidentifiedbythataddress.
Thereisnobroadcastaddresstypesincethemulticasttypecantakecareofit.
3.
Anycast:Apacketsenttoananycastaddressisdeliveredtooneoftheinterfacesidentifiedbythataddress(the"nearest"one,accordingtotheroutingprotocols'measureofdistance).
Let'sconsiderasituationwhereanycastaddressescanbeused--connectingtoaserviceprovider'srouter.
Assumethattheserviceprovidercangiveyouasetofaddressestoconnectto,andyouchooseoneoftheseaddresses.
WithIPv6,theserviceprovidercangiveyouananycastaddress,whichyouwillusetoautomaticallyconnecttothe"nearest"address.
ThisisanewfeatureinIPv6andthereisstillalotofdebategoingonaboutitsimplementation.
HowIPv6addressesarewritten:WhatachangeTherearethreeconventionalformsforrepresentingIPv6addressesastextstrings:1.
Theprimaryform:Thepreferredformisx:x:x:x:x:x:x:x,wherethe"x"sarethehexadecimalvalueoftheeight16-bitpiecesoftheaddress.
Twoexamples:fe80:0:0:0:207:30ee:edcb:d05d1080:0:0:0:1:700:200B:417CThereareeighthexfieldsinthefirstaddress:1.
fe802.
03.
04.
05.
2076.
30ee7.
edcb8.
d05dInIPv6,wedonotwritetheleadingzerosinafield.
Thatis,thesecondfieldaboveisjustwrittenas"0"ratherthan"0000.
"Notethatthereare4hexdigitsineachfield.
Eachhexdigitis4bits(andcanrepresentahexvalueof0-F).
Thismeansthatthereare16bitsineachfield(4hexdigitsx4bitsperdigit).
ThetotalsizeofanIPv6addressis128bits(8hexfieldsx16bitsperfield).
2.
Adifferentrepresentationoftheaboveaddress:DuetosomemethodsofallocatingcertainstylesofIPv6addresses,itiscommonforaddressestocontainlongstringsofzerobits.
Inordertomakeiteasiertowriteaddressescontainingzerobits,aspecialsyntaxisavailabletocompressibm.
com/developerWorks/developerWorksWritingasimpleIPv6programPage3of11thezeros.
Theuseof::indicatesmultiplegroupsof16-bitsofzeros.
The::canonlyappearonceinanaddress,andcanalsobeusedtocompresstheleadingzerosinanaddress.
Forexample:FF01:0:0:0:0:0:0:101isamulticastaddressthatcanbewrittenasFF01::101.
0:0:0:0:0:0:0:1isaloopbackaddressthatcanbewrittenas::1.
3.
Fordualenvironments:AnalternativeformthatissometimesmoreconvenientwhendealingwithamixedenvironmentofIPv4andIPv6nodesisx:x:x:x:x:x:d.
d.
d.
d,wherethe"x"sarethehexadecimalvaluesofthesixhigh-order16-bitpiecesoftheaddress,andthe"d"sarethedecimalvaluesofthefourlow-order8-bitpiecesoftheaddress(standardIPv4representation)--thatis,thefirst96bitsarerepresentedas6-x16-bithexfieldsandthelast32bitsare4-x8-bitdecimaldigits.
Forexample:::9.
184.
201.
1::ffff:9.
184.
209.
2IPv6addressprefixTheIPv6addressprefixdenotesthenetworkpartofanaddressandisrepresentedbythenotationipv6-address/prefix-length.
Takethisexample:fe80::206:29ff:fedc:e06e/64Inthisinstance,fe80::206:29ff:fedc:e06eistheaddressand64istheprefixlength.
Thesetwotogethergiveustheaddressprefix.
Intheexample,specifying64meansthatwetakethefirst64bitsoftheabove128-bitaddresstoidentifythenetworkpartoftheaddress.
RelevantconceptsNetworkAddressTranslation(NAT):AnInternetstandardthatenablesalocal-areanetwork(LAN)touseonesetofIPaddressesforinternaltrafficandasecondsetofaddressesforexternaltraffic.
ANATboxlocatedwheretheLANmeetstheInternetmakesallnecessaryIPaddresstranslations.
NATservesthreemainpurposes:ProvidesatypeoffirewallbyhidinginternalIPaddressesEnablesacompanytousemoreinternalIPaddresses;sincethey'reonlyusedinternally,there'snopossibilityofconflictwithIPaddressesusedbyothercompaniesandorganizationsAllowsacompanytocombinemultipleISDNconnectionsintoasingleInternetconnection(SeeRFC1631,"Hide&SeekwithGateways&Translators"inRelatedtopics.
)ClasslessInter-DomainRouting(CIDR):ClasslessInter-DomainRouting.
AnewIPaddressingschemethatreplacestheoldersystembasedonclassesA,B,andC.
WithCIDR,asingleIPaddresscanbeusedtodesignatemanyuniqueIPaddresses.
ACIDRIPaddresslookslikeanormalIPaddressexceptthatitendswithaslashfollowedbyanumber,calledtheIPprefix.
Forexample:172.
200.
0.
0/16TheIPprefixspecifieshowmanyaddressesarecoveredbytheCIDRaddress,withlowernumberscoveringmoreaddresses.
AnIPprefixof/12,forexample,canbeusedtoaddressdeveloperWorksibm.
com/developerWorks/WritingasimpleIPv6programPage4of114,096formerClassCaddresses.
CIDRaddressesreducethesizeofroutingtablesandmakemoreIPaddressesavailablewithinorganizations.
(SeeRelatedtopicsforRFC1517,1518,1519,1520.
)Thisraisesseveralquestions:1.
Howdoestheaboverepresentationsolvethetwoprimaryproblemswearetryingtoaddress:ThefiniteamountofavailableaddressspaceLargeglobalroutingtables2.
HowisthenetworkidentifiedinanIPv4address3.
WhyshouldtheprefixlengthbeallowedtobespecifiedinanIPv6address4.
HowistheprefixspecifiedinanIPv4address5.
WhataretheproblemscausedbythisAndherearetheanswers:Addressspace:Regardingtheaddressspacequestion,RobertMHinden,oneofthekeyfiguresinIPv6efforts,explains:IPV6supportsaddressesthatarefourtimesthenumberofbitsasIPv4addresses(128vs.
32).
Thisis4billiontimes4billiontimes4billion(2^96)timesthesizeoftheIPv4addressspace(2^32).
Thisworksouttobe:340,282,366,920,938,463,463,374,607,431,768,211,456Thisisanextremelylargeaddressspace.
Inatheoreticalsensethisisapproximately665,570,793,348,866,943,898,599addressespersquaremeterofthesurfaceoftheplanetEarth(assumingtheearthsurfaceis511,263,971,197,990squaremeters).
Theclassenemy:Nowlet'stakeupthequestionsregardingaddressprefixinIPv4andIPv6.
ThedivisionofIPv4addressspaceintoClassA,B,C,andDnetworkshascausedsomeproblems.
InIPv4,thenetworkpartwasfixedbytheclassoftheaddress.
Let'sillustrateourpointwithanexample.
ClassAaddressescansupport16millionhostsoneachoftheir128networks(becauseinaclassAaddress,thehighest-orderbitissetto0;thenext7bitsareusedforthenetworkpart;andtheremaining24bitsareusedforthelocaladdress).
Now,ifanorganisationweregivenaClassAaddress,anditdidn'thave16millionhosts,thentheremainingaddressspacewouldgotowaste.
AlsonotethateveryonecannotbegivenaClassAaddressasthereareonly127.
CIDRhadtobeintroducedtosolvethisproblemandprolongthelifeofIP.
Thismeansthatthenetworkpartofanaddressshouldnotbefixed.
Thereisaclearneedforanorganisation-specificnetworksize.
Thismeansthatthenetworkpartofanaddressshouldnotbefixed.
ThisvariableprefixlengthisimplementedinIPv6byallowingtheusertospecifythenetworkbitsintheaddressprefix.
Forexample,intheaddressfe80::206:29ff:fedc:e06e/64-,thenumeral64denotesthenetworkpart,andthiscouldbechanged.
Herewehavetheoptionofchoosingthenetworkpart.
Thisisflexible,unlikeIPv4whereithasalwaysbeenfixed.
Routingtables:TheroutesintheInternetgrewintime.
Backbonerouterswereapproachingtheirlimitin1984.
IfCIDRwerenotintroducedtosolvetheproblemofspaceinglobalbackbonerouters,theywouldhavejustcometoahalt.
ibm.
com/developerWorks/developerWorksWritingasimpleIPv6programPage5of11CIDRtechnique:SohowdoesIPv6solvethisproblemThetechniqueforstoppingthisproblemistoallowforaddressprefixesthatfitspecificorganisationalneeds.
ThistechniquewasbasicallyintroducedinCIDR.
InIPv6theprefixorthenetworkpartisalsospecifiedbyauser-specifiednetworkprefix.
ThishelpstoaggregatealargenumberofIPaddressesandspecifyasingleroutefortheorganisation.
Ifanorganisationhasmanynetworks,theninthecaseofIPv4,manynetworkprefixesaretobespecifiedintheglobalroutingtable.
InthecaseofIPv6,wecansimplygiveonehigherlevelroutetorepresentthewholeorganisation,aswecanshrinkandexpandthenetworkprefixbyvaryingit.
Thishelpstheglobaltablestoremainsmall.
ThiskindofsetupdidnotexistinIPv4.
(FormoreonCIDR,refertoRelevantconcepts).
AutoconfigurationinIPv6:PlugandplayWhatisautoconfigurationThefirstthingoneshoulddoistosetupamachinewithanIPv6address.
ThereisaninterestingfeatureinIPv6calledstatelessautoconfigurationthat'sdefinedbyRFC2462(seeRelatedtopics).
ThisRFCstatesthatyourhostshouldbeabletogiveyouanautomatic,globallyuniqueIPv6address.
Forexample,InAIX,yousimplybootupyourmachineandtypeautoconf6-vfromthe#prompt,andyouwillseeyourmachineautomaticallydetectingthesubnetandassigningyouavalidIPngaddress.
IranifconfigtoseetheIPv6address.
Hereisapartialoutputofifconfig-aonmyAIXmachine:inet9.
184.
209.
3netmask0xffffff00broadcast9.
184.
209.
255inet6fe80::207:30ee:edcb:d05d/64Igottheinet6addresswhenIranautoconf-v6(inet6isdefinedonen0).
ThismachinenowhasbothanIPv6andIPv4onthesamephysicalethernetinterface.
HowisthisdoneInverysimpleterms,thelink-layeraddressisusedasabasetogettheIPv6addressandthehostandroutertocommunicate,sothatthehostcangetanideaaboutthesubnet.
(RefertotheRFCforamoredetaileddiscussion.
)HowaboutotheroperatingsystemsTheotherUNIXimplementationshavesimilarIPv6autconfigurationcommandslikeAIX.
Thereisalsoavarietyoffree-softimplementationsofIPv6(seeRelatedtopics).
CanImanuallyconfigureYes.
YoucanalsoconfigureanIPv6addressusingifconfig.
It'simportanttoplanyournetworktoassignthenetworkprefix.
TunnelingandmappedIPngaddresses:ThetransitionshouldbesmoothExampleofatransitionproblemConsiderthissituation.
WehaveanexistingIPv4environmentwithIPv4-onlyhostsandrouters.
Nowlet'ssayweaddafewIPv6routersandhoststoournetwork.
SomeofthesehostshavethecapabilitytohandlebothIPv6andIPv4addresses,andsomeofthemarepureIPv6orpureIPv4.
Ifwehavetowriteanapplicationthatrunsinthisenvironment,thentheapplication'sclientanddeveloperWorksibm.
com/developerWorks/WritingasimpleIPv6programPage6of11servershouldbeabletohandleallpossibleclient-serverpairs.
Thatis,aclientorservercanbepurelyIPv4,purelyIPv6,orbothIPv6-andIPv4-enabled.
(Foradetailedexplanation,readRFC2893:"Transitionmechanismsforhostsandrouters"--seeRelatedtopics.
)WhatisthetunnelingtechniqueAgain,let'stakeanexamplesituation.
WeneedtocarryanIPv6packetoveranIPv4network.
HowdoweproceedSimple--wejustencapsulatetheIPv6packetinanIPv4packetandsenditacrosstheIPv4network.
Thisiscalledtunneling.
Configuredtunneling:WeneedtoconfigurethehostthatisattheentrypointoftheIPv4networksothatitcanconverttheIPv6packetintoanIPv4packet.
Also,thenodethatistheexitpointoftheIPv4networkneedstobeconfiguredsothatitcanconvertthepacketbacktoanIPv6packet.
Thisiscalledconfiguredtunneling.
Automatictunneling:Ifahosthasthecapabilitytodothisconversiondynamicallythenit'scalledautomatictunneling.
SupportforAutomatictunnelingintheprotocol:ThenodesthatutilizethistechniqueareassignedspecialIPv6unicastaddresses.
TheseaddressescarryanIPv4addressinthelow-order32-bits.
ThistypeofaddressistermedanIPv4-compatibleIPv6addressandhasthefollowingformat:|80bits|16|32bits||0000.
0000|0000|IPV4ADDRESS|AsecondtypeofIPv6addressthatholdsanembeddedIPv4addressisalsodefined.
ThisaddressisusedtorepresenttheaddressesofIPv4-onlynodes(thosethatdonotsupportIPv6)asIPv6addresses.
Thistypeofaddressistermedan"IPv4-mappedIPv6address"andhastheformat:|80bits|16|32bits||0000.
0000|FFFF|IPV4ADDRESS|UsageofmappedaddressesIfyouarewritinganIPv6-enabledclient,you'refacedwiththisquestion:DoyousendoutanIPv6packetordoyousendoutanIPv4packetYouaregivennoguaranteeabouttheunderlyingnetwork.
ThenextmachineyoucontacttogetthisconnectioncanbeanIPv6machine,anIPv4machine,oradualhost.
Let'sassumethattheapplicationsresponsibleforroutingtheconnectionsarecapableofknowingwhetherthenextmachineisanIPv6machineoranIPv4machine.
Inthiscase,itwouldbereallyhelpfulifwecouldhaveIPv6addressesthatcancontainIPv4addressesinsidethem.
Itwouldbegoodtohaveamechanism(theffff.
inmappedv4addresses)totellusiftheaddressisreferringtoapureIPv4node;thiswouldhelpusmakeappropriatedecisionsastowhichtypeofpacketistobesent.
Ourdiscussioninthefinalsectionshouldmakethisclearer.
ibm.
com/developerWorks/developerWorksWritingasimpleIPv6programPage7of11PortingIPv4applicationstoIPv6HerearesomethingstoconsiderwhenportinganIPv4applicationtoIPv6:Thesockaddr_in6structureandthein6_addrstructure,whichcanhold128bitaddresses,havebeendefined.
CheckifyouareusingtherelevantIPv6structure.
INADDR_ANYandINADDR_LOOPBACKmustbemodifiedtoin6addr_anyorin6addr_loopbackforassignments.
TheIN6ADDR_ANY_INITorIN6ADDR_LOOPBACK_INITmacroscanbehelpful.
UseAF_INET6insteadofAF_INET.
NotetherearestructuresandprogramsthatwillworkforIPv6andIPv4.
Oneofthelinkspointstoportingexamplesandthislinkcanbereferredto(see"MovingtoIPv6"inRelatedtopics).
NotethatnochangeinthesyntaxisnecessarywhenusingcertainfunctionsforIPv6.
Theonlydifferencewhenusingthesefunctionsisthatyoumustcastsockaddr_in6tostructsockaddr*.
ThefollowingmacrosandfunctionsareusedtowriteIPv6-enabledapplications:TheIN6_IS_ADDR_V4MAPPEDcanbeusedtodeterminewhetheranIPv6addressisanIPv4-mappedaddress.
gethostbynameretrievesanetworkhostentryviaitsnameandaddressfamily.
getaddrinforeturnsaddressinformationrelatedtoaspecifiedservicelocation.
getnameinforeturnsthetextstringsassociatedwiththesuppliedIPaddressandportnumber.
inet_ptonconvertsthespecifiedaddressintextformtoitsbinaryequivalent.
inet_ntopconvertsthespecifiedbinaryaddressintoatextequivalentthat'ssuitableforpresentation.
getaddrinfoandgetnameinfocanbothbeusedtoretrieveinformationrelatedtoIPv4andIPv6addresses.
inet_ptonandinet_ntopcanbothconvertIPv4andIPv6addresses.
Thismeansthatin"IPv6-ready"applications,youdonotneedtouseeitherinet_addrorinet_ntoa.
ThefollowingfunctionsdonotrequireachangeinsyntaxwhenusedforIPv6:bind,connect,sendmsg,sendto,accept,recvfrom,recvmsg,getpeername,andgetsockname,althoughthecodeforthesefunctionshasbeenmodified.
WritingasimpleIPv6clientLet'snowtakealookatthelogicbehindwritinganIPv6-enabledclient.
Ibelieveweareequippedwiththebasics.
WeknowaboutIPv6addresses.
Wewillbeabletorecognisethemifweseethemindifferentrepresentations.
WewillbeabletoautoconfigureanIPv6addressonourmachineusingautoconf.
Wealsoknowaboutthemappedaddresstransitionmechanismandhaveanideaofthefunctionstouse.
ConsiderthefollowingIPv4client:#include#include#include#include#include.
.
.
developerWorksibm.
com/developerWorks/WritingasimpleIPv6programPage8of11main(argc,argv)/*clientside*/intargc;char*argv[];{structsockaddr_inserver;structservent*sp;structhostent*hp;ints;.
.
.
sp=getservbyname("login","tcp");if(sp==NULL){fprintf(stderr,"rlogin:tcp/login:unknownservice\n");exit(1);}hp=gethostbyname(argv[1]);if(hp==NULL){fprintf(stderr,"rlogin:%s:unknownhost\n",argv[1]);exit(2);}memset((char*)&server,0,sizeof(server));memcpy((char*)&server.
sin_addr,hp->h_addr,hp->h_length);server.
sin_len=sizeof(server);server.
sin_family=hp->h_addrtype;server.
sin_port=sp->s_port;s=socket(AF_INET,SOCK_STREAM,0);if(s0){//noteinet_ptonwilltakecareofsettingtheaddress.
.
.
.
.
ip6.
sin6_family=AF_INET6;ip6.
sin6_len=sizeof(structsockaddr_in6);.
.
.
.
.
developerWorksibm.
com/developerWorks/WritingasimpleIPv6programPage10of11}else{//nowitsnotav6addressorav4addresssoitshouldbehostname//doav6lookup,notethatav6lookupwilllookforav6addressifnot//presentitcanpickupav4address//resinitisdefinedinresolv.
hres_init();_res.
options|=RES_USE_INET6;hptr=gethostbyname(name);.
.
.
.
.
//checkhptr->h_addrtypeifitsAF_INET6youcancopytheaddressdirectly//ifnotyouneedtomapit.
.
.
.
.
.
.
.
.
.
.
if(connect(sd,&ip6,sizeof(ip6<0){//connectfailure.
.
.
.
}else{//continuewiththeprogram.
}SummaryoftheabovelogicTosummarizethelogic,wechecktoseeifwegotadottedIPv4addresstohandle.
Ifso,wegoaheadandmapitandfillinanIPv6structure,tobeusedbytheconnectcalllater.
Ifit'sanIPv6address,wecopyitdirectlytotheIPv6structure.
Ifit'sahostname,wetryanddoanIPv6lookup.
WecangetanIPv4oranIPv6address.
Weknowthisfromthefamilyfield.
Accordingly,weeithermapitorcopyit,thendoasingleconnectcallregardlessofwhetherit'sanIPv4oranIPv6address,andproceedwithourprogram.
ConclusionWehavelookedonlyattheconceptsweneedtowritetheaboveprogram.
Therearemanymoreinterestingconceptsthatwillsoonbecomepartofeverydaylife.
TherearecontroversiesandconstructivedebatesaboutthingslikeDNSforIPv6andstatefulautoconfigurationforIPv6(DHCP).
Thesetopics,alongwithothers,suchasimplementationofotherlayers,howroutingwillbedone,andhowautoconfigurationwillbeimplemented,willmakeforinterestingdiscussion.
IhopetoseeyousooninamoreexcitingIPv6world!
ibm.
com/developerWorks/developerWorksWritingasimpleIPv6programPage11of11RelatedtopicsIPNextGenerationOverview,byRobertMHinden,givesabriefoverviewofalltheIPngconcepts.
KameprojectisajointeffortofsevencompaniesinJapanthatprovideafreeIPv6andIPsec(forbothIPv4andIPv6)stackforBSDvariants.
6boneisanIPv6testbedtoassistintheevolutionanddeploymentofIPv6.
IPv6draftsandRFCscanbefoundinIPngCurrentSpecifications.
Theygivealltherequireddetailsinaclearandlogicalorder.
StatelessautoconfigurationisdefinedinRFC2462:IPv6StatelessAddressAutoconfiguration.
RFC2893,TransitionMechanismsforIPv6HostsandRouters,specifiesIPv4compatibilitymechanismsthatcanbeimplementedbyIPv6hostsandrouters.
AdditionalinformationonNATcanbefoundinRFC1631,TheIPNetworkAddressTranslator(NAT).
Formorein-depthoverviewsofCIDR,readRFC1517,RFC1518,RFC1519,andRFC1520.
FindouthowIPv6forOS/390providesanimplementationofIPv4andIPv6forOS/390.
Planningforgrowth,fromIBM'sHighVolumeWebSiteTeam,canshowyouhowyourWebsitecansatisfyfuturedemandsandevaluatepotentialworkloadandinfrastructurechanges.
IBM'sPatternsfore-businesssitefeaturesanumberofreusableassetsthatcanhelpspeedtheprocessofdevelopingapplications.
BrowsemoreWebarchitectureresourcesondeveloperWorks.
CopyrightIBMCorporation2001(www.
ibm.
com/legal/copytrade.
shtml)Trademarks(www.
ibm.
com/developerworks/ibm/trademarks/)
licloud怎么样?licloud目前提供香港cmi服务器及香港CN2+BGP服务器/E3-1230v2/16GB内存/240GB SSD硬盘/不限流量/30Mbps带宽,$39.99/月。licloud 成立於2021年,是香港LiCloud Limited(CR No.3013909)旗下的品牌,主要提供香港kvm vps,分为精简网络和高级网络A、高级网络B,现在精简网络和高级网络A。现在...
JUSTG,这个主机商第二个接触到,之前是有介绍到有提供俄罗斯CN2 GIA VPS主机活动的,商家成立时间不久看信息是2020年,公司隶属于一家叫AFRICA CLOUD LIMITED的公司,提供的产品为基于KVM架构VPS主机,数据中心在非洲(南非)、俄罗斯(莫斯科),国内访问双向CN2,线路质量不错。有很多服务商实际上都是国人背景的,有的用英文、繁体搭建的冒充老外,这个服务商不清楚是不是真...
无忧云怎么样?无忧云服务器好不好?无忧云值不值得购买?无忧云是一家成立于2017年的老牌商家旗下的服务器销售品牌,现由深圳市云上无忧网络科技有限公司运营,是正规持证IDC/ISP/IRCS商家,主要销售国内、中国香港、国外服务器产品,线路有腾讯云国外线路、自营香港CN2线路等,都是中国大陆直连线路,非常适合免备案建站业务需求和各种负载较高的项目,同时国内服务器也有多个BGP以及高防节点...
29ff.com为你推荐
工信部约谈电信工信部投诉电信 电信会被罚款吗www.jjwxc.net晋江文学网 的网址是什么?rawtools闪迪32Gsd卡,无法格式化,显示只有30M,并且是raw格式。如何恢复?同ip站点查询如何查看几个站是不是同IPwww.522av.com在白虎网站bhwz.com看电影要安装什么播放器?同一服务器网站同一服务器上可以存放多个网站吗?m.2828dy.combabady为啥打不开了,大家帮我提供几个看电影的网址125xx.com115xx.com是什么意思avtt4.comCOM1/COM3/COM4是什么意思??/杨丽晓博客杨丽晓今年高考了吗?
com域名空间 php网站空间 抗投诉vps主机 cdn服务器 rackspace iisphpmysql 外国域名 网站保姆 lighttpd 镇江联通宽带 个人空间申请 国外代理服务器地址 paypal注册教程 linux使用教程 西安服务器托管 广州虚拟主机 江苏徐州移动 免备案cdn加速 apnic 七十九刀 更多