Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
Google DNS½Ù³Ö±³ºóµÄ¼¼Êõ·ÖÎö
 
»ðÁú¹ûÈí¼þ    ·¢²¼ÓÚ 2014-06-12
 

0x00 ±³¾°

×î½üÊÀ½çÕæÊÇÔ½À´Ô½²»Ì«Æ½ÁË£¬ÓÈÆäÊǶÔÓÚ´ó²¿·ÖÆÕͨÈ˶øÑÔ¡£×òÌìÓÖ´«À´Ø¬ºÄ£¬¸ù¾ÝÍøÂç¼à²â¹«Ë¾BGPMon£¬GoogleµÄ¹«¿ªDNS·þÎñÆ÷ IP 8.8.8.8±»½Ù³Öµ½ÁËίÄÚÈðÀ­ºÍ°ÍÎ÷³¬¹ý22·ÖÖÓ¡£

Google DNS ·þÎñÆ÷ƽ¾ùÿÌì´¦Àí³¬¹ý1500ÒÚ¸ö²éѯ£¬ÔÚ±»½Ù³ÖµÄ22·ÖÖÓÀïÆðÂ뼸°ÙÍò¸ö²éѯ°üÀ¨½ðÈÚϵͳ£¬Õþ¸®ºÍ¸ö´óÉÌÒµÍøÕ¾µÄDNS²éѯÁ÷Á¿¶¼±»½Ù³Ö×ßÁË¡£

¸ù¾Ýש¼ÒÃǵÄÍÆ²â£¬Õâ´Î½Ù³Ö¿ÉÄÜÊǺڿÍÀûÓÃÁËBorder Gateway Protocol(BGP) ЭÒéÖÐÒ»¸öÖÚËùÖÜÖªµÄ©¶´À´ÊµÏֵģ¬BGPЭÒéΪISP¼¶µÄ·ÓÉЭÒ飬һ°ãÓÃÀ´Ð­µ÷´óÐÍISPÖ®¼äµÄ·ÓÉ×ßÏò¡£Õâ´Î½Ù³Ö¿ÉÒÔÈúڿͰÑÍøÉϵIJ¿·ÖÁ÷Á¿½Ù³Ö´Ó¶ø¾­¹ýËûÃÇËù¿ØÖƵÄ·ÓÉ¡£

ÕâÒѾ­²»ÊÇGoogle DNS·þÎñÆ÷±»µÚÒ»´Î½Ù³ÖÁË£¬ÔÚ2010ÄêÒ²Google DNSµÄÁ÷Á¿Ò²Ôø¾­±»½Ù³Öµ½ÁËÂÞÂíÄáÑǺͰµØÀû¾³ÄÚ¡£

BGP½Ù³Ö¹¥»÷ÊÇÒ»ÖÖ´ó¹æÄ£µÄÖмäÈ˹¥»÷£¬²¢ÇÒ½ÏÄÑ·¢ÏÖ£¬ÒòΪÊý¾Ý°üµÄ×îÖÕÄ¿µÄµØ²¢Ã»Óб䣬ֻÊÇÈÆÁËÏ·¶øÒÑ¡£

0x01 BGP½Ù³ÖÏê½â

±¾²¿·ÖÀ´Ô´ÓÚTony Kapela ºÍ Alex PilosovÔÚ2008Äê Defcon»áÒéÉϵÄÑݽ²¡£

ʲôÊÇBGP

Ê×ÏÈ»¥ÁªÍøÕûÌåÉÏÀ´ËµÊÇÒ»¸ö·Ö²¼Ê½µÄÍøÂ磬²¢Ã»ÓÐÕû¸öÍøÂçµÄÖÐÐÄ¡£µ«ÊÇÕû¸ö»¥ÁªÍøÊµ¼ÊÉÏÊÇÓɳɰÙÉÏǧ¸ö²»Í¬µÄISPµÄ×ÓÍøÂç×é³ÉµÄ¡£

ÕâЩ×ÓÍøÂ绥ÏàÁ¬½Ó£¬Í¨¹ýBGPЭÒ鏿Ëß¶Ô·½×Ô¼º×ÓÍøÂçÀï¶¼°üÀ¨ÄÄЩIPµØÖ·¶Î£¬×Ô¼ºµÄAS±àºÅ£¨AS Number£©ÒÔ¼°Ò»Ð©ÆäËûµÄÐÅÏ¢¡£

ÕâÀïÓÖÒª³¶µ½»¥ÁªÍøµÄIPµØÖ··ÖÅ䷽ʽ¡£»¥ÁªÍøµÄIPµØÖ··ÖÅäÊÇÖÐÐÄ»¯µÄ£¬ICANNÕâ¸ö»ú¹¹°ÑIPµØÖ·´ó¶Î·Ö¸øRegional Internet Registries£¨RIR£©£¬ÇøÓò»¥ÁªÍø×¢²á¹ÜÀí»ú¹¹¡£RIRÔÙ°ÑIPµØÖ·¶Îϸ·Öºó·Ö¸øISPÃÇ¡£

´ó²¿·ÖÇé¿öÏ£¬AS NumberºÍ·Ö¸ø¸ÃASʲôIP¶ÎÊÇûÓÐÈκιØÏµµÄ¡£

ÏÂÃæÎÊÌâÀ´ÁË£¬BGPЭÒéÀïËäÈ»ÓÐһЩ¼òµ¥µÄ°²È«ÈÏÖ¤µÄ²¿·Ö£¬µ«ÊǶÔÓÚÁ½¸öÒѾ­³É¹¦½¨Á¢BGPÁ¬½ÓµÄASÀ´Ëµ£¬»ù±¾»áÎÞÌõ¼þµÄÏàÐŶԷ½ASËù´«À´µÄÐÅÏ¢£¬°üÀ¨¶Ô·½Éù³ÆËùÓµÓеÄIPµØÖ··¶Î§¡£

¶ÔÓÚISP·ÖÅ䏸´ó¹«Ë¾¿Í»§µÄµØÖ·¶Î£¬ISPÍùÍù»á¶ÔBGP×öһЩÓÐÏ޵ĹýÂË¡£µ«ÊǶÔÓÚ´óÐÍISPÀ´Ëµ£¬ÒòΪ¶Ô·½ËùÓµÓеÄIPµØÖ·¶Î¿ÉÄܹýÓÚ·ÖÉ¢£¬ËùÒÔÒ»°ãÊǰ´×î´ó·¶Î§ÉèÖÃBGP prefix µØÖ·¹ýÂË¡£±ÈÈç¼ÙÉèISP AÓµÓеØÖ·¶Î20.1.0.0/16ºÍ20.200.0.0/16£¬ÄÇôISP B¿ÉÄÜ»áÉèÖùýÂ˶Է½´«À´µÄ20.0.0.0/8ÒÔÍâµÄ·ÓÉ¡£

µ±È»ÕâÖÖÇé¿ö±È½Ï¼«¶Ë£¬Ò»°ãISP·ÖÅäµ½µÄIPµØÖ·¶Î¶¼ÊÇÁ¬ÐøµÄ£¬µ«ÊÇ»ù±¾Ò²¶¼ÓпɲÙ×÷µÄ¿Õ¼ä£¬¿ÉÒÔ°ÑÊý°Ùµ½¼¸Íò¸ö²»ÊôÓÚ×Ô¼ºµÄIPºÏ·¨¼Óµ½×Ô¼ºµÄBGPÐÅÏ¢Àï¡£

¶àÊýISPÉõÖÁ¶¼Ã»ÓаÑ×Ô¼º±¾ÉíµÄIP¶Î¹ýÂ˵ô£¬Ò²¾ÍÊÇ˵Èç¹ûÆäËûASÉù³ÆÓµÓиÃISP×Ô¼ºµÄIP¶Î£¬Õâ¸öISPµÄBGP·ÓÉÒ²»áÏàÐÅ¡£

ΪÁ˽â¾öÕâ¸öÎÊÌ⣬ÓÐÈË·¢Ã÷ÁËÒ»¸ö½ÐInternet Routing Registry (IRR)µÄ¶«Î÷£¬Ï൱ÓÚÒ»¸ö¿ª·ÅʽµÄÊý¾Ý¿â£¬ÏñDNS ¸ù·þÎñÆ÷Ò»Ñù²ÉÓ÷ֲ¼Ê½¾µÏñ·þÎñÆ÷·ÅÔÚÊÀ½ç¸÷µØ¡£

ISP¿ÉÒÔÏòIRR×¢²á×Ô¼ºµÄIPµØÖ·¶ÎºÍ·ÓɲßÂÔ£¬ÆäËûISP¾Í¿ÉÒÔ²éѯIRR´Ó¶ø¶Ô×Ô¼ºµÄBGP·ÓÉÆ÷×ö¹ýÂË¡£ÕâÑù×öµÄÈ··ÀÖ¹ÁËһЩÓÉÓÚÎÞÒâ¶øµ¼ÖµÄ·Óɽٳ֡£

µ«ÊÇIRRÕâ¸ö¶«Î÷±¾ÉíÒ²ÊDz»¿¿Æ×µÄ¡£IRRÀï´æÁË´óÔ¼10ÍòÌõ¼Ç¼£¬Èç¹ûÈ«²¿¼ÓÔØ½øÂ·ÓÉÆ÷µÄ»°ÊǸö²»Ð¡µÄ¸ºµ£¡£ÁíÍâIRR»ù±¾Ã»È˹ܣ¬ÈκÎÈË¿ÉÒÔ¿ÉÒÔÍùÀïÃæ×¢²áÈκηÓɼǼ¡£

ËùÒÔÔڴ󲿷ÖISP¶¼ÎÞÌõ¼þÏàÐÅIRRµÄʱ´ú£¬IRRÒ²´øÀ´Á˲»ÉÙµÄÂé·³¡£

×î¼òµ¥µÄ·½Ê½¾ÍÊÇͨ¹ýWhoisÕÒµ½Ä¿±êIP¶ÎµÄ ¹ÜÀíÔ±ÓÊÏ䣬Èç¹û¸ÃÓÊÏä»òÕßÓÊÏäËùÔÚµÄÓòÃûÒѾ­¹ýÆÚ£¬ÄÇô¾Í×Ô¼º×¢²áÒ»¸ö£¬È»ºó¾Í¿ÉÒÔËæ±ãͨ¹ýÓʼþÏòIRRÐ޸ļǼÁË¡£

»òÕßÖ±½Óͨ¹ýBGP·ÓÉÏòISP·¢ËÍ£¬·´Õý´ó¼Ò¶¼²»care¡­¡­

ʵ¼Ê°¸Àý

ÏÖÔÚÎÒÃÇÀ´¿´Ò»¸öYoutube±»½Ù³ÖµÄ°¸Àý:

youtubeÓÐ5¸öÍø¶Î£¬ÆäÖÐÒ»¸öÊÇ

208.65.152.0/22

ÒòΪ¾õµÃYoutube²»ºÍг£¬ÓÚÊǰͻù˹̹Õþ¸®¾ö¶¨·âËøYoutube¡£

°Í»ù˹̹µçÐÅÔÚ·ÓÉÆ÷ÉϼÓÁËÌõstatic route°Ñ

208.65.153.0/24

Ūµ½ÁËnull0½Ó¿Ú£¨GFWÖ®ºÚ¶´Â·Óɴ󷨣©

°ÍµçÐŵŤ³ÌʦÊÖ¶¶°Ñstatic route redistributeµ½BGPÁË(Cisco·ÓÉÆ÷ÉÏͬ²½²»Í¬Ð­Òé·ÓɱíµÄ·½·¨)£¬Ò²¾ÍÊÇ˵°Ñ¸Ã·ÓÉÆ÷Éϵľ²Ì¬Â·ÓɱíÌí¼Óµ½BGPµÄ·ÓɱíÁË£¬¾²Ì¬Â·ÓÉͬ²½µ½ÆäËû·ÓɱíÀïµÄÓÅÏÈÖµ×î¸ß¡£

BGP°ÑÕâÌõ·ÓÉÏòÆäËûASµÄ·ÓÉÆ÷ͬ²½ÁË£¬×îÏÈÖÐǹµÄÊÇÏã¸ÛµÄµçѶӯ¿Æ£¨PCCW£©£¬È»ºó½Ó×ű»Öð½¥Í¬²½µ½ÁËÈ«ÊÀ½ç¡£

Õâʱ»¥ÁªÍøµÄ´ó²¿·ÖÓû§ÏëÉÏYoutubeµÄʱºòÊý¾Ý°ü¶¼Åܵ½°Í»ù˹̹ÁË£¬½á¹ûµ±È»ÊÇ´ò²»¿ªÁË£¨ÒòΪ½øÀ´¾Í±»Åªµ½null0ÁË£©¡£

Youtube·¢ÏÖºóÖØÐÂÓÃBGPÉùÃ÷Á˶ԸÃIP¶ÎºÍÆäËûIP¶ÎµÄËùÓÐȨ£¬³É¹¦Ë¢ÐÂÁ˲¿·ÖISP·ÓÉÆ÷µÄ·ÓÉ±í¡£

Á½Ð¡Ê±ºóPCCW¶Ï¿ªÁ˺Ͱͻù˹̹µçÐÅ·ÓÉÆ÷µÄBGPÁ¬½Ó¡£3-5·ÖÖÓºó£¬Ò»Çлָ´Õý³££¬³ýÁË¿à±ÆµÄ°Í»ù˹̹Óû§ÃÇ¡£

ÕâÒâζ×ÅÖ»Òª¿ØÖÆÁËÈκÎÒ»¸öISPµÄÈκÎÒ»¸öBGP·ÓÉ£¬¶¼½«¾ß±¸Ó°ÏìÈ«ÊÀ½ç»¥ÁªÍøµÄÄÜÁ¦¡£

BGP½Ù³ÖºÜÄѱ»·¢ÏÖ£¬Èç¹û²»ÊÇÒòΪ°Í»ù˹̹µçÐŰÑyoutubeµÄIP¶Îת·¢µ½ÁËnull0½Ó¿Ú£¬Êý¾Ý°ü¾ÍÖ»»áÔÚ°Í»ùË¹Ì¹ÍøÂçÀïÈÆÒ»È¦È»ºóÔÙµ½´ïYoutube¡£

Èç¹û¹¥»÷ÕߵķÓÉÆ÷¾ß±¸´Û¸ÄTTLµÄ¹¦ÄÜ£¬ÄÇô¼´Ê¹Í¨¹ýtracerouteÒ²ºÜÄÑ·¢ÏÖÊý¾Ý°ü±»½Ù³Ö£¬Î¨Ò»µÄ·½·¨¾ÍÊÇÏñÇ°ÃæËù˵µÄBGPmonÄÇÑù¼ì²âÈ«ÊÀ½ç·¶Î§ÄÚµÄAS·ÓɱíºÍBGPÐÅÏ¢¡£

BGP½Ù³ÖÀíÂÛ

µ±ÎÒÃÇ¿ØÖÆÁËISPµÄBGP·Óɺó£¬Ïñƽ³£Ò»Ñù·¢ËÍ·ÓÉÐÅÏ¢¡£Í¨¹ýÐÞ¸ÄAS PathµÈBGPÐÅÏ¢£¬ÈÃÆäËûASÈÏΪÄ㵽Ŀ±êÍøÂçµÄ¾àÀë×î¶Ì¡£

ΪÁËÈûØÀ´µÄÊý¾Ý°üÒ²¾­¹ýÄãµÄ·ÓÉÆ÷£¬ÄãÐèÒª¼Ç¼trace routeµ½Ä¿±êÍøÂçµÄʱºò¶¼»á¾­¹ýÄÄЩAS¡£

ʹÓÃAS-PATH prepend list°üÀ¨ÕâЩAS Number

ÉèÖÃstatic routeµ½traceroute³öÏֵĵÚÒ»¸öASN

Ïê½â£º

Ä¿±êIP¶Î

10.10.220.0/22

ÔÚAS 200ÖÐ

ASN 200ÏòÏàÁÚµÄAS 20ºÍ30·¢ËÍBGPͨ¸æ¡£

´ËʱΪÕý³£µÄ״̬¡£

¹¥»÷Õß¿ØÖÆÁËAS 100µÄBGP·ÓÉ¡£

AS 100µÄ·ÓɱíºÍBGP±íÏÔʾµ½´ï

10.10.200.0/22

ÐèÒª¾­¹ý AS 10.

ÓÚÊÇÎÒÃǰÑAS10£¬20ºÍ200¼ÓÈëÎÒÃǵÄAS PATH prepend list

ͨ¹ýroute-map°ÑÄ¿±êIP¶Î¼ÓÈëBGP·Óɱí

10.10.220.0/24 is announced with a route-map:

route-map hijacked permit 10

match ip address prefix-list jacked

set as-path prepend 10 20 200

È»ºóÔÚAS100µÄ·ÓÉÆ÷ÖмÓÈëstatic route£¬°ÑÁ÷ÏòÄ¿±êIP¶ÎµÄÊý¾Ý°üÖ¸ÏòAS10

ip route 10.10.220.0 255.255.255.0 4.3.2.1

Íê³Éºó¿ÉÒÔ¿´³ö£¬AS30 40 50 60µÄÊý¾Ý°üÈç¹ûÏëÒªµ½AS 200È¥£¬¶¼»áÏȾ­¹ýAS 100.

µ½ÁËÕâÀïÎÒÃÇÒѾ­¿ÉÒÔ·ÖÎö³ö£¬BGP½Ù³ÖµÄ±¾ÖÊÔٴλص½°²È«µÄ±¾ÖʼÈÊÇÐÅÈÎÕâÒ»µã£¬ÒòΪBGPÖ±½ÓÎÞÌõ¼þÐÅÈζԷ½AS·¢À´µÄ·ÓÉÐÅÏ¢£¬²¢ÇÒȱ·¦ÓÐЧµÄÈÏÖ¤ºÍ¹ýÂËÊֶΣ¬µ¼ÖÂBGP½Ù³ÖÂŴεÃÊÖ¡£

   
´Îä¯ÀÀ       
 
Ïà¹ØÎÄÕÂ

iOSÓ¦Óð²È«¿ª·¢£¬Äã²»ÖªµÀµÄÄÇЩÊÂÊõ
Web°²È«Ö®SQL×¢Èë¹¥»÷
ÒÆ¶¯APP°²È«ÔÚÉøÍ¸²âÊÔÖеÄÓ¦ÓÃ
´ÓGoogle±¸·Ý»¥ÁªÍø¿´¡°Êý¾Ý°²È«¡±
 
Ïà¹ØÎĵµ

web°²È«Éè¼ÆÓë·À»¤
»¥ÁªÍøº£Á¿ÄÚÈݰ²È«´¦Àí¼¼Êõ
ºÚ¿Í¹¥»÷Óë·À·¶¼¼Êõ
WEBºÚºÐ°²È«¼ì²â
 
Ïà¹Ø¿Î³Ì

WEBÍøÕ¾ÓëÓ¦Óð²È«Ô­ÀíÓëʵ¼ù
webÓ¦Óð²È«¼Ü¹¹Éè¼Æ
´´½¨°²È«µÄJ2EE WebÓ¦ÓôúÂë
ÐÅÏ¢°²È«ÎÊÌâÓë·À·¶


iOSÓ¦Óð²È«¿ª·¢
Web°²È«Ö®SQL×¢Èë¹¥»÷
APP°²È«ÔÚÉøÍ¸²âÊÔÖеÄÓ¦ÓÃ
³õ̽PHPµÄSQL×¢Èë¹¥»÷µÄ¼¼Êõ
´ÓGoogle±¸·Ý¿´¡°Êý¾Ý°²È«¡±


WEBÍøÕ¾ÓëÓ¦Óð²È«Ô­ÀíÓëʵ¼ù
webÓ¦Óð²È«¼Ü¹¹Éè¼Æ
´´½¨°²È«µÄJ2EE WebÓ¦ÓôúÂë
×¢²áÐÅÏ¢°²È«×¨ÒµÈËÔ±(CISP)
ÐÅÏ¢°²È«¹ÜÀí
ÐÅÏ¢°²È«ÎÊÌâÓë·À·¶


ÖйúÒøÐÐ ÐÅÏ¢°²È«¼¼Êõ¼°Éî¶È·ÀÓù
WebÓ¦Óð²È«¼Ü¹¹¡¢ÈëÇÖ¼ì²âÓë·À»¤
ij²ÆË°ÁìÓòÖªÃûIT·þÎñÉÌ Web°²È«²âÊÔ
ÆÕÈð¿Ë˹ web°²È«Éè¼Æ¡¢²âÊÔÓëÓÅ»¯
±±¾©ºÍÀûʱ ÐÔÄܺͰ²È«ÐÔ²âÊÔ
SUNÖйú¹¤³ÌÑо¿Ôº JSF¿ò¼Ü¡¢°²È«