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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
ÈÝÆ÷ÐéÄâ»¯Ö®ÍøÂç¸ÅÊö
 
  3305  次浏览      27
 2019-5-9 
 
±à¼­ÍƼö:

±¾ÎÄÀ´×ÔÓÚ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

   
3305 ´Îä¯ÀÀ       27
????

HTTP????
nginx??????
SD-WAN???
5G?????
 
????

??????????
IPv6???????
??????????
???????
????

????????
????????
???????????????
??????????