ÃÑ ÆäÀÌÁö ¼ö : 3224
![]()
|
Facebook Joinc ±×·ì
Joinc QA »çÀÌÆ®
![]()
Tweet
joinc´Â Firefox¿Í chrome¿¡¼ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù. 1 Network address translation
"ÄÄÇ»ÅÍ ³×Æ®¿öÅ©¿¡¼ NAT´Â IP ÆÐŶ Çì´õÀÇ IP ÁÖ¼Ò¸¦ º¯°æÇÏ´Â °úÁ¤À» ÀǹÌÇÑ´Ù" ¶ó°í ¼³¸íÀ» ÇÕ´Ï´Ù. ´ëÃæ Àǹ̴ ¾Ë°Ú´Âµ¥, ¾îµð¿¡ ¾µ¸ð°¡ ÀÖÀ»Áö°¡ ±Ã±ÝÇÕ´Ï´Ù.
ÀÎÅͳÝÀº °ø°³¸Á ÀÔ´Ï´Ù. Public ¸ÁÀ̶ó°í ÇÏÁÒ. ¸ðµç Á¤º¸°¡ °ø°³µË´Ï´Ù. "¸ðµç°Ô °ø°³µÈ´Ù!!" ¸ÚÁø ¸»À̱ä ÇÏÁö¸¸ ¿ÜºÎ·Î ºÎÅÍ °Ý¸®µÈ ¸Á¿¡¼ Ȱµ¿ÇÏ°í ½ÍÀ» ¶§µµ Àֱ⠸¶·ÃÀÔ´Ï´Ù. ȸ»ç ¾÷¹«¿¡ ¾²´Â ¸ÁÀÌ ±×·¸½À´Ï´Ù. ±×·¡¼ ¿ÜºÎ·Î ºÎÅÍ °Ý¸®µÈ ¸ÁÀ» ¸¸µå´Âµ¥, Private ¸ÁÀ̶ó°í ÇÕ´Ï´Ù.
private¸ÁÀº private¸Á ±¸¼º¿ëÀ¸·Î ³²°ÜµÐ ip ÁÖ¼Ò¿µ¿ªÀ» »ç¿ëÇÕ´Ï´Ù. °¢ Ŭ·¡½º º°·Î private ¸Á ±¸¼º¿ë ÁÖ¼Ò¸¦ ³²°Üµ×½À´Ï´Ù.
ȸ»ç °³¹ßÆÀÀÌ »ç¿ëÇÒ private¸ÁÀ» 192.168.100.0/24·Î ±¸ÃàÀ» Çϸé ÀÎÅͳݿ¡¼ °Ý¸®ÇÒ ¼ö ÀÖÀ» °Ì´Ï´Ù.
°³¹ß¸ÁÀÇ IP´Â ¿ÜºÎ¿¡¼ Á¢±ÙÇÒ ¼ö ¾øÀ¸¹Ç·Î ¾ÈÀüÇÏ°Ô ¿î¿ëÇÒ ¼ö ÀÖÀ» °Ì´Ï´Ù.
ÇÏÁö¸¸ ¹®Á¦°¡ ÀÖ½À´Ï´Ù. ¿ÜºÎ¿¡¼ °Ý¸®µÉ »Ó¸¸ ¾Æ´Ï¶ó ³»ºÎ¿¡¼ ¿ÜºÎ·Î ³ª°¥ ¼ö ¾ø±â ¶§¹®ÀÌ. °³¹ßÀÚ ÀÔÀå¿¡¼´Â ÀÎÅͳÝÀ» »ç¿ëÇÒ ¼ö ¾ø°Ô µÇ´Â °ÅÁÒ.
±×·³ IP ÁÖ¼Ò¸¦ ¹Ù²Ù¸é ¾î¶»°Ô µÉ±î¿ä ? 192.168.100.5 ÁÖ¼Ò°¡ switch¸¦ ÅëÇØ¼ ÀÎÅͳÝÀ¸·Î ³ª°¥ ¶§, source ip ÁÖ¼Ò¸¦ Public IP ÁÖ¼Ò·Î ¹Ù²ã ¹ö¸®´Â °ÅÁÒ.
switch¿¡ ÆÐŶÀÌ µµÂøÇϸé source ipÁÖ¼Ò¸¦ 201.12.23.44·Î ¹Ù²ã¼ ÀÎÅͳÝÀ¸·Î º¸³»´Â °Ì´Ï´Ù. ÀÌ ÁÖ¼Ò´Â ÀÎÅͳݿ¡ ¾Ë·ÁÁø ÁÖ¼ÒÀ̹ǷΠÀÎÅÍ³Ý µ¥ÀÌÅÍ Åë½ÅÀÌ °¡´ÉÇØÁö°ÚÁÒ. switch´Â NAT¸¦ Àû¿ëÇÑ ÆÐŶÀÇ Á¤º¸¸¦ À¯ÁöÇÕ´Ï´Ù. ±×·¡¼ NATµÈ ÆÐŶÀÌ µé¾î¿À¸é, À̸¦ È®ÀÎÇØ¼ ¼ö½Å ÆÐŶÀÇ destination address¸¦ 192.168.100.5·Î ¹Ù²ã¼ ³»ºÎ¸ÁÀ¸·Î º¸³À´Ï´Ù. 1.1 SNAT
À§ ¿¹¿¡¼´Â Source IP ÁÖ¼Ò¸¦ º¯°æÇß½À´Ï´Ù. À̰ÍÀ» SNAT¶ó°í ÇÕ´Ï´Ù. SNAT¸¦ ÇÏ¸é ³»ºÎ ÀÎÅͳݿ¡¼ ¿ÜºÎ ÀÎÅͳÝÀ¸·Î ³ª°¥ ¼ö ÀÖ°ÚÁÒ ? °ú°Å ¸®´ª½º·Î Ȩ³×Æ®¿öÅ©¸¦ ±¸¼ºÇϱâ À§Çؼ »ç¿ëÇß´ø IP ¸Å½ºÄ¿·¹À̵ù°ú °°Àº ±â¼úÀ̶ó°í º¸½Ã¸é µË´Ï´Ù.
SNAT´Â ³»ºÎ¿¡¼ ¿ÜºÎ·Î ³ª°¥ ¼ö´Â ÀÖÁö¸¸, ¿ÜºÎ¿¡¼ ³»ºÎ·Î µé¾î¿Ã ¼ö´Â ¾ø½À´Ï´Ù. ¿ÜºÎ¿¡¼ ³»ºÎ·Î µé¾î¿À·Á¸é DNAT¸¦ »ç¿ëÇØ¾ß ÇÕ´Ï´Ù. DNAT´Â ´ÙÀ½ Àå¿¡¼ ÀÚ¼¼È÷ ´Ù·ê °Ì´Ï´Ù.
¸®´ª½º¿¡¼´Â iptables¸¦ Á¶ÀÛÇØ¼ SNAT¸¦ ±¸¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×·³ ½ÇÁ¦ ±¸¼ºÀ» ÇØº¸µµ·Ï ÇϰڽÀ´Ï´Ù.
SNAT ±¸¼ºÀ» À§Çؼ´Â ÃÖ¼Ò 2°³ÀÇ ÄÄÇ»ÅͰ¡ ÀÖ¾î¾ß ÇÕ´Ï´Ù. SNAT¸¦ ¼öÇàÇÏ´Â router ÄÄÇ»ÅÍ, ±×¸®°í ³»ºÎ ¸Á ±¸¼ºÀ» À§ÇÑ ÄÄÇ»ÅÍ Çϳª. Àú´Â virtualbox¸¦ ÀÌ¿ëÇØ¼ Å×½ºÆ® ȯ°æÀ» ±¸ÃàÇß½À´Ï´Ù. ¿î¿µÃ¼Á¦ ȯ°æÀº ´ÙÀ½°ú °°½À´Ï´Ù.
# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 172.30.1.0 0.0.0.0 255.255.255.0 U 2 0 0 wlan0 192.168.56.0 0.0.0.0 255.255.255.0 U 0 0 0 vboxnet0 0.0.0.0 172.30.1.254 0.0.0.0 UG 0 0 0 wlan0ÀÎÅͳÝÀ¸·Î ³ª°¡´Â ÀÎÅÍÆäÀ̽º´Â wlan0ÀÔ´Ï´Ù.
Test VMÀÇ routing Å×À̺í ÀÔ´Ï´Ù. °ÔÀÌÆ®¿þÀ̰¡ 192.168.56.1ÀÎ °ÍÀ» È®ÀÎÇÒ ¼ö Àֳ׿ä. # route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.56.0 * 255.255.255.0 U 0 0 0 eth0 default 192.168.56.1 0.0.0.0 UG 100 0 0 eth0
Test VM¿¡¼ 192.168.100.1·ÎÀÇ Åë½ÅÀº ¹®Á¦°¡ ¾ø½À´Ï´Ù. ÇÏÁö¸¸ ÀÎÅÍ³Ý Åë½ÅÀÌ ºÒ°¡´ÉÇÕ´Ï´Ù. ±×·³ ÀÎÅÍ³Ý Åë½ÅÀÌ °¡´ÉÇϵµ·Ï Linux Box¿¡ SNAT¸¦ Àû¿ëÇØ º¸°Ú½À´Ï´Ù. # iptables -t nat -A POSTROUTING -s 192.168.56.0/24 -o wlan0 -j SNAT --to 172.30.1.3Ãâ¹ßÁö ÁÖ¼Ò°¡ 192.168.56.0/24ÀÎ ÆÐŶ¿¡ ´ëÇØ¼ nat·êÀ» °Ì´Ï´Ù. ÀÌ ÆÐŶÀº ÀÎÅͳÝÀ¸·Î ³ª°¡¾ß ÇϰÚÁÒ. ±×·¯´Ï wlan0À¸·Î º¸³»°Ú½À´Ï´Ù. SNAT¸¦ Àû¿ëÇϱâ·Î Çß½À´Ï´Ù. SNAT¸¦ Àû¿ëÇÑ´Ù´Â °ÍÀº source ip address¸¦ º¯°æÇÑ´Ù´Â ¾ê±âÀÔ´Ï´Ù. --to ¿É¼ÇÀ» ÀÌ¿ëÇØ¼ ¼Ò½º ¾ÆÀÌÇÇ ÁÖ¼Ò¸¦ 172.30.1.3À¸·Î ¹Ù²Ù±â·Î Çß½À´Ï´Ù. POSTROUTING´Â ¶ó¿ìÆÃÀÌ ³¡³ ÈÄ nat·êÀ» Àû¿ëÇϰڴٴ ÀǹÌÀÔ´Ï´Ù.
nat·êÀ» Àû¿ëÇÑ ÈÄ ¸®´ª½º Ä¿³ÎÀÇ ip_forward¸¦ 1·Î º¯°æÇØ ÁÝ´Ï´Ù. # echo 1 > /proc/sys/net/ipv4/ip_forwardsysctlÀ» ÀÌ¿ëÇØ¼ °ªÀ» º¯°æÇÒ ¼ö ÀÖ½À´Ï´Ù. # sysctl -w net.ipv4.ip_forward=1ÀÌ Á¤º¸´Â Èֹ߼ºÀÔ´Ï´Ù. ºÎÆÃÇÏ¸é ³¯¾Æ°¡´Â Á¤º¸ÁÒ. sysctl.conf¿¡ Ãß°¡ÇÏ¸é ±âº» °ªÀ¸·Î À¯Áö µË´Ï´Ù. # cat /etc/sysctl.conf .... net.ipv4.ip_forward=1 ....
nat·êÀÌ Àß Àû¿ë µÆ´ÂÁö Çѹø È®ÀÎÇØ º¸°Ú½À´Ï´Ù. # iptables -t nat -L Chain POSTROUTING (policy ACCEPT) target prot opt source destination SNAT all -- 192.168.56.0/24 anywhere to:172.30.1.3
ÀÌÁ¦ test vm (192.168.56.101)¿¡¼ ÀÎÅͳÝÀÌ Àß µÇ´ÂÁö È®ÀÎ ÇØº¸°Ú½À´Ï´Ù. ¸ÕÀú ±¸±Û dns ¼¹ö·Î ping Å×½ºÆ®¸¦ Çß½À´Ï´Ù. # ping 8.8.8.8 64 bytes from 8.8.8.8: icmp_req=1 ttl=48 time=206 ms 64 bytes from 8.8.8.8: icmp_req=2 ttl=48 time=204 msÀß µÇ´Â ±º¿ä. ½ÇÁ¦ ÆÐŶÀÇ ³»¿ëÀ» »ìÆìº¸°í ½Í¾î¼, Linux Box¿¡¼ tcpdump·Î icmp ÆÐŶÀ» ĸÃçÇß½À´Ï´Ù. # tcpdump icmp -n tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on wlan0, link-type EN10MB (Ethernet), capture size 65535 bytes 23:30:35.869225 IP 172.30.1.3 > 8.8.8.8: ICMP echo request, id 1562, seq 1, length 64 23:30:36.072678 IP 8.8.8.8 > 172.30.1.3: ICMP echo reply, id 1562, seq 1, length 64 23:30:36.870535 IP 172.30.1.3 > 8.8.8.8: ICMP echo request, id 1562, seq 2, length 64 23:30:37.074904 IP 8.8.8.8 > 172.30.1.3: ICMP echo reply, id 1562, seq 2, length 64Ãâ¹ßÁö¿Í ¸ñÀûÁöÀÇ ÁÖ¼Ò°¡ 192.168.56.101ÀÌ ¾Æ´Ñ 172.30.1.3À¸·Î º¯°æµÈ°É È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù. 192.168.56.101¿¡¼ icmp ÆÐŶÀ» ĸÃçÇß½À´Ï´Ù. # tcpdump icmp -n 23:36:16.883660 IP 192.168.56.101 > 8.8.8.8: ICMP echo request, id 1746, seq 1, length 64 23:36:17.086226 IP 8.8.8.8 > 192.168.56.101: ICMP echo reply, id 1746, seq 1, length 64ÁÖ¼Ò°¡ ´Ù½Ã 192.168.56.101·Î ¹Ù²ï °ÍÀ» È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù. SNAT°¡ Àß Àû¿ëµÇ°í Àֳ׿ä. 1.2 Masquerade
±âº»ÀûÀ¸·Î masquerade¿Í snat´Â °°ÀºÀÏÀ» ÇÑ´Ù. À¯ÀÏÇÑ Â÷ÀÌÁ¡Àº snat´Â º¯°æÇÒ source ip¸¦ Á÷Á¢ ¸í½ÃÇϴµ¥, masquerade´Â ¸í½ÃÇÏÁö ¾Ê´Â´Ù´Â Á¡ÀÌ´Ù. masquerade·êÀ» ¼³Á¤ÇÒ °æ¿ì ¾Ë¾Æ¼ NICÀÇ ÀÎÅÍ³Ý ÁÖ¼Ò¸¦ ÇÒ´çÇÑ´Ù. # iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE 1.3 rp_filter
rp_filter´Â reverse path filter ¼³Á¤À» À§ÇÑ Ä¿³Î ¿É¼ÇÀÔ´Ï´Ù. ±âº» °ªÀº 1Àε¥, ÀÌ °æ¿ì ¿î¿µÃ¼Á¦´Â ÆÐŶÀÇ Ãâ¹ßÁö ÁÖ¼Ò°¡ ¶ó¿ìÆÃ Å×ÀÌºí¿¡ µî·ÏµÇÀÖ´ÂÁö¸¦ °Ë»çÇÕ´Ï´Ù. ¸¸¾à µî·ÏµÇÀÖÁö ¾Ê´Ù¸é ÆÐŶÀ» µå·ÓÇØ ¹ö¸³´Ï´Ù. NAT ÀåºñÀÇ °æ¿ì ³×Æ®¿öÅ© ±¸¼º¿¡ µû¶ó¼ private NICÀÇ rp_filter ¿É¼ÇÀ» ²¨¾ß ÇÕ´Ï´Ù. # echo 0 > /proc/sys/net/ipv4/conf/eth*/rp_filter 1.4 DNAT
DNAT´Â SNATÀÇ ¹Ý´ëÀÔ´Ï´Ù.
NAT¸¦ ÀÌ¿ëÇÏ¸é ¿ÜºÎ ÀÎÅÍ³Ý È¯°æÀ¸·Î ºÎÅÍ ³»ºÎ ³×Æ®¿öÅ© ȯ°æÀ» ¼û±æ ¼ö ÀÖ½À´Ï´Ù. ÇÏÁö¸¸ ¶§¶§·Î ÀÎÅͳÝÀ» ³»ºÎ ³×Æ®¿öÅ©¸¦ Çã¿ëÇØ¾ß ÇÒ ¶§°¡ ÀÖ½À´Ï´Ù. DNAT¸¦ »ç¿ëÇÏ¸é µË´Ï´Ù. SNATÀÇ ¹Ý´ë¶ó°í º¸½Ã¸é µÇ°Ú½À´Ï´Ù. 1.4.1 DNAT¸¦ ÀÌ¿ëÇÑ Load balancing
DNATÀÇ °¡Àå ´ëÇ¥ÀûÀÎ »ç¿ë¿ëµµ´Â ¼ºñ½º Load balancingÀÔ´Ï´Ù. »ç¼³ ³×Æ®¿öÅ©ÀÎ 192.168.0.2, 192.168.0.3 µÎ °³¿¡ À¥ ¼ºñ½º¸¦ ±¸ÃàÀ» Çß´Ù°í °¡Á¤ÇØ º¸°Ú½À´Ï´Ù. ¿ì¸®°¡ ¿øÇÏ´Â °ÍÀº µÎ °³ÀÇ ³»ºÎ À¥ ¼¹ö·Î ºÎÇϸ¦ ºÐ»êÇÏ´Â °Ì´Ï´Ù. À¥ ¼ºñ½º Æ÷Æ® ¹øÈ£´Â 80¹øÀ¸·Î Çß½À´Ï´Ù.
DNAT¸¦ ÀÌ¿ëÇÏ¸é ÆÐŶÀ» ³»ºÎ·Î º¸³¾ ¼ö°¡ ÀÖÀ¸¹Ç·Î, À¥ ¿äûÀ» 192.168.0.2¿Í 192.168.0.3 µÎ °³Áß Çϳª¸¦ ¼±ÅÃÇØ¼ º¸³»µµ·Ï Á¦¾îÇÒ ¼ö ÀÖÀ» °Ì´Ï´Ù. iptable¸¦ ÀÌ¿ëÇØ¼ ÀÌ·± ÀÏÀ» ÇÒ ¼ö°¡ ÀÖÁÒ.
DNAT Å×½ºÆ®¸¦ À§Çؼ ´ÙÀ½°ú °°Àº Å×½ºÆ® ȯ°æÀ» ¸¸µé¾ú½À´Ï´Ù.
Vituralbox¸¦ ÀÌ¿ëÇØ¼ NAT ȯ°æÀ» ¸¸µé°í, 2 °³ÀÇ VM¿¡ Apache À¥ ¼¹ö¸¦ ¼³Ä¡Çß½À´Ï´Ù. Å×½ºÆ®¸¦ À§Çؼ À©µµ¿ì 7ÀÌ ¼³Ä¡µÈ ³ëÆ®ºÏÀ» ÁغñÇß½À´Ï´Ù. DNAT·Î Load balnacing¸¦ Á¦´ë·Î ±¸ÇöÇÑ´Ù¸é, HTTP ¿äûÀÌ Web server 1°ú 2¿¡ Àû´çÈ÷ ºÐ¹èµÅ¾ß ÇÒ °Ì´Ï´Ù.
¾Æ·¡¿Í °°ÀÌ DNAT ¼³Á¤À» ¸¸µé¾ú½À´Ï´Ù. # iptables -t nat -A PREROUTING -i wlan0 -p tcp --dport 80 -m state \ --state NEW -m statistic --mode nth --every 2 --packet 0 -j DNAT --to 192.168.56.102 # iptables -t nat -A PREROUTING -i wlan0 -p tcp --dport 80 -m state \ --state NEW -m statistic --mode nth --every 1 --packet 0 -j DNAT --to 192.168.56.101SNAT¿Í´Â ´Þ¸® PREROUTING·êÀ» Ãß°¡Çß½À´Ï´Ù. ÆÐŶÀÇ IP ÁÖ¼Ò´Â ¶ó¿ìÆÃ µÇ±â Àü¿¡ nat ·êÀÌ °É·Á¾ß Çϱ⠶§¹®ÀÔ´Ï´Ù. ±×·¡¾ß Á¦´ë·Î ¶ó¿ìÆÃÀÌ µÇ´Ï±î¿ä. wlan0 Áï ÀÎÅͳÝÀ¸·Î ºÎÅÍ µé¾î¿À´Â ÆÐŶ Áß ¸ñÀûÁö Æ÷Æ®°¡ 80ÀÎ Æ÷Æ®¿¡ ´ëÇØ¼ ·êÀ» Àû¿ëÇÕ´Ï´Ù.
-m ¿É¼ÇÀ» ÀÌ¿ëÇØ¼ ¸ðµâÀ» ·ÎµùÇÒ ¼ö ÀÖ½À´Ï´Ù. ¸ÕÀú state ¸ðµâÀ» ·ÎµùÇߴµ¥¿ä. ÀÌ ¸ðµâÀ» ÀÌ¿ëÇÏ¸é ÆÐŶÀÇ ¿¬°á »óÅ¿¡ µû¸¥ Á¶°ÇÀ» ÁÙ ¼ö°¡ ÀÖ½À´Ï´Ù. ESTABLISHED, 'NEWµîÀ» ÁÙ ¼ö ÀÖ½À´Ï´Ù. NEW´Â »õ·Î ¿¬°áÀ» ¸Î´Â °ÍÀ» ÀǹÌÇÕ´Ï´Ù.
´ÙÀ½ statistic ¸ðµâÀ» ·ÎµùÇߴµ¥¿ä. ÀÌ ¸ðµâÀº Åë°è¿¡ ±â¹ÝÇØ¼ ÆÐŶ¿¡ Á¶°ÇÀ» ÁÖ±â À§Çؼ »ç¿ëÇÕ´Ï´Ù. random°ú nth°¡ Àִµ¥, Àü nth¸¦ »ç¿ëÇß½À´Ï´Ù. ù¹øÂ° ¿¬°áÀº 101, µÎ¹øÂ° ¿¬°áÀº 102·Î º¸³»¶ó ÀÌ·± ÀǹÌÀÔ´Ï´Ù. random À̶ó¸é Áö ¸¾´ë·Î º¸³»°ÚÁÒ.
windows 7 ³ëÆ®ºÏ¿¡¼ 172.30.1.3À¸·Î ¸î¹øÀÇ http ¿äûÀ» º¸³Â½À´Ï´Ù. Àß µÇ³×¿ä. ÆÐŶÀÌ ¾î¶»°Ô ºÐ¹èµÆ´ÂÁö iptables·Î È®ÀÎÇØ ºÃ½À´Ï´Ù. # iptables -t nat -L -v
Chain PREROUTING (policy ACCEPT 293 packets, 52270 bytes)
pkts bytes target prot opt in out source destination
6 312 DNAT tcp -- wlan0 any anywhere anywhere
tcp dpt:www state NEW statistic mode nth every 2 packet 1 to:192.168.56.102
3 156 DNAT tcp -- wlan0 any anywhere anywhere
tcp dpt:www state NEW statistic mode nth every 2 to:192.168.56.101
1.4.2 ¼º´É ÃøÁ¤ °á°ú
À§ ȯ°æ¿¡¼ iperf·Î ¼º´ÉÀ» ÃøÁ¤ Çß½À´Ï´Ù¸¸, °³ÀÎ ³ëÆ®ºÏ¿¡ Apache VM¿Ã·Á¼ Å×½ºÆ® ÇÑ °Å¶ó¼ ¼º´ÉÃøÁ¤ÀÇ Àǹ̰¡ ¾ø´õ±º¿ä. ¾ÈÁ¤ÀûÀ¸·Î ·Îµå ¹ë·±½ÌÀÌ µÈ´Ù´Â Á¤µµ¸¸ È®ÀÎÇÒ ¼ö ÀÖ¾ú½À´Ï´Ù. ±×·¡ ȸ»ç¿¡¼ À¯»çÇÑ È¯°æÀ» ¸¸µé¾î¼ ¼º´ÉÃøÁ¤À» Çß½À´Ï´Ù. ±âÁ¸ÀÇ haproxy¿Í ÇÔ²² Å×½ºÆ®¸¦ Çߴµ¥¿ä. ´ë·« Á¤¸®ÇÏÀÚ¸é ´ÙÀ½°ú °°½À´Ï´Ù.
haproxy
haproxy´Â 360MBits°¡ ÇѰèÀÔ´Ï´Ù. ÀÌ Âë¿¡¼ CPU ÀÚ¿øÀ» ¸ðµÎ ¼Ò¸ðÇØ ¹ö¸³´Ï´Ù. core¸¦ ´Ã¸®°í - VMÀ̱⠶§¹®¿¡ core¸¦ ÇÒ´çÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. - haproxy¸¦ ¸ÖƼ ÇÁ·Î¼¼½º ¸ðµå·Î ÀÛµ¿ÇßÁö¸¸ ÇϳªÀÇ core¸¸À» »ç¿ëÇϱ⠶§¹®¿¡ À§ ÇѰ踦 ¹þ¾î³¯ ¼ö ¾ø¾ú½À´Ï´Ù. ³×Æ®¿öÅ© ÀÎÅÍÆäÀ̽º¿¡ ÇϳªÀÇ ring buffer¸¸ ¸¸µé¾îÁö±â ¶§¹®À¸·Î, ¹°¸®ÀûÀÎ ¼¹ö¶ó¸é ¼º´ÉÀÌ ¿Ã¶ó°¥ ¼ö ÀÖ½À´Ï´Ù.
iptables´Â ´ë¿ªÆøÀÇ ´ëºÎºÐÀ» »ç¿ëÇÏ´Â °ÍÀ¸·Î º¸ÀÔ´Ï´Ù. CPU Á¡À¯À²µµ 5% ¹Ì¸¸À¸·Î haproxy¿¡ ºñÇÒ ¼ö ¾øÀ» Á¤µµ·Î È¿À²ÀûÀÔ´Ï´Ù. ±×·¸´Ù°í ÇØ¼ haproxy º¸´Ù ¹«Á¶°Ç ÁÁÀº°¡ ÇÏ¸é ±×·¸Áö´Â ¾Ê½À´Ï´Ù. haproxy´Â ´Þ¸® Ä¿³Î ¸ðµå¿¡¼ ÀÛµ¿Çϱ⠶§¹®¿¡, ·Îµå ¹ë·±½Ì ¼¹öÀÇ À¥ ¼ºñ½º¸¦ °Ë»çÇÏ´Â µîÀÇ ±â´ÉÀº ±â´ëÇÒ ¼ö°¡ ¾ø½À´Ï´Ù. health °Ë»ç ±â´ÉÀ» ¸¸µå´Â ¼ö ¹Û¿¡ ¾øÁÒ. 1.4.3 ¹®Á¦ ÇØ°á ¹× Æ©´×
¸®´ª½ºÀÇ ±âº» °ªÀº ±²ÀåÈ÷ Å®´Ï´Ù. °¡´ÉÇÑ ¿¬°áÀ» ¿À·¡ º¸Á¸Çϰڴٴ ¾ê±âÁÒ. net.ipv4.ip_conntrack_max = 65496 net.ipv4.netfilter.ip_conntrack_generic_timeout = 600 net.ipv4.netfilter.ip_conntrack_icmp_timeout = 30 net.ipv4.netfilter.ip_conntrack_udp_timeout_stream = 180 net.ipv4.netfilter.ip_conntrack_udp_timeout = 30 net.ipv4.netfilter.ip_conntrack_tcp_timeout_close = 10 net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait = 120 net.ipv4.netfilter.ip_conntrack_tcp_timeout_last_ack = 30 net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait = 259200 net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait = 120 net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 432000 net.ipv4.netfilter.ip_conntrack_tcp_timeout_syn_recv = 60 net.ipv4.netfilter.ip_conntrack_tcp_timeout_syn_sent = 120 net.ipv4.netfilter.ip_conntrack_max = 65496
ÀÌ°É À¥ ¼ºñ½º¿¡ ¸Â°Ô Á¶ÀýÀ» Çß½À´Ï´Ù. À¥Àº ¿¬°áÀ» À¯ÁöÇÏ´Â ¼ºñ½º°¡ ¾Æ´Ï´Ï timeoutÀ» ª°Ô °¡Á®°¡µµ ±¦ÂúÀ» °Ì´Ï´Ù. °ªÀº ¼ºñ½º Á¾·ù¿Í Á¢¼Ó·®µî¿¡ µû¶ó¼ ´Þ¶óÁú ¼ö ÀÖÀ¸´Ï, Àû´çÈ÷ Æ©´×ÇØ¼ »ç¿ëÇÏ½Ã¸é µÇ°Ú½À´Ï´Ù. net.ipv4.netfilter.ip_conntrack_tcp_timeout_close = 10 net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait = 20 net.ipv4.netfilter.ip_conntrack_tcp_timeout_last_ack = 20 net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait = 20 net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait = 20 net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 30 net.ipv4.netfilter.ip_conntrack_tcp_timeout_syn_recv = 20 net.ipv4.netfilter.ip_conntrack_tcp_timeout_syn_sent = 20 2 stateless NAT
Stateless NATÀº dumb NAT ¶ó°í ºÎ¸£±âµµ ÇÑ´Ù. NATÀÇ °¡Àå °£´ÜÇÑ ÇüÅ·Π´ÜÁö SNATÀº Source IP ÁÖ¼Ò¸¸ º¯È¯Çϰí, DNATÀº Destination IP¹Ý º¯È¯Çؼ ³Ñ±ä´Ù. conntrack¸¦ À¯Áö ÇÏÁö ¾ÊÀ¸¹Ç·Î stateful NAT º¸´Ù ºü¸£°Ô ÀÛµ¿ÇÒ °ÍÀ̶ó°í »ý°¢µÈ´Ù. ¹Ý¸é 1:1 static NAT¸¸ »ç¿ëÇÒ ¼ö ÀÖ´Ù.
|
|
|||||||||||||||||||||
|
EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù. |
|