.\"- .\" Copyright (c) 2001 Charles Mott .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" %FreeBSD: src/lib/libalias/libalias. 3, v 1.23. 2.11 2001/12/17 10:08:22 ru Exp % .\" .\" $FreeBSD: doc/ja_JP.eucJP/man/man3/libalias. 3, v 1.3 2002/05/18 07:12:55 horikawa Exp $ .Dd April 13, 2000 .Dt LIBALIAS 3 .Os .Sh ¸íĪ .Nm libalias .Nd ½ºÄ«·¹ÀÌµå ¹× ³×Æ®¿öÅ© ¾îµå·¹½º º¯È¯¿ë ÆÐŶ ¾Ù¸®¾î½Ì(aliasing) ÇÁ·Î±×·¥ ¶óÀ̺귯¸® .Sh ¼­½Ä .In sys/types.h .In netinet/in.h .In alias.h .Pp ÇÔ¼öÀÇ prototype´Â, ÀÌ ÅØ½ºÆ®ÀÇ º»¹®À¸·Î ¼Ò°³ÇÕ´Ï´Ù. .Sh ÇØ¼³ .Nm ÇÁ·Î±×·¥ ¶óÀ̺귯¸®´Â, IP ÆÐŶÀÇ ¾Ù¸®¾î½º(alias) ¹× ¾Ù¸®¾î½º(alias) ÇØÁ¦¿ëÀÇ ÇÔ¼ö±ºÀ̸ç, °¡¸é ¹× ³×Æ®¿öÅ© ¾îµå·¹½º º¯È¯ (NAT)À» ¸ñÀûÀ¸·Î Çϰí ÀÖ½À´Ï´Ù. .Pp µµÀÔ ÀÌ ÇÁ·Î±×·¥ ¶óÀ̺귯¸®´Â, IP ÀÇ ·ÎÄà ³×Æ®¿öÅ© ÁÖ¼ÒÀÇ º¯È¯ ¹× º¯È¯ ó¸® ¼­Æ÷Æ®¿ëÀ¸·Î µðÀÚÀÎµÈ ÇÔ¼öÀÔ´Ï´Ù. ·ÎÄà ³×Æ®¿öÅ©ÀÇ ¹Ìµî·ÏÀÇ IP ÁּҷκÎÅÍ ¹ß½ÅÇÏ´Â ÆÐŶÀº, ¾×¼¼½º °¡´ÉÇÑ IP ÁּҷκÎÅÍ ¿Ô´ÂÁö¿Í °°ÀÌ °¡ÀåÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. ¹ÛÀ¸·ÎºÎÅÍ µé¾î ¿À´Â ÆÐŶ¿¡ ´ëÇØ¼­´Â, ·ÎÄà ³×Æ®¿öÅ©»óÀÇ ¿Ã¹Ù¸¥ ¸Ó½Å¿¡ º¸³»Áö´Â µí ¾Ù¸®¾î½º(alias) ÇØÁ¦µË´Ï´Ù. .Pp ÆÐŶ ¾Ù¸®¾î½Ì(aliasing) ¿£Áø¿¡´Â, ¾î´À Á¤µµÀÇ À¯¿¬¼ºÀÌ Â¥³Ö¾îÁö°í ÀÖ½À´Ï´Ù. ¹«¾ùº¸´Ù °£´ÜÇÑ Á¶ÀÛ¿¡¼­´Â, ·ÎÄà ³×Æ®¿öÅ© ÁÖ¼Ò¿Í ÆÐŶ ¾Ù¸®¾î½º(alias) È£½ºÆ®¿ÍÀÇ »çÀÌ¿¡ ´Ù´ë 1 ´ëÀÀºÎ°¡ ÇàÇØÁý´Ï´Ù. À̰ÍÀº °¡Àå IP ·Î¼­ ¾Ë·ÁÁ® ÀÖ´Â °ÍÀÔ´Ï´Ù. ´õ¿í, ·ÎÄà ÁÖ¼Ò¿Í È®¼º ÀåÄ¡ÀÇ »çÀÌ¿¡¼­ÀÇ 1 ´ë 1 ´ëÀÀºÎµµ ½ÇÀåÇÏ´Â °ÍÀÌ °¡´ÉÇØ, Á¤Àû NAT ·Î¼­ ¾Ë·ÁÁ® ÀÖ½À´Ï´Ù. ÀÌ·¯ÇÑ »çÀÌ¿¡´Â, ´Ù¸¥ °³ÀÎ ÁÖ¼ÒÀÇ ±×·ìÀ» °¢°¢ ´Ù¸¥ È®¼º ÀåÄ¡¿¡ ¸µÅ© ½Ãų ¼ö°¡ ÀÖ¾î ±× Áß¿¡´Â ¶Ñ·ÇÇÑ ´Ù´ë 1 ´ëÀÀÀ̳ª ¸î°³Àΰ¡ º¼ ¼ö ÀÖ½À´Ï´Ù. ´õ¿í, È®¼º ÀåÄ¡ ¹× Æ÷Æ®´Â °íÁ¤ÀûÀ¸·Î °³ÀÎ ÁÖ¼Ò ¹× Æ÷Æ®¿¡ ¸®µð·ºÆ® ½Ãų ¼ö°¡ ÀÖ½À´Ï´Ù. .Pp ÆÐŶ ¾Ù¸®¾î½Ì(aliasing) ¿£ÁøÀº, Ä¿³Î ¿ÜºÎÀÇ À¯Àú °ø°£¿¡¼­ ÀÛ¿ëÇϵµ·Ï(µíÀÌ) ¼³°èµÇ°í ÀÖ¾î ±× ¶§¹®¿¡ »çÀûÀÎ Ä¿³Î µ¥ÀÌÅÍ ±¸Á¶¿¡ÀÇ ¾×¼¼½º´Â ºÒÇÊ¿äÇÕ´Ï´Ù. ´Ù¸¸, ¿ø½Ã ÄÚµå´Â Ä¿³Î ȯ°æ¿¡ Â¥³ÖÀ» ¼ö°¡ ÀÖ½À´Ï´Ù. .Sh ÃʱâÈ­¿Í Á¦¾î 2 °³(»ì)ÀÇ Æ¯¼öÇÑ ÇÔ¼ö, .Fn PacketAliasInit ¹× .Fn PacketAliasSetAddress (Àº)´Â, ÆÐŶ Á¶ÀÛÀÌ ¿Ï·áÇϱâ Àü¿¡ ºÎ¸¦ Çʿ䰡 ÀÖ½À´Ï´Ù. ¶Ç, ÆÐŶ ¾Ù¸®¾î½Ì(aliasing) ¿£ÁøÀÇ Á¶ÀÛ ¸ðµå¿¡ ´ëÇØ .Fn PacketAliasSetMode È£Ãâ¿¡ ÀÇÇØ Ä¿½ºÅ͸¶ÀÌÁî ÇÒ ¼ö ÀÖ½À´Ï´Ù. .Pp .Ft void .Fn PacketAliasInit "void" .Bd -ragged -offset indent ÀÌ ÇÔ¼ö¿¡´Â Àμö°¡ ¾ø°í, ¶Ç ¹Ýȯ°ªµµ ¾ø½À´Ï´Ù. ³»ºÎ µ¥ÀÌÅÍ ±¸Á¶ÀÇ ÃʱâÈ­¿¡ »ç¿ëµË´Ï´Ù. ÀÌÇÏ¿¡ ³ªÅ¸³»´Â ¸ðµå ºñÆ®´Â .Fn PacketAliasInit ÀÇ È£Ãâ ÈÄ, ¹Ýµå½Ã ¼¼Æ® µË´Ï´Ù. ÀÌ·¯ÇÑ ¸ðµå ºñÆ®ÀÇ Àǹ̿¡ ´ëÇØ¼­´Â, ÈļúÀÇ .Fn PacketAliasSetMode (À»)¸¦ ÂüÁ¶ÇØ ÁÖ¼¼¿ä. .Bl -item -offset indent -compact .It .Dv PKT_ALIAS_SAME_PORTS .It .Dv PKT_ALIAS_USE_SOCKETS .It .Dv PKT_ALIAS_RESET_ON_ADDR_CHANGE .El .Pp ÀÌ ÇÔ¼ö´Â ÆÐŶ ¾Ù¸®¾î½º(alias) ¿£Áø¿¡ ´ëÇØ, »ó½Ã µ¿ÀÏÇÑ Ãʱ⠻óŸ¦ µ¹·ÁÁÝ´Ï´Ù. .Fn PacketAliasSetAddress È£ÃâÀº, À̰Ϳ¡ À̾î ÇàÇÕ´Ï´Ù. ¶Ç, Àü¼úÇÑ µðÆúÆ® ¸ðµå ºñÆ®¸¦ º¯°æÇÏ´Â °æ¿ì´Â .Fn PacketAliasSetMode (À»)¸¦ È£ÃâÇÕ´Ï´Ù. .Pp ÀÌ ÇÔ¼ö È£ÃâÀº, ÆÐŶ Á¶ÀÛ Àü¿¡ ÇÁ·Î±×·¥ °³½Ã ´Ü°è¿¡¼­ ½ÇÇàÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. .Ed .Pp .Ft void .Fn PacketAliasUninit void .Bd -ragged -offset indent ÀÌ ÇÔ¼ö¿¡´Â Àμöµµ ¹Ýȯ°ªµµ ¾ø°í, ³»ºÎ µ¥ÀÌÅÍ ±¸Á¶·Î ¼³Á¤µÈ °ªÀ» Ŭ¸®¾î ÇÏ´Â °æ¿ì¿¡ »ç¿ëµË´Ï´Ù. .Pp ÀÌ ÇÔ¼ö´Â ÇÁ·Î±×·¥À¸·Î ¾Ù¸®¾î½º(alias) ¿£ÁøÀÇ »ç¿ëÀ» Á¤Áö½ÃŰ´Â °æ¿ì¿¡ È£ÃâÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. ±×°Í¿¡ ÀÇÇØ, ÆÄÀÌ¾î ¿ù(fire wall)¿¡ ºó Æ´»õ¸¦ ¸·°Ô µË´Ï´Ù. ÀÌÀü°úÀÇ È£È¯¼ºÀ̳ª Ưº°ÇÑ º¸¾È¸¦ °®Ãß±â À§Çؼ­(¶§¹®¿¡), º»ÇÔ¼ö¸¦ .Fn PacketAliasInit ÇÏÁö¸¸ .Xr atexit 3 üÀο¡ ºÎ°¡Çϰí ÀÖ½À´Ï´Ù. ¸î¹ø È£ÃâÇØµµ ¹®Á¦´Â ¾ø½À´Ï´Ù. .Ed .Pp .Ft void .Fn PacketAliasSetAddress "struct in_addr addr" .Bd -ragged -offset indent ÀÌ ÇÔ¼ö´Â, ·ÎÄà areaÀÇ ³×Æ®¿öÅ©¿Ü¿¡ ÆÐŶÀÌ ¹ß½ÅÇÏ´Â ¾ÕÀÇ ¼Ò½º ÁÖ¼Ò¸¦ ¼¼Æ® ÇÕ´Ï´Ù. .Fn PacketAliasRedirectAddr ¿¡ ÀÇÇØ »ý¼ºµÇ¾ú´Ù Á¤Àû ÁÖ¼Ò ´ëÀÀ¿¡ ÀÇÇØ µ¡¾²±âµÇÁö ¾Ê´Â ÀÌ»ó ¹ß½Å ÆÐŶÀº ¸ðµÎ ÀÌ ÁÖ¼Ò¿¡ Àç´ëÀÀ ºÙÀÌ°í µË´Ï´Ù. .Pp .Dv PKT_ALIAS_RESET_ON_ADDR_CHANGE ¸ðµå ºñÆ® (µðÆúÆ® Á¶ÀÛ ¸ðµå)(ÀÌ)°¡ ¼³Á¤µÇ¾î ÀÖ´Â °æ¿ì, ³»ºÎÀûÀÎ ¾Ù¸®¾î½º(alias) ¸µÅ© Å×À̺íÀº, ¾Ù¸®¾î½º(alias) ÁÖ¼Ò°¡ º¯°æµÉ ¶§, ¸®¼ÂÆ® µË´Ï´Ù. À̰ÍÀº ÀÏ·ÃÀÇ ´ÙÀ̾ó ¾÷ Á¶ÀÛ Áß(¾È)¿¡¼­ IP ÁÖ¼Ò »óÅ¿¡ °ü·ÃµÇÁö ¾Ê°í, .Xr ppp 8 (¿Í)°ú °°Àº ÀÎÅÍÆäÀ̽º¿¡ Æí¸®ÇÕ´Ï´Ù. .Pp .Dv PKT_ALIAS_RESET_ON_ADDR_CHANGE ¸ðµå ºñÆ®°¡ 0 ¿¡ ¼¼Æ® µÇ°í ÀÖ¾úÀ» °æ¿ì, ÀÌ ÇÔ¼ö´Â, ÆÐŶ°£ÀÇ ¾Ù¸®¾î½º(alias)ÀÇ µ¿Àû º¯°æ¿¡ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù (¿À¹öÇìµåÀÇ ÀûÀº È£ÃâÀÔ´Ï´Ù). .Pp ÆÐŶ Á¶ÀÛ Àü¿¡ ÀÌ ÇÔ¼ö¸¦ È£ÃâÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. .Ed .Pp .Ft unsigned int .Fn PacketAliasSetMode "unsigned int flags" "unsigned int mask" .Bd -ragged -offset indent ÀÌ ÇÔ¼ö´Â, .Fa flags °ª¿¡ µû¶ó ¸ðµå ºñÆ®ÀÇ ¼³Á¤À» Ŭ¸®¾î¸¦ ÇàÇÕ´Ï´Ù. .Fa mask ¿¡ ÀÇÇØ ³ªÅ¸³­ ºñÆ®¸¸ÀÌ ´ë»óÀÌ µË´Ï´Ù. ÀÌÇÏ¿¡ ³ªÅ¸³»´Â ¸ðµå ºñÆ®´Â .Aq Pa alias.h ±×¸®°í Á¤Àǵǰí ÀÖ½À´Ï´Ù. .Bl -tag -width indent .It Dv PKT_ALIAS_LOG .Pa /var/log/alias.log ÆÄÀÏ¿¡ÀÇ ·Î±ëÀ» °¡´ÉÇÏ°Ô ÇÕ´Ï´Ù. ·Î±× ÆÄÀÏ¿¡´Â, ¾Ù¸®¾î½º(alias)¡¤¸µÅ©ÀÇ ÀÛ¼º, »èÁ¦¸¶´Ù icmp, tcp, udp ¿¡ÀÇ ¸µÅ© ȸ¼ö°¡ ±â·ÏµË´Ï´Ù. ·Î±× ÆÄÀÏÀÌ .Xr tail 1 ¿¡ ÀÇÇØ °è¼ÓÀûÀ¸·Î º¼ ¼ö°¡ ÀÖÀ¸¸é, ÁÖ·Î µð¹ö±×¿ëÀ¸·Î¼­ À¯È¿ÇÕ´Ï´Ù. .It Dv PKT_ALIAS_DENY_INCOMING ÀÌ ¸ðµå ºñÆ®°¡ ¼³Á¤µÇ¾î ÀÖÀ¸¸é(ÀÚ), TCP Á¢¼ÓÀ̳ª UDP Æ®·£Àè¼Ç(transaction)¿¡ °ü·ÃÇÑ´Ù ¿ÜºÎ·ÎºÎÅÍ Âø½ÅÇÏ´Â ¸ðµç ÆÐŶÀº, È£Ãâ ÇÁ·Î±×·¥À¸·Î ¹«½Ã ( .Fn PacketAliasIn À̸é .Dv PKT_ALIAS_IGNORED (À»)¸¦ µ¹·ÁÁØ´Ù) Çϱâ À§ÇÑ Ç¥¸¦ ºÙÀÏ ¼ö ÀÖ½À´Ï´Ù. ÆÐŶÀÇ ¾Ù¸®¾î½º(alias) È£½ºÆ®³ª ·ÎÄà ³×Æ®¿öÅ©·ÎºÎÅÍ ¹ß»ýÇÑ Á¢¼ÓÀ̳ª Æ®·£Àè¼Ç(transaction)¿¡ ´ëÇÑ ¸®½ºÆù½º¿¡ ´ëÇÑ ¿µÇâÀº ¾ø½À´Ï´Ù. ÀÌ ¸ðµå ºñÆ®´Â ´Ù¸¥ ÇÑÂÊÇâÀÇ ÆÄÀÌ¾î ¿ù(fire wall)¸¦ ½ÇÀåÇÒ ¶§¿¡ À¯È¿ÇÕ´Ï´Ù. .It Dv PKT_ALIAS_SAME_PORTS ÀÌ ¸ðµå ºñÆ®°¡ ¼³Á¤µÇ¾î ÀÖÀ¸¸é(ÀÚ), ÆÐŶ ¾Ù¸®¾î½º(alias) ¿£ÁøÀº ½ÇÁ¦ÀÇ ·ÎÄà Æ÷Æ® ¹øÈ£¸¦ ±×´ë·Î ¾Ù¸®¾î½º(alias) Æ÷Æ® ¹øÈ£·Î ÇÏ·Á°í ÇÕ´Ï´Ù. À̰ÍÀº (proto, alias addr, alias port, remote addr, remote port)ÀÇ 5 °³ÀÇ ÆÄ¶ó¹ÌÅÍÀÇ Æä¾î°¡ ÀÏÀÇÀÌ¸é °¡´ÉÇÕ´Ï´Ù. °æÇÕÀÌ ÀϾ´Â °æ¿ì´Â, ÀÌ ºñÆ®°¡ ¼³Á¤µÇ¾î À־ ¾Ù¸®¾î½º(alias) Æ÷Æ® ¹øÈ£¿¡´Â ´Ù¸¥ ¹øÈ£°¡ ¼±Åõ˴ϴÙ. .It Dv PKT_ALIAS_USE_SOCKETS ÀÌ ºñÆ®´Â, ¾Ù¸®¾î½º(alias) È£½ºÆ®°¡ ÆÐŶ ÀÌ¼Û½Ã¿Í °°ÀÌ ³×Æ®¿öÅ©»ó¿¡ Æ®·¡ÇÈÀ» ¹ß»ý½ÃŰ´Â °æ¿ì ¹Ýµå½Ã ¼³Á¤ÇÕ´Ï´Ù. ÆÐŶ ¾Ù¸®¾î½º(alias) È£½ºÆ®°¡ ºÒ¸íÇÑ È£½ºÆ® ÁÖ¼Ò³ª ºÒ¸íÀÇ Æ÷Æ® ¹øÈ£ (¿¹¸¦ µé¸é, FTP µ¥ÀÌÅÍ Á¢¼Ó½Ã) (À¸)·ÎºÎÅÍÀÇ Á¢¼ÓÀ» ±â´Ù¸®°í ÀÖÀ» ¶§´Â, ÀÌ ¸ðµå ºñÆ®´Â, Æ÷Æ®ÀÇ °æÇÕÀÌ ÀϾÁö ¾Ê°Ô Ç÷¹À̽ºÈ¦´õ·Î¼­ ¼ÒÄÏÀÇ ÇÒ´çÀ» Á¤ÀÇÇÕ´Ï´Ù. Á¢¼ÓÀÌ È®¸³µÇ¸é(ÀÚ), Åë»óÀº 1 ºÐ Á¤µµ·Î ¼ÒÄÏÀº ´ÝÇôÁý´Ï´Ù. .It Dv PKT_ALIAS_UNREGISTERED_ONLY ÀÌ ºñÆ®°¡ ¼³Á¤µÇ¾î ÀÖÀ¸¸é(ÀÚ), ¹Ìµî·ÏÀÇ address °ø°£À¸·ÎºÎÅÍ »ý±ä ÀÌ¿ÜÀÇ ·ÎÄà ³×Æ®¿öÅ©»óÀÇ Æ®·¡ÇÈÀÌ ¹«½ÃµË´Ï´Ù. Ç¥ÁØ Å¬·¡½º A, B ¹× C ÀÇ ¹Ìµî·Ï ÁÖ¼Ò´Â ´ÙÀ½°ú °°½À´Ï´Ù. .Bd -literal -offset indent 10.0. 0.0 -> 10.255. 255.255 (Class A subnet) 172.16. 0.0 -> 172.31. 255.255 (Class B subnets) 192.168. 0.0 -> 192.168. 255.255 (Class C subnets) .Ed ÀÌ ¿É¼ÇÀº, ÆÐŶ ¾Ù¸®¾î½º(alias) È£½ºÆ®°¡ ´Ù¸¥ ÀÎÅÍÆäÀ̽º¿¡ µî·ÏÀÌ ³¡³­ »óÅ ¹× ¹Ìµî·Ï ¼­½º³×Æ®¿öÅ©°¡ ÀÖ´Â °æ¿ì¿¡ À¯È¿ÇÕ´Ï´Ù. µî·ÏÀÌ ³¡³­ ¼­½º³×Æ®¿öÅ©´Â ¿ÏÀüÇÏ°Ô ¿ÜºÎ¿Í Á¢¼ÓÇϰí ÀÖÀ¸¹Ç·Î, ÆÐŶ ¾Ù¸®¾î½º(alias) ¿£Áø¿¡ ÀÇÇØ ÆÐŶÀ» ¹è¿õÇÒ ÇÊ¿ä´Â ¾ø½À´Ï´Ù. .It Dv PKT_ALIAS_RESET_ON_ADDR_CHANGE ÀÌ ¸ðµå ºñÆ®°¡ ¼³Á¤µÇ¾î ÀÖ¾î .Fn PacketAliasSetAddress ÇÏÁö¸¸ ¾Ù¸®¾î½º(alias) ÁÖ¼Ò º¯°æÀ» À§Çؼ­(¶§¹®¿¡) ºÒ¸®´Â ÄÉÀ̽º¿¡¼­´Â, ÆÐŶ ¾Ù¸®¾î½º(alias) ¿£ÁøÀÇ ³»ºÎ ¸µÅ© Å×ÀÌºí ³»¿ëÀÌ Å¬¸®¾î µË´Ï´Ù. ÀÌ Á¶ÀÛ ¸ðµå´Â, ´ÙÀ̾ó ¾÷°£¿¡¼­ÀÇ ÀÎÅÍÆäÀ̽º ÁÖ¼Ò¸¦ º¯°æÇϰųª º¯°æÇÏÁö ¾Ê°í µÐ´Ù .Xr ppp 8 ¸µÅ©ÀÇ °æ¿ì¿¡ À¯È¿ÇÕ´Ï´Ù. ÀÌ ¸ðµå ºñÆ®°¡ ¼³Á¤µÇ¾î ÀÖÁö ¾ÊÀº °æ¿ì, ¸µÅ© Å×À̺íÀº ÁÖ¼Ò°¡ º¯°æµÇ¾îµµ ¸®¼ÂÆ® µÇÁö ¾Ê½À´Ï´Ù. .It Dv PKT_ALIAS_PUNCH_FW ÀÌ ¿É¼Ç¿¡ ÀÇÇØ, .Nm (Àº)´Â, FTP/IRC DCC Á¢¼Ó¿¡ ´ëÇÑ´Ù .Xr ipfirewall 4 º£À̽ºÀÇ ÆÄÀÌ¾î ¿ù(fire wall)ÀÇ `Æ´»õ'¸¦ ¸¸µé°Ô µË´Ï´Ù. ¿­¸° Æ´»õ´Â IP ÁÖ¼Ò³ª Æ÷Æ®¿Í °áºÎµÇ°í ÀÖ¾î ´Ù¸¥ Á¢¼Ó¿¡ »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù. Æ´»õ´Â ±×°ÍÀ» »ç¿ëÇϰí ÀÖ´Â Á¢¼ÓÀÌ ¼Ò¸êÇϸé Á¦°ÅµË´Ï´Ù. .Nm (À»)¸¦ »ç¿ëÇϰí ÀÖ´Â ÇÁ·Î±×·¥À» °­Á¦ÀûÀ¸·Î Á¾·á½ÃŲ´Ù (¿¹¸¦ µé¸é kill -9) ±¸Á¶´Â, Ç÷¡±× »óÅ¿¡ ÀÇÇØ, Æ´»õ¿¡ ÇÒ´çÇÒ ¼ö ÀÖ¾ú´ø ÀüÆÄÀ̾ƿÀ¸£ area¸¦ Ŭ¸®¾î ÇÏ´Â °ÍÀ¸·Î ½ÇÇöµÇ°í ÀÖ½À´Ï´Ù. À̰ÍÀº ¶Ç .Fn PacketAliasSetFWBase ¿¡ ´ëÇÑ´Ù Ãʱâ È£Ãâ¿¡¼­µµ ÀϾ´Ï´Ù. ÀÌ È£ÃâÀº Ç÷¡±×ÀÇ ¼³Á¤ Àü¿¡ ÇàÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. .It Dv PKT_ALIAS_REVERSE º»¿É¼ÇÀº, ÇÁ·Î±×·¥ ¶óÀ̺귯¸®°¡ ³»Çâ ÆÐŶ°ú ¹ÛÀ¸·Î ÇâÇÑ ÆÐŶÀ» Ãë±ÞÇÏ´Â ¹æ¹ýÀ» ¹ÝÀü½Ãŵ´Ï´Ù. À̰Ϳ¡ ÀÇÇØ, ¿ÜºÎ ÀÎÅÍÆäÀ̽º´ë½Å¿¡ ³»ºÎ ÀÎÅÍÆäÀ̽º¸¦ Åë°úÇÑ´Ù ÆÐŶÀ» ¸ÔÀÏ ¼ö ÀÖÀ» ¼ö°¡ ÀÖ½À´Ï´Ù. .It Dv PKT_ALIAS_PROXY_ONLY º»¿É¼ÇÀº, ÇÁ·Î±×·¥ ¶óÀ̺귯¸®°¡ Åõ°ú ÇÁ·Ï½Ã ·ê¿¡¸¸ µû¸£µµ·Ï Áö½ÃÇÕ´Ï´Ù. Åë»óÀÇ ÆÐŶ ¾Ù¸®¾î½º(alias)´Â ½ÇÇàµÇÁö ¾Ê½À´Ï´Ù. ÀÚ¼¼ÇÑ °ÍÀº ÈļúÀÇ .Fn PacketAliasProxyRule (À»)¸¦ ÂüÁ¶ÇØ ÁÖ¼¼¿ä. .El .Ed .Pp .Ft void .Fn PacketAliasSetFWBase "unsigned int base" "unsigned int num" .Bd -ragged -offset indent ÆÄÀÌ¾î ¿ù(fire wall)¿¡ ( .Dv PKT_ALIAS_PUNCH_FW Ç÷¡±×¿¡ ÀÇÇØ) ÆÄÀÌ¾î ¿ù(fire wall)ÀÇ Æ´»õ¿¡ ´ëÇÑ area¸¦ ÇÒ´çÇÕ´Ï´Ù. area´Â ÀüÃʱâÈ­ ·ê¿¡ µû¶ó Ŭ¸®¾î µË´Ï´Ù. .Ed .Sh ÆÐŶ Á¶ÀÛ ÆÐŶ ó¸® ÇÔ¼ö´Â, Âø½Å (¸®¸ðÆ® -> ·ÎÄÃ) ¹× ¹ß½Å (·ÎÄà -> ¸®¸ðÆ®) ÆÐŶÀÇ ¼öÁ¤¿¡ »ç¿ëµË´Ï´Ù. ³×Æ®¿öÅ© ÀÎÅÍÆäÀ̽º °æÀ¯¿¡¼­ÀÇ ÆÐŶÀÇ ¼Û¼ö½ÅÀº, È£ÃâÃø ÇÁ·Î±×·¥ÀÌ ÇàÇÕ´Ï´Ù. .Pp .Fn PacketAliasInit ¹× .Fn PacketAliasSetAddress (¿Í)°ú ÇÔ²², .Fn PacketAliasIn (¿Í)°ú .Fn PacketAliasOut ÀÇ 2 °³ÀÇ ÆÐŶ ó¸® routine°¡ ±âº»ÀûÀÎ, ¿Ü°üÀÇ IP ½ÇÀå¿¡ ÇÊ¿äÇÑ ÃÖ¼Ò ±â´ÉÀ¸·Î¼­ ÁغñµÇ¾î ÀÖ½À´Ï´Ù. .Pp .Ft int .Fn PacketAliasIn "char *buffer" "int maxpacketsize" .Bd -ragged -offset indent ¸®¸ðÆ®ÀÇ ¸Ó½ÅÀ¸·ÎºÎÅÍ ·ÎÄà ³×Æ®¿öÅ©¿¡ÀÇ Âø½Å ÆÐŶÀº ÀÌ ÇÔ¼ö¿¡ ÀÇÇØ ¾Ù¸®¾î½º(alias) ÇØÁ¦µË´Ï´Ù. IP ÆÐŶÀº Àμö .Fa buffer ±×¸®°í ÁöÁ¤µË´Ï´Ù. .Fa maxpacketsize (Àº)´Â ÆÐŶÀ» Æ÷ÇÔÇÑ µ¥ÀÌÅÍ ±¸Á¶ÀÇ ±æÀ̸¦ ³ªÅ¸³»°í ÀÖ¾î ½ÇÁ¦ÀÇ ÆÐŶÀ庸´Ù Å©°Ô ÃëÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. .Pp ±Í°¡ ÄÚµå : .Bl -tag -width indent .It Dv PKT_ALIAS_OK ÆÐŶ ¾Ù¸®¾î½Ì(aliasing) 󸮴 ¼º°øÇß½À´Ï´Ù. .It Dv PKT_ALIAS_IGNORED ÆÐŶÀº ¹«½ÃµÇ¾î ¾Ù¸®¾î½º(alias)´Â ÇØÁ¦µÇÁö ¾Ê¾Ò½À´Ï´Ù. À̰ÍÀº, ÇÁ·ÎÅäÄÝÀÌ ÀνĵÇÁö ¾ÊÀ» ¶§, ICMP ÀÇ ¸Þ¼¼Áö ŸÀÔÀº 󸮵Ǿî ÀÖÁö ¾ÊÀºÁö, ȤÀº »õ·Î¿î Á¢¼Ó¿¡ ´ëÇÑ ÀÔ·Â ÆÐŶÀÌ ¹«½ÃµÇ¾úÀ» ¶§¿¡ ¹ß»ýÇÕ´Ï´Ù ( .Fn PacketAliasSetMode ÇÏÁö¸¸ .Dv PKT_ALIAS_DENY_INCOMING (À»)¸¦ ¼³Á¤ÇßÀ» °æ¿ì). .It Dv PKT_ALIAS_UNRESOLVED_FRAGMENT Çì´õ fragment°¡ ¹Ì¼Û½ÅÀ» À§ÇØ fragment°¡ ÇØ¼ÒµÇÁö ¾ÊÀ» ¶§¿¡ ÀÌ Äڵ尡 µ¹·ÁÁÖ¾îÁ® ¿É´Ï´Ù. ÀÌ °æ¿ì, fragment´Â Çì´õ fragment°¡ ¹ß°ßµÉ ¶§±îÁö .Fn PacketAliasSaveFragment ¿¡ ÀÇÇØ º¸Á¸ÇØ µÑ Çʿ䰡 ÀÖ½À´Ï´Ù. .It Dv PKT_ALIAS_FOUND_HEADER_FRAGMENT ÆÐŶ ¾Ù¸®¾î½Ì(aliasing) 󸮴 ¼º°øÇØ, Çì´õ fragmentµµ ¹ß°ßµÇ¾ú½À´Ï´Ù. À̰ÍÀº ÇØ¼ÒµÇ¾î ÀÖÁö ¾ÊÀº fragment¸¦, .Fn PacketAliasGetFragment ¿¡ ÀÇÇØ ã¾Æ, .Fn PacketAliasFragmentIn (À»)¸¦ »ç¿ëÇØ ¾Ù¸®¾î½º(alias) ÇØÁ¦ÇÒ ¶§ÀÇ ½Ã±×³ÎÀÌ µË´Ï´Ù. .It Dv PKT_ALIAS_ERROR ÆÐŶ ¾Ù¸®¾î½Ì(aliasing) ¿£Áø³»¿¡¼­ ¹ß»ýÇÑ ³»ºÎ ¿¡·¯. .El .Ed .Pp .Ft int .Fn PacketAliasOut "char *buffer" "int maxpacketsize" .Bd -ragged -offset indent ·ÎÄà ³×Æ®¿öÅ©·ÎºÎÅÍ ¸®¸ðÆ®ÀÇ ¸Ó½Å¿¡ ¹ß½ÅÇÏ´Â ÆÐŶÀº, ÀÌ ÇÔ¼ö¿¡ ÀÇÇØ ¾Ù¸®¾î½º(alias) µË´Ï´Ù. IP ÆÐŶÀº Àμö .Fa buffer ±×¸®°í ÁöÁ¤µÇ¾î .Fa maxpacketsize (Àº)´Â ÆÐŶÀÌ ÃëÇÒ ¼ö ÀÖ´Â ÃÖ´ëÀåÀ» ³ªÅ¸³À´Ï´Ù. IP Ç¥Çö Çü½Ä ÇÁ·ÎÅäÄÝÀº, ÁÖ¼Ò¿Í ¼öÁ¤µÇ¾î ¶Ç ÆÐŶÀåÀÇ º¯°æ¿¡ ¾ôÈ÷´Â ÀÏ·ÃÀÇ µ¥ÀÌÅͳ»ÀÇ Æ÷Æ® Á¤º¸¸¦ ¼³Á¤ÇÕ´Ï´Ù. ÇÁ·ÎÅäÄÝÀÌ ÁÁ°Ô ¾Ë·ÁÁø »ç·Ê·Î¼­´Â, FTP ¿Í IRC DDC °¡ ÀÖ½À´Ï´Ù. Pp ±Í°¡ ÄÚµå : .Bl -tag -width indent .It Dv PKT_ALIAS_OK ÆÐŶ ¾Ù¸®¾î½Ì(aliasing) 󸮴 ¼º°øÇß½À´Ï´Ù. .It Dv PKT_ALIAS_IGNORED ÆÐŶÀº ¹«½ÃµÇ¾î ¾Ù¸®¾î½º(alias) ÇØÁ¦´Â µÇÁö ¾Ê¾Ò½À´Ï´Ù. À̰ÍÀº ÇÁ·ÎÅäÄÝÀÌ ÀνĵÇÁö ¾ÊÀ» ¶§Àΰ¡, ȤÀº ICMP ¸Þ¼¼Áö ŸÀÔÀÌ Ã³¸®µÇÁö ¾ÊÀ» ¶§¿¡ ¹ß»ýÇÕ´Ï´Ù. .It Dv PKT_ALIAS_ERROR ÆÐŶ ¾Ù¸®¾î½Ì(aliasing)³»¿¡¼­ ¹ß»ýÇÑ ³»ºÎ ¿¡·¯. .El .Ed .Sh Æ÷Æ®¿Í ÁÖ¼ÒÀÇ ¸®µð·º¼Ç ÀÌ ¼½¼ÇÀ¸·Î ÇØ¼³Çϰí ÀÖ´Â ÇÔ¼ö´Â, ·ÎÄà ³×Æ®¿öÅ©»óÀÇ ¸Ó½Å¿¡ ´ëÇØ, ¿ÜºÎ ³×Æ®¿öÅ©·ÎºÎÅÍ »õ·Î¿î Âø½Å¿¡ ´ëÇÑ ¾×¼¼½º¸¦ ¾î´À Á¤µµ °¡´ÉÇÏ°Ô ÇÕ´Ï´Ù. °³°³ÀÇ Æ÷Æ®´Â, Àç´ëÀÀºÎ³ª °íÁ¤ÀûÀÎ ³×Æ®¿öÅ© ÁÖ¼ÒÀÇ º¯È¯À» Á¤ÀÇÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. .Pp .Ft struct alias_link * .Fo PacketAliasRedirectPort .Fa "struct in_addr local_addr" .Fa "u_short local_port" .Fa "struct in_addr remote_addr" .Fa "u_short remote_port" .Fa "struct in_addr alias_addr" .Fa "u_short alias_port" .Fa "u_char proto" .Fc .Bd -ragged -offset indent ÀÌ ÇÔ¼ö´Â, ¼ÒÁ¤ÀÇ ¸®¸ðÆ® ÁÖ¼Ò³ª Æ÷Æ®·ÎºÎÅÍ ¾Ù¸®¾î½º(alias) ÁÖ¼Ò³ª Æ÷Æ®¿¡ÀÇ Æ®·¡ÇÈÀ», ÁöÁ¤µÈ ·ÎÄà ÁÖ¼Ò³ª Æ÷Æ®¿¡ÀÇ ¸®µð·ºÆ®¸¦ Á¤ÀÇÇÕ´Ï´Ù. ÆÄ¶ó¹ÌÅÍ .Fa proto ÇÏ .Dv IPPROTO_TCP Àΰ¡ .Dv IPPROTO_UDP ÀÇ ¾îµò°¡¿¡ ÇØ´çÇØ, .Aq Pa netinet/in.h ±×¸®°í Á¤Àǵ˴ϴÙ. .Pp .Fa local_addr ȤÀº .Fa alias_addr ÇÏÁö¸¸ 0 À̶ó¸é, ÆÐŶ ¾Ù¸®¾î½Ì(aliasing) ÁÖ¼Ò´Â .Fn PacketAliasSetAddress ±×¸®°í ¼³Á¤µÈ °ÍÀ» »ç¿ëÇÕ´Ï´Ù. .Fn PacketAliasRedirectPort ÇÏÁö¸¸ .Fn PacketAliasSetAddress È£Ãâ¾î¿¡ ÁÖ¼Ò º¯°æÀ» À§Çؼ­(¶§¹®¿¡) ºÒ·Á °¡µµ, 0 ·¹ÆÛ·±½º°¡ ÀÌ º¯°æÀ» ±â·ÏÇÕ´Ï´Ù. .Pp ºÎÇÏ °øÀ¯¿ëÀ¸·Î ¸µÅ©°¡ ´õ¿í ¼³Á¤µÇ¸é(ÀÚ), .Fa local_addr (¿Í)°ú .Fa local_port (Àº)´Â ¹«½ÃµÇ¾î ¼­¹ö Ç®·ÎºÎÅÍ µ¿ÀûÀ¸·Î ¼±Åõ˴ϴÙ. À̰ÍÀº .Fn PacketAliasAddServer ±×¸®°í Èļú µÇ°í ÀÖ½À´Ï´Ù. .Pp .Fa remote_addr ÇÏÁö¸¸ 0 ÀÇ °æ¿ì, ÆÐŶÀ» ¸®¸ðÆ® ÁּҷκÎÅÍ ¸®µð·ºÆ® ÇÕ´Ï´Ù. °°ÀÌ .Fa remote_port ÇÏÁö¸¸ 0 ÀÇ °æ¿ì, ¸®¸ðÆ®ÀÇ Æ÷Æ® ¹øÈ£·ÎºÎÅÍ ¹ß»ýÇß´Ù ÆÐŶÀ» ¸®µð·ºÆ® ÇÕ´Ï´Ù. Åë»ó, ¸®¸ðÆ® Æ÷Æ® Á¤ÀÇ´Â 0 ÀÔ´Ï´Ù¸¸, ÆÄÀÌ¾î ¿ù(fire wall)¿¡ ´ëÇØ¼­´Â 0 ÀÌ ¾Æ´Ï´Ù ¸®¸ðÆ® ÁÖ¼Ò°¡ À¯È¿ÇÑ °æ¿ì°¡ ÀÖ½À´Ï´Ù. .Fn PacketAliasRedirectPort È£Ãâ¿¡ ÀÇÇØ, ÁÖ¼Ò¿Í Æ÷Æ® Á¤Àǰ¡ Áߺ¹ ÇßÀ» °æ¿ì, ÃÖ½ÅÀÇ È£ÃâÀÌ ¿ì¼±µË´Ï´Ù. .Pp ÀÌ ÇÔ¼ö´Â ±× ´ÙÀ½¿¡ .Fn PacketAliasRedirectDelete ±×¸®°í »ç¿ëÇÏ´Â Æ÷ÀÎÅ͸¦ µ¹·ÁÁÝ´Ï´Ù. .Dv NULL ÇÏÁö¸¸ µ¹·ÁÁÖ¾îÁ³À» °æ¿ì, ÇÔ¼ö È£ÃâÀº Á¤»óÀûÀ¸·Î Á¾·áÇϰí ÀÖÁö ¾Ê½À´Ï´Ù. .Pp ¸ðµç Æ÷Æ® ÁÖ¼Ò´Â, ³×Æ®¿öÅ© ÁÖ¼ÒÀÇ ¹ÙÀÌÆ® ¿À´õ Ç¥±â¿¡ µû¸£°í ÀÖ½À´Ï´Ù. ÀÌ·¯ÇÑ ÆÄ¶ó¹ÌÅÍ´Â .Xr htons 3 (À»)¸¦ »ç¿ëÇØ, ³»ºÎÀûÀÎ ¼öÄ¡ Çü½ÄÀ¸·ÎºÎÅÍ ³×Æ®¿öÅ© ¹ÙÀÌÆ® ¿À´õ Ç¥±â¿¡ º¯È¯ÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. ÁÖ¼Òµµ ¶Ç¿Í °°ÀÌ ³×Æ®¿öÅ© ¹ÙÀÌÆ® ¿À´õ Çü½ÄÀ̸ç, .Fa struct in_addr µ¥ÀÌÅÍÇüÀ¸·Î ¾Ï¹¬¿¡ Á¤Àǵ˴ϴÙ. .Ed .Pp .Ft struct alias_link * .Fo PacketAliasRedirectAddr .Fa "struct in_addr local_addr" .Fa "struct in_addr alias_addr" .Fc .Bd -ragged -offset indent ÀÌ ÇÔ¼ö´Â, .Fa alias_addr ¿¡ÀÇ ÀüÂø½Å Æ®·¡ÇÈÀ» .Fa local_addr ¿¡ ¸®µð·ºÆ® ÇÕ´Ï´Ù. °°ÀÌ .Fa local_addr (À¸)·ÎºÎÅÍÀÇ Àü¹ß½Å Æ®·¡ÇÈÀº .Fa alias_addr ¿¡ ¾Ù¸®¾î½º(alias) µË´Ï´Ù. .Pp .Pa local_addr ¶Ç´Â .Pa alias_addr ÇÏÁö¸¸ 0 ÀÇ °æ¿ì, .Fn PacketAliasSetAddress ¿¡ ÀÇÇØ ¼³Á¤µÇ¾ú´Ù ÆÐŶ ¾Ù¸®¾î½Ì(aliasing) ÁÖ¼Ò°¡ »ç¿ëµË´Ï´Ù. .Fn PacketAliasSetAddress ÇÏÁö¸¸ .Fn PacketAliasRedirectAddr ÀÇ È£Ãâ ÈÄ¿¡ ÁÖ¼Ò º¯°æÀ» À§Çؼ­(¶§¹®¿¡) ºÒ·Á °¡µµ, 0 ·¹ÆÛ·±½º°¡ ÀÌ º¯°æÀ» ±â·ÏÇÕ´Ï´Ù. .Pp ºÎÇÏ °øÀ¯¿ëÀ¸·Î ¸µÅ©°¡ ´õ¿í ¼³Á¤µÇ¸é(ÀÚ), .Fa local_addr (Àº)´Â ¹«½ÃµÇ¾î ¼­¹ö Ç®·ÎºÎÅÍ µ¿ÀûÀ¸·Î ¼±Åõ˴ϴÙ. À̰ÍÀº .Fn PacketAliasAddServer ±×¸®°í Èļú µÇ°í ÀÖ½À´Ï´Ù. .Pp .Fn PacketAliasRedirectAddr ¿¡ ´ëÇÑ ÀÏ·ÃÀÇ È£ÃâÀÌ µ¿ÀÏÇÑ ¾Ù¸®¾î½Ì(aliasing) ÁÖ¼Ò¸¦ »ç¿ëÇϰí ÀÖ´Â °æ¿ì, ÀÌ ¾Ù¸®¾î½Ì(aliasing) ÁÖ¼Ò¿¡ÀÇ »õ·Î¿î ÀüÂø½Å Æ®·¡ÇÈÀº, ¸¶Áö¸· ÇÔ¼ö È£Ãâ·Î ¸¸µé¾îÁø ·ÎÄà ÁÖ¼Ò¿¡ ¸®µð·ºÆ® µË´Ï´Ù. ¸î°³ÀÇ ÇÔ¼ö È£Ãâ·Î ÁöÁ¤µÈ ·ÎÄà ¸Ó½ÅÀ¸·ÎºÎÅÍÀÇ »õ·Î¿î ÀüÆ®·¡ÇÈÀº, µ¿ÀÏÇÑ ÁÖ¼Ò¿¡ ¸®µð·ºÆ® µË´Ï´Ù. .Bd -literal -offset indent PacketAliasRedirectAddr(inet_aton("192.168. 0.2"), inet_aton("141.221. 254.101")); PacketAliasRedirectAddr(inet_aton("192.168. 0.3"), inet_aton("141.221. 254.101")); PacketAliasRedirectAddr(inet_aton("192.168. 0.4"), inet_aton("141.221. 254.101")); .Ed .Pp 192.168. 0.2, 192.168. 0.3 ¹× 192.168. 0.4 ·ÎºÎÅÍ, .Xr telnet 1 (ÀÌ)³ª .Xr ftp 1 µîÀ¸·ÎÀÇ ¹ß½Å Á¢¼ÓÀº 141.221. 254.101 À¸·ÎºÎÅÍ ³ª¿Ô´ÂÁö¿Í °°ÀÌ º¸ÀÔ´Ï´Ù. 141.221. 254.101 ¿¡ÀÇ Âø½Å Á¢¼ÓÀº 192.168. 0.4 ¿¡ ¸®µð·ºÆ® µË´Ï´Ù. .Pp .Fn PacketAliasRedirectPort ¿¡ ´ëÇÑ È£Ã⺸´Ù .Fn PacketAliasRedirectAddr ±×¸®°í ÁöÁ¤µÈ ÁÖ¼Ò ´ëÀÀÀÌ ¹Ýµå½Ã ¿ì¼±µË´Ï´Ù. .Pp ÀÌ ÇÔ¼ö´Â, .Fn PacketAliasRedirectDelete ÇÏÁö¸¸ »ç¿ëÇÏ´Â Æ÷ÀÎÅ͸¦ µ¹·ÁÁÝ´Ï´Ù. .Dv NULL ÇÏÁö¸¸ µ¹·ÁÁÖ¾îÁö´Â °æ¿ì, ÇÔ¼ö È£ÃâÀº Á¤»óÀûÀ¸·Î Á¾·áÇϰí ÀÖÁö ¾Ê½À´Ï´Ù. .Ed .Pp .Ft int .Fo PacketAliasAddServer .Fa "struct alias_link *link" .Fa "struct in_addr addr" .Fa "u_short port" .Fc .Bd -ragged -offset indent º»ÇÔ¼ö´Â, .Fa link (À»)¸¦, IP Network Address Translation (RFC 2391, LSNAT)¸¦ »ç¿ëÇß´Ù ºÎÇÏ °øÀ¯¿ëÀ¸·Î ¼³Á¤ÇÕ´Ï´Ù. LSNAT ´Â ´ÙÀ½°ú °°ÀÌ µ¿ÀÛÇÕ´Ï´Ù. Ŭ¶óÀÌ¾ðÆ®°¡, ¼­¹ö °¡»ó ÁÖ¼Ò¸¦ »ç¿ëÇØ ¼­¹ö¿¡ ¾×¼¼½º¸¦ ½ÃµµÇÕ´Ï´Ù. LSNAT ¶ó¿ìÅͰ¡, ¼­¹ö Ç®¾ÈÀÇ 1 °³ÀÇ È£½ºÆ®¿¡ ´ëÇØ, ¿ä±¸¸¦ Åõ°úÀûÀ¸·Î ¸®µð·ºÆ® ÇÕ´Ï´Ù. È£½ºÆ® ¼±Åÿ¡´Â, ½Ç½Ã°£ ºÎÇÏ °øÀ¯ ¾Ë°í¸®ÁòÀ» »ç¿ëÇÕ´Ï´Ù. º¹¼öÀÇ ¼¼¼ÇÀÌ µ¿ÀÏÇÑ Å¬¶óÀÌ¾ðÆ®·ÎºÎÅÍ °³½ÃµÉÁöµµ ¸ð¸¨´Ï´Ù. °¢ ¼¼¼ÇÀº, ±×¶§±×¶§ÀÇ ¼­¹ö Ç® È£½ºÆ®°£ÀÇ ºÎÇÏ ¹ë·±½º¿¡ ÀÇÇØ, ´Ù¸¥ È£½ºÆ®·Î ÇâÇØÁú °¡´É¼ºÀÌ ÀÖ½À´Ï´Ù. ¸î °³ÀÇ °íÀ¯ÀÇ ¼­ºñ½º¿¡ ´ëÇØ¼­ ºÎÇÏ °øÀ¯°¡ ¹Ù¶÷Á÷ÇÏ´Â °æ¿ì, LSNAT ÀÇ ¼³Á¤¿¡ ÀÇÇØ, ¹Ù¶÷Á÷ÇÏ´Â ¼­ºñ½º¿¡°Ô¸¸ ºÎÇÏ °øÀ¯¸¦ ÇÑÁ¤ °¡´ÉÇÕ´Ï´Ù. .Pp ÇöÀç·Î¼­´Â, °¡Àå ´Ü¼øÇÑ ¼±Åà ¾Ë°í¸®Áò¸¸ÀÌ ½ÇÀåµÇ°í ÀÖ½À´Ï´Ù. ÀÌ ¹æ¹ýÀº, ¶ó¿îµå·Îºó¿¡ ÀÇÇÑ ¼±ÅûÓÀ̾î, È£½ºÆ®ÀÇ ºÎÇϸ¦ °í·ÁÇÏÁö ¾Ê´Â °ÍÀÔ´Ï´Ù. .Pp ¿ì¼±, .Fa link ÇÏÁö¸¸ .Fn PacketAliasRedirectPort ¶Ç´Â .Fn PacketAliasRedirectAddr ¿¡ ÀÇÇØ ÀÛ¼ºµË´Ï´Ù. ´ÙÀ½¿¡ .Fn PacketAliasAddServer ÇÏÁö¸¸ ¿©·¯ Â÷·Ê ºÒ·Á .Fa link ÀÇ ¼­¹ö Ç®¿¡ ¿£Æ®¸®°¡ Ãß°¡µË´Ï´Ù. .Pp .Fn PacketAliasRedirectAddr ±×¸®°í ÀÛ¼ºµÈ ¸µÅ©¿¡ ´ëÇØ, .Fa port Àμö´Â ¹«½ÃµÇ°í ¾î¶°ÇÑ °ª, ¿¹¸¦ µé¸é htons(~0)¸¦ °¡Áú ¼ö ÀÖ½À´Ï´Ù. .Pp º»ÇÔ¼ö´Â, ¼º°ø½Ã¿¡´Â 0 À» µ¹·ÁÁÖ¾î, ½ÇÆÐ½Ã¿¡´Â -1 À» µ¹·ÁÁÝ´Ï´Ù. .Ed .Pp .Ft void .Fn PacketAliasRedirectDelete "struct alias_link *ptr" .Bd -ragged -offset indent ÀÌ ÇÔ¼ö´Â, .Fn PacketAliasRedirectPort ȤÀº .Fn PacketAliasRedirectAddr ÇÏÁö¸¸ ¼³Á¤Çߴ٠ƯÁ¤ÀÇ Á¤Àû ¸®µð·ºÆ® ·êÀ» »èÁ¦ÇÕ´Ï´Ù. ÆÄ¶ó¹ÌÅÍ .Fa ptr (Àº)´Â, ¸î°³ÀÇ ¸®µð·º¼Ç ÇÔ¼ö·ÎºÎÅÍ µ¹·ÁÁÖ¾îÁ® ¿À´Â Æ÷ÀÎÅÍÀÔ´Ï´Ù. ¿Ã¹Ù¸£Áö ¾ÊÀº Æ÷ÀÎÅͰ¡ .Fn PacketAliasRedirectDelete ¿¡°Ô °Ç³×Áö¸é(ÀÚ), ÇÁ·Î±×·¥Àº Å©·¡½¬ ÇÏ´ÂÁö, ¿¹±âÄ¡ ¸øÇÑ µ¿ÀÛ °á°ú°¡ µË´Ï´Ù. ±× ¶§¹®¿¡(À§ÇØ) ÀÌ ÇÔ¼öÀÇ »ç¿ë¿¡ ÁîÀ½Çؼ­´Â ÁÖÀǰ¡ ÇÊ¿äÇÕ´Ï´Ù. .Ed .Pp .Ft int .Fn PacketAliasProxyRule "const char *cmd" .Bd -ragged -offset indent °Ç³×¹Þ¾Ò´Ù .Fa cmd ij¸¯ÅÍ ¶óÀÎÀº, 1 °³ ÀÌ»óÀÇ, ¸»ÀÇ Á¶·ÎºÎÅÍ µË´Ï´Ù. °¢ Á¶ÀÇ ÃÖÃÊÀÇ ¸»Àº ÅäÅ«À̸ç, ´ÙÀ½ÀÇ ¸»Àº ±× ÅäÅ«¿¡ Àû¿ëµÇ´Â °ªÀÔ´Ï´Ù. ÅäÅ«°ú ÀμöÀÇ ÇüÅ´ ´ÙÀ½°ú °°½À´Ï´Ù: .Bl -tag -width indent .It Cm type encode_ip_hdr | encode_tcp_stream | no_encode Åõ°ú ÇÁ·Ï½ÃÀÇ ¼­Æ÷Æ®¸¦ À§Çؼ­(¶§¹®¿¡), ½Å±Ô Á¾Á¡ ¼­¹ö¿¡ ¿ø·¡ÀÇ ÁÖ¼Ò¿Í Æ÷Æ®ÀÇ Á¤º¸¸¦ ÇϵîÀÇ ¹æ¹ýÀ¸·Î °Ç³×ÁÙ Çʿ䰡 ÀÖ½À´Ï´Ù. .Cm encode_ip_hdr ÇÏÁö¸¸ ÁöÁ¤µÇ¾úÀ» °æ¿ì, Ãß°¡ÀÇ IP ¿É¼ÇÀ¸·Î¼­ ¿ø·¡ÀÇ ÁÖ¼Ò¿Í Æ÷Æ®°¡ °Ç³×¹Þ½À´Ï´Ù. .Cm encode_tcp_stream ÇÏÁö¸¸ ÁöÁ¤µÇ¾úÀ» °æ¿ì, TCP ½ºÆ®¸²ÁßÀÇ ÃÖÃÊÀÇ µ¥ÀÌÅÍÆí¾È¿¡ .Dq DEST Ar IP port ±×·¸´Ù°í ÇÏ´Â ¼­½Ä¿¡¼­, ¿øÀÇ ÁÖ¼Ò¿Í Æ÷Æ®°¡ °Ç³×¹Þ½À´Ï´Ù. .It Cm port Ar portnum Á¾Á¡ Æ÷Æ®°¡ .Ar portnum ÀÇ ÆÐŶ¸¸ÀÌ ÇÁ·Ï½ÃÀÇ ´ë»óÀÌ µË´Ï´Ù. .It Cm server Ar host Ns Xo .Op : Ns Ar portnum .Xc µ¥ÀÌÅÍÀÇ Àü¼ÛóÀÇ .Ar host (¿Í)°ú .Ar portnum (À»)¸¦ ÁöÁ¤ÇÕ´Ï´Ù. .Ar host (Àº)´Â, DNS È£½ºÆ®¸íÀº ¾Æ´Ï°í IP ÁÖ¼ÒÀÎ °ÍÀÌ ÇÊ¿äÇÕ´Ï´Ù. .Ar portnum ÇÏÁö¸¸ ÁöÁ¤µÇÁö ¾ÊÀ¸¸é Á¾Á¡ Æ÷Æ® ¹øÈ£´Â º¯°æµÇÁö ¾Ê½À´Ï´Ù. .Pp .Ar server ÀÇ ÁöÁ¤Àº, .Cm delete ¸í·ÉÀÌ »ç¿ëµÇÁö ¾Ê´Â ÀÌ»ó ÇʼöÀÔ´Ï´Ù. .It Cm rule Ar index Åë»ó, °¢ .Fn PacketAliasProxyRule È£ÃâÀº, ·êÀÇ ¼±Çü¸®½ºÆ®ÀÇ ¼±µÎ¿¡ ´ÙÀ½ÀÇ ·êÀ» »ðÀÔÇÕ´Ï´Ù. .Ar index ÇÏÁö¸¸ ÁöÁ¤µÇ¾úÀ» °æ¿ì, ³·Àº À妽ºÀÇ Àü·êÀÌ Ã¼Å©µÈ ÈÄ¿¡, ½Å±Ô ·êÀÌ Ã¼Å©µË´Ï´Ù. ·êÀ» ÁöÁ¤ÇÏÁö ¾Ê´Â´Ù .Fn PacketAliasProxyRule È£ÃâÀº, ·ê¿¡ ·ê 0 À» ÇÒ´çÇÕ´Ï´Ù. .It Cm delete Ar index º»ÅäÅ«°ú Àμö´Â, ´Ù¸¥ ÅäÅ«°ú Á¶ÇÕÇØ »ç¿ëÇØ µÇÁö ¾Ê½À´Ï´Ù. º»ÅäÅ«À» »ç¿ëÇϸé(ÀÚ), ÁöÁ¤Çß´Ù .Ar index ÀÇ ±âÁ¸ÀÇ ·êÀÌ »èÁ¦µË´Ï´Ù. .It Cm proto tcp|udp ÁöÁ¤Çϸé(ÀÚ), ÁöÁ¤ÇÑ ÇÁ·ÎÅäÄÝ Å¸ÀÔÀÇ ÆÐŶ¸¸ÀÌ ¸ÅÄ¡ ÇÕ´Ï´Ù. .It Cm src Ar IP Ns Xo .Op / Ns Ar bits .Xc ÁöÁ¤Çϸé(ÀÚ), ÁöÁ¤Çß´Ù .Ar IP ¿¡ ½ÃÁ¡ ÁÖ¼Ò°¡ ¸ÅÄ¡ ÇÏ´Â ÆÐŶ¸¸ÀÌ ¼º³É ÇÕ´Ï´Ù. .Ar bits µµ ÁöÁ¤Çϸé(ÀÚ), .Ar IP ÁÖ¼ÒÀÇ ÃÖÃÊÀÇ .Ar bits ºñÆ®¸¸ÀÌ ³×Æ®¿öÅ© ÁöÁ¤À¸·Î¼­ »ç¿ëµÇ¾î ±× ³×Æ®¿öÅ©·ÎºÎÅÍÀÇ Àü IP ÁÖ¼Ò°¡ ¸ÅÄ¡ ÇÕ´Ï´Ù. .It Cm dst Ar IP Ns Xo .Op / Ns Ar bits .Xc ÁöÁ¤Çϸé(ÀÚ), ÁöÁ¤Çß´Ù .Ar IP ¿¡ Á¾Á¡ ÁÖ¼Ò°¡ ¸ÅÄ¡ ÇÏ´Â ÆÐŶ¸¸ÀÌ ¼º³É ÇÕ´Ï´Ù. .Ar bits µµ ÁöÁ¤Çϸé(ÀÚ), .Ar IP ÁÖ¼ÒÀÇ ÃÖÃÊÀÇ .Ar bits ºñÆ®¸¸ÀÌ ³×Æ®¿öÅ© ÁöÁ¤À¸·Î¼­ »ç¿ëµÇ¾î ±× ³×Æ®¿öÅ©·ÎºÎÅÍÀÇ Àü IP ÁÖ¼Ò°¡ ¸ÅÄ¡ ÇÕ´Ï´Ù. .El .Pp º»ÇÔ¼ö´Â, Åë»ó, ¾î´À ÁÖÀÇ ÀÎÅÍ³Ý ¾×¼¼½º¸¦ ±ÝÁöµÇ°í ÀÖ´Ù ³»ºÎ ¸Ó½Å¿¡ ´ëÇØ, ¹ÛÀ¸·Î ÇâÇÑ Á¢¼ÓÀ» ¸®µð·ºÆ® ÇÏ´ÂÁö, ¶Ç´Â ¾î¶² Á¾·ùÀÇ ¿ÜºÎ ¸Ó½Å¿¡ÀÇ ¾×¼¼½º¸¦ Á¦ÇÑÇÕ´Ï´Ù. .Ed .Pp .Ft struct alias_link * .Fo PacketAliasRedirectProto .Fa "struct in_addr local_addr" .Fa "struct in_addr remote_addr" .Fa "struct in_addr alias_addr" .Fa "u_char proto" .Fc .Bd -ragged -offset indent º»ÇÔ¼ö´Â, ÁöÁ¤ÇÑ ¸®¸ðÆ® ÁּҷκÎÅÍ ¾Ù¸®¾î½º(alias) ÁÖ¼Ò¿¡ÀÇ ÇÁ·ÎÅäÄÝ ¹øÈ£ .Fa proto ÀÇ ÀüÆÐŶÀÌ, ÁöÁ¤ÇÑ ·ÎÄà ÁÖ¼Ò¿¡ ¸®µð·ºÆ® ÇÏ´Â °ÍÀ» ÁöÁ¤ÇÕ´Ï´Ù. .Pp .Fa local_addr ¶Ç´Â .Fa alias_addr ÇÏÁö¸¸ 0 ÀÇ °æ¿ì, ±×¸®°í È®¸³ÇÑ ÆÐŶ ¾Ù¸®¾î½º(alias) ÁÖ¼Ò°¡ »ç¿ëµÇ´Â °ÍÀ» ÁöÁ¤ÇÕ´Ï´Ù. .Fn PacketAliasSetAddress ÇÏÁö¸¸ .Fn PacketAliasRedirectProto ÀÇ È£Ãâ ÈÄ¿¡ ÁÖ¼Ò º¯°æÀ» À§Çؼ­(¶§¹®¿¡) ºÒ·Á °¡µµ, 0 ·¹ÆÛ·±½º°¡ ÀÌ º¯°æÀ» ±â·ÏÇÕ´Ï´Ù. .Pp .Fa remote_addr ÇÏÁö¸¸ 0 ÀÇ °æ¿ì, Àü¸®¸ðÆ® È£½ºÆ®·ÎºÎÅÍÀÇ ÆÐŶÀ» ¸®µð·ºÆ® ÇÏ´Â °ÍÀ» ÁöÁ¤ÇÕ´Ï´Ù. ºñ 0 ÀÇ ¸®¸ðÆ® ÁÖ¼Ò´Â, ÆÄÀÌ¾î ¿ù(fire wall) ¿ëµµ¿¡ À¯¿ëÇÑ °æ¿ì°¡ ÀÖ½À´Ï´Ù. .Pp 2 °³ÀÇ .Fn PacketAliasRedirectProto È£ÃâÀÌ, ÁÖ¼Ò ÁöÁ¤¿¡ ´ëÇØ °ãÄ¡´Â °æ¿ì, ÃÖ½ÅÀÇ È£ÃâÀÌ ¿ì¼±ÇÕ´Ï´Ù. .Pp º»ÇÔ¼ö´Â, ÈÄ¿¡ .Fn PacketAliasRedirectDelete ¿¡ »ç¿ë °¡´ÉÇÑ Æ÷ÀÎÅ͸¦ µ¹·ÁÁÝ´Ï´Ù. .Dv NULL ÇÏÁö¸¸ µ¹·ÁÁÖ¾îÁö´Â °æ¿ì, ÇÔ¼ö È£ÃâÀº Á¤»óÀûÀ¸·Î Á¾·áÇϰí ÀÖÁö ¾Ê½À´Ï´Ù. .Ed .Sh fragment Á¶ÀÛ ÀÌ ¼½¼ÇÀÇ ÇÔ¼ö´Â Âø½Å fragment Á¶ÀÛÀ¸·Î »ç¿ëµË´Ï´Ù. .Pp ¹ß½Å fragment´Â, .Fn PacketAliasRedirectAddr ±×¸®°í ¼³Á¤Çß´Ù Àû¿ë °¡´ÉÇÑ ´ëÀÀºÎ¿¡ ÀÇÇÑ ÁÖ¼Ò º¯°æ¿¡ ÀÇÇØ, ¶Ç´Â .Fn PacketAliasSetAddress ±×¸®°í ¼³Á¤Çß´Ù ¾Ù¸®¾î½Ì(aliasing) ÁÖ¼ÒÀÇ »ý·«½Ã Ä¡¿¡ ÀÇÇØ, .Fn PacketAlaisOut ¾È¿¡¼­ 󸮵˴ϴÙ. .Pp Âø½Å fragment´Â 2 ¹æ¹ýÀÇ ¹æ¹ýÀ¸·Î 󸮵˴ϴÙ. fragmentÈ­ µÇ¾ú´Ù IP ÆÐŶÀÇ Çì´õ¸¦ ÀÌ¹Ì ¾Ë°í ÀÖ´Â °æ¿ì´Â, ÀÏ·ÃÀÇ fragment´Â Çò´ÙÈĶù±×¸ÕÆ®¿Í °°Àº ¹æ½Ä¿¡¼­ Àç´ëÀÀ ºÙÀÌ°í µË´Ï´Ù. fragment´Â Çì´õ°¡ µµÂøÇϱâ Àü¿¡ º¸Á¸µÇ¾î Çì´õ fragment°¡ ¼Ò¸êÇÑ ´Ü°è¿¡¼­ ²¨³»Áý´Ï´Ù. .Pp .Ft int .Fn PacketAliasSaveFragment "char *ptr" .Bd -ragged -offset indent .Fn PacketAliasIn (À¸)·ÎºÎÅÍ .Dv PKT_ALIAS_UNRESOLVED_FRAGMENT µ¹·ÁÁÖ¾îÁ® ¿À¸é(ÀÚ), ÀÌ ÇÔ¼ö°¡, ³²¾Æ ÀÖ´Â fragmentÀÇ Æ÷ÀÎÅ͸¦ º¸Á¸Çϱâ À§Çؼ­ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. .Pp Àμö .Fa ptr ÇÏ .Xr malloc 3 ±×¸®°í ÇÒ´çÇÒ ¼ö ÀÖ¾ú´ø ¸Þ¸ð¸®ºê·ÏÅ©¸¦ °¡¸®Å°´Â °ÍÀÌ ¾Ï¹¬Áß¿¡ °¡Á¤µÇ°í ÀÖ½À´Ï´Ù. fragment°¡ ÇØ°áµÇÁö ¾Ê´Â °æ¿ì, ÆÐŶ ¾Ù¸®¾î½Ì(aliasing) ¿£ÁøÀº ŸÀÓ ¾Æ¿ô ½Ã°£ °æ°úÈÄ, ÀÚµ¿ÀûÀ¸·Î ¸Þ¸ð¸®¸¦ ÇØ¹æÇÕ´Ï´Ù [½ÇÁúÀûÀ¸·Î´Â, ÀÌ ÇÔ¼ö´Â, ¸Þ¸ð¸® ÇØ¹æÀÇ Äݹé ÇÔ¼ö°¡ Àμö·Î¼­ °Ç³×¹Þµµ·Ï(µíÀÌ) ¼öÁ¤ÇØ µÑ Çʿ䰡 ÀÖ½À´Ï´Ù]. .Pp ÀÌ ÇÔ¼ö´Â, Á¤»ó ½ÇÇàÀÇ °æ¿ì .Dv PKT_ALIAS_OK (À»)¸¦ µ¹·ÁÁÖ¾î, ¿¡·¯ÀÇ °æ¿ì .Dv PKT_ALIAS_ERROR (À»)¸¦ µ¹·ÁÁÝ´Ï´Ù. .Ed .Pp .Ft char * .Fn PacketAliasGetFragment "char *buffer" .Bd -ragged -offset indent ÀÌ ÇÔ¼ö´Â, .Fn PacketAliasSaveFragment ±×¸®°í º¸°üµÇ¾ú´Ù fragment Æ÷ÀÎÅÍÀÇ ÀçÃëµæÀÌ »ý±é´Ï´Ù. .Fa buffer ±×¸®°í °¡¸®Å°´Â IP Çì´õ fragment´Â, .Fn PacketAliasIn ÇÏÁö¸¸ .Fv PKT_ALIAS_FOUND_HEADER_FRAGMENT (À»)¸¦ µ¹·ÁÁÖ¾úÀ» ¶§¿¡ ÁöÁ¤µÈ´Ù Çì´õ fragmentÀÔ´Ï´Ù. fragmentÀÇ Æ÷ÀÎÅͰ¡ À粨³» µÇ¸é(ÀÚ), È£Ãâ ÇÁ·Î±×·¥¿¡ ÀÇÇØ fragment¿¡ µ¿ÀûÀ¸·Î ÇÒ´çÇÒ ¼ö ÀÖ°í ÀÖ´ø ¸Þ¸ð¸®°¡ ÇØ¹æµË´Ï´Ù. .Pp fragment°¡ ¾ø¾îÁö´Â °ÍÀ¸·Î .Fn PacketAliasGetFragment (À»)¸¦ °è¼ÓÇØ ºÎ¸¦ ¼ö°¡ ÀÖ½À´Ï´Ù. ó¸®ÇÏ´Â fragment°¡ ¾ø¾îÁö¸é(ÀÚ) .Dv NULL ÇÏÁö¸¸ µ¹·ÁÁÖ¾îÁ® ¿É´Ï´Ù. .Ed .Pp .Ft void .Fn PacketAliasFragmentIn "char *header" "char *fragment" .Bd -ragged -offset indent .Fn PacketAliasGetFragment ¿¡ ÀÇÇØ fragmentÀÇ ÀçÃëµæÀ» ÇàÇÒ ¶§, .Fn PacketAliasFragmentIn È£ÃâÀ» ½ÇÇàÇØ fragmentÀÇ ¾Ù¸®¾î½º(alias)¸¦ ÇØÁ¦ÇÒ ¼ö ÀÖ½À´Ï´Ù. Àμö .Fa header (Àº)´Â, ÅÛÇø´À¸·Î¼­ »ç¿ëµÇ°í ÀÖ´Â Çì´õ fragmentÀÇ Æ÷ÀÎÅÍÀÔ´Ï´Ù. Àμö .Fa fragment (Àº)´Â ¾Ù¸®¾î½º(alias) ÇØÁ¦ÇÏ´Â ÆÐŶÀÇ Æ÷ÀÎÅÍÀÔ´Ï´Ù. .Ed .Sh ±× ¿ÜÀÇ ÇÔ¼ö .Ft void .Fn PacketAliasSetTarget "struct in_addr addr" .Bd -ragged -offset indent ±âÁ¸ÀÇ ¾Ù¸®¾î½º(alias) ¸µÅ©¿Í °ü·ÃÀÌ ¾ø´Ù ¹ÛÀ¸·ÎºÎÅÍÀÇ Âø½Å ÆÐŶÀÌ È£½ºÆ® ¸Ó½Å¿¡ µµÂøÇϸé(ÀÚ), ±×°ÍÀº .Fn PacketAliasSetTarget È£Ãâ¿¡ ÀÇÇØ ÁöÁ¤µÇ´Â ÁÖ¼Ò¿¡ º¸³»Áý´Ï´Ù. .Pp ÀÌ ÇÔ¼ö°¡ .Dv INADDR_NONE ÁÖ¼Ò¸¦ Àμö·Î¼­ ºÒ·ÈÀ» °æ¿ì, ¹ÛÀ¸·ÎºÎÅÍÀÇ ¸ðµç ½Å±Ô Âø½Å ÆÐŶÀº .Fn PacketAliasSetAddress ±×¸®°í ¼³Á¤µÇ´Â ÁÖ¼Ò¿¡ °©´Ï´Ù. .Pp ÀÌ ÇÔ¼ö°¡ .Dv INADDR_ANY ÁÖ¼Ò¸¦ Àμö·Î¼­ ºÒ·ÈÀ» °æ¿ì, ¹ÛÀ¸·ÎºÎÅÍÀÇ ¸ðµç ½Å±Ô Âø½Å ÆÐŶÀº ÆÐŶÁß¿¡¼­ ÁöÁ¤µÇ´Â ÁÖ¼Ò¿¡ °©´Ï´Ù. ¿ÜºÎÀÇ ¸Ó½ÅÀÌ ³»ºÎÀÇ ¸Ó½Å¿¡ Á÷Á¢ ·çÆÃ °¡´ÉÇÑ °æ¿ì, ¿ÜºÎÀÇ ¸Ó½ÅÀÌ Á÷Á¢ ³»ºÎÀÇ ¸Ó½ÅÀ̶ó°í À̾߱âÇÏ´Â °ÍÀ» °¡´ÉÀ¸·Î ÇÕ´Ï´Ù. .Ed .Pp .Ft int .Fn PacketAliasCheckNewLink void .Bd -ragged -offset indent ½Å±ÔÀÇ ¾Ù¸®¾î½Ì(aliasing) ¸µÅ©°¡ »ý¼ºµÇ¸é(ÀÚ), ÀÌ ÇÔ¼ö´Â 0 ÀÌ¿ÜÀÇ °ªÀ» µ¹·ÁÁÝ´Ï´Ù. ¹ÛÀ¸·ÎºÎÅÍÀÇ Âø½Å Æ®·¡ÇÈÀÌ Â÷·ÊÂ÷·Ê ´Ù¸¥ ¼­¹ö¿¡ º¸³»Áø´Ù°í ÇÏ´Â »óȲÇÏ·Î, ÀÌ ÇÔ¼ö¸¦ .Fn PacketAliasSetTarget È£ÃâÀ» µðÆúÆ®ÀÇ ¸ñÀû ÁÖ¼Ò¸¦ º¯°æÀ» À§ÇØ ½ÇÇàÇÒ ¶§ÀÇ ¹æ¾Æ¼è·Î ÇÒ ¼ö ÀÖ½À´Ï´Ù. .Ed .Pp .Ft u_short .Fn PacketAliasInternetChecksum "u_short *buffer" "int nbytes" .Bd -ragged -offset indent À̰ÍÀº ³²¿¡¼­´Â »ç¿ëÇÏ´Â ÀÏÀÌ ¾ø½À´Ï´Ù¸¸, Æí¸®ÇÑ À¯Æ¿¸®Æ¼ ÇÔ¼öÀÔ´Ï´Ù. ÀÎÅÍ³Ý Ã¼Å© ¼¶À» °è»êÇÕ´Ï´Ù. üũ ¼¶Àº, IP ¹× ÇÁ·ÎÅäÄÝ (TCP, UDP, ICMP) °íÀ¯ÀÇ Çì´õÀÇ ¾îµð¶óµµ »ç¿ëµÇ°í ÀÖ½À´Ï´Ù. .Pp Àμö .Fa buffer (Àº)´Â üũ ¼¶À» ÃëÇÏ´Â µ¥ÀÌÅÍ ºí·ÏÀ» °¡¸®Å°°í ÀÖ½À´Ï´Ù. ¶Ç .Fa nbytes (Àº)´Â ¹ÙÀÌÆ®¼ö¸¦ ÁÝ´Ï´Ù. 16 ºñÆ®ÀÇ Ã¼Å© ¼¶ Çʵå´Â üũ ¼¶ °è»ê Àü¿¡ 0 Ŭ¸®¾î µË´Ï´Ù. .Pp üũ ¼¶Àº üũ ¼¶ ÀÚ½ÅÀ» Æ÷ÇÔÇß´Ù µ¥ÀÌÅÍ ºí·ÏÀÇ Á¶ÀÛ¿¡ ÀÇÇØ °ËÁõÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. üũ ¼¶ÀÌ ¿Ã¹Ù¸£¸é, PacketAliasInternetChecksum()´Â 0 À» µ¹·ÁÁÝ´Ï´Ù. .Ed .Pp .Ft int .Fn PacketUnaliasOut "char *buffer" "int maxpacketsize" .Bd -ragged -offset indent ¾Ù¸®¾î½º(alias) ó¸®ÇÊÀÇ ¹ÛÀ¸·Î ÇâÇÑ ÆÐŶÀº, °³ÀÎ ÁÖ¼Ò/Æ÷Æ®ÀÇ Á¤º¸¸¦ º»ÇÔ¼ö¿¡ ÀÇÇØ restoreµÇ°í ÀÖ½À´Ï´Ù. .Fa buffer ±×¸®°í °¡¸®ÄÑÁö´Â IP ÆÐŶ°ú .Fa maxpacketsize ÇÏÁö¸¸, ¿¡·¯ üũ¸¦ À§Çؼ­(¶§¹®¿¡) Á¦°øµÇ°í ÀÖ½À´Ï´Ù. º»ÇÔ¼ö´Â, ¾Ù¸®¾î½º(alias) ó¸®ÇÊ ÆÐŶÀÇ ¿ø·¡ÀÇ IP Çì´õ°¡ ÇÊ¿äÇÑ ÇÑÃþ ´õ ó¸® (¿¹¸¦ µé¸é ·Î±ë)¿¡ »ç¿ë °¡´ÉÇÕ´Ï´Ù. .Ed .Sh ¹ö±× PPTP ¾Ù¸®¾î½º(alias)´Â, º¹¼öÀÇ ³»ºÎ Ŭ¶óÀÌ¾ðÆ®°¡ µ¿ÀÏÇÑ ¿ÜºÎ ¼­¹ö¿¡ µ¿½Ã¿¡ Á¢¼ÓÇϸé(ÀÚ) µ¿ÀÛÇÏÁö ¾Ê½À´Ï´Ù. ¿Ö³ÄÇϸé, PPTP ´Â 2 °³ÀÇ IP ÁÖ¼Ò°£¿¡ ´ÜÀÏÀÇ TCP Á¦¾î Á¢¼ÓÀ» ÇÊ¿ä·Î Çϱ⠶§¹®ÀÔ´Ï´Ù. .Sh ÀúÀÚ .An Charles Mott Aq cm@linktel.net , versions 1.0 - 1.8, 2.0 - 2.4. .An Eivind Eklund Aq eivind@freebsd.org , versions 1.8b, 1.9 ¹× 2.5. ¾ÆÅ°ÅØÃÄ¿¡ À־ÀÇ ¼ö¸¹Àº °³¼±¿¡ ÀÇÇÑ °øÇå ¿Ü¿¡, IRC DCC ¿¡ °üÇÑ ¼­Æ÷Æ®¸¦ ÇàÇß½À´Ï´Ù. ¹× FTP/IRC DCC ÀÇ ÆÄÀÌ¾î ¿ù(fire wall)ÀÇ ¿ìȸµµ·ÎÀÔ´Ï´Ù. .An Erik Salander Aq erik@whistle.com ÇÏÁö¸¸ PPTP ¿Í RTSP ÀÇ ¼­Æ÷Æ®¸¦ Ãß°¡Çß½À´Ï´Ù. .An Junichi Satoh Aq junichi@junichi.org ÇÏÁö¸¸ RTSP/PNA ÀÇ ¼­Æ÷Æ®¸¦ Ãß°¡Çß½À´Ï´Ù. .Sh »ç·Ê ÀÌÇÏ, °³·« ½Ã´ë¼ø¼­¿¡ ³ªÅ¸³»´Â °ÍÀº, À¯ÀÍÇÑ ÄÚ¸àÆ®³ª µð¹ö±×ÀÇ µµ¿òÀ» Á¦°øÇØ ÁØ »ç¶÷µéÀÇ À̸§ÀÔ´Ï´Ù. .Pp .Bd -ragged -offset indent .An -split .An Gary Roberts .An Tom Torrance .An Reto Burkhalter .An Martin Renters .An Brian Somers .An Paul Traina .An Ari Suutari .An Dave Remien .An J. Fortes .An Andrzej Bialecki .An Gordon Burditt .Ed .Sh °³³äÀûÀÎ ¹è°æ ÀÌ ºÎ·ÏÀº, ¿ø½Ã ÄÚµåÀÇ ¼öÁ¤À» °ËÅäÇϰí ÀÖ´Â »ç¶÷À̳ª, ÆÐŶ ¾Ù¸®¾î½Ì(aliasing) ÇÔ¼ö¸¦ »ç¿ëÇØ ¾à°£ ³­ÇØÇÑ ¾îÇø®ÄÉÀ̼ÇÀ» ÀÛ¼ºÇÏ´Â »ç¶÷À» ´ë»óÀ¸·Î Çϰí ÀÖ½À´Ï´Ù. .Pp ¿©±â¿¡´Â ÆÐŶ ¾Ù¸®¾î½Ì(aliasing) ¿£ÁøÀÇ °³³äÀûÀΠüÁ¦°¡ ±â¼úµÇ°í ÀÖ½À´Ï´Ù. ³íÀÇÀÇ Áß½ÉÀº, ·ÎÄà ¸Ó½Å°ú ¾Ù¸®¾î½º(alias) µÈ ½Äº°ÀÚ ¹× ¸®¸ðÆ® ¸Ó½Å°£ÀÇ ÁöÁ¤µÇ¾ú´Ù ÆÐŶ Æ®·£Àè¼Ç(transaction)ÀÇ °ü°è¸¦ Á¤ÀÇÇϰí ÀÖ´Ù "¾Ù¸®¾î½Ì(aliasing) ¸µÅ©" ¿¡ »ý°¢¿¡ ´ëÇØÀÔ´Ï´Ù. ÀÌ·¯ÇÑ ¸µÅ©°¡ ¾î¶»°Ô ¹ß»ýÇØ ¶Ç ¼Ò¸êÇұ ÀÓÇØ¼­ °ËÅäµÇ°í ÀÖ½À´Ï´Ù. .Ss ¾Ù¸®¾î½Ì(aliasing) ¸µÅ© .Em ¾Ù¸®¾î½Ì(aliasing) ¸µÅ© (Àº)´Â, 7 °³ÀÇ ¿ä¼Ò·Î ±â¼úÇÒ ¼ö ÀÖ´Ù°í ÇÏ´Â »ý°¢ÀÌ ÀÖ½À´Ï´Ù: .Bd -literal -offset indent (·ÎÄà ÁÖ¼Ò, ·ÎÄà Æ÷Æ® ¹øÈ£, ¾Ù¸®¾î½º(alias) ÁÖ¼Ò, ¾Ù¸®¾î½º(alias) Æ÷Æ® ¹øÈ£, ¸®¸ðÆ® ÁÖ¼Ò, ¸®¸ðÆ® Æ÷Æ®, ÇÁ·ÎÅäÄÝ) .Ed .Pp ¹Û¿¡ ¹ß½ÅÇÏ´Â ÆÐŶÀº, ·ÎÄà ÁÖ¼Ò¿Í ·ÎÄà Æ÷Æ® ¹øÈ£°¡, ¾Ù¸®¾î½º(alias) ÁÖ¼Ò¿Í ¾Ù¸®¾î½º(alias) Æ÷Æ® ¹øÈ£·Î ¿Å°Ü³õÀ» ¼ö ÀÖ½À´Ï´Ù. ¹ÛÀ¸·ÎºÎÅÍ Âø½ÅÇÏ´Â ÆÐŶÀº, ¿ªÀÇ ÇÁ·Î¼¼½º·Î 󸮵˴ϴÙ. ÆÐŶ ¾Ù¸®¾î½Ì(aliasing) ¿£ÁøÀº, ¾Ù¸®¾î½Ì(aliasing) ¸µÅ©ÀÇ ³»ºÎ Å×ÀÌºí¿¡ ´ëÇØ¼­ ÆÐŶÀ» ´ëÀÀ½ÃÄÑ, ÁöÁ¤ IP ÆÐŶÀÇ ¼ö½Ä ¹æ¹ýÀ» °áÁ¤ÇÏ·Á°í ÇÕ´Ï´Ù. IP Çì´õ ¹× ÇÁ·ÎÅäÄÝ¿¡ ÀÇÁ¸ÇÏ´Â Çì´õÀÇ ¾î´ÀÂÊÀ̳ª Çʿ信 µû¶ó¼­ ¼öÁ¤µË´Ï´Ù. ¾Ù¸®¾î½Ì(aliasing) ¸µÅ©´Â, ³×Æ®¿öÅ©ÀÇ Æ®·¡ÇÈ¿¡ ÀÇÇØ, Çʿ信 µû¶ó¼­ »ý¼º, ¼Ò¸êÀÌ ÇàÇØÁý´Ï´Ù. .Pp ÇÁ·ÎÅäÄÝÀº, ¾î´À »óȲ¿¡¼­´Â TCP ³ª UDP À̸ç, ¶Ç´Â ICMP ÀÌ¸ç ±¦Âú½À´Ï´Ù (ICMP °¡ ÀÖ´Â Á¾ÀÇ ÆÐŶ ŸÀÔ¿¡´Â, °³°³ÀÇ ÆÐŶÀÇ Ã³¸® ¹æ½ÄÀ» °áÁ¤ÇÏ´Â Æ÷Æ® ¹øÈ£¿Í °°Àº ±â´ÉÀ» ÇÏ´Â, ÀÏ·ÃÀÇ id ¹øÈ£¿¡ ¾Ù¸®¾î½º(alias) ÇÒ ¼ö°¡ ÀÖ´Â °ÍÀÌ ÀÖ½À´Ï´Ù). .Pp °¢°¢ÀÇ ¾Ù¸®¾î½º(alias) ¸µÅ©´Â ´ÙÀ½ÀÇ 5 °³ÀÇ ¼öÄ¡ÀÇ Æí¼ºÀ» °¡Áö°í ÀÖÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù. Áï, ¾Ù¸®¾î½º(alias) ÁÖ¼Ò / Æ÷Æ®, ¸®¸ðÆ® ÁÖ¼Ò / Æ÷Æ®, ¹× ÇÁ·ÎÅäÄÝÀÔ´Ï´Ù. À̰Ϳ¡ ÀÇÇØ ·ÎÄà ³×Æ®¿öÅ©»óÀÇ ¸î°³ÀÇ ¸Ó½ÅÀº °°Àº ¾Ù¸®¾î½º(alias) IP ÁÖ¼Ò¸¦ °øÀ¯ÇÏ´Â °ÍÀÌ °¡´ÉÇØÁý´Ï´Ù. °æÇÕÀÌ ÀϾ´Â ÄÉÀ̽º¿¡¼­´Â, ¾Ù¸®¾î½Ì(aliasing) Æ÷Æ®°¡, ÀÏÀǼºÀ» À¯ÁöÇÒ ¼ö ÀÖµµ·Ï ¼±Åõ˴ϴÙ. .Ss Á¤Àû ¹× µ¿Àû ¸µÅ© ¾Ù¸®¾î½Ì(aliasing) ¸µÅ©¿¡´Â Á¤Àû ¹× µ¿ÀûÀÎ °ÍÀÌ ÀÖ½À´Ï´Ù. Á¤Àû ¸µÅ©´Â ¹«±âÇÑÀ¸·Î Á¸¼ÓÇØ, IP ÆÐŶÀÇ º¯È¯¿¡ °üÇØ¼­´Â °íÁ¤µÈ ±ÔÄ¢À» º¸°ü À¯ÁöÇϰí ÀÖ½À´Ï´Ù. µ¿Àû ¸µÅ©´Â °³º°ÀÇ TCP Á¢¼ÓÀ̳ª UDP Æ®·£Àè¼Ç(transaction)ÀÇ ¿¡ÄÚ ¼øÂ÷ ¼ø¼­¿¡ ´ëÇØ¼­ »ý¼ºµË´Ï´Ù. TCP ÀÇ °æ¿ì´Â, °ü·ÃÇÏ´Â ¾Ù¸®¾î½Ì(aliasing) ¸µÅ©¸¦ ¸î½Ã »èÁ¦ÇؾßÇÒ °ÍÀΰ¡¸¦ ¾Ë±â À§Çؼ­(¶§¹®¿¡), Á¢¼ÓÀ» °¨½ÃÇÒ ¼ö ÀÖ½À´Ï´Ù. UDP Æ®·£Àè¼Ç(transaction) ( ¹× ICMP ¿¡ÄÚ¿Í Å¸ÀÓ ½ºÅÆÇÁ ¿ä±¸)´Â ´Ü¼øÇÑ Å¸ÀÓ ¾Æ¿ô ±ÔÄ¢À¸·Î ¿òÁ÷À̰í ÀÖ½À´Ï´Ù. ÀÏÁ¤ÇÑ ½Ã°£, µ¿Àû ¸µÅ©ÇÏ´Â ¾×Ƽ¹öƼ°¡ ¾øÀ» ¶§´Â, ÀÚµ¿ÀûÀ¸·Î »èÁ¦µË´Ï´Ù. ŸÀÓ ¾Æ¿ô ±ÔÄ¢Àº ÀûÀýÇÑ ¿ÀÇ / Ŭ·Î¿ìÁ ÇàÇÏÁö ¾Ê´Â´Ù TCP Á¢¼Ó¿¡µµ Àû¿ëµË´Ï´Ù. .Ss ¾Ù¸®¾î½Ì(aliasing) ¸µÅ©ÀÇ ºÎºÐ Á¤ÀÇ ¾Ù¸®¾î½Ì(aliasing) ¸µÅ©´Â ºÎºÐÀûÀÎ Á¤Àǰ¡ °¡´ÉÇÕ´Ï´Ù. À̰ÍÀº ¸®¸ðÆ® ÁÖ¼Ò ¹× (¶Ç´Â) ¸®¸ðÆ® Æ÷Æ®°¡ ºÒ¸íÇÑ °æ¿ì¿¡ ÇàÇÕ´Ï´Ù. ÀÌ °æ¿ì, ºÒ¿ÏÀüÇÑ Á¤ÀÇÀÇ ÆÐŶÀÌ ¹ß°ßµÇ¸é(ÀÚ), ¿ÏÀü »ç¾çÀÇ µ¿Àû ¸µÅ©°¡ »ý¼ºµË´Ï´Ù. ¿ø·¡ÀÇ ºÎºÐ Á¤ÀÇÀÇ ¸µÅ©°¡ µ¿ÀûÀÎ °ÍÀÎ °æ¿ì, ¿ÏÀü »ç¾çÀÇ ¸µÅ©°¡ »ý¼ºµÈ ÈÄ ±×°ÍÀº »èÁ¦µÇ¾î ±×·¸Áö ¾ÊÀº °æ¿ì ¹«±âÇÑÀ¸·Î ³²°Ô µË´Ï´Ù. .Pp ¿¹¸¦ µé¾î, ºÎºÐ Á¤ÀÇ ¸µÅ©´Â ´ÙÀ½°ú °°½À´Ï´Ù. .Bd -literal -offset indent (192.168. 0.4, 23, 204.228. 203.215, 8066, 0, 0, tcp) .Ed .Pp 0 ÀÇ °ªÀº ¸®¸ðÆ® ÁÖ¼Ò ¹× Æ÷Æ®ÀÇ ¹ÌÁ¤µµ¸® ºÎºÐÀ» ³ªÅ¸³»°í ÀÖ½À´Ï´Ù. ¸µÅ©°¡ Á¤ÀûÀÎ °ÍÀ̸é, ¹ÛÀ¸·ÎºÎÅÍ Âø½ÅÇØ ¿À´Â ÀüÆ®·¡ÇÈÀ» ÁÖ¼Ò 204.228. 203.215 ÀÇ Æ÷Æ® 8066 À¸·ÎºÎÅÍ, ·ÎÄà ³×Æ®¿öÅ©»óÀÇ 192.168. 0.4 ÀÇ ÁÖ¼Ò¸¦ °¡Áö´Â ¸Ó½ÅÀÇ Æ÷Æ® 23 (telnet)¿¡ ¸®µð·ºÆ® ÇÏ°Ô µË´Ï´Ù. .Ss A. 4 µ¿Àû ¸µÅ©ÀÇ »ý¼º ¾Ù¸®¾î½Ì(aliasing) ¸µÅ©¿¡ °¡¼¼ÇØ ÆÐŶ ¾Ù¸®¾î½Ì(aliasing) ±â±¸¸¦ °¡Áø´Ù ³»ºÎ µ¥ÀÌÅÍ Å×ÀÌºí¿¡ °Ý³³ÇÒ ¼ö ÀÖ´Â ÁÖ¼Ò ´ëÀÀÇ¥°¡ ÀÖ½À´Ï´Ù. .Bd -literal -offset indent (·ÎÄà ÁÖ¼Ò, ¾Ù¸®¾î½º(alias) ÁÖ¼Ò) .Ed .Pp ÁÖ¼Ò ´ëÀÀÇ¥´Â µ¿Àû ¸µÅ© »ý¼º½Ã¿¡ ÇÊ¿äÇÏ°Ô µË´Ï´Ù. .Pp ·ÎÄà ³×Æ®¿öÅ©·ÎºÎÅÍ ¹Û¿¡ ¹ß½ÅÇÏ´Â ¸ðµç ÆÐŶÀº, ±âÁ¸ÀÇ ¿ÏÀü Á¤ÀÇµÈ ¸µÅ©¿Í ÀÏÄ¡Çϰí ÀÖÁö ¾ÊÀ¸¸é, µ¿Àû ¸µÅ©¸¦ ÀÚµ¿ÀûÀ¸·Î »ý¼ºÇÕ´Ï´Ù. À̰ÍÀº ¹ß½ÅÇÏ´Â ÆÐŶ¿¡ °ü°èµÇ¾î, ÁÖ¼Ò ´ëÀÀÀÌ ÀÖÀ¸¸é »ç¿ëµÇ´Â ¾Ù¸®¾î½º(alias) ÁÖ¼Ò¸¦ °áÁ¤ÇÕ´Ï´Ù. ´ëÀÀÀÌ ¾øÀ¸¸é, µðÆúÆ® ÁÖ¼Ò°¡ Åë»ó ¾Ù¸®¾î½Ì(aliasing) È£½ºÆ®ÀÇ ÁÖ¼ÒÀÔ´Ï´Ù¸¸, »ç¿ëµË´Ï´Ù. ÇÊ¿äÇϸé, µðÆúÆ® ÁÖ¼Ò´Â °³°³ÀÇ ÆÐŶÀÌ µµÂøÇÒ ¶§¸¶´Ù º¯°æÇÒ ¼ö ÀÖ½À´Ï´Ù. .Pp ¾Ù¸®¾î½Ì(aliasing) Æ÷Æ® ¹øÈ£´Â, »õ·Î¿î µ¿Àû ¸µÅ©°¡ ±âÁ¸ÀÇ ¸µÅ©¿Í °æÇÕ ÇÏÁö ¾Ê°Ô °áÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. µðÆúÆ® Á¶ÀÛ ¸ðµå¿¡¼­´Â, ÆÐŶ ¾Ù¸®¾î½Ì(aliasing) ¿£ÁøÀº ·ÎÄà Æ÷Æ® ¹øÈ£¿Í °°Àº ¹øÈ£¸¦ ¾Ù¸®¾î½Ì(aliasing) Æ÷Æ®·Î¼­ ¼³Á¤ÇÏ·Á°í ÇÕ´Ï´Ù. ±× °á°ú °æÇÕ Çϸé, Æ÷Æ® ¹øÈ£´Â ÀÏÀÇÀÎ ¾Ù¸®¾î½Ì(aliasing) ¸µÅ©°¡ µÉ ¶§±îÁö ¹«ÀÛÀ§·Î ¼±ÅÃÀÌ ÇàÇØÁý´Ï´Ù. ¿¹ºñÀÇ Á¶ÀÛ ¸ðµå¿¡¼­´Â, ¾Ù¸®¾î½Ì(aliasing) Æ÷Æ®ÀÇ ÃÖÃÊÀÇ ¼±ÅÃÀº ¹«ÀÛÀ§·Î, ¶Ç ·ÎÄà Æ÷Æ® ¹øÈ£¿Í ¹«°ü°èÇÏ°Ô ÇàÇØÁý´Ï´Ù.