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½Ù³ÖÂŴεÃÊÖ¡£ |