Á¦°¡ ¼º°øÇÑ Mikrotik Hairpin ¹æ¹ý(°£´Ü)

eu4you   
   Á¶È¸ 5043   Ãßõ 0    

입문자 메뉴얼 방법대로 해도 안되었고, 인터넷 자료들 보면서 해도 안되었는데,
이 방법으로 하니 되었습니다.


일단 헤어핀이 필요한 이유를 다음과 같이 추측해보았습니다.
참고로 비전공자인 제 추측이기에, 틀린 부분이 있으면 지적 감사하게 받겠습니다.

Client(내부망) 호출
-> 처음 Src-NAT이 작동할 때 Src. Address가 외부 IP주소가 같으므로, Src. Address가 NAT 처리 되지 않고 외부망으로 나감
-> 서버(내부망)가 외부망을 통해 포트포워딩을 통해 받음
-> 서버는 '클라이언트:내부망 주소 => 서버:외부망 주소'로 받음(이 때 포트포워딩을 통해 dst-NAT처리가 되어있는 상태이기에 NAT을 거치게 될 예정)
-> 서버는 자신이 외부망으로 받았기에, NAT에게 다시 주소를 전달하되, 받는 사람을 내부망 주소로 하여 패킷을 보냄
-> 이 때 NAT은 서버의 주소는 외부 IP로 바꾸지만, 도착지 IP를 내부망 주소로 외부에 패킷을 보냄으로서 패킷이 실종됨.

하.. 맞는지 모르겠네요..

여기서 헤어핀이 하는 역할이란,

Client(내부망) 호출
-> 처음 Src-NAT이 작동할 때 Src. Address가 외부 IP주소가 같으므로, Src. Address가 NAT 처리 되지 않고 외부망으로 나감
-> 서버(내부망)가 외부망을 통해 포트포워딩을 통해 받음
-> 서버는 '클라이언트:내부망 주소 => 서버:외부망 주소'로 받음(이 때 포트포워딩을 통해 dst-NAT처리가 되어있는 상태이기에, src-NAT을 거치게 될 예정)
-> 서버는 자신이 외부망으로 받았기에, NAT에게 다시 주소를 전달하되, 이번엔 외부망 주소 -> 내부망 주소로 보내며, 외부망 주소는 내부망 주소에서 src-NAT을 거치게 됨.
-> 이 때 NAT 헤어핀이 NAT의 가장 상단에 있고, src-NAT 마스커레이드 명령이 있기에, 외부->내부를 내부->내부로 변환하여 전달함


일단 제가 한 것 올려드립니다.

1. 기본적으로 NAT - srcnat 마스커레이드는 Out. Interface를 WAN으로 해주고요.

/ip firewall nat
add action=masquerade chain=srcnat comment="NAT Basic" out-interface-list=WAN


이제 포트포워딩 설정입니다.

2. Firewall - NAT - dstnat 설정할 때, IN. Interface를 설정해주지 않으며,
Extra에서 Dst. Address Type을 Local로 설정해줍니다.
General에서 프로토콜과 Dst. Port, 그리고 Action의 Dst-nat에 대한 To addresses 및 ports는 각자의 상황에 맞게 포트포워딩 설정을 해줍니다.

보통 IN. Interface를 WAN으로 주는 경우가 많은데,
이 경우 헤어핀이 설정되어있어도 패킷이 해당 포트에 도달하지 않습니다.

왜냐하면 헤어핀 NAT은 순서상 1번의 마스커레이드를 거친 다음에 작동하기 때문이며,
지금 IN은 LAN에서 들어오기 때문에, NAT 자체를 거치지 않게 되기 때문입니다.

그러나 그렇다고 IN에서 아무 것도 설정해주지 않으면, 외부로 가야하는 포트도 나가지 못하고 묶여버립니다.
Ex) 80, 443 등의 포트의 경우, 이렇게 포워딩이 되어있으면 인터넷 브라우저를 사용할 수 없게 됩니다.

그렇다고 dst-nat을 설정하는데 Out. Interface를 Local로 설정이 되는 것도 아닙니다.
dst-nat 특성상 Out. Interface를 따로 설정해줄 수 없는 모양입니다(왜 그런지 아시는 분 답글 부탁드립니다).

따라서 Extra에서 Dst. Address Type을 Local로 설정해줌으로서, 해당 Dst. Address가 Local일 경우에만 포트포워딩이 작동하도록 할 수 있습니다.
마이크로틱 위키에서는 이것이 라우터의 인터페이스 중 하나에 dst-address 주소가 존재하는 경우에 작동하게 된다고 말하며, 허브에 물려있어도 잘 작동하는 것을 확인했습니다.

저는 다음과 같이 설정했습니다.

/ip firewall nat
add action=dst-nat chain=dstnat comment=NAS_HTTP dst-address-type=local \
    dst-port=80 protocol=tcp to-addresses=192.168.0.200 to-ports=80


이제 헤어핀 설정입니다.

3.  NAT - srcnat을 다음과 같이 설정해주고, 최상단에 올려둡니다.

Src.Address : (local pool) ; 192.168.0.0/24

셋 중 하나를 지정해줍니다.
  1) Dst.Address : (!gateway) //192.168.0.1, OSI Layer 3단 차원에서 작동
  2) Dst.Address : (local pool) // 192.168.0.0/24, OSI Layer 3단 차원에서 작동
  3) Out. Interface : Local // OSI Layer 1단 차원에서 작동

단순 처리 속도만으로 보면 3번이 가장 빠르겠지요.

헤어핀은 일단 NAT이 걸린 다음에 작동합니다. 로그를 살펴보니 dstnat이 먼저 나타난 후 헤어핀의 srcnat이 나타납니다.
그래서 2번 포트포워딩의 Input이 내부망으로 잡혀있어야 헤어핀을 사용할 수 있습니다.

저는 다음과 같이 되어있습니다.

/ip firewall nat
add action=masquerade chain=srcnat comment=Hairpin dst-address-type="" \
    out-interface=Local src-address=192.168.0.0/24 src-address-type=""


뭔가 이상한 부분은 짚어주시면 감사하겠습니다!


±èÇö¸° 2022-03
¹ÌÅ©·ÎƽÀ» ´ëºÎºÐ »ç¶÷µéÀÌ CLI·Î »ç¿ë ÇÏ½Ã´Â°Í °°±º¿ä..
Àú¸¸ GUI·Î Çϴ°ɱî¿ä;;
     
eu4you 2022-03
ÇÏÇÏ;; Àúµµ GUI·Î Çß½À´Ï´Ù. ´Ù¸¸ ÀüüÀûÀÎ ¼³Á¤ ±¸¼ºÀ» Âü°íÇÒ ¶§ '$ export files=ºí¶óºí¶ó.rsc'·Î ÃßÃâÇÑ °á°ú°¡ ÀÌÇØÇϱ⠽±±â¿¡ ¿Ã·Áµå¸®´Â °ÍÀÔ´Ï´Ù^^;;
Àúµµ ½ÇÁ¦ ±¸¼ºÀÇ 99% GUI·Î ´Ù Çß½À´Ï´Ù. ƯÈ÷ Copy ±â´ÉÀÌ ¸¶À½¿¡ µé´õ±º¿ä.

¾Æ¸¶ ½Ã½ºÄÚ ´Ù·ç½Ç¸¸ÇÑ ±Þ Á¤µµ µÇ½Ã´Â ÀåÀκеéÀº CLI°¡ ´õ ÆíÇÏÁö ¾ÊÀ¸½Ç±î¿ä? Àú°°Àº ³×¸°ÀÌ´Â GUI°¡ ÁÁ½À´Ï´Ù^^
     
¹Ú°Ç 2022-04
¾îÂ÷ÇÇ GUI¿¡ ÀÖ´Â °ÍÀº CUI¿¡ Àֱ⠶§¹®¿¡, µüÈ÷ CLI¸¦ ¸¹ÀÌ »ç¿ëÇÑ´Ù°í Çϱ⺸´Ù´Â, ¼±È£ÇÏ´Â ´ë·Î ÇÏ°í´Â ÇÕ´Ï´Ù.
¼³¸íÇÒ¶§´Â ¿©·¯ ±×¸²À» º¸°Ô ÇÏ´Â °Íº¸´Ù, ÄÚ¸àÆ®¸¦ Àß ´Þ¾ÆµÐ CLI·Î Àû¾îµÎ´Â °ÍÀÌ ÇÑ´«¿¡ ÀÌÇØÇϴµ¥¿¡ ´õ ÆíÇÑ Ãø¸éÀº ÀÖ½À´Ï´Ù.
¹Ú°Ç 2022-04
http://www.2cpu.co.kr/PDS/13681
98,99 ÆäÀÌÁö¸¦ È®ÀÎÇغ¸¼¼¿ä.


Á¦¸ñPage 24/105
2020-01   4329   SiCMOS
2021-02   4331   ±îÄ¡»ê°³²ÜÅÊ
2021-09   4332   ¸ð¸Ê
2021-09   4333   Spinel
2022-02   4334   µö·¯´×¼­¹ö
2021-01   4348   È÷Áö
2022-05   4352   Àα¹
2021-01   4358   ±â¹¦ÇÑ»ýÈ°
2022-04   4364   ¸ð¾îÄð
2020-11   4368   Sanzuk
2020-10   4383   ¿ÀÅÁ
2021-02   4392   Ä«ÀÌÁ¦¸°
2020-08   4393   ZaseJK
2019-10   4404   µö·¯´×¼­¹ö
2019-02   4408   ¾Æ½Î¸Ç
2021-03   4417   kkkdddr
2022-08   4420   Á¦Ol
2022-08   4421   À¯Æ©ºê¶óÀ̺ê
2021-03   4422   INMD
2022-01   4425   Bebhioon