그냥 제가 설정 하나 만들어 보았습니다.
아래를 따라 가면 NAT 루프백 별로 어렵지 않게 세팅 가능 할겁니다.
0.
먼저 NAT루프백을 하려면 다음과 같이 Public IP를 얻어 올수 있게 세팅 해야 합니다.
시스템->스케쥴러에 등록 합니다. 인터벌은 1분 정도면 되겠습니다.
# Set needed variables
:global extinterface "ether1-gateway"
:global ExtIpListName "external-ip"
:global extip ""
:global oldextip ""
# Grab the current IP address on that interface.
:local extip2 [/ip address get [/ip address find interface=$extinterface ] address];
:set extip [:pick $extip2 0 [:find $extip2 "/"]];
:if ([:len [/ip firewall address-list find list=$ExtIpListName]] > 0) do={
:set oldextip [/ip firewall address-list get [/ip firewall address-list find list=$ExtIpListName] address];
:if ($oldextip != $extip) do={
/ip firewall address-list set [/ip firewall address-list find list=$ExtIpListName address=$oldextip] address=$extip
:log info "External IP relpace from $oldextip to $extip"
};
} else={
/ip firewall address-list add list=$ExtIpListName address=$extip
:log info "New external IP added: $extip"
}; |
그리고 IP->Firewall -> Address List에 external-ip 가 등록이 되었는지 봅니다.
1.
DNAT 의 설정 입니다.
IP -> Firewall -> Address List 에서 dstnat 을 등록할때.
Proto: TCP
Dst Port :1234
같이 할때에 In Out 인터페이스는 비우고 Dst Address List 에 external-ip 를 설정 해줍니다. (중요)
이건 DNAT 할때에 인터페이스 기준이 아니라 Public IP 기준으로 잡아 주는 겁니다. (내부에서 타고 들어갈때에 중요.... 보통 이런 저런 강좌에서는 인터페이스를 설정 하도록 하더군요.)
2.
NAT 루프백 SNAT 을 설정 합니다.
Chain은 srcnat
Src Address 에 내부 IP (제 경우에는 서브넷 포함해서 10.1.1.0/24로 설정)
Dst Address 에 내부 IP(상동)
Out. Interface 에 내부 브릿지 (bridge-local)
Action에 Masquerade 로 설정 합니다.
===========
이제 인 이웃 잘됩니다. 자동으로 외부 IP를 인식해서 설정 되기 때문에 loopback NAT또는 Hairpin NAT에 이슈가 없을 겁니다.
ÁÁÀº ÀÚ·á Àß Âü°íÇÏ°Ú½À´Ï´Ù.
DNAT ÀÇ ¼³Á¤ ÀÔ´Ï´Ù.
IP -> Firewall -> Address List ¿¡¼ dstnat À» µî·ÏÇÒ¶§.
ÀÌ ºÎºÐÀÌ Àß ¾ÈµÇ´Âµ¥¿ä. ¿ÀŸ³ª ¹º°¡¸¦ »©¸ÔÀº °ÍÀÌ ÀÖ´ÂÁö¿ä?
¹ÌÅ©·Îƽ ¼³Á¤ÇÏ´Ù°¡ ±¸±Û¸µÇߴµ¥, ¿©±â±îÁö ¿Ô³×¿ä.¤¾
±×¸®°í IP->Firewall -> Address List¿¡ external-ip °¡ µî·Ï
»ý¼ºÀÌ ¾ÈµË´Ï´Ù. ¹æ¹ýÀÌ ¾ø³ª¿ä