반응형
NAT에 대한 개념 설명은 아래의 Joinc 사이트를 참고
NAT
DNAT를 이용한 Load balancing
www.joinc.co.kr:443
일반적으로 DNAT는;
웹 서버가 Private Network 내부에 존재하면, Public network과 Private network의 경계에 있는 DNAT 장치가 외부의 모든 요청 패킷을 수신하여 Dest Address를 Private network의 IP Address 및 TCP/UCP Port로 변경하여 전달하는 용도로 자주 이용된다.
아래 명령 예제는
- Host machine이 eth1
- Host machine과 Virtual machine의 Bridge interface를 virbr0 (참고: VM 내부의 IP는 192.168.122.203)
라고 가정하고 설정한 것이다.
$ echo 1 > /proc/sys/net/ipv4/ip_forward ## ## 주의: ## 아래 -F 옵션은 FORWARD 체인의 내용을 깨끗하게 지우는 명령(Flush)이기 때문에 조심해서 사용해야 한다. ## $ iptables -F FORWARD ## ## FORWARD 체인에 eth1 ethernet port로 나가는 트래픽을 허용하는 Rule을 추가. ## $ iptables -A FORWARD -o eth1 -j ACCEPT ## ## FORWARD 체인에 virbr0 ethernet port로 나가는 트래픽을 허용하는 Rule을 추가. ## $ iptables -A FORWARD -o virbr0 -j ACCEPT ## ## VM의 SSH 서비스로 DNAT 처리 (Port forward: 50022 --> 22) ## $ iptables -t nat -A PREROUTING -i eth1 -p TCP --dport 50022 -j DNAT --to 192.168.122.203:22 ## ## VM의 Web 서비스로 DNAT 처리 (Port forward: 50080 --> 80) ## $ iptables -t nat -A PREROUTING -i eth1 -p TCP --dport 50080 -j DNAT --to 192.168.122.203:80
위 명령 예시에서 마지막 명령줄에 대한 설명:
Gateway의 eth1으로 들어오는 패킷중에 80번 포트번호로 접속하는 패킷은 192.198.122.203(HTTP)의 80번 포트로 보낸다.
파라미터 단위로 의미를 파악해보면, 아래와 같다.
iptables -t nat(NAT기능을 사용하겠다) -A PREROUTING(PREROUTING 체인에 Rule을 추가) -i eth0(eth0 인터페이스로 들어오는 패킷들에 적용한다) -p TCP(TCP 프로토콜이면) --dport 80(접속하려는 포트번호가 80번이면) -j DNAT --to 192.168.122.203:80 (목적지 주소를 192.168.122.203으로 변경, 포트 번호는 80번으로 변경한다)
'Ubuntu' 카테고리의 다른 글
iptables and netfilter (1) | 2021.07.10 |
---|---|
tcpdump로 HTTP Packet Decode 하기 및 tshark 사용법 (0) | 2021.07.10 |
sudoers 설정 (암호 입력 없이 root 사용자 권한 얻기) (0) | 2021.07.10 |
resolv.conf on Ubuntu (0) | 2021.07.10 |
Sharing Desktop (원격 데스크탑) on Ubuntu (0) | 2021.07.10 |