1. 개념
헤어핀 NAT는 내부 네트워크의 클라이언트가 같은 네트워크 내의 서버에 접근할 때, 서버의 공인 IP 주소를 사용하여 통신할 수 있게 해주는 NAT 기술입니다. 이 과정에서 NAT 장치는 트래픽을 내부에서 내부로 "헤어핀" 모양으로 돌려보내기 때문에 Hairpin NAT란 명칭을 사용합니다.
이 기술을 통해 내부 클라이언트는 외부 사용자와 동일한 공인 IP 주소나 도메인 이름을 사용하여 내부 서버에 접근할 수 있습니다. 이는 네트워크 구성의 일관성을 유지합니다. 또한, 내부 통신이 외부 네트워크를 거치지 않고 직접 이루어지기 때문에 불필요한 네트워크 트래픽이 줄어들어 응답 시간이 단축됩니다. 더불어, 내부 통신 패킷이 외부로 나가지 않아 중간자 공격(MITM) 등의 보안 위험이 감소하여 전반적인 네트워크 보안이 강화됩니다.
2. 동작 방식
① 클라이언트 요청
내부 네트워크의 클라이언트가 서버의 공인 IP 주소를 목적지로 하여 요청 패킷을 발송합니다. 이 단계에서 클라이언트는 마치 외부 서버에 접근하는 것처럼 동작합니다.
② NAT 변환 (Inbound)
헤어핀 NAT 를 통해 패킷의 목적지 주소를 서버의 공인 IP에서 해당 서버의 내부 사설 IP 주소로 변환합니다. 이 과정을 통해 외부로 나가려던 패킷이 내부 네트워크로 "헤어핀" 모양으로 돌아가게 됩니다.
③ 서버 응답 및 NAT 변환 (Outbound)
내부 서버가 요청을 받고 처리한 후, 클라이언트에게 응답 패킷을 발송합니다. 이 응답 패킷이 헤어핀 NAT를 통해 패킷의 출발지 IP 주소를 서버의 내부 사설 IP에서 공인 IP 주소로 변환합니다.
④ 클라이언트 수신
최종적으로 클라이언트는 서버의 공인 IP 주소에서 온 것처럼 보이는 응답 패킷을 수신합니다. 이로 인해 클라이언트는 마치 외부 서버와 통신한 것과 같은 통신을 수행합니다.
이러한 과정을 통해 헤어핀 NAT는 내부 네트워크의 클라이언트가 동일 네트워크 내의 서버에 대해 일관된 방식으로 접근할 수 있게 해주며, 내부와 외부 통신의 구분 없이 동일한 주소 체계를 사용할 수 있게 합니다.
3. 적용 방법
회사 내부 네트워크에 웹 서버가 있고, 이 서버는 외부에서 52.31.48.100으로 접근 가능한 상황인 경우를 가정 하였습니다.
웹 서버 내부 IP: 172.31.201.100/32
웹 서버 공용 IP: 52.31.48.100/32
내부 클라이언트 IP: 192.168.123.190/32
1) Juniper SRX
172.31.201.100/32 IP의 NAT pool 생성
trust 구간에서 오는 트래픽을 web-access 이름의 rule-set으로 설정
rule-set 내 web-server라는 규칙을 생성하고 목적지 IP 주소를 52.31.48.100로 설정
web-server 규칙에 일치하는 트래픽에 대해 DNAT 수행
set security nat destination pool web-server-pool address 172.31.201.100/32 set security nat destination rule-set web-access from zone trust set security nat destination rule-set web-access rule web-server match destination-address 52.31.48.100 set security nat destination rule-set web-access rule web-server then destination-nat pool web-server-pool |
2) Fortigate
1. VIP 객체 생성 config firewall vip edit "52.31.48.100/32_VIP" set extip 52.31.48.100 set extintf "any" set mappedip 172.31.201.100 next end 2. 정책 설정 config firewall policy edit 0 set name "web-access" set srcintf "internal" set dstintf "internal" set srcaddr "all" set dstaddr " 52.31.48.100/32 _VIP" set action accept set schedule "always" set service "ALL" set nat enable next end |
'Network > Network Theory' 카테고리의 다른 글
[Network] SNMP(Simple Network Management Protocol) 란? (0) | 2022.10.19 |
---|---|
FTP (File Transfer Protocol) 란? (6) | 2022.10.19 |
DNS (Domain Name System)란? (3) | 2022.10.03 |
DHCP(Dynamic Host Configuration Protocol) 란? (0) | 2020.08.19 |
[Network] ARP, RARP,GARP 개념 (0) | 2020.02.11 |
공부&일상 블로그
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요! 질문은 언제나 환영입니다😊