티스토리

  • 전체보기 (32)
    • 개념 (2)
    • 네트워크 (14)
    • 프리코스 (1)
    • 스프링 (8)
      • 테스트 (1)
    • 프로젝트 (1)
    • 회고 (1)
    • 알고리즘 (4)
    • 자바 (1)
    • MySQL (0)
코딩_초보
코초의 학습일지
코딩_초보
전체 방문자
오늘
어제

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 동시 처리
  • @Mock
  • 스프링
  • 현대 sw
  • 함께하는 효도
  • 동적 라우팅
  • Servlet Container
  • softeer
  • 우아한 테크코스
  • 정적 라우팅
  • @BeforeAll
  • 컴포넌트 스캔
  • 소프티어
  • @MockBean
  • 스프링 멀티쓰레드
  • ripv2
  • n+1
  • 우아한 테크코스5기
  • 코테
  • 프로그래머스
  • 쓰레드 풀
  • 소켓프로그래밍
  • 알고리즘
  • 퍼즐 게임 챌린지
  • typescript와 javascript의 차이
  • grpc
  • 충돌위험 찾기
  • spring grpc
  • 빈 등록방법
  • 프리코스

최근 댓글

최근 글

hELLO · Designed By 정상우.
코딩_초보

코초의 학습일지

DHCP(Dynamic Host Configuration Protocol)와 NAT(Network Address Translation)
네트워크

DHCP(Dynamic Host Configuration Protocol)와 NAT(Network Address Translation)

2022. 6. 24. 18:39

1. DHCP(Dynamic Host Configuration Protocol)

​

- IP 주소 자동 할당 기능을 수행하는 네트워크 서비스

- 서버와 클라이언트간에 IP 주소 임대 서비스

- DHCP 구성 요소 : 서버, 클라이언트, DHCP Relay Agent

- DHCP 동작 과정 : 4개 메세지를 이용하여 4단계 진행

​

​

1) DHCP 동작 단계(브로드 캐스트로 전송하기 때문에 같은 네트워크에서만 전달이 가능하고 외부로는 x)

​

SA 68 SA 67

DA 67 DA 68

----------------- UDP ----------------- UDP

SA 0.0.0.0 SA 192.168.1.254

DA 255.255.255.255 DA 255.255.255.255

----------------- IP ----------------- IP

​

클라이언트(UDP 68) 서버(UDP 67)

0.0.0.0 192.168.1.254

​

Discover ---------------------------------->

<-------------------------------- Offer

(IP 주소 정보 할당)

Request ---------------------------------->

(IP 할당 요청) <-------------------------------- Ack

(IP 할당 승인)

​

discover -> 서버를 찾는 메시지로 DHCP서버가 있는지 없는지 확인하기 위한 것

​

2) DHCP 서버에 설정할 내용

​

- IP 주소 정보

- 서브넷 마스크

- 기본 게이트웨이

- DNS 서버 주소 정보

- 임대 기간

​

​

예제 맨 아래 파일을 참고

169.~ : IP를 할당받지 못했다는 것을 알 수 있다

​

R1에서 DHCP 서버를 구성하여, A~C PC에게 IP 주소 정보를 할당하도록 한다.

​

- 제외 IP 주소 범위 : 192.168.1.253, 192.168.1.254

- IP 주소 정보 : 192.168.1.0 (192.168.1.1~ 192.168.1.254)

- 서브넷 마스크 : 255.255.255.0

- 기본 게이트웨이 : 192.168.1.254

- DNS 서버 주소 정보 : 192.168.1.253

- 임대 기간 : 무제한

​

@ R1

​

ip dhcp excluded-address 192.168.1.253 192.168.1.254

! 제외한 주소 중에 시작주소 끝주소

ip dhcp pool Local-192

network 192.168.1.0 255.255.255.0

default-router 192.168.1.254

dns-server 192.168.1.253

lease infinite

​

- A~C 에서 'dhcp'를 클릭한다.

할당되는 것 확인

R1#show ip dhcp binding

IP address Client-ID/ Lease expiration Type

Hardware address

192.168.1.1 00D0.BCB4.E4E4 -- Automatic

192.168.1.2 0090.216A.0A2D -- Automatic

192.168.1.3 0060.5C84.02D1 --

으로도 확인이 가능하다.

​

주의!!

ex) 192.168.1.2와 192.168.1.254만 제외한다면

ip dhcp excluded-address 192.168.1.2 192.168.1.254

! 제외한 주소 중에 시작주소 끝주소

이렇게 쓴다면

192.168.1.2~ 192.168.1.254 까지가 되어 버린다

ip dhcp excluded-address 192.168.1.2

ip dhcp excluded-address 192.168.1.254

따로 넣어준다.

​

2. NAT

(NAT을 사용하는 목적)

첫째, 인터넷의 공인 IP주소를 절약할 수 있다는 점

둘째, 인터넷이란 공공망과 연결되는 사용자들의 고유한 사설망을 침입자들로부터 보호할 수 있다는 점

=> 패킷을 보내면 제대로 된 곳으로 응답을 하기 위해 사용이 방법이 특징들을 만든다.

​

1) NAT 구성 요소

​

- Inside(내부, 사설 IP 환경) / Outside(외부, 공인 IP 환경)

​

- Inside Local 주소 (Inside 내부에서 사용하는 주소, 사설 IP 주소)

- Inside Global 주소 (Inside 내부에서 외부로 패켓을 전송할때, 변환되는 주소, 공인 IP 주소)

​

- Inside -> Outside로 패켓이 전송될때 : 출발지 주소 변경

- Outside ->Inside로 패켓이 전송될때 : 목적지 주소 변경

​

​

2) 동적 NAT

​

- 사용자 대상으로 NAT를 동적으로 구성하는 방법

​

Ex) 동적 NAT

​

- Inside Local : 192.168.1.0/24 (192.168.1.1 ~ 192.168.1.254)

- Inside Global : 13.13.12.1/24

​

간단한 이미지를 보고 코드를 이해하기

​

@ R1

​

access-list 10 permit 192.168.1.0 0.0.0.255

!

ip nat inside source list 10 interface s1/0 overload -> 인사이드 출발지 주소가 inside source list 10 에 설정한 주소에

포함이 되면 interface s1/0 overload ->se1/0주소로 바꿔보낸

다.-> ISP에서 받았을 때 s1/0에 공인 IP로 받음으로써

se1/0으로 전달이 가능하게 한다.

!

int fa0/0

ip nat inside

!

int s1/0

ip nat outside

!

​

​

R1#debug ip nat

IP NAT debugging is on

​

- A~C PC에서 Web Brower -> www.xyz.com 실시

​

R1#show ip nat translations

Pro Inside global Inside local Outside local Outside global

tcp 13.13.12.1:1025 192.168.1.1:1025 198.133.219.25:80 198.133.219.25:80

tcp 13.13.12.1:1026 192.168.1.1:1026 198.133.219.25:80 198.133.219.25:80

tcp 13.13.12.1:1027 192.168.1.1:1027 198.133.219.25:80 198.133.219.25:80

tcp 13.13.12.1:1024 192.168.1.2:1025 198.133.219.25:80 198.133.219.25:80

tcp 13.13.12.1:1028 192.168.1.3:1025 198.133.219.25:80 198.133.219.25:80

​

3) 정적 NAT

​

- 서버 대상으로 NAT를 정적으로 구성하는 방법(단, 특정 사용자 시스템도 가능)

​

Ex) 정적 NAT

​

- Inside Local : 192.168.1.253 <-- HTTP 서버

- Inside Global : 13.13.12.100

​

@ R1

​

ip nat inside source static tcp 192.168.1.253 80 13.13.12.100 80

!

int fa0/0

ip nat inside

!

int s1/0

ip nat outside

!

    '네트워크' 카테고리의 다른 글
    • [알고리즘] Hamming Code 구현
    • [오류 검출] Hamming Code
    • [동적 경로] OSPF
    • [동적 경로] RIPv2 - 균등 로드 분산
    코딩_초보
    코딩_초보

    티스토리툴바