31.11 IPv6

ԭʼ×÷ÕߣºAaron Kaplan. ÖØÐÂ×éÖ¯ºÍÔö¼Ó£ºTom Rhodes. ÖÐÎÄ·­Ò룺ÕŠѩƽ. Extended by Brad Davis.

¡¡¡¡IPv6 (Ò²±»³Æ×÷ IPng ¡°ÏÂÒ»´ú IP¡±) ÊÇÖÚËùÖÜÖªµÄ IP ЭÒé (Ò²½Ð IPv4) µÄа汾¡£ ºÍÆäËûÏÖ´úµÄ *BSD ϵͳһÑù£¬ FreeBSD °üº¬ÁË KAME µÄ IPv6 ²Î¿¼ÊµÏÖ¡£ Òò´Ë£¬ ÄúµÄ FreeBSD ϵͳ°üº¬Á˳¢ÊÔ IPv6 ËùÐèÒªµÄËùÓй¤¾ß¡£ ÕâÒ»½ÚÖ÷Òª¼¯ÖÐÌÖÂÛÈçºÎÅäÖúÍʹÓà IPv6¡£

¡¡¡¡ÔÚ 1990 Äê´úÔçÆÚ£¬ ÈËÃÇ¿ªÊ¼µ£ÐÄ¿ÉÓÃµÄ IPv4 µØÖ·¿Õ¼äÔÚ²»¶ÏµØËõС¡£ Ëæ×Å Internet µÄ±¬Õ¨Ê½·¢Õ¹£¬ Ö÷ÒªµÄÁ½¸öµ£ÐÄÊÇ£º

¡¡¡¡IPv6 ½â¾öÕâЩºÍÆäËüÐí¶àµÄÎÊÌ⣺

¡¡¡¡IPv6 »¹ÓÐÆäËüÐí¶àÓÐÓõŦÄÜ£¬È磺

¡¡¡¡Òª¸ü¶àÐÅÏ¢£¬Çë²é¿´£º

31.11.1 ¹ØÓÚ IPv6 µØÖ·µÄ±³¾°ÖªÊ¶

¡¡¡¡Óм¸ÖÖ²»Í¬ÀàÐ굀 IPv6 µØÖ·£ºUnicast£¬Anycast ºÍ Multicast¡£

¡¡¡¡Unicast µØÖ·ÊÇΪÈËÃÇËùÊìÖªµÄµØÖ·¡£Ò»¸ö±»·¢Ë͵½ unicast µØÖ·µÄ°üʵ¼ÊÉϻᵽ´ïÊôÓÚÕâ¸öµØÖ·µÄ½Ó¿Ú¡£

¡¡¡¡Anycast µØÖ·ÓïÒåÉÏÓë unicast µØÖ·Ã»Óвî±ð£¬ Ö»ÊÇËüÃÇÇ¿µ÷Ò»×é½Ó¿Ú¡£Ö¸¶¨Îª anycast µØÖ·µÄ°ü»áµ½´ï×î½üµÄ (ÒÔ·ÓÉΪµ¥Î») ½Ó¿Ú¡£Anycast µØÖ·¿ÉÄÜÖ»±»Â·ÓÉÆ÷ʹÓá£

¡¡¡¡Multicast µØÖ·±êʶһ×é½Ó¿Ú¡£Ö¸¶¨Îª multicast µØÖ·µÄ°ü»áµ½´ïÊôÓÚ multicast ×éµÄËùÓеĽӿڡ£

×¢Òâ: IPv4 ¹ã²¥µØÖ· (ͨ³£Îª xxx.xxx.xxx.255) ÓÉ IPv6 µÄ multicast µØÖ·À´±íʾ¡£

±í 31-2. ±£ÁôµÄ IPv6 µØÖ·

IPv6 µØÖ· Ô¤¶¨³¤¶È (bits) ÃèÊö ±¸×¢
:: 128 bits δָ¶¨ ÀàËÆ IPv4 ÖÐµÄ 0.0.0.0
::1 128 bits »·»ØµØÖ· ÀàËÆ IPv4 ÖÐµÄ 127.0.0.1
::00:xx:xx:xx:xx 96 bits ǶÈëµÄ IPv4 µÍ 32 bits ÊÇ IPv4 µØÖ·¡£ÕâÒ²³Æ×÷ ¡°IPv4 ¼æÈÝ IPv6 µØÖ·¡±
::ff:xx:xx:xx:xx 96 bits IPv4 Ó°ÉäµÄ IPv6 µØÖ· µÍµÄ 32 bits ÊÇ IPv4 µØÖ·¡£ ÓÃÓÚÄÇЩ²»Ö§³Ö IPv6 µÄÖ÷»ú¡£
fe80:: - feb:: 10 bits Á´Â·»·»Ø ÀàËÆ IPv4 µÄ»·»ØµØÖ·¡£
fec0:: - fef:: 10 bits Õ¾µã»·»Ø  
ff:: 8 bits ¶à²¥  
001 (base 2) 3 bits È«Çò¶à²¥ ËùÓеÄÈ«Çò¶à²¥µØÖ·¶¼Ö¸¶¨µ½Õâ¸öµØÖ·³ØÖС£Ç°Èý¸ö¶þ½øÖÆÎ»ÊÇ ¡°001¡±¡£

31.11.2 IPv6 µØÖ·µÄ¶Á·¨

¡¡¡¡¹æ·¶ÐÎʽ±»ÃèÊöΪ£ºx:x:x:x:x:x:x:x£¬ ÿһ¸ö¡°x¡±¾ÍÊÇÒ»¸ö 16 λµÄ 16 ½øÖÆÖµ¡£µ±È»£¬ ÿ¸öÊ®Áù½øÖÆ¿éÒÔÈý¸ö¡°0¡±¿ªÊ¼Í·µÄÒ²¿ÉÒÔÊ¡ÂÔ¡£Èç FEBC:A574:382B:23C1:AA49:4592:4EFE:9982

¡¡¡¡Í¨³£Ò»¸öµØÖ·»áÓкܳ¤µÄ×Ó´®È«²¿ÎªÁ㣬 Òò´Ëÿ¸öµØÖ·µÄÕâÖÖ×Ó´®³£±»¼òдΪ¡°::¡±¡£ ÀýÈ磺fe80::1 ¶ÔÓ¦µÄ¹æ·¶ÐÎʽÊÇ fe80:0000:0000:0000:0000:0000:0000:0001¡£

¡¡¡¡µÚÈýÖÖÐÎʽÊÇÒÔÖÚËùÖÜÖªµÄÓõ㡰.¡±×÷Ϊ·Ö¸ô·ûµÄÊ®½øÖÆ IPv4 ÐÎʽ£¬Ð´³ö×îºó 32 Bit µÄ²¿·Ö¡£ÀýÈç 2002::10.0.0.1 ¶ÔÓ¦µÄÊ®½øÖÆÕý¹æ±í´ï·½Ê½ÊÇ 2002:0000:0000:0000:0000:0000:0a00:0001 ËüÒ²Ï൱ÓÚд³É 2002::a00:1.

¡¡¡¡µ½ÏÖÔÚ£¬¶ÁÕßÓ¦¸ÃÄÜÀí½âÏÂÃæµÄÄÚÈÝÁË£º

# ifconfig
rl0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
         inet 10.0.0.10 netmask 0xffffff00 broadcast 10.0.0.255
         inet6 fe80::200:21ff:fe03:8e1%rl0 prefixlen 64 scopeid 0x1
         ether 00:00:21:03:08:e1
         media: Ethernet autoselect (100baseTX )
         status: active

¡¡¡¡fe80::200:21ff:fe03:8e1%rl0 ÊÇÒ»¸ö×Ô¶¯ÅäÖõÄÁ´Â·»·»ØµØÖ·¡£Ëü×÷Ϊ×Ô¶¯ÅäÖõÄÒ»²¿·ÖÓÉ MAC Éú³É¡£

¡¡¡¡¹ØÓÚ IPv6 µØÖ·µÄ½á¹¹µÄ¸ü¶àÐÅÏ¢£¬Çë²Î¿´ RFC3513¡£

31.11.3 ½øÐÐÁ¬½Ó

¡¡¡¡Ä¿Ç°£¬ÓÐËÄÖÖ·½Ê½¿ÉÒÔÁ¬½Óµ½ÆäËü IPv6 Ö÷»úºÍÍøÂ磺

31.11.4 IPv6 ÊÀ½çÀïµÄ DNS

¡¡¡¡¶ÔÓÚ IPv6 ÓÐÁ½ÖÖÀàÐ굀 DNS ¼Ç¼£ºIETF ÒѾ­Ðû²¼ A6 Êǹýʱ±ê×¼£»ÏÖÐеıê×¼ÊÇ AAAA ¼Ç¼¡£

¡¡¡¡Ê¹ÓÃAAAA¼Ç¼ÊǺܼòµ¥µÄ¡£Í¨¹ýÔö¼ÓÏÂÃæÄÚÈÝ£¬ ¸øÄúµÄÖ÷»ú·ÖÅäÖÃÄú¸Õ²Å½ÓÊÕµ½µÄÐ嵀 IPv6 µØÖ·£º

MYHOSTNAME           AAAA    MYIPv6ADDR

¡¡¡¡µ½ÄúµÄÖ÷Óò DNS ÎļþÀ¾Í¿ÉÒÔÍê³É¡£ÒªÊÇÄú×ÔÒÑûÓÐ DNS Óò·þÎñ£¬Äú¿ÉÒÔѯÎÊÄúµÄ DNS ÌṩÉÌ¡£Ä¿Ç°µÄ bind °æ±¾ (version 8.3 Óë 9) ºÍ dns/djbdns(º¬IPv6²¹¶¡) Ö§³Ö AAAA ¼Ç¼¡£

31.11.5 ÔÚ /etc/rc.conf ÖнøÐÐËùÐèµÄÐÞ¸Ä

31.11.5.1 IPv6 ¿Í»§»úÉèÖÃ

¡¡¡¡ÕâЩÉèÖý«°ïÖúÄú°Ñһ̨Äú LAN ÉϵĻúÆ÷ÅäÖÃΪһ̨¿Í»§»ú£¬ ¶ø²»ÊÇ·ÓÉÆ÷¡£ ÒªÈà rtsol(8) ÔÚÆô¶¯Ê±×Ô¶¯ÅäÖÃÄúµÄÍø¿¨£¬ Ö»ÐèÌí¼Ó£º

ipv6_enable="YES"

¡¡¡¡Òª×Ô¶¯µØ¾²Ì¬Ö¸¶¨ IP µØÖ·£¬ ÀýÈç 2001:471:1f11:251:290:27ff:fee0:2093£¬ µ½ fxp0 ÉÏ£¬ ÔòдÉÏ£º

ipv6_ifconfig_fxp0="2001:471:1f11:251:290:27ff:fee0:2093"

¡¡¡¡ÒªÖ¸¶¨ 2001:471:1f11:251::1 ×÷ΪĬÈÏ·ÓÉ£¬ ÐèÒªÔÚ /etc/rc.conf ÖмÓÈ룺

ipv6_defaultrouter="2001:471:1f11:251::1"

31.11.5.2 IPv6 ·ÓÉÆ÷/Íø¹ØÅäÖÃ

¡¡¡¡Õ⽫°ïÖúÄú´ÓËíµÀÌṩÉÌÄÇÀïÈ¡µÃ±ØÒªµÄ×ÊÁÏ£¬ ²¢½«ÕâЩ×ÊÁÏת»¯ÎªÔÚÖØÆôʱÄܹ»±£³ÖסµÄÉèÖᣠҪÔÚÆô¶¯Ê±»Ö¸´ÄúµÄËíµÀ£¬ ÐèÒªÔÚ /etc/rc.conf ÖÐÔö¼Ó£º

¡¡¡¡ÁгöÒªÅäÖõÄͨÓÃËíµÀ½Ó¿Ú£¬ ÀýÈç gif0£º

gif_interfaces="gif0"

¡¡¡¡ÅäÖøýӿÚʹÓñ¾µØ¶ËµØÖ· MY_IPv4_ADDR ºÍÔ¶³Ì¶ËµØÖ· REMOTE_IPv4_ADDR£º

gifconfig_gif0="MY_IPv4_ADDR REMOTE_IPv4_ADDR"

¡¡¡¡Ó¦Ó÷ÖÅ䏸ÄúÓÃÓÚ IPv6 ËíµÀÔ¶¶ËµÄ IPv6 µØÖ·£¬ ÐèÒªÔö¼Ó£º

ipv6_ifconfig_gif0="MY_ASSIGNED_IPv6_TUNNEL_ENDPOINT_ADDR"

¡¡¡¡´ËºóÊ®ÉèÖà IPv6 µÄĬÈÏ·ÓÉ¡£ ÕâÊÇ IPv6 ËíµÀµÄÁíÒ»¶Ë£º

ipv6_defaultrouter="MY_IPv6_REMOTE_TUNNEL_ENDPOINT_ADDR"

31.11.5.3 IPv6 ËíµÀÅäÖÃ

¡¡¡¡Èç¹û·þÎñÆ÷½«ÄúµÄÍøÂçͨ¹ý IPv6 ·Óɵ½ÊÀ½çµÄÆäËû½ÇÂ䣬 ÄúÐèÒªÔÚ /etc/rc.conf ÖÐÌí¼ÓÏÂÃæµÄÅäÖãº

ipv6_gateway_enable="YES"

31.11.6 ·ÓÉÐû¸æºÍÖ÷»ú×Ô¶¯ÅäÖÃ

¡¡¡¡Õâ½Ú½«°ïÖúÄúÅäÖà rtadvd(8) À´ÐûʾĬÈ쵀 IPv6 ·ÓÉ¡£

¡¡¡¡ÒªÆôÓà rtadvd(8) ÄúÐèÒªÔÚ /etc/rc.conf ÖÐÌí¼Ó£º

rtadvd_enable="YES"

¡¡¡¡Ö¸¶¨ÓÉÄĸöÍøÂç½Ó¿ÚÀ´Íê³É IPv6 ·ÓÉÇëÇó·Ç³£ÖØÒª¡£ ¾ÙÀýÀ´Ëµ£¬ Èà rtadvd(8) ʹÓà fxp0£º

rtadvd_interfaces="fxp0"

¡¡¡¡½ÓÏÂÀ´ÎÒÃÇÐèÒª´´½¨ÅäÖÃÎļþ£¬ /etc/rtadvd.conf¡£ ʾÀýÈçÏ£º

fxp0:\
	:addrs#1:addr="2001:471:1f11:246::":prefixlen#64:tc=ether:

¡¡¡¡½« fxp0 ¸ÄΪÄú´òËãʹÓõĽӿÚÃû¡£

¡¡¡¡½ÓÏÂÀ´£¬ ½« 2001:471:1f11:246:: ¸ÄΪ·ÖÅ䏸ÄúµÄµØÖ·Ç°×º¡£

¡¡¡¡Èç¹ûÄúÓµÓÐרÓÃµÄ /64 ×ÓÍø£¬ Ôò²»ÐèÒªÐÞ¸ÄÆäËûÉèÖᣠ·´Ö®£¬ ÄúÐèÒª°Ñ prefixlen# ¸ÄΪÕýÈ·µÄÖµ¡£

±¾ÎĵµºÍÆäËüÎĵµ¿É´ÓÕâÀïÏÂÔØ£ºftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

Èç¹û¶ÔÓÚFreeBSDÓÐÎÊÌ⣬ÇëÏÈÔĶÁÎĵµ£¬Èç²»Äܽâ¾öÔÙÁªÏµ<questions@FreeBSD.org>.
¹ØÓÚ±¾ÎĵµµÄÎÊÌâÇë·¢ÐÅÁªÏµ <doc@FreeBSD.org>.