· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
NAT

NAT

NATÀÇ Çʿ伺

NATÀº ´ÙÀ½°ú °°Àº ¿ä±¸»çÇ×À» ÃæÁ·Çϱâ À§Çؼ­ ź»ýÇÏ¿´½À´Ï´Ù.

  • °øÀÎ IPÀÇ ºÎÁ·
    NATÇÏÀ§¿¡¼­´Â »ç¼³ IP¸¦ »ç¿ëÇÏ°í, ¿ÜºÎ InternetÁÖ¼Ò·Î Á¢¼Ó½Ã »ç¼³ IP¸¦ °øÀÎ IPÁÖ¼Ò·Î º¯È¯Çϵµ·Ï ÇÔÀ¸·Î½á °øÀÎ IPÁÖ¼ÒÀÇ ºÎÁ·¹®Á¦¸¦ ÇØ°áÇÕ´Ï´Ù.

  • NATÇÏÀ§ÀÇ ³×Æ®¿÷À» ¿ÜºÎ·ÎºÎÅÍ º¸È£
    Á÷Á¢ÀûÀ¸·Î ¿ÜºÎ·ÎºÎÅÍ NATÀÇ ³»ºÎ·Î Á¢±ÙÀÌ Á¦ÇÑµÇ¸ç ³»ºÎ »ç¼³ IP´ë¿ªÀÇ Æ®·¡ÇÈÀÌ ¿ÜºÎ InternetÀ¸·Î Á¢¼ÓÇÏ·Á´Â °æ¿ì°¡ ¾Æ´Ï¸é ±âº»ÀûÀ¸·Î RoutingµÇÁö ¾ÊÀ¸¹Ç·Î ¿ÜºÎ·ÎºÎÅÍ º¸È£µË´Ï´Ù.

NATÀÇ Á¾·ù

ÀϹÝÀûÀ¸·Î NATÀº ÁÖ¼Òº¯È¯À» Çϱâ À§ÇÏ¿© PacketÀÇ ´ÙÀ½»çÇ×À» Á¶Á¤ÇÕ´Ï´Ù.

  1. IP headerÀÇ IP addressºÎºÐ
  2. UDP headerÀÇ portºÎºÐ
  3. TCP headerÀÇ portºÎºÐ

´ÙÀ½Àº InternalÀ§Ä¡¿¡¼­ OutputBound½Ã¿¡ ¾î¶»°Ô ExternalÀ§Ä¡·Î ¹Ù²î´Â°¡ÀÇ ÁÖ¼Òº¯È¯±ÔÄ¢¿¡ ÀÇ°ÅÇÑ ºÐ·ù¿¡ ÀÇÇÑ ¸íĪÀÔ´Ï´Ù.

  • Full Cone
    InternalÀ§Ä¡¿¡¼­ UDP packetÀ» ¸ñÀûÁö·Î º¸³¾¶§ NAT¿¡¼­´Â ÇØ´ç Interal IP¿Í Port¸¦ ÀϽÃÀûÀ¸·Î ±â¾ïÇÏ°í NATÀÇ Port¿Í mappingÇÏ¿© ÁÖ¸ç ÇØ´ç Port·Î Data°¡ µé¾î¿À¸é Ãâ¹ßÁö¸¦ »ó°üÇÏÁö ¾Ê°í ±â¾ïÇÏ¿´´ø InternalÀ§Ä¡·Î forwardÇØÁÝ´Ï´Ù.

  • Port Restricted Cone
    InternalÀ§Ä¡¿¡¼­ UDP packetÀ» ¸ñÀûÁö·Î º¸³¾¶§ NAT¿¡¼­´Â ÇØ´ç Interal IP¿Í Port, ±×¸®°í ¸ñÀûÁö IP¿Í Port¸¦ ÀϽÃÀûÀ¸·Î ±â¾ïÇÏ°í NATÀÇ Port¿Í mappingÇÏ¿© ÁÖ¸ç ÇØ´ç Port·Î Data°¡ µé¾î¿À¸é Ãâ¹ßÁöIP ¹× Port¿Í ±â¾ïÇÏ°í ÀÖ´Â ¸ñÀûÁö IP ¹× Port°¡ °°À»¶§ ÇØ´ç InternalÀ§Ä¡·Î forwardÇØÁÝ´Ï´Ù.

  • Restrict Cone
    InternalÀ§Ä¡¿¡¼­ UDP packetÀ» ¸ñÀûÁö·Î º¸³¾¶§ NAT¿¡¼­´Â ÇØ´ç Interal IP¿Í Port, ±×¸®°í ¸ñÀûÁö IP¸¦ ÀϽÃÀûÀ¸·Î ±â¾ïÇÏ°í NATÀÇ Port¿Í mappingÇÏ¿© ÁÖ¸ç ÇØ´ç Port·Î Data°¡ µé¾î¿À¸é Ãâ¹ßÁöIP¿Í ±â¾ïÇÏ°í ÀÖ´Â ¸ñÀûÁö IP°¡ °°À»¶§ ÇØ´ç InternalÀ§Ä¡·Î forwardÇØÁÝ´Ï´Ù.

  • Symmetric Cone
    InternalÀ§Ä¡¿¡¼­ UDP packetÀ» ¸ñÀûÁö·Î º¸³¾¶§ NAT¿¡¼­´Â ÇØ´ç Interal IP¿Í Port, ±×¸®°í ¸ñÀûÁö IP¿Í Port¸¦ ÀϽÃÀûÀ¸·Î ±â¾ïÇÏ°í NATÀÇ Port¿Í mappingÇÏ¿© Áִµ¥ ¸ñÀûÁö Port°¡ ¹Ù²î¸é ¿ª½Ã »õ·Î¿î Port·Î mappingÇÕ´Ï´Ù. ÇØ´ç Port·Î Data°¡ µé¾î¿À¸é Ãâ¹ßÁöIP ¹× Port¿Í ±â¾ïÇÏ°í ÀÖ´Â ¸ñÀûÁö IP ¹× Port°¡ °°À»¶§ ÇØ´ç InternalÀ§Ä¡·Î forwardÇØÁÝ´Ï´Ù.

NATÀÇ ±¸Çö¹æ¹ý¿¡ µû¶ó¼­ ´ÙÀ½°ú °°ÀÌ ºÐ·ùµË´Ï´Ù. NATÀº Exclude => Redirect => Reverse => Normal ÀÇ ¼ø¼­·Î Àû¿ëµÇµµ·Ï ±¸ÇöÇϴ°ÍÀÌ ÀϹÝÀûÀ̸ç Àû¿ë¼ø¼­°¡ ´Ù¸¥ °æ¿ì Á¤»óÀûÀ¸·Î µ¿ÀÛÇÏÁö ¾ÊÀ»¼öµµ ÀÖ½À´Ï´Ù.

  • Normal NAT
    »ç¼³ IP¸¦ 1°³ÀÇ °øÀÎ IP·Î ¹Ù²Ù´Â ÇüÅ·Πµ¿½Ã¿¡ SessionÀ» ¾à 50000~65535°³Á¤µµ±îÁö¸¸ ó¸®ÇÒ¼ö Àִ°ÍÀÌ º¸ÅëÀ̸ç ÀÌ°ÍÀº ´õÀÌ»ó Port¸¦ ÇÒ´çÇÒ¼ö ¾ø±â ¶§¹®¿¡ ¹ß»ýÇÏ´Â Á¦¾à»çÇ×ÀÔ´Ï´Ù. ±×·¯³ª ÀÌ °æ¿ì °øÀÎIP¸¦ 2°³ÀÌ»óÀ» ¹­¾î¼­ ±¸ÇöÇÏ°Ô µÇ¸é ±× ¸¸Å­ µ¿½Ãó¸® Session À» ¿¬ÀåÇÒ¼ö Àֱ⵵ ÇÕ´Ï´Ù.

  • Reverse NAT
    Normal NAT¿¡¼­ ¼³Á¤µÈ °øÀÎ IP·ÎºÎÅÍ ³»ºÎ »ç¼³¸ÁÀ¸·Î Á¢¼Ó¿ä±¸¸¦ ¹Þ´Â °æ¿ì ¿©·¯°³ÀÇ »ç¼³ IPÁß¿¡¼­ ¾î¶² IP·Î º¯È¯ÇØ¾ß ÇÏ´ÂÁö ¾Ë¼ö ¾ø°Ô µË´Ï´Ù. ÀÌ °æ¿ì¿¡ ÁÖ¼Òº¯È¯¿¡ ´ëÇÑ ¼³Á¤ÀÌ µû·Î ÀÖ¾î¾ß ÇÕ´Ï´Ù. À̶§ ¼³Á¤À» Reverse NAT·Î 1:1 Mapping ¶Ç´Â Static mappingÀ̶ó°í ºÎ¸£±âµµ ÇÕ´Ï´Ù.

  • Redirect NAT
    ¸ñÀûÁö ÁÖ¼Ò¸¦ ÀçÁöÇâ(º¯È¯)Çϴ°ÍÀ» ¸»ÇÕ´Ï´Ù.

  • Exclude NAT
    NAT°ú Router»çÀÌ¿¡ ¼­¹ö°¡ ÀÖ°í ³»ºÎ »ç¼³IP»ç¿ëÀÚ°¡ ÀÌ ¼­¹ö·Î Á¢¼ÓÀ» ÇÒ¼ö ÀÖµµ·Î Çϱâ À§Çؼ­ Normal NATÀÇ Àû¿ëÀ» ¹ÞÁö ¾Êµµ·Ï ÇÏ´Â °ÍÀ» ¸»ÇÕ´Ï´Ù.

UDP Hole-punching

STUN°³¿ä.png
[PNG image (47.7 KB)]


  • Client A¿Í B´Â ¸ðµÎ ÀϹÝÀûÀ¸·Î 30ÃÊ(NAT°øÀ¯±âÀÇ ¼³Á¤¿¡ ÀÇÁ¸Àû)¸¦ ³ÑÁö ¾Ê´Â °£°ÝÀ¸·Î Server¿Í UDP¼Û¼ö½ÅÀ» ¼öÇàÇÕ´Ï´Ù. À̶§ ClientA ¿Í B´Â Server·Î ¸ÕÀú UDP packetÀ» Àü¼ÛÇÏ°Ô µÇ¸ç À̶§ ¹Ýµå½Ã Server ´Â ¼ö½ÅµÈ UDP packetÀÇ Source IP¿Í Source Port·Î ÀÀ´äÇØÁÖ¾î¾ß ÇÕ´Ï´Ù.

  • (1) : Client A¿Í B¿¡¼­ Server·Î Àü¼ÛÇÑ PacketÀº NATÀ» Åë°úÇϸ鼭 SourceIP´Â ExternalIP·Î º¯È¯µÇ¸ç SourcePort´Â ÀÓÀÇÀÇ ExternalPort·Î ÀϽÃÀûÀÎ ½Ã°£µ¿Àº MappingµÇ¾î À¯ÁöµË´Ï´Ù.
  • (2) : Server·Î µµÂøµÈ PacketÀº SourceIP:SourcePort°¡ NATÀÇ ExternalIP¿Í ÀÓÀÇ·Î MappingµÈ Port·Î ÇÏ¿© ¼ö½ÅµË´Ï´Ù.
  • (3) : Server´Â µµÂøµÈ PacketÀÇ SourceIP:SourcePort·Î ÀÀ´äÆÐŶÀ» Àü¼ÛÇÕ´Ï´Ù.
  • (4) : Server·ÎºÎÅÍ Àü¼ÛµÈ PacketÀº NAT¿¡ µµ´ÞÇϸé ÇØ´ç Port mappingÀÌ À¯È¿ÇÒ¶§ ÇØ´ç PrivateIP¿Í Port·Î º¯È¯ÇÏ¿© Client·Î Àü´ÞÇÕ´Ï´Ù. À̷νá ÇØ´ç ÁÖ¼Ò¿Í Æ÷Æ®¸¦ ÅëÇؼ­ »óÈ£°£ ¾ç¹æÇâ Åë½ÅÀÌ °¡´ÉÇØÁý´Ï´Ù.
  • (5) : ÀÌÁ¦ Server·ÎºÎÅÍÀÇ ÀÀ´äÆÐŶ¿¡ °¢°¢ÀÇ Client´Â »ó´ë¹æ ClientÀÇ ExternalIP¿Í ExternalPort¸¦ ¼ö½ÅÇÏ¿© ÇØ´ç ÁÖ¼Ò·Î PacketÀ» Àü¼ÛÇÕ´Ï´Ù.
  • (6) : Àû¾îµµ ÇÑÂÊClientÀÇ PacketÀÌ Àü¼Û¿¡ ¼º°øÇÏ°Ô µÇ¸ç(´Ü, ¾ç´ÜÀÌ Symmetric ConeÀÎ °æ¿ì´Â ½ÇÆÐÇÒ¼ö ÀÖÀ½) ÀÌÈÄ »ó´ë¹æ Client·ÎºÎÅÍ µµÂøÇÑ PacketÀÇ SourceIP:SourcePort·Î Àü¼ÛÇÒ¼ö ÀÖ°Ô µË´Ï´Ù.
  • (7) : ¸¸¾à Client A¿Í Client B°¡ °°Àº NAT¿¡ ÀÖ´Ù¸é ¼­·Î °°Àº NAT¿¡¼­ ExternalIP·Î Àü¼ÛÇϴ°ÍÀº Àü´ÞµÇÁö ¾ÊÀ»¼ö ÀÖÀ¸¸ç ÀÌ °æ¿ì ¼­·Î BroadcastµîÀ» ÅëÇؼ­ È®ÀÎÇØ¾ß ÇÕ´Ï´Ù.

  • Åë»óÀûÀ¸·Î ÀÌ ¹æ½ÄÀº ¾ç´ÜÀÌ µÑ´Ù Symmetric ConeÀÌ ¾Æ´Ñ °æ¿ì¿¡ ÇÑÇؼ­ ¼º°øÈ®·üÀÌ ¸Å¿ì ³ô´Ù´Âµ¥ Ä¿´Ù¶õ ÀåÁ¡ÀÌ ÀÖ´Ù. ±×·¯³ª UDP protocolÀ» »ç¿ëÇϹǷΠ¾ç´Ü°£¿¡ ½Å·Ú¼ºÀ» º¸ÀåÇÒ¼ö ÀÖ´Â ¹æ¾ÈÀÌ º¸¿ÏµÇ¾î¾ß Çϸç Àü¼ÛÈ¿À²À» À§Çؼ­ ÀçÀü¼ÛÀ» È¿À²ÀûÀ¸·Î °ü¸®Çϵµ·Ï ¼³°èÇØ¾ß ÇÑ´Ù´Â Á¡¿¡¼­ ´ÜÁ¡À̶ó¸é ´ÜÁ¡À̶ó°í ÇÒ¼ö ÀÖ´Ù.

TCP Hole-punching

TCPHolePunchingSequence.png
[PNG image (56.47 KB)]

  • TCPÀÇ ±âÃÊÁö½Ä »çÇ× - 3 way handshake (ÀϹÝÀûÀÎ Connection¿¡ ´ëÇÑ ÀýÂ÷)
    • A¿¡¼­ B·Î ¿¬°áÇÏ´Â °æ¿ì A´Â SYN flag°¡ ONÀÌ°í Seq°ªÀ» ÀÓÀÇ·Î ¼³Á¤ÇÑ ÆÐŶÀ» B·Î Àü¼ÛÇÕ´Ï´Ù.
      • A´Â SYN_SENT »óÅÂ
      • B´Â SYN_RECEIVED »óÅÂ
    • B´Â ACK flag¿Í SYN flag°¡ ONÀÌ°í AckSeq?´Â A·Î ºÎÅÍ ¹ÞÀº Seq¿¡ 1À» ´õÇÑ°ªÀ¸·Î ¼³Á¤ÇÏ°í Seq°ªÀ» ÀÓÀÇ·Î ¼³Á¤ÇÑ ÆÐŶÀ» A·Î Àü¼ÛÇÕ´Ï´Ù.
      • A¿Í B´Â HALF_OPEN »óÅÂ
      • ÀÌ °æ¿ì B¿¡¼­´Â HALF_OPEN»óÅ´ Backlog Queue¿¡¼­ °ü¸®µË´Ï´Ù.
    • A´Â ACK flag¸¸ ONÀÌ°í AckSeq?´Â B·ÎºÎÅÍ ¹ÞÀº Seq¿¡ 1À» ´õÇÑ°ªÀ» ¼³Á¤ÇÏ°í B·Î Àü¼ÛÇÏ¿© ¿¬°á¼º¸³À» ¿Ï¼ºÇÕ´Ï´Ù.
      • A¿Í B´Â ESTABLISHED »óÅÂ

  • TCP Hole-punchingÀÇ ±âº» ¿ø¸®´Â SYN-ACKÀÇ ÆÐŶÀ» ¹Þ¾ÆµéÀ̵µ·Ï ÇѴٴµ¥ ÀÖ´Ù.
  • Åë»óÀûÀ¸·Î ÀÌ ¹æ½ÄÀÌ ¼º°øÇϱâ´Â ¸Å¿ì ¾î·Æ´Ù. ÇÏÁö¸¸ Á¦´ë·Î ¼º°øÇÑ´Ù¸é Æ®·¡ÇÈÀÌ 100% Client¾ç´Ü°£¿¡¼­ ó¸®ÇÏ°Ô µÇ°í TCP¸¦ ±â¹ÝÀ¸·Î Çϱ⠶§¹®¿¡ ½Å·Ú¼ºµµ ¾î´ÀÁ¤µµ ÇýÅÃÀ» ¾òÀ»¼ö ÀÖÀ¸¸ç Æ®·¡ÇÈÀÌ Server·Î ÁýÁߵǴ °ÍÀ» ¸·À»¼ö ÀÖ´Ù.




sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2015-02-06 16:18:42
Processing time 0.0084 sec