나의 IT일지
DHCP와 NAT 본문
DHCP
DHCP란 자동으로 IP주소를 할당해 주는 프로토콜로, 클라이언트의 MAC주소를 DHCP 서버에 등록하고 그에 대응하는 IP주소를 클라이언트에게 할당한다. 그리고, DHCP를 통해 부여되는 IP주소를 동적 IP주소라고 한다.
- DHCP 동작 과정
- broadcast를 통해 클라이언트에서 가장 가까운 DHCP서버 서치 → discover
- DHCP서버는 클라이언트에게 MAC주소 등록여부 확인 → offer
- DHCP 클라이언트가 MAC주소를 보내면서 서버에게 IP주소를 요청 → request
- 클라이언트에게 IP주소 전송 후, 클라이언트는 IP 주소를 적용 → ACK
이떄, DHCP서버에 netmask, gateway, DNS, 임대기간를 설정해서 해당 DHCP서버에서 IP주소를 받을 경우, netmask, gateway, DNS, 임대기간 같이 부여받게 한다.
- DHCP설정
- ip dhcp pool [이름] : DHCP 서버 이름 생성 및 설정
- network [네트워크 IP] [서브넷 마스크] : 동적 IP 주소 범위 생성
- default-router [라우터 IP주소] : 게이트웨이 설정
- dns-server [DNS 서버 IP주소] : DNS서버 설정
- ip dhcp excluded-address [IP 주소] : 해당 IP주소는 DHCP 할당 IP주소로 사용하지 않도록 설정
- ip dhcp excluded-address [IP 주소] [IP 주소] : 해당 IP주소 범위에 있는 IP주소는 DHCP 할당 IP주소로 사용하지 않도록 설정
- service dhcp : L3 스위치에서 DHCP 서버를 활성화하는 명령어
- 라우터 DHCP 상태 확인
- show ip dhcp binding : DHCP서버에서 할당하고 있는 IP주소 출력
- clear ip dhcp binding * : DHCP서버의 할당 IP주소 테이블 초기화
- show ip dhcp binding : DHCP서버에서 할당하고 있는 IP주소 출력
- DHCP 릴레이
- 클라이언트와 서버가 같은 네트워크가 아니지만, 클라이언트가 DHCP 서버에게 IP주소를 할당 받기 위해서 DHCP서버를 대여하는 기능
- ip helper-address [DHCP서버 주소] : 서버가 아닌 라우터에게 DHCP 릴레이를 설정
- 클라이언트와 서버사이에 라우터가 존재할 경우, 해당 라우터에는 동적 네트워크 대역에 대한 정보가 라우팅되어 있어야 한다.
- service dhcp : L3 스위치에서 대여받은 DHCP 서버를 활성화하는 명령어
- ip helper-address [DHCP서버 주소] : 서버가 아닌 라우터에게 DHCP 릴레이를 설정
- 클라이언트와 서버가 같은 네트워크가 아니지만, 클라이언트가 DHCP 서버에게 IP주소를 할당 받기 위해서 DHCP서버를 대여하는 기능
- 라우터, L3 스위치의 동적 IP주소를 사용
- ip address dhcp : 해당 인터페이스에서 받아오는 IP주소는 동적 IP 주소로 설정
//Router 0
Router(config)#ip dhcp pool dhcp100
Router(dhcp-config)#network 100.100.100.0 255.255.255.0
Router(dhcp-config)#default-router 100.100.100.254
Router(dhcp-config)#dns-server 10.0.0.1
Router(dhcp-config)#
Router(dhcp-config)#ip dhcp pool dhcp200
Router(dhcp-config)#network 200.200.200.0 255.255.255.0
Router(dhcp-config)#default-router 200.200.200.254
Router(dhcp-config)#dns-server 10.0.0.1
Router(dhcp-config)#
Router(dhcp-config)#ip dhcp pool dhcp30
Router(dhcp-config)#network 30.30.30.0 255.255.255.0
Router(dhcp-config)#default-router 30.30.30.254
Router(dhcp-config)#dns-server 10.0.0.1
Router(dhcp-config)#
Router(dhcp-config)#ip dhcp excluded-address 100.100.100.0 100.100.100.49
Router(config)#ip dhcp excluded-address 100.100.100.101 100.100.100.255
Router(config)#ip dhcp excluded-address 200.200.200.0 200.200.200.99
Router(config)#ip dhcp excluded-address 200.200.200.201 200.200.200.255
Router(config)#ip dhcp excluded-address 30.30.30.0 30.30.30.29
Router(config)#ip dhcp excluded-address 30.30.30.50 30.30.30.255
//Router 1
Router(config)#interface FastEthernet0/1
Router(config-if)#ip helper-address 1.1.1.1
100.100.100.0/24 | 200.200.200.0/24 | 30.30.30.0/24 |
NAT
NAT이란 네트워크 주소를 변환하는 기술로, 인터넷을 사용할 수 없는 사설 IP 주소를 인터넷을 사용할 수 있도록 공인 IP주소로 변환한다.
이때, NAT를 기준으로 inside를 사설 대역, outside를 공인 대역으로 정의하고 있으며, 사설 대역의 IP주소를 사설IP 주소, 공인 대역의 IP주소를 공인 IP주소라고 한다.
즉, NAT는 사설 IP주소를 공인 IP주소로 변환하여 인터넷을 사용할 수 있도록 하는 기술로, 공인 IP주소의 낭비 방지하고 사설 IP주소 정보 보호를 통해 보안적으로 권장하고 있다.
SNAT와 DNAT | |
SNAT (Source NAT) | 출발 IP 주소를 변환하는 기술 ( 사설 IP 주소 → 공인 IP 주소) |
DNAT (Destination NAT) | 도착 IP 주소를 변환하는 기술 (공인 IP 주소 → 사설 IP 주소) |
- NAT의 종류
- Static NAT (Static Network Address Translation)
- 사설 IP주소와 공인 IP주소를 1:1 매칭시키는 NAT
- 서버의 사설IP주소와 공인 IP 주소가 고정되어 있기 때문에, Port Forwarding에 사용
- 사설IP주소와 공인 IP 주소간의 왕래가 자유로워, 서버의 라우터에서 DNAT에서 많이 활용
- Dynamic NAT (Dynamic Network Address Translaton)
- 사설 IP주소와 공인 IP주소를 n:n 매칭시키는 NAT
- PAT (Port Address Transport)
- 사설 IP주소와 공인 IP주소를 n:1 매칭시키는 NAT
- 하나의 공인 IP주소에 포트번호를 달리함으로써 서로다른 IP주소라고 인식 시킴
- Static NAT (Static Network Address Translation)
- NAT 설정
- Static NAT
- ip nat inside : 해당 인터페이스를 내부영역에 소속시키는 명령어
- ip nat outside : 해당 인터페이스를 외부 영역에 소속시키는 명령어
- ip nat inside source static [사설 IP 주소] [공인 IP 주소] : 특정 사설IP 1개와 특정 공인 IP1개를 매칭
- Dynamic NAT
- ip nat inside : 해당 인터페이스를 내부영역에 소속시키는 명령어
- ip nat outside : 해당 인터페이스를 외부 영역에 소속시키는 명령어
- ip nat pool [이름] [시작 IP] [마지막 IP] [netmask] : 공인 IP 주소 pool 설정
- access-list 1 permit [네트워크 IP] [wildcardmask] : 사설 IP 주소 pool 설정
- wildcard mask : 호스트의 개수를 표현 네트워크 정책을 좀더 유연하게 설정하기 위한 기법
(호스트 : 1, 네트워크 : 0)
- wildcard mask : 호스트의 개수를 표현 네트워크 정책을 좀더 유연하게 설정하기 위한 기법
- ip nat inside source list [사설 IP 주소 pool] pool [공인 IP pool] : 사설 IP주소 pool이랑 특정 공인 IP주소 pool을 대응
- PAT
- ip nat inside : 해당 인터페이스를 내부영역에 소속시키는 명령어
- ip nat outside : 해당 인터페이스를 외부 영역에 소속시키는 명령어
- access-list 1 permit [네트워크 IP] [wildcardmask] : 사설 IP 주소 pool 설정
- ip nat inside source list [사설 IP 주소 대역] interface [포트] overload : 사설 IP주소 pool이랑 해당 포트 인터페이스에 할당되어 있는 공인 IP주소를 대응
- Static NAT
//router 0
Router(config)#int fa 0/0
Router(config-if)#ip nat inside
Router(config-if)#int fa 0/1
Router(config-if)#ip nat outside
Router(config-if)#exit
Router(config)#access-list 1 permit 192.168.1.0 0.0.0.255
Router(config)#ip nat pool dyna 1.1.1.10 1.1.1.12 netmask 255.0.0.0
Router(config)#ip nat inside source list 1 pool dyna
Router(config)#ip route 0.0.0.0 0.0.0.0 1.1.1.1
//router 1
Router(config)#int fa 0/1
Router(config-if)#ip nat inside
Router(config-if)#int fa 0/0
Router(config-if)#ip nat outside
Router(config-if)#exit
Router(config)#ip nat inside source static 10.10.10.10 2.2.2.200
Router(config)#ip nat inside source static 10.10.10.20 2.2.2.100
Router(config)#ip route 0.0.0.0 0.0.0.0 1.1.1.1
//router 2
Router(config)#int fa 0/1
Router(config-if)#ip nat inside
Router(config-if)#int fa 1/1
Router(config-if)#ip nat outside
Router(config-if)#exit
Router(config)#access-list 1 permit 200.200.200.0 0.0.0.255
Router(config)#ip nat inside source list 1 int fa0/0 overload
Router(config)#ip route 0.0.0.0 0.0.0.0 1.1.1.1
- NAT 확인
- debug ip nat : nat의 패킷 진행을 확인
- show ip nat translations : nat 테이블 확인
- clear ip nat translation * : nat 테이블 초기화
Router 0 | Router 1 | Router 2 |
'정보보안' 카테고리의 다른 글
CentOS 7 mini와 KALI 리눅스 (0) | 2023.06.30 |
---|---|
GNS3 (0) | 2023.06.29 |
NCS)물리 보안 운영 (0) | 2023.06.27 |
압축과 패키지 (0) | 2023.06.26 |
프로세스 (0) | 2023.06.23 |
Comments