관리 메뉴

Jacob Baek's home

iptables for NAT loopback 본문

network/System and Tools

iptables for NAT loopback

jacobbaek Jacob_baek 2020. 9. 9. 13:34

NAT Loopback (or Hairpin)

NAT 환경에서 NAT 뒷단에 두개의 서버 (Server A, Server B)가 있는 상황

  • Server B는 public ip로 서비스를 하고 있는 상황이며
  • Server A에서는 public ip로 Server A에 접속해야 하는 상황

이와 같은 경우 연결이 이루어지지 않는다. 이를 NAT loopback 혹은 hairpin 이라고 이야기 한다.

iptables를 통한 연결방법

다음과 같은 rule을추가한다.

# router: 
# - eth0 : 82.120.11.22(public IP), 
# - eth1 : 192.168.1.1(internal IP)
# Server a (src) : 192.168.1.100
# Server a (dst) : 192.168.1.200(with public ip)

# 기본 nat 설정은 되어있다는 가정하에 nat loopback에 대한 해결을 할수 있는 rule만 작성하였다.

iptables -t nat -A PREROUTING -i eth1 -s 192.168.1.0/24 -d 82.120.11.22/32 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.1.200
iptables -t nat -A POSTROUTING -o eth1 -s 192.168.1.0/24 -d 192.168.1.200/32 -p tcp -m tcp --dport 80 -j SNAT --to-source 192.168.1.1
systemctl restart iptables 

이후 다시 접속 수행시 정상적으로 연결됨을 확인할 수 있다.

'network > System and Tools' 카테고리의 다른 글

iptables for NAT loopback  (0) 2020.09.09
How to use a proxy server as a client  (0) 2019.06.12
Cisco IOS SSH Enabling  (0) 2017.09.28
0 Comments
댓글쓰기 폼