±à¼ÍƼö: |
±¾ÎÄÀ´×ÔÓÚcsdn£¬Ö÷Òª½éÉÜÁËÍøÂçÐéÄ⻯£¬´«Í³ÍøÂç¼Ü¹¹£¬ÐéÄâ»¯ÍøÂç¼Ü¹¹£¬Linux
ÏÂÍøÂçÉ豸ÐéÄ⻯£¬ÈÝÆ÷ÐéÄ⻯£¬dockerÍøÂçÄ£Ð͵ȶà¸ö·½Ãæ½éÉÜ¡£ |
|
ÍøÂçÐéÄ⻯
ǰÑÔ
ÍøÂçÐéÄ⻯Ïà¶Ô¼ÆËã¡¢´æ´¢ÐéÄ⻯À´ËµÊDZȽϳéÏóµÄ£¬ÒÔÎÒÃÇÔÚѧУÊé±¾ÉÏѧµÄÄǵãÍøÂç֪ʶÀ´Àí½âÍøÂçÐéÄ⻯¿ÉÄÜÊDz»¹»µÄ¡£
ÔÚÎÒÃǵÄÓ¡ÏóÖУ¬ÍøÂç¾ÍÊÇÓɸ÷ÖÖÍøÂçÉ豸£¨Èç½»»»»ú¡¢Â·ÓÉÆ÷£©ÏàÁ¬×é³ÉµÄÒ»¸öÍø×´½á¹¹£¬ÊÀ½çÉϵÄÈκÎÁ½¸öÈ˶¼¿ÉÒÔͨ¹ýÍøÂ罨Á¢ÆðÁ¬½Ó¡£
´ø×ÅÕâÑùÒ»ÖÖ˼·ȥÀí½âÍøÂçÐéÄ⻯¿ÉÄÜ»á¸Ð¾õÔÆÀïÎíÀ¡ªÕâÑùÒ»¸öÅÓ´óµÄÍøÂçÈçºÎʵÏÖÐéÄ⻯£¿
Æäʵ£¬ÍøÂçÐéÄ⻯¸ü¶à¹Ø×¢µÄÊÇÊý¾ÝÖÐÐÄÍøÂç¡¢Ö÷»úÍøÂçÕâÑù±È½Ï¡¸Ï¸Á£¶È¡¹µÄÍøÂ磬ËùνϸÁ£¶È£¬ÊÇÏà¶ÔÀ´ËµµÄ£¬ÊÇÉîÈ뵽ijһ̨ÎïÀíÖ÷»úÖ®ÉϵÄÍøÂç½á¹¹À´Ì¸µÄ¡£
Èç¹û°Ñ´«Í³µÄÍøÂç¿´×÷¡¸ºê¹ÛÍøÂ硹µÄ»°£¬ÄÇÍøÂçÐéÄ⻯¹Ø×¢µÄ¾ÍÊÇ¡¸Î¢¹ÛÍøÂ硹¡£ÍøÂçÐéÄ⻯µÄÄ¿µÄ£¬ÊÇÒª½ÚÊ¡ÎïÀíÖ÷»úµÄÍø¿¨É豸×ÊÔ´¡£´Ó×ÊÔ´Õâ¸ö½Ç¶ÈÈ¥Àí½â£¬¿ÉÄÜ»á±È½ÏºÃÀí½âÒ»µã¡£
´«Í³ÍøÂç¼Ü¹¹
ÔÚ´«Í³ÍøÂç»·¾³ÖУ¬Ò»Ì¨ÎïÀíÖ÷»ú°üº¬Ò»¸ö»ò¶à¸öÍø¿¨£¨NIC£©£¬ÒªÊµÏÖÓëÆäËûÎïÀíÖ÷»úÖ®¼äµÄͨÐÅ£¬ÐèҪͨ¹ý×ÔÉíµÄ
NIC Á¬½Óµ½ÍⲿµÄÍøÂçÉèÊ©£¬Èç½»»»»úÉÏ£¬ÈçÏÂͼËùʾ¡£

ÕâÖּܹ¹Ï£¬ÎªÁ˶ÔÓ¦ÓýøÐиôÀ룬ÍùÍùÊǽ«Ò»¸öÓ¦Óò¿ÊðÔÚһ̨ÎïÀíÉ豸ÉÏ£¬ÕâÑù»á´æÔÚÁ½¸öÎÊÌâ
1£©ÊÇijЩӦÓô󲿷ÖÇé¿ö¿ÉÄÜ´¦ÓÚ¿ÕÏÐ״̬
2£©Êǵ±Ó¦ÓÃÔö¶àµÄʱºò£¬Ö»ÄÜͨ¹ýÔö¼ÓÎïÀíÉ豸À´½â¾öÀ©Õ¹ÐÔÎÊÌâ¡£²»¹ÜÔõôÑù£¬ÕâÖּܹ¹¶¼»á¶ÔÎïÀí×ÊÔ´Ôì³É¼«´óµÄÀË·Ñ¡£
ÐéÄâ»¯ÍøÂç¼Ü¹¹
ΪÁ˽â¾öÕâ¸öÎÊÌ⣬¿ÉÒÔ½èÖúÐéÄ⻯¼¼Êõ¶Ôһ̨ÎïÀí×ÊÔ´½øÐгéÏ󣬽«Ò»ÕÅÎïÀíÍø¿¨ÐéÄâ³É¶àÕÅÐéÄâÍø¿¨£¨vNIC£©£¬Í¨¹ýÐéÄâ»úÀ´¸ôÀ벻ͬµÄÓ¦Óá£
ÕâÑù¶ÔÓÚÉÏÃæµÄÎÊÌâ
Õë¶ÔÎÊÌâ 1£©£¬¿ÉÒÔÀûÓÃÐéÄ⻯²ã Hypervisor (ϵͳ¹ÜÀí³ÌÐò)µÄµ÷¶È¼¼Êõ£¬½«×ÊÔ´´Ó¿ÕÏеÄÓ¦ÓÃÉϵ÷¶Èµ½·±Ã¦µÄÓ¦ÓÃÉÏ£¬´ïµ½×ÊÔ´µÄºÏÀíÀûÓã»
Õë¶ÔÎÊÌâ 2£©£¬¿ÉÒÔ¸ù¾ÝÎïÀíÉ豸µÄ×ÊԴʹÓÃÇé¿ö½øÐкáÏòÀ©ÈÝ£¬³ý·ÇÉ豸×ÊÔ´ÒѾÓþ¡£¬·ñÔòûÓбØÒªÐÂÔöÉ豸¡£ÕâÖּܹ¹ÈçÏÂËùʾ¡£

ÆäÖÐÐéÄâ»úÓëÐéÄâ»úÖ®¼äµÄͨÐÅ£¬ÓÉÐéÄâ½»»»»úÍê³É£¬ÐéÄâÍø¿¨ºÍÐéÄâ½»»»»úÖ®¼äµÄÁ´Â·Ò²ÊÇÐéÄâµÄÁ´Â·£¬Õû¸öÖ÷»úÄÚ²¿¹¹³ÉÁËÒ»¸öÐéÄâµÄÍøÂ磬Èç¹ûÐéÄâ»úÖ®¼äÉæ¼°µ½Èý²ãµÄÍøÂç°üת·¢£¬ÔòÓÖÓÉÁíÍâÒ»¸ö½ÇÉ«¡ª¡ªÐéÄâ·ÓÉÆ÷À´Íê³É¡£
Ò»°ã£¬ÕâÒ»ÕûÌ×ÐéÄâÍøÂçµÄÄ£¿é¶¼¿ÉÒÔ¶ÀÁ¢³öÈ¥£¬ÓɵÚÈý·½À´Íê³É£¬ÈçÆäÖбȽϳöÃûµÄÒ»¸ö½â¾ö·½°¸¾ÍÊÇ Open
vSwitch£¨OVS£©¡£
OVS µÄÓÅÊÆÔÚÓÚËü»ùÓÚ SDN µÄÉè¼ÆÔÔò£¬·½±ãÐéÄâ»ú¼¯ÈºµÄ¿ØÖÆÓë¹ÜÀí£¬ÁíÍâ¾ÍÊÇËü·Ö²¼Ê½µÄÌØÐÔ£¬¿ÉÒÔ¡¸Í¸Ã÷¡¹µØÊµÏÖ¿çÖ÷»úÖ®¼äµÄÐéÄâ»úͨÐÅ£¬ÈçÏÂÊÇ¿çÖ÷»úÆôÓÃ
OVS ͨÐŵÄͼʾ¡£

×ܽáÏÂÀ´£¬ÍøÂçÐéÄ⻯Ö÷Òª½â¾öµÄÊÇÐéÄâ»ú¹¹³ÉµÄÍøÂçͨÐÅÎÊÌ⣬Íê³ÉµÄÊǸ÷ÖÖÍøÂçÉ豸µÄÐéÄ⻯£¬ÈçÍø¿¨¡¢½»»»É豸¡¢Â·ÓÉÉ豸µÈ¡£
Linux ÏÂÍøÂçÉ豸ÐéÄ⻯µÄ¼¸ÖÖÐÎʽ
ΪÁËÍê³ÉÐéÄâ»úÔÚͬÖ÷»úºÍ¿çÖ÷»úÖ®¼äµÄͨÐÅ£¬ÐèÒª½èÖúijÖÖ¡°ÇÅÁº¡±À´Íê³ÉÓû§Ì¬µ½ÄÚºË̬£¨Guest µ½
Host£©µÄÊý¾Ý´«Ê䣬ÕâÖÖÇÅÁºµÄ½ÇÉ«¾ÍÊÇÓÉÐéÄâµÄÍøÂçÉ豸À´Íê³É£¬ÉÏÃæ½éÉÜÁËÒ»¸öµÚÈý·½µÄ¿ªÔ´·½°¸¡ª¡ªOVS£¬ËüÆäʵÊÇÒ»¸öÈÚºÏÁ˸÷ÖÖÐéÄâÍøÂçÉ豸µÄ¼¯´ó³ÉÕߣ¬ÊÇÒ»¸ö²úÆ·¼¶µÄ½â¾ö·½°¸¡£
µ« Linux ±¾ÉíÓÉÓÚÐéÄ⻯¼¼ÊõµÄÑݽø£¬Ò²¼¯³ÉÁËһЩÐéÄâÍøÂçÉ豸µÄ½â¾ö·½°¸£¬Ö÷ÒªÓÐÒÔϼ¸ÖÖ£º
£¨1£©TAP/TUN/VETH
TAP/TUN ÊÇ Linux ÄÚºËʵÏÖµÄÒ»¶ÔÐéÄâÍøÂçÉ豸£¬TAP ¹¤×÷ÔÚ¶þ²ã£¬TUN ¹¤×÷ÔÚÈý²ã¡£Linux
ÄÚºËͨ¹ý TAP/TUN É豸Ïò°ó¶¨¸ÃÉ豸µÄÓû§¿Õ¼ä³ÌÐò·¢ËÍÊý¾Ý£¬·´Ö®£¬Óû§¿Õ¼ä³ÌÐòÒ²¿ÉÒÔÏñ²Ù×÷ÎïÀíÍøÂçÉ豸ÄÇÑù£¬Ïò
TAP/TUN É豸·¢ËÍÊý¾Ý¡£
»ùÓÚ TAP Çý¶¯£¬¼´¿ÉʵÏÖÐéÄâ»ú vNIC µÄ¹¦ÄÜ£¬ÐéÄâ»úµÄÿ¸ö vNIC ¶¼ÓëÒ»¸ö TAP É豸ÏàÁ¬£¬vNIC
Ö®ÓÚ TAP ¾ÍÈçͬ NIC Ö®ÓÚ eth¡£
µ±Ò»¸ö TAP É豸±»´´½¨Ê±£¬ÔÚ Linux É豸ÎļþĿ¼Ï»áÉú³ÉÒ»¸ö¶ÔÓ¦µÄ×Ö·ûÉ豸Îļþ£¬Óû§³ÌÐò¿ÉÒÔÏñ´ò¿ªÒ»¸öÆÕͨÎļþÒ»Ñù¶ÔÕâ¸öÎļþ½øÐжÁд¡£
±ÈÈ磬µ±¶ÔÕâ¸ö TAP ÎļþÖ´ÐÐ write ²Ù×÷ʱ£¬Ï൱ÓÚ TAP É豸ÊÕµ½ÁËÊý¾Ý£¬²¢ÇëÇóÄں˽ÓÊÜËü£¬ÄÚºËÊÕµ½Êý¾Ýºó½«¸ù¾ÝÍøÂçÅäÖýøÐкóÐø´¦Àí£¬´¦Àí¹ý³ÌÀàËÆÓÚÆÕͨÎïÀíÍø¿¨´ÓÍâ½çÊÕµ½Êý¾Ý¡£µ±Óû§³ÌÐòÖ´ÐÐ
read ÇëÇóʱ£¬Ï൱ÓÚÏòÄں˲éѯ TAP É豸ÊÇ·ñÓÐÊý¾ÝÒª·¢ËÍ£¬ÓеϰÔò·¢ËÍ£¬´Ó¶øÍê³É TAP É豸µÄÊý¾Ý·¢ËÍ¡£
TUN ÔòÊôÓÚÍøÂçÖÐÈý²ãµÄ¸ÅÄÊý¾ÝÊÕ·¢¹ý³ÌºÍ TAP ÊÇÀàËÆµÄ£¬Ö»²»¹ýËüÒªÖ¸¶¨Ò»¶Î IPv4 µØÖ·»ò
IPv6 µØÖ·£¬²¢ÃèÊöÆäÏà¹ØµÄÅäÖÃÐÅÏ¢£¬ÆäÊý¾Ý´¦Àí¹ý³ÌÒ²ÊÇÀàËÆÓÚÆÕͨÎïÀíÍø¿¨ÊÕµ½Èý²ã IP ±¨ÎÄÊý¾Ý¡£
VETH É豸×ÜÊdzɶԳöÏÖ£¬Ò»¶ËÁ¬×ÅÄÚºËÐÒéÕ»£¬ÁíÒ»¶ËÁ¬×ÅÁíÒ»¸öÉ豸£¬Ò»¸öÉ豸ÊÕµ½Äں˷¢Ë͵ÄÊý¾Ýºó£¬»á·¢Ë͵½ÁíÒ»¸öÉ豸ÉÏÈ¥£¬ÕâÖÖÉ豸ͨ³£ÓÃÓÚÈÝÆ÷ÖÐÁ½¸ö
namespace Ö®¼äµÄͨÐÅ¡£
£¨2£©Bridge
Bridge Ò²ÊÇ Linux ÄÚºËʵÏÖµÄÒ»¸ö¹¤×÷ÔÚ¶þ²ãµÄÐéÄâÍøÂçÉ豸£¬µ«²»Í¬ÓÚ TAP/TUN ÕâÖÖµ¥¶Ë¿ÚµÄÉ豸£¬Bridge
ʵÏÖΪ¶à¶Ë¿Ú£¬±¾ÖÊÉÏÊÇÒ»¸öÐéÄâ½»»»»ú£¬¾ß±¸ºÍÎïÀí½»»»»úÀàËÆµÄ¹¦ÄÜ¡£
Bridge ¿ÉÒÔ°ó¶¨ÆäËû Linux ÍøÂçÉ豸×÷Ϊ´ÓÉ豸£¬²¢½«ÕâЩ´ÓÉ豸ÐéÄ⻯Ϊ¶Ë¿Ú£¬µ±Ò»¸ö´ÓÉ豸±»°ó¶¨µ½
Bridge ÉÏʱ£¬¾ÍÏ൱ÓÚÕæÊµÍøÂçÖеĽ»»»»ú¶Ë¿ÚÉϲåÈëÁËÒ»¸ùÁ¬ÓÐÖն˵ÄÍøÏß¡£
ÈçÏÂͼËùʾ£¬Bridge É豸 br0 °ó¶¨ÁËʵ¼ÊÉ豸 eth0
ºÍ ÐéÄâÉ豸?tap0/tap1£¬µ±ÕâЩ´ÓÉ豸½ÓÊÕµ½Êý¾Ýʱ£¬»á·¢Ë͸ø br0 £¬br0 »á¸ù¾Ý MAC
µØÖ·Óë¶Ë¿ÚµÄÓ³Éä¹ØÏµ½øÐÐת·¢¡£

ÒòΪ Bridge ¹¤×÷ÔÚ¶þ²ã£¬ËùÒ԰󶨵½ËüÉÏÃæµÄ´ÓÉ豸 eth0¡¢tap0¡¢tap1 ¾ù²»ÐèÒªÉè
IP£¬µ«ÊÇÐèҪΪ br0 ÉèÖà IP£¬ÒòΪ¶ÔÓÚÉϲã·ÓÉÆ÷À´Ëµ£¬ÕâЩÉ豸λÓÚͬһ¸ö×ÓÍø£¬ÐèÒªÒ»¸öͳһµÄ
IP ½«Æä¼ÓÈë·ÓɱíÖС£
ÕâÀïÓÐÈË¿ÉÄÜ»áÓÐÒÉÎÊ£¬Bridge ²»Êǹ¤×÷ÔÚ¶þ²ãÂð£¬ÎªÊ²Ã´»áÓÐ IP µÄ˵·¨£¿Æäʵ Bridge
ËäÈ»¹¤×÷ÔÚ¶þ²ã£¬µ«ËüÖ»ÊÇ Linux ÍøÂçÉ豸³éÏóµÄÒ»ÖÖ£¬ÄÜÉè IP Ò²²»×ãÎªÆæ¡£
¶ÔÓÚʵ¼ÊÉ豸 eth0 À´Ëµ£¬±¾À´ËüÊÇÓÐ×Ô¼ºµÄ IP µÄ£¬µ«Êǰ󶨵½ br0 Ö®ºó£¬Æä IP ¾ÍÉúЧÁË£¬¾ÍºÍ
br0 ¹²ÏíÒ»¸ö IP Íø¶ÎÁË£¬ÔÚÉè·ÓɱíµÄʱºò£¬¾ÍÐèÒª½« br0 ÉèΪĿ±êÍø¶ÎµÄµØÖ·¡£
×ܽá
´«Í³ÍøÂç¼Ü¹¹µ½ÐéÄ⻯µÄÍøÂç¼Ü¹¹£¬¿ÉÒÔ¿´×÷ÊǺê¹ÛÍøÂ絽΢¹ÛÍøÂçµÄ¹ý¶É
TAP/TUN/VETH¡¢Bridge ÕâЩÐéÄâµÄÍøÂçÉ豸ÊÇ Linux ΪÁËʵÏÖÍøÂçÐéÄ⻯¶øÊµÏÖµÄÍøÂçÉ豸ģ¿é£¬ºÜ¶àµÄÔÆ¿ªÔ´ÏîÄ¿µÄÍøÂ繦Äܶ¼ÊÇ»ùÓÚÕâЩ¼¼Êõ×öµÄ£¬±ÈÈç
Neutron¡¢Docker network µÈ¡£
OVS ÊÇÒ»¸ö¿ªÔ´µÄ³ÉÊìµÄ²úÆ·¼¶·Ö²¼Ê½ÐéÄâ½»»»»ú£¬»ùÓÚ SDN µÄ˼Ï룬±»´óÁ¿Ó¦ÓÃÔÚÉú²ú»·¾³ÖС£
ÈÝÆ÷ÐéÄ⻯
Ãû³Æ¿Õ¼ä£ºUTS¡¢User¡¢Mount¡¢IPC¡¢PID¡¢NET
NET£ºÍøÂçÃû³Æ¿Õ¼ä
ÃèÊö£ºÖ÷ÒªÊÇÍøÂçÉ豸¡¢ÐÒéÕ»µÈʵÏÖ£¬¼ÙÉèÎïÀí»úÉÏÓÐËÄ¿éÍø¿¨£¬ÐèÒª´´½¨Á½¸öÃû³Æ¿Õ¼ä£¬ÕâЩÉ豸¿ÉÒÔµ¥¶À¹ØÁª¸øÄ³¸ö¿Õ¼äËùʹÓõģ¬ÈçµÚÒ»¸öÍø¿¨·ÖÅ䏸µÚÒ»¸öÃû³Æ¿Õ¼äʹÓã¬ÆäËû¾Í¿´²»¼ûÕâ¸öÉ豸ÁË£¬Ò»¸öÉ豸һ°ãÖ»ÄÜÊÚÓèÒ»¸ö¿Õ¼ä£¬Í¬ÑùÓÐËĸöÍø¿¨¾Í¿ÉÒÔʹÓÃËĸöÃû³Æ¿Õ¼ä£¬Ê¹µÃÿ¸öÃû³Æ¿Õ¼ä¶¼¿ÉÒÔÅäÖÃIPµØÖ·ÓëÍâ½ç½øÐÐͨÐÅ¡£
¡¡¡¡Èç¹ûÃû³Æ¿Õ¼äµÄÊýÁ¿³¬¹ýÎïÀíÍø¿¨ÊýÁ¿£¬Ã¿¸öÃû³Æ¿Õ¼äÄÚ²¿µÄ½ø³ÌÒ²ÊÇÐèҪͨ¹ýÍøÂç½øÐÐͨÐÅ£¬Ó¦¸ÃÈçºÎÉϱ¨£¬¿ÉÒÔʹÓÃÄ£Äâ¼¼Êõ£¬linuxÉ豸֧³ÖÁ½ÖÖÄں˼¶µÄÄ£Ä⣬ÊǶþ²ãÉ豸ºÍÈý²ãÉ豸£¬Íø¿¨¾ÍÊÇÒ»¸ö¶þ²ãÉ豸£¬¹¤×÷ÔÚÁ´Â·²ã£¬Äܹ»·â×°±¨ÎÄʵÏÖ¸÷É豸֮¼ä±¨ÎÄת·¢µÄʵÏÖ£¬Õ⹦ÄÜÊÇÍêÈ«¿ÉÒÔÔÚLinuxÖ®ÉÏÀûÓÃÄÚºËÖжԶþ²ãÐéÄâÉ豸µÄÖ§³Ö£¬´´½¨ÐéÄâÍø¿¨½Ó¿Ú£¬¶øÇÒÕâÖÖÐéÄâÍø¿¨½Ó¿ÚºÜ¶ÀÌØ£¬Ã¿¸öÍøÂç½Ó¿ÚÉ豸ÊdzɶԳöÏֵģ¬¿ÉÒÔÄ£ÄâΪһ¸ùÍøÏßµÄÁ½Í·£¬ÆäÖÐһͷ¿ÉÒÔ²åÔÚÖ÷»úÖ®ÉÏ£¬Áíһͷ²åÔÚ½»»»»úÖ®ÉϽøÐÐÄ£Ä⣬Ï൱ÓÚÒ»¸öÖ÷»úÁ¬½Óµ½½»»»»úÉÏÈ¥ÁË£¬¶ølinuxÄÚºËÔ´Éú¾ÍÖ§³ÖÄ£Äâ¶þ²ãÍøÂçÉ豸£¬Ê¹ÓÃÈí¼þÀ´¹¹½¨Ò»¸ö½»»»»ú¡£
¡¡¡¡Èç¹ûÓÐÁ½¸öÃû³Æ¿Õ¼ä£¬ÄÇôÁ½Ì¨Ö÷»ú¾ÍÏñÁ¬½Óµ½Í¬Ò»¸ö½»»»»úÉϽøÐÐͨÐÅ£¬Èç¹ûÅäÖõÄÍøÂçµØÖ·ÔÚͬһ¸öÍø¶Î¾Í¿ÉÒÔÖ±½Ó½øÐÐͨѶÁË¡£Õâ¾ÍÊÇÐéÄ⻯µÄÍøÂç¡£
OVS: OpenVSwitch ¿ÉÒÔÄ£Äâ¸ß¼¶µÄÍøÂç¼¼Êõ£¬¶þ²ã½»»»£¬ÉõÖÁÈý²ãÍøÂçÉ豸£¬vlan£¬£¬²»ÊôÓÚLinuxÄÚºË×é¼þ£¬Òª¶îÍâ°²×°£¬ÓÉciscoÖڶ๫˾Ëù¹¹½¨µÄ£¬ÓÐÔÆ¼ÆËãµÄÀ˳±Ï£¬¹¹½¨ÍøÂçÊDZȽϸ´Ôӵģ¬È»ºó²ÅÊÇÍøÂçÖ®ÉÏËù³ÐÔØµÄÖ÷»ú£¬²ÅÄÜͨѶ£¬Õâ¸öÍøÂçÐéÄ⻯ËùʵÏֵŦÄÜ£¬ÐèÒªÈí¼þÓ²¼þ½áºÏÆðÀ´ÊµÏÖ£¬¶øÇÒ°Ñ´«Í³ÒâÒåÉϵÄÍøÂçÆ½Ãæ£¬¿ØÖÆÆ½Ã棬´«ÊäÆ½ÃæµÈ£¬¸ôÀ뿪À´£¬¼¯Öе½Ò»¸öÉ豸֮ÉÏʵÏÖÈ«¾ÖµÄµ÷¶È£¬ÊµÏÖSDN,Èí¼þ¶¨ÒåÍøÂç
µ¥½ÚµãÉÏÈÝÆ÷ͨѶ£ºÍ¬Ò»¸öÎïÀí»úÉϵÄÁ½¸öÈÝÆ÷£¬»òÕßÁ½¸öÃû³Æ¿Õ¼äҪͨѶ£¬¾ÍÊÇÔÚÖ÷»úÉϽ¨Á¢Ò»¸öÐéÄâµÄ½»»»»ú£¬ÈÃÁ½¸öÈÝÆ÷¸÷×ÔʹÓô¿Èí¼þµÄ·½Ê½£¬½¨Ò»¶ÔÐéÄâÍø¿¨£¬Ò»°ëÔÚ½»»»»úÉÏ£¬Ò»°ëÔÚÈÝÆ÷ÉÏ£¬´Ó¶øÊµÏÖµ¥½ÚµãÉÏÈÝÆ÷½øÐÐͨѶ£¬µ«ÊÇÒ²ÓбȽϸ´ÔÓµÄÇé¿ö£¬ÓпÉÄÜ»á³öÏÖÓÐÁ½¸öÈí½»»»»úµÄÇé¿ö£¬Á¬½Ó²»Í¬µÄÈÝÆ÷£¬ÕâʱÁ½¸öÈí½»»»»úÒªÁ¬½Ó£¬ÐèÒªÔÙ×öÒ»¿éÍø¿¨£¬Ò»Í·ÔÚ½»»»»ú1ÉÏ£¬ÁíһͷÔÚ½»»»»ú2Ö®ÉÏ£¬Èç¹û²»Í¬½»»»»úÖ®¼äҪʵÏÖ·ÓÉת·¢£¬¾ÍÐèÒªÔÚÁ½Äܽ»»»»úÉϼÓһ̨·ÓÉÆ÷£¬linuxÄÚºË×ÔÉí¿ÉÒÔµ±×÷·ÓÉÆ÷À´Ê¹Ó㬴ò¿ª×ª·¢»òÕßʹÓÃiptables¹æÔò£¬µ«ÊÇ·ÓÉÆ÷ÊÇÒ»¸öÈý²ãµÄÉ豸£¬ÔÚlinuxÄÚºËÖ±½ÓʹÓÃÒ»¸öµ¥¶ÀµÄÃû³Æ¿Õ¼ä¾Í¿ÉÒÔʵÏÖ£¬¾ÍÊÇÔÙ×öÒ»¸öÈÝÆ÷µ±×÷·ÓÉÆ÷À´Ê¹Ó㬵±ÊÇҪģÄâ³öÍø¿¨À´ÈÃËüÃǽ¨Á¢¹ØÁª¹ØÏµ

¶à½Úµã£ºÁíһ̨Ö÷»úÉϵÄÒ»¸öÈÝÆ÷£¬Óë1ºÅÖ÷»úÉϵÄÈÝÆ÷½øÐÐͨÐÅ£¬vmwareʵÏÖ²»Í¬Ö÷»úÉϵÄÐéÄâ»úÖ®¼äµÄͨѶ¿ÉÒÔʹÓÃÇŽӵķ½Ê½£¬¾ÍÊǰÑÎïÀíÍø¿¨µ±×÷½»»»»úÀ´Ê¹Óã¬ËùÓÐһ̨Ö÷»úÉϵÄÈÝÆ÷¶¼µ½Ò»¸öÎïÀíÍø¿¨À´£¬Í¨¹ýMACµØÖ·À´È·¶¨½»¸øÄǸöÈÝÆ÷£¬Èç¹ûÊǵ½ÎïÀí»úµÄ£¬¾Í¸øÎïÀí»ú£¬Ò²¾ÍÊÇÐéÄâ»úÀïÒ²ÓÐ×ÔÉíµÄ¶ÀÌØµÄMACµØÖ·£¬ËùÒÔÊý¾Ý°üÀ´Ê±¿ÉÒÔÇø±ð¸÷¸öÉ豸£¬°ÑÎïÀíÍø¿¨µ±×÷½»»»»úÀ´Ê¹Ó㬰ѱ¨ÎÄת·¢¸ø¸÷ÈÝÆ÷£¬Èç¹û±¨ÎÄÄ¿±êÊÇÎïÀíÍø¿¨Ê±£¬ÐèÒªÐéÄâ³öÒ»¸öÈíÍø¿¨×÷ΪÎïÀíÍø¿¨µÄʹÓã¬ÕâÑù¾ÍûÓÐÐéÄâ½»»»»ú¸ÅÄËùÒÔÁ½Ì¨Ö÷»úÉϵÄÐéÄâ»úҪʹÓÃÇŽÓͨѶʱ£¬¶¼ÊÇÁ¬½Óµ½¸÷×ÔÖ÷»úÉϵÄÎïÀíÍø¿¨µÄµÄ£¬µ«ÊÇÕâÖÖͨѶ·½Ê½ÒªÊµÏÖÓкܴóµÄ´ú¼Û£¬ÒòΪËùÓÐÈÝÆ÷µÄÇŽӶ¼ÔÚͬһ¸öÆ½ÃæÖУ¬ºÜÈÝÒײúÉú·ç±©£¬ËùÒÔÔÚ´ó¹æÄ£µÄÐéÄâ»ú»òÈÝÆ÷µÄʹÓó¡¾°ÖÐʹÓÃÇŽӲ»Ì«ºÃ£¬³ý·ÇÄܸôÀëµÃºÜºÃ(ÇŽÓ)

Nat¼¼Êõ£ºÈçͼÖÐC3ÓëC6ͨѶ£¬C3ÊÇÐéÄâÍø¿¨£¬C3Íø¿¨ÓëÎïÀíÍø¿¨ÎïÀíµØÖ·²»ÔÚͬһ¸öÍø¶ÎÖÐ,C3°ÑÍø¹ØÖ¸ÏòS2,°ÑS3µ±×÷ËÞÖ÷»úµÄÒ»¸öÍø¿¨À´Ê¹Óã¬IPµØÖ·ÓëC3ÔÚͬһ¸öÍø¶Î£¬°ÑC3µÄÍø¹ØÖ¸ÏòS2,È»ºóÔÚÎïÀí»úÉÏ´ò¿ªºËÐÄת·¢¹¦ÄÜ£¬ËùÒÔµ±C3ÓëC6ͨѶʱ£¬ÏÈת¸øs2,ÔÙµ½´ïÄںˣ¬ÄÚºËÅж¨²é·ÓÉÁв»ÊÇ×Ô¼ºÒªµ½ÁíÒ»¸öÖ÷»úÉϵÄC6£¬Õâʱ±¨ÎĻز»À´£¬ÒòΪC3ºÍC4ÊÇÒ»¸ö˽ÓеØÖ·£¬Èç¹ûÒª±¨ÎÄÄܹ»»ØÀ´£¬×îºóµ½±¨ÎÄËÍ×ßÎïÀí»ú֮ǰ£¬Òª°ÑÔ´IPµØÖ·Ð޸ijÉÎïÀíÍø¿¨µÄIPµØÖ·£¬ÕâÑùC5»òÕßC6»Ø¸´ÎïÀíÖ÷»úµÄIP¾Í¿ÉÒÔÁË£¬Í¨¹ýNAT±íµÄ²éѯÊÇC3µÄ·ÃÎÊ£¬¾Í°Ñ±¨ÎÄË͸øC3,Õâ¾ÍʹÓÃNATʵÏÖ¿çÖ÷»úÖ®¼äµÄͨѶ£¬µ«ÊÇÕâÀïÓÐÒ»¸öºÜ´óµÄÎÊÌ⣬C6Ò²¿ÉÄÜÊÇNATµÄģʽϹ¤×÷£¬Ò²¾ÍÊÇ˵ËüÒ²ÊÇʹÓÃ˽ÓеØÖ·µÄ£¬Èç¹ûC6Òª±»·ÃÎÊÖ»ÄܰÑËü±©Â¶³öÈ¥£¬ÔÚÎïÀí»úµÄÄÜÍâÍø¿¨ÉÏÃ÷ȷ˵Ã÷ij¸ö¶Ë¿ÚÊÇÌṩ·þÎñµÄ£¬Èç¹ûÒªC4Äܹ»·ÃÎÊC6£¬¾ÍÒªÏÈ·ÃÎÊC6ËùÔÚµÄËÞÖ÷»úµÄÎïÀíµØÖ·£¬ÔÙʹÓÃH2×ödnat·¢¸øC6,µ«ÊÇC4·¢Ëͱ¨ÎÄʱÊÇͨ¹ýSNAT³öÀ´µÄ£¬C4Ò²ÊÇÒþ²ØÔÚNAT±³ºóµÄ£¬·¢³öÈ¥µÄ±¨ÎÄÒªÆäËûµÄÖ÷»ú¿ÉÒÔÏìÓ¦¾ÍÓ¦¸Ã¸ÄдԴµØÖ·¡£ËùÒÔÔÚ¿ç·þÎñÖ÷»úʵÏÖÁ½¸öÐéÄâ»úÖ®¼äµÄͨѶҪʵÏÖÁ½¼¶µÄNAT²Ù×÷£¬´ÓC4µ½C6£¬Ê×ÏÈC4³öÈ¥¾ÍSNAT,µ½µ½C6ҪʹÓõ½DNAT£¬ÕâÑùµÄЧÂʲ»»á¸ß£¬µ«ÊÇÍøÂç±È½ÏÈÝÒ×¹ÜÀí¡£
Overlay Network: µþ¼ÓÍøÂ磬ÊÇNATºÍÇŽӵÄÒ»¸ö½â¾ö·½°¸£¬Óжà¸öÎïÀíÖ÷»ú£¬ÔÚÐéÄâ»úÉÏ×öÒ»¸öÐéÄâµÄÇÅ£¬Èø÷ÐéÄâ»úÁ¬½Óµ½ÐéÄâÇÅÉÏ£¬Í¨ÐÅʱ½èÓÃÎïÀíÍøÂçÀ´Íê³É±¨ÎĵÄËíµÀת·¢£¬´Ó¶øÊµÏÖC1¿ÉÒÔÖ±½Ó¿´¼ûC5»òC6,ÎïÀíÖ÷»ú±¾À´¾ÍÊÇʹÓÃÎïÀíÍøÂçÁ¬½ÓÔÚÒ»ÆðµÄ£¬C1ÓëÎïÀíÍøÂç²»ÔÚͬһ¸öµØÖ·¶ÎÄÚ£¬µ«ÊÇC1ÓëC5ÊÇÔÚͬһµØÖ·¶ÎÄڵģ¬C1·¢Ëͱ¨ÎÄʱ£¬ÏÈ·¢Ë͸øÐéÄâ»ú£¬¼ÙÉèËüÊÇÖªµÀC5ÊDz»Òª±¾µØµÄÎïÀíÖ÷»úÉϵģ¬ÒÔÊDZ¨ÎÄÒª´ÓÎïÀíÍø¿¨·¢ËͳöÈ¥£¬µ«ÊÇÒª×öËíµÀת·¢£¬Ò²¾ÍÊÇC1µÄ±¨ÎÄÔ´IPµØÖ·ÊÇC1,Ä¿±êµØÖ·ÊÇC5£¬È»ºóÔÙ·â×°Ò»¸öIP°üÍ·µÄÊײ¿Ô´µØÖ·ÊÇC1ËùÔÚÎïÀíÖ÷»úµÄIPµØÖ·£¬Ä¿±êµØÖ·ÊÇC5ËùÔÚÎïÀíÖ÷»úµÄIPµØÖ·£¬µ±±¨ÎÄË͵½C5ËùÔÚµÄÎïÀí»ú£¬°Ñ±¨ÎIJðÍêµÚÒ»²ãºó£¬µÚ¶þ²ãµÄÄ¿±êµØÖ·¾ÍÊÇC5µÄ£¬¾ÍÖ±½Ó½»¸ø±¾µØµÄÈí½»»»»ú£¬ÔÙ½»¸øC5£¬C1ÓëC5Ö®¼äµÄͨѶֱ½ÓÔ´µØÖ·ºÍÄ¿±êµØÖ·¾ÍÊǸ÷×ÔË«·½£¬µ«ÊÇËü¼ÄÓÚ±ðµÄÍøÂ磬±¾µØ×ÔÉí¾ÍÊÇÒ»¸öÈý²ãµÄÍøÂ磬Ӧ¸Ã·â×°¶þ²ã£¬µ«ÊÇûÓзâ×°£¬ÓÖ·â×°Èý²ãËIJ㱨ÎÄ£¬¾ÍÊÇÒ»¸öTCP»òÕßUDPµÄÊײ¿£¬ÔÙ·â×°Ò»¸öÊײ¿ÊµÏÖÒ»¸öÁ½¼¶µÄÈý²ã·â×°£¬´Ó¶øÍê³É±¨ÎĵÄת·¢

dockerÍøÂç:bridge¡¢host¡¢none
bridge:ÇŽÓÊ±ÍøÂ磬²¢²»ÊÇÎïÀíÇÅ£¬°Ñ±¾»úÉÏ´´½¨Ò»¸ö´¿´âµÄÈí½»»»»údocker0£¬Ò²¿ÉÒÔµ±×÷Íø¿¨À´Ê¹Óã¬Ã¿Æô¶¯Ò»¸öÈÝÆ÷¾Í¿ÉÒÔ¸øÈÝÆ÷·ÖÅäÒ»¶ÎÍø¿¨µÄµØÖ·£¬Ò»°ëÔÚÈÝÆ÷ÉÏ£¬Ò»°ëÔÚdocker0ÇÅÉÏ£¬veth176661bÕâÖÖÔÚ»úÆ÷¿ÉÒÔ¿´µ½µÄÎÞÂÛÈÝÆ÷»¹ÊÇKVMʱ£¬Ã¿´Î´´½¨Íø¿¨Ê±£¬¶¼ÊÇ´´½¨Ò»¶ÔµÄ£¬Ò»°ë·ÅÔÚÐéÄâ»úÉÏ£¬Ò»°ë·ÅÔÚÈí½»»»»úÉÏ£¬Ï൱ÓÚÒ»¸ùÍøÏßÁ¬½Ó×ÅÁ½¸öÉ豸һÑù¡£


[root@node1 ~]#
ifconfig
docker0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>
?mtu 1500
inet 172.17.0.1 netmask 255.255.0.0 broadcast
172.17.255.255
veth56d0ee7: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>
mtu 1500
inet6 fe80::8c58:bff:fed2:1390 prefixlen 64 scopeid
0x20<link>
veth8853ed8: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>
mtu 1500
inet6 fe80::98fd:21ff:fe2e:54ef prefixlen 64 scopeid
0x20<link>
veth93be8d9: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>
mtu 1500
inet6 fe80::2424:7dff:fe25:9886 prefixlen 64 scopeid
0x20<link>
vethf4c3d12: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>
mtu 1500
|
×¢£ºÒòΪÆô¶¯ÁËËĸöÈÝÆ÷£¬ËùÒÔÉú³ÉÁËËĸöÐéÄâIP£¬Í¬Ê±ÕâËĸöÐéÄâIP¶¼ÊDzåÔÚdocker0ÇÅÉϵÄ
[root@node1 ~]#
yum install bridge-utils -y
[root@node1 ~]# brctl show
bridge name bridge id STP enabled interfaces
docker0 8000.024201e0b27e no &nveth56d0ee7
veth8853ed8
veth93be8d9
|
[root@node1 ~]# ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc
noqueue state UNKNOWN mode DEFAULT group default qlen
1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu
1500 qdisc pfifo_fast state UP mode DEFAULT group
default qlen 1000
link/ether 00:0c:29:52:7f:22 brd ff:ff:ff:ff:ff:ff
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu
1500 qdisc pfifo_fast state UP mode DEFAULT group
default qlen 1000
link/ether 00:0c:29:52:7f:2c brd ff:ff:ff:ff:ff:ff
4: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP>
mtu 1500 qdisc noqueue state UP mode DEFAULT group
default?
link/ether 02:42:01:e0:b2:7e brd ff:ff:ff:ff:ff:ff
6: vethf4c3d12@if5: <BROADCAST,MULTICAST,UP,LOWER_UP>
mtu 1500 qdisc noqueue master docker0 state UP mode
DEFAULT group default?
link/ether 62:45:53:e4:fd:29 brd ff:ff:ff:ff:ff:ff
link-netnsid 0
8: veth93be8d9@if7: <BROADCAST,MULTICAST,UP,LOWER_UP>
mtu 1500 qdisc noqueue master docker0 state UP mode
DEFAULT group default?
link/ether 26:24:7d:25:98:86 brd ff:ff:ff:ff:ff:ff
link-netnsid 1
10: veth56d0ee7@if9: <BROADCAST,MULTICAST,UP,LOWER_UP>
mtu 1500 qdisc noqueue master docker0 state UP mode
DEFAULT group default?
link/ether 8e:58:0b:d2:13:90 brd ff:ff:ff:ff:ff:ff
link-netnsid 2
12: veth8853ed8@if11: <BROADCAST,MULTICAST,UP,LOWER_UP>
mtu 1500 qdisc noqueue master docker0 state UP mode
DEFAULT group default?
link/ether 9a:fd:21:2e:54:ef brd ff:ff:ff:ff:ff:ff
link-netnsid 3
×¢£ººìɫΪÈÝÆ÷ÄÚ²¿Íø¿¨
[root@node1 ~]#
docker attach b1 //½øÈëÈÝÆ÷b1
/ # ls
bin data dev etc home proc root sys
tmp usr var
/ # ifconfig
eth0 Link encap:Ethernet HWaddr 02:42:AC:11:00:02
inet addr:172.17.0.2 ?Bcast:172.17.255.255
Mask:255.255.0.0
/ # ping 172.17.0.1
PING 172.17.0.1 (172.17.0.1): 56 data bytes
64 bytes from 172.17.0.1: seq=0 ttl=64 time=0.249
ms
|
NatÇÅ£ºdocker´´½¨Ê±Ä¬ÈϾÍÊÇnatÇÅ£¬ÊÇʹÓÃIptablesÀ´ÊµÏÖµÄ
[root@node1 ~]# iptables -t nat -vnL
Chain PREROUTING (policy ACCEPT 13 packets, 1843 bytes)
pkts bytes target prot opt in out source
destination
5 268 DOCKER all -- * * 0.0.0.0/0
0.0.0.0/0 ADDRTYPE match dst-type
LOCAL
Chain INPUT (policy ACCEPT 13 packets, 1843 bytes)
pkts bytes target prot opt in out source
destination
Chain OUTPUT (policy ACCEPT 69 packets, 5112 bytes)
pkts bytes target prot opt in out source
destination
0 0 DOCKER all -- * * 0.0.0.0/0
!127.0.0.0/8 ADDRTYPE match dst-type
LOCAL
Chain POSTROUTING (policy ACCEPT 69 packets, 5112
bytes)
pkts bytes target prot opt in out source
destination
0 0 MASQUERADE all -- * !docker0 172.17.0.0/16
0.0.0.0/0
in: ´ÓʹÓýӿڽøÀ´£¬Ö»Òª²»³ödocker0³öÈ¥£¬Ô´µØÖ·À´×ÔÓÚ172.17.0.0/16µÄ£¬ÎÞÂÛµ½´ïÈκÎÖ÷»ú0.0.0.0/0£¬¶¼Òª×öµØÖ·Î±×°MASQUERADE£¬Ï൱ÓÚSNAT,¶øÇÒÊÇ×Ô¶¯ÊµÏÖSNAT£¬Ò²¾ÍÊÇ×Ô¶¯Ñ¡ÔñÒ»¸ö×îºÏÊÊÎïÀíµØÖ·µ±×÷Ô´µØÖ·£¬ËùÒÔdocker0ÇÅĬÈϾÍÊÇnatÇÅ
Chain DOCKER (2
references)
pkts bytes target prot opt in out
source destination
1 84 RETURN all -- docker0 *
0.0.0.0/0 0.0.0.0/0
|
ÈÝÆ÷ÖÐÍøÂçͨѶÇé¿ö
a. ͬһ¸öËÞÖ÷»úÖУ¬Ê¹ÓÃͬһ¸ödocker0ÖеÄÈí½»»»»ú½øÐÐͨѶ
[root@node1 ~]# docker exec -it web1 /bin/sh
/ # ifconfig
eth0 Link encap:Ethernet HWaddr 02:42:AC:11:00:05
inet addr:172.17.0.5 Bcast:172.17.255.255
Mask:255.255.0.0
/ # netstat -lnt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign
Address State
tcp 0 0 0.0.0.0:80 0.0.0.0:*
LISTEN
/ # wget -O - -q http://172.17.0.5
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
[root@node1 ~]# curl http://172.17.0.5
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
b. ¿çÖ÷»úͨѶ
ÔÚͬһ¸öËÞ·½»úÖ®¼äµÄÈÝÆ÷ͨѶ¿ÉÒÔʵÏÖ£¬µ«ÊÇ¿çÖ÷»ú¾Í»á²úÉúÎÊÌ⣬ÒòΪdocker±¾Éí¾ÍÊÇÒ»¸önat bridge,¶ÔÍâÀ´ËµÊDz»¿É¼ûµÄ£¬ÒªÊµÏÖ²»Í¬Ö÷»úÖ®¼äµÄÈÝÆ÷µÄʵÏÖͨѶ£¬¾ÍÒª×ödnat£¬°Ñ½Ó¿ÚÖз¢²¼³öÀ´µÄ£¬¼ÙÉèÎïÀíÖ÷»úÉÏÓÐÒ»¸öÎïÀíÍø¿¨£¬¿ªÍ¨Ò»¸ö¶Ë¿ÚÈ»ºóÌṩ¶ÔÍâ·þÎñ£¬ÍⲿÖ÷»ú·ÃÎÊÈÝÆ÷ÖеķþÎñʱ£¬Ê¹ÓÃdnatµÄ·½Ê½×ªµ½ÈÝÆ÷ÖеÄÐéÄâÍø¿¨ÖУ¬Ìṩ·þÎñ¡£
µ«ÊÇ´æÔÚÒ»¸öÎÊ£¬Èç¹ûÔÚͬһ̨ËÞÖ÷»úÉÏ£¬ÆðÁËÁ½¸öÈÝÆ÷·Ö±ðÊÇÁ½¸önginxµÄweb·þÎñ£¬µ«ÊǶÔÍâµÄIPÖ»ÓÐÒ»¸ö£¬Ö»ÄÜʹÓö˿ÚÀ´Çø·Ö£¬¼ÙÉènginx1ʹÓÃ80£¬ÁíÒ»¸önginx2¾ÍÖ»ÄÜʹÓ÷Ç80µÄ¶Ë¿Ú£¬Õâʱclient·ÃÎʵijöÏÖÎÊÌ⣬ÒòΪĬÈÏ·ÃÎʾÍÒª¸ø80£¬Èç¹ûÊÇ·Ç80¶Ë¿Ú¾ÍÇëÇó²»µ½¡£
Èç²éʹÓÃovetlay networkµþ¼ÓÍøÂ緽ʽ¾Í¿ÉÒÔÖ±½ÓʹÓÃËíµÀÀ´³ÐÔØ£¬Ö±½Ó·ÃÎʾͿÉÒÔÁË£¬¿ÉÒÔ²»ÓöԵØÖ·½øÐÐÓ³Éä¡£Ò»°ãµÄ¿çÖ÷»úÖ®¼äµÄÐéÄâ»ú·ÃÎÊ·½Ê½ÇŽӡ¢natµÄ¡£
ÈÝÆ÷ÌØÊ⹦ÄÜ£¬ÔÚÈÝÆ÷ÄÚ²¿ÓÐ6¸ö¸ôÀëµÄÃû³Æ¿Õ¼ä£¬user,mount,pid,uts,net,ipc£¬Ã¿¸öÈÝÆ÷¶¼ÓÐ×ÔÉí¶ÀÁ¢µÄ×ÊÔ´£¬¼ÙÉèÈÃÿ¸öÈÝÆ÷¶¼ÓиôÀë¶ø¶ÀÁ¢µÄuser,mount,pid,¶øuts,net,ipcÕâÈý¸ö×ÊÔ´Êǹ²ÏíʹÓõģ¬ÓµÓÐͬһ¸öÍø¿¨£¬Í¬Ò»×éÍøÂçÐÒéÕ»£¬ÓÐͬһ¸öÖ÷»úÃûºÍÓòÃû£¬¶ÔÍâʹÓÃͬһ¸öIPµØÖ·£¬ÓŵãÊÇÈçµÚÒ»¸öÈÝÆ÷ʹÓõÄtomcat·þÎñ£¬µÚ¶þ¸öÈÝÆ÷µÄÊÇredis·þÎñʱ£¬Èç¹ûtomcatÒª·ÃÎÊredisÖеÄÊý¾Ýʱ£¬ÊÇͬһ¸öÐÒéÕ»£¬Ö®Ç°Èç¹ûÊǸôÀëµÄ£¬Í¨¹ý127À´·ÃÎÊÊDz»¿ÉÒԵģ¬ÊµÏÖÓÐ×Ô¼º¶ÀÁ¢¸ôÀëµÄÃû³Æ¿Õ¼ä£¬È´ÓÖ¹²ÏíÒ»²¿·ÖÃû³Æ¿Õ¼ädockerÖеÄhostģʽ
ÎïÀí»úÒ²ÓÐÃû³Æ¿Õ¼ä£¬Ò²ÈÃÈÝÆ÷ʹÓÃÎïÀí»úµÄÃû³Æ¿Õ¼ä£¬ÈÝÆ÷ºÍÈÝÆ÷Ö®¼ä¿ÉÒÔ¹²ÏíÃû³Æ¿Õ¼ä£¬ËùÒÔÒ²¿ÉÒÔ¹²ÏíÎïÀí·þÎñÆ÷µÄÃû³Æ¿Õ¼äÀ´Ê¹Óã¬Èç¿ÉÒÔÈõÚÒ»¸öÈÝÆ÷Ö±½ÓʹÓÃÎïÀí»úµÄÃû³Æ¿Õ¼ä£¬Ò²¾ÍÊÇÈÝÆ÷ÖÐÐÞ¸ÄÍø¿¨ÖеÄÐÅÏ¢ÊÇÖ±½Ó¸ÄÎïÀí»úÖеÄÍø¿¨µÄÐÅÏ¢µÄ£¬µÚ¶þ¸öÈÝÆ÷¿ÉÒÔʹÓÃÇŽӣ¬ËùÒÔµÚÒ»¸öÈÝÆ÷¾ÍÓµÓÐÁ˹ÜÀíÍøÂçµÄÌØÈ¨host¾ÍÊÇÈÃÈÝÆ÷ʹÓÃËÞÖ÷»úµÄÍøÂçÃû³Æ¿Õ¼ä

dockerÖеÄnoneģʽ
É趨ÈÝÆ÷ʹÓÃnoneÍøÂç±íʾûµÄÍøÂ磬Ï൱ÓÚûÓÐÍø¿¨£¬Ö»ÓÐLoop½Ó¿Ú£¬ÓÐЩÈÝÆ÷¿ÉÄÜÖ»ÐèÒª²»ÏòÍâͨѶµÄ
dockerÍøÂçÄ£ÐÍ
closed container ·â±ÕÊ½ÍøÂç½Ó¿Ú£¬Ö»ÓÐLoop½Ó¿Ú
bridged container ÇŽӣ¬Ê¹ÓÃÈÝÆ÷½Ó¿ÚÁ¬½Óµ½docker0ÉÏ£¬Ä¬ÈÏÉèÖõÄ
jonied container ÁªÃËʽÈÝÆ÷ÍøÂ磬һ²¿·ÖÃû³Æ¿Õ¼äÊǸôÀëµÄ£¬Îļþϵͳ£¬Óû§£¬pidÊǸ÷×Ե쬯äËûÈý¸öÊǹ²ÏíµÄ£¬
Á½¸öÈÝÆ÷¿ÉÒÔʹÓÃloop½Ó¿ÚÀ´Í¨Ñ¶ ,¿ª·ÅʽÈÝÆ÷ÍøÂç,Ö±½Ó¹²ÏíÎïÀí»úµÄÍøÂç½Ó¿Ú
[root@node1 ~]# docker network inspect bridge|grep
bridge.name
"com.docker.network.bridge.name":"docker0",#bridgeÍøÂçËù¹ØÁªµÄÊÇdocker0

|