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/)

spinservers:10Gbps带宽高配服务器月付89美元起,达拉斯/圣何塞机房

spinservers是一家主营国外服务器租用和Hybrid Dedicated等产品的商家,Majestic Hosting Solutions LLC旗下站点,商家数据中心包括美国达拉斯和圣何塞机房,机器一般10Gbps端口带宽,且硬件配置较高。目前,主机商针对达拉斯机房机器提供优惠码,最低款Dual E5-2630L v2+64G+1.6TB SSD月付89美元起,支持PayPal、支付宝等...

青果网络-618阿里云,腾讯云特惠优惠折上折!

官方网站:点击访问青果云官方网站活动方案:—————————–活动规则—————————1、选购活动产品并下单(先不要支付)2、联系我司在线客服修改价格或领取赠送时间3、确认价格已按活动政策修改正确后,支付订单,到此产品开设成功4、本活动产品可以升级,升级所需费用按产品原价计算若发生退款,按资源实际使用情况折算为产品原价再退还剩余余额! 美国洛杉矶CN2_GIACPU内存系统盘流量宽带i...

香港CN2云服务器 1核 2G 35元/月 妮妮云

妮妮云的来历妮妮云是 789 陈总 张总 三方共同投资建立的网站 本着“良心 便宜 稳定”的初衷 为小白用户避免被坑妮妮云的市场定位妮妮云主要代理市场稳定速度的云服务器产品,避免新手购买云服务器的时候众多商家不知道如何选择,妮妮云就帮你选择好了产品,无需承担购买风险,不用担心出现被跑路 被诈骗的情况。妮妮云的售后保证妮妮云退款 通过于合作商的友好协商,云服务器提供2天内全额退款到网站余额,超过2天...

29ff.com为你推荐
西部妈妈网我爸妈在云南做非法集资了,钱肯定交了很多,我不恨她们。他们叫我明天去看,让我用心的看,,说是什么...陈嘉垣电视剧《反黑》里面,雷太太女儿扮演者是谁?psbc.comwww.psbc.com怎样注册partnersonline国外外贸平台有哪些?dadi.tvapple TV 功能介绍www.diediao.com跪求鸭王2ename.com做自己的网站、在哪里买域名啊?酒仙琐事酒鬼变酒仙诗词红玉头冠和田红玉皮越厚越好还是皮越薄越显示红玉,更加好,开窗后见红肉了,是不是代表红玉了,vovokan请问大家对广州KensKan这个品牌理解吗??感觉这个品牌怎样?
虚拟主机管理系统 联通vps 漂亮qq空间 私人服务器 68.168.16.150 360抢票助手 淘宝双十一2018 搜狗抢票助手 丹弗 元旦促销 腾讯云分析 双十一秒杀 德隆中文网 lamp是什么意思 稳定空间 国外免费云空间 网络速度 .htaccess sonya 超低价 更多