ÔÚ´ó¹æÄ£»¥ÁªÍøÓ¦ÓÃÖУ¬¸ºÔؾùºâÉ豸ÊDZز»¿ÉÉÙµÄÒ»¸ö½Úµã£¬Ô´ÓÚ»¥ÁªÍøÓ¦Óõĸ߲¢·¢ºÍ´óÁ÷Á¿µÄ³å»÷ѹÁ¦£¬ÎÒÃÇͨ³£»áÔÚ·þÎñ¶Ë²¿Êð¶à¸öÎÞ״̬µÄÓ¦Ó÷þÎñÆ÷ºÍÈô¸ÉÓÐ״̬µÄ´æ´¢·þÎñÆ÷£¨Êý¾Ý¿â¡¢»º´æµÈµÈ£©¡£
Ò»¡¢¸ºÔؾùºâµÄ×÷ÓÃ
¸ºÔؾùºâÉ豸µÄÈÎÎñ¾ÍÊÇ×÷ΪӦÓ÷þÎñÆ÷Á÷Á¿µÄÈë¿Ú£¬ÌôÑ¡×îºÏÊʵÄһ̨·þÎñÆ÷£¬½«¿Í»§¶ËµÄÇëÇóת·¢¸øËü´¦Àí£¬ÊµÏÖ¿Í»§¶Ëµ½ÕæÊµ·þÎñ¶ËµÄ͸Ã÷ת·¢¡£×î½ü¼¸ÄêºÜ»ðµÄ¡¸ÔƼÆË㡹ÒÔ¼°·Ö²¼Ê½¼Ü¹¹£¬±¾ÖÊÉÏÒ²Êǽ«ºó¶Ë·þÎñÆ÷×÷Ϊ¼ÆËã×ÊÔ´¡¢´æ´¢×ÊÔ´£¬ÓÉij̨¹ÜÀí·þÎñÆ÷·â×°³ÉÒ»¸ö·þÎñ¶ÔÍâÌṩ£¬¿Í»§¶Ë²»ÐèÒª¹ØÐÄÕæÕýÌṩ·þÎñµÄÊÇÄĄ̈»úÆ÷£¬ÔÚËü¿´À´£¬¾ÍºÃÏñËüÃæ¶ÔµÄÊÇһ̨ӵÓнüºõÎÞÏÞÄÜÁ¦µÄ·þÎñÆ÷£¬¶ø±¾ÖÊÉÏ£¬ÕæÕýÌṩ·þÎñµÄ£¬ÊǺó¶ËµÄ¼¯Èº¡£
Ò»¸öµäÐ͵Ļ¥ÁªÍøÓ¦ÓõÄÍØÆË½á¹¹ÊÇÕâÑùµÄ£º

¶þ¡¢¸ºÔؾùºâµÄÀàÐÍ
¸ºÔؾùºâ¿ÉÒÔ²ÉÓÃÓ²¼þÉ豸£¬Ò²¿ÉÒÔ²ÉÓÃÈí¼þ¸ºÔØ¡£
ÉÌÓÃÓ²¼þ¸ºÔØÉ豸³É±¾Í¨³£½Ï¸ß£¨Ò»Ì¨¼¸Ê®ÍòÉϰÙÍòºÜÕý³££©£¬ËùÒÔÔÚÌõ¼þÔÊÐíµÄÇé¿öÏÂÎÒÃÇ»á²ÉÓÃÈí¸ºÔØ£¬Èí¸ºÔØ½â¾öµÄÁ½¸öºËÐÄÎÊÌâÊÇ£ºÑ¡Ë¡¢×ª·¢£¬ÆäÖÐ×îÖøÃûµÄÊÇLVS£¨Linux
Virtual Server£©¡£
Èý¡¢Èí¸ºÔØ¡ª¡ªLVS
LVSÊÇËÄ²ã¸ºÔØ¾ùºâ£¬Ò²¾ÍÊÇ˵½¨Á¢ÔÚOSIÄ£Ð͵ĵÚËIJ㡪¡ª´«Êä²ãÖ®ÉÏ£¬´«Êä²ãÉÏÓÐÎÒÃÇÊìϤµÄTCP/UDP£¬LVSÖ§³ÖTCP/UDPµÄ¸ºÔؾùºâ¡£
LVSµÄת·¢Ö÷Ҫͨ¹ýÐÞ¸ÄIPµØÖ·£¨NATģʽ£¬·ÖΪԴµØÖ·ÐÞ¸ÄSNATºÍÄ¿±êµØÖ·ÐÞ¸ÄDNAT£©¡¢ÐÞ¸ÄÄ¿±êMAC£¨DRģʽ£©À´ÊµÏÖ¡£
ÄÇôΪʲôLVSÊÇÔÚµÚËIJã×ö¸ºÔؾùºâ£¿
Ê×ÏÈLVS²»ÏñHAProxyµÈÆß²ãÈí¸ºÔØÃæÏòµÄÊÇHTTP°ü£¬ËùÒÔÆß²ã¸ºÔØ¿ÉÒÔ×öµÄURL½âÎöµÈ¹¤×÷£¬LVSÎÞ·¨Íê³É¡£Æä´Î£¬Ä³´ÎÓû§·ÃÎÊÊÇÓë·þÎñ¶Ë½¨Á¢Á¬½Óºó½»»»Êý¾Ý°üʵÏֵģ¬Èç¹ûÔÚµÚÈý²ãÍøÂç²ã×ö¸ºÔؾùºâ£¬ÄÇô½«Ê§È¥¡¸Á¬½Ó¡¹µÄÓïÒå¡£Èí¸ºÔØÃæÏòµÄ¶ÔÏóÓ¦¸ÃÊÇÒ»¸öÒѾ½¨Á¢Á¬½ÓµÄÓû§£¬¶ø²»ÊÇÒ»¸ö¹ÂÁãÁãµÄIP°ü¡£ºóÃæ»á¿´µ½£¬Êµ¼ÊÉÏLVSµÄ»úÆ÷´úÌæÕæÊµµÄ·þÎñÆ÷ÓëÓû§Í¨¹ýTCPÈý´ÎÎÕÊÖ½¨Á¢ÁËÁ¬½Ó£¬ËùÒÔLVSÊÇÐèÒª¹ØÐÄ¡¸Á¬½Ó¡¹¼¶±ðµÄ״̬µÄ¡£
LVSµÄ¹¤×÷ģʽÖ÷ÒªÓÐ4ÖÖ£º
1.DR
2.NAT
3.TUNNEL
4.Full-NAT
ÕâÀïÌôÑ¡³£ÓõÄDR¡¢NAT¡¢Full-NATÀ´¼òµ¥½éÉÜһϡ£
1¡¢DR

ÇëÇóÓÉLVS½ÓÊÜ£¬ÓÉÕæÊµÌṩ·þÎñµÄ·þÎñÆ÷£¨RealServer, RS£©Ö±½Ó·µ»Ø¸øÓû§£¬·µ»ØµÄʱºò²»¾¹ýLVS¡£
DRģʽÏÂÐèÒªLVSºÍ°ó¶¨Í¬Ò»¸öVIP£¨RSͨ¹ý½«VIP°ó¶¨ÔÚloopbackʵÏÖ£©¡£
Ò»¸öÇëÇó¹ýÀ´Ê±£¬LVSÖ»ÐèÒª½«ÍøÂçÖ¡µÄMACµØÖ·ÐÞ¸ÄΪijһ̨RSµÄMAC£¬¸Ã°ü¾Í»á±»×ª·¢µ½ÏàÓ¦µÄRS´¦Àí£¬×¢Òâ´ËʱµÄÔ´IPºÍÄ¿±êIP¶¼Ã»±ä£¬LVSÖ»ÊÇ×öÁËÒ»ÏÂÒÆ»¨½Óľ¡£
RSÊÕµ½LVSת·¢À´µÄ°ü£¬Á´Â·²ã·¢ÏÖMACÊÇ×Ô¼ºµÄ£¬µ½ÉÏÃæµÄÍøÂç²ã£¬·¢ÏÖIPÒ²ÊÇ×Ô¼ºµÄ£¬ÓÚÊÇÕâ¸ö°ü±»ºÏ·¨µØ½ÓÊÜ£¬RS¸ÐÖª²»µ½Ç°ÃæÓÐLVSµÄ´æÔÚ¡£
¶øµ±RS·µ»ØÏìӦʱ£¬Ö»ÒªÖ±½ÓÏòÔ´IP£¨¼´Óû§µÄIP£©·µ»Ø¼´¿É£¬²»ÔÙ¾¹ýLVS¡£
DRģʽÊÇÐÔÄÜ×îºÃµÄÒ»ÖÖģʽ¡£
2¡¢NAT

NAT£¨Network Address Translation£©ÊÇÒ»ÖÖÍâÍøºÍÄÚÍøµØÖ·Ó³ÉäµÄ¼¼Êõ¡£
NATģʽÏ£¬ÍøÂ籨µÄ½ø³ö¶¼Òª¾¹ýLVSµÄ´¦Àí¡£LVSÐèÒª×÷ΪRSµÄÍø¹Ø¡£
µ±°üµ½´ïLVSʱ£¬LVS×öÄ¿±êµØÖ·×ª»»£¨DNAT£©£¬½«Ä¿±êIP¸ÄΪRSµÄIP¡£RS½ÓÊÕµ½°üÒԺ󣬷·ðÊǿͻ§¶ËÖ±½Ó·¢¸øËüµÄÒ»Ñù¡£
RS´¦ÀíÍ꣬·µ»ØÏìӦʱ£¬Ô´IPÊÇRS IP£¬Ä¿±êIPÊǿͻ§¶ËµÄIP¡£
ÕâʱRSµÄ°üͨ¹ýÍø¹Ø£¨LVS£©ÖÐת£¬LVS»á×öÔ´µØÖ·×ª»»£¨SNAT£©£¬½«°üµÄÔ´µØÖ·¸ÄΪVIP£¬ÕâÑù£¬Õâ¸ö°ü¶Ô¿Í»§¶Ë¿´ÆðÀ´¾Í·Â·ðÊÇLVSÖ±½Ó·µ»Ø¸øËüµÄ¡£¿Í»§¶ËÎÞ·¨¸ÐÖªµ½ºó¶ËRSµÄ´æÔÚ¡£
3¡¢Full-NAT
ÎÞÂÛÊÇDR»¹ÊÇNATģʽ£¬²»¿É±ÜÃâµÄ¶¼ÓÐÒ»¸öÎÊÌ⣺LVSºÍRS±ØÐëÔÚͬһ¸öVLANÏ£¬·ñÔòLVSÎÞ·¨×÷ΪRSµÄÍø¹Ø¡£
ÕâÒý·¢µÄÁ½¸öÎÊÌâÊÇ£º
1¡¢Í¬Ò»¸öVLANµÄÏÞÖÆµ¼ÖÂÔËά²»·½±ã£¬¿çVLANµÄRSÎÞ·¨½ÓÈë¡£
2¡¢LVSµÄˮƽÀ©Õ¹Êܵ½ÖÆÔ¼¡£µ±RSˮƽÀ©ÈÝʱ£¬×ÜÓÐÒ»ÌìÆäÉϵĵ¥µãLVS»á³ÉΪƿ¾±¡£
Full-NATÓɴ˶øÉú£¬½â¾öµÄÊÇLVSºÍRS¿çVLANµÄÎÊÌ⣬¶ø¿çVLANÎÊÌâ½â¾öºó£¬LVSºÍRS²»ÔÙ´æÔÚVLANÉϵĴÓÊô¹ØÏµ£¬¿ÉÒÔ×öµ½¶à¸öLVS¶ÔÓ¦¶à¸öRS£¬½â¾öˮƽÀ©ÈݵÄÎÊÌâ¡£
Full-NATÏà±ÈNATµÄÖ÷Òª¸Ä½øÊÇ£¬ÔÚSNAT/DNATµÄ»ù´¡ÉÏ£¬¼ÓÉÏÁíÒ»ÖÖת»»£¬×ª»»¹ý³ÌÈçÏ£º

ÔÚ°ü´ÓLVSתµ½RSµÄ¹ý³ÌÖУ¬Ô´µØÖ·´Ó¿Í»§¶ËIP±»Ìæ»»³ÉÁËLVSµÄÄÚÍøIP¡£
ÄÚÍøIPÖ®¼ä¿ÉÒÔͨ¹ý¶à¸ö½»»»»ú¿çVLANͨÐÅ¡£
µ±RS´¦ÀíÍê½ÓÊܵ½µÄ°ü£¬·µ»ØÊ±£¬»á½«Õâ¸ö°ü·µ»Ø¸øLVSµÄÄÚÍøIP£¬ÕâÒ»²½Ò²²»ÊÜÏÞÓÚVLAN¡£
LVSÊÕµ½°üºó£¬ÔÚNATģʽÐÞ¸ÄÔ´µØÖ·µÄ»ù´¡ÉÏ£¬ÔÙ°ÑRS·¢À´µÄ°üÖеÄÄ¿±êµØÖ·´ÓLVSÄÚÍøIP¸ÄΪ¿Í»§¶ËµÄIP¡£
Full-NATÖ÷ÒªµÄ˼ÏëÊǰÑÍø¹ØºÍÆäÏ»úÆ÷µÄͨÐÅ£¬¸ÄΪÁËÆÕͨµÄÍøÂçͨÐÅ£¬´Ó¶ø½â¾öÁË¿çVLANµÄÎÊÌâ¡£²ÉÓÃÕâÖÖ·½Ê½£¬LVSºÍRSµÄ²¿ÊðÔÚVLANÉϽ«²»ÔÙÓÐÈκÎÏÞÖÆ£¬´ó´óÌá¸ßÁËÔËά²¿ÊðµÄ±ãÀûÐÔ¡£
4¡¢Session
¿Í»§¶ËÓë·þÎñ¶ËµÄͨÐÅ£¬Ò»´ÎÇëÇó¿ÉÄܰüº¬¶à¸öTCP°ü£¬LVS±ØÐ뱣֤ͬһÁ¬½ÓµÄTCP°ü£¬±ØÐ뱻ת·¢µ½Í¬Ò»Ì¨RS£¬·ñÔò¾ÍÂÒÌ×ÁË¡£ÎªÁËÈ·±£ÕâÒ»µã£¬LVSÄÚ²¿Î¬»¤×ÅÒ»¸öSessionµÄHash±í£¬Í¨¹ý¿Í»§¶ËµÄijЩÐÅÏ¢¿ÉÒÔÕÒµ½Ó¦¸Ãת·¢µ½ÄÄһ̨RSÉÏ¡£
5¡¢LVS¼¯Èº»¯
²ÉÓÃFull-NATģʽºó£¬¿ÉÒԴLVSµÄ¼¯Èº£¬ÍØÆË½á¹¹ÈçÏÂͼ£º

6¡¢ÈÝÔÖ
ÈÝÔÖ·ÖΪRSµÄÈÝÔÖºÍLVSµÄÈÝÔÖ¡£
RSµÄÈÝÔÖ¿ÉÒÔͨ¹ýLVS¶¨ÆÚ½¡¿µ¼ì²âʵÏÖ£¬Èç¹ûij̨RSʧȥÐÄÌø£¬ÔòÈÏΪÆäÒѾÏÂÏߣ¬²»»áÔÚת·¢µ½¸ÃRSÉÏ¡£
LVSµÄÈÝÔÖ¿ÉÒÔͨ¹ýÖ÷±¸+ÐÄÌøµÄ·½Ê½ÊµÏÖ¡£Ö÷LVSʧȥÐÄÌøºó£¬±¸LVS¿ÉÒÔ×÷ΪÈȱ¸Á¢¼´Ìæ»»¡£
ÈÝÔÖÖ÷ÒªÊÇ¿¿KeepAlivedÀ´×öµÄ¡£ |