티스토리 뷰
◼ DHCP(Dynamic Host Configuration Protocol)
IP주소와 각종 TCP/IP 프로토콜의 기본 설정을 클라이언트에게 자동적으로 제공
네트워크 안에 컴퓨터에 자동으로 네임 서버 주소, IP주소, 게이트웨이 주소를 할당해주는 것을 의미, 해당 클라이언트에게 일정 기간 임대를 하는 동적 주소 할당 프로토콜
- 장점
- PC의 수가 많거나 PC 자체 변동사항이 많은 경우 IP 설정이 자동으로 되기 때문에 효율적으로 사용 가능
- IP를 자동으로 할당해주기 때문에 IP 충돌 방지
- 단점
- DHCP 서버 의존적, 서버가 다운되면 IP 할당 문제
◼ Network Interface (ethernet interface)
network interface는 하드웨어와 networking 하기 위한 소프트웨어 인터페이스다. 리눅스 커널은 network interface를 physical와 virtual의 두 가지 타입으로 구분한다.
- physical network interface는 실제로 NIC와 같은 하드웨어 네트워크 장치를 나타낸다. Ethernet network card를 나타내는 eth0가 해당된다. 1
- Virtual network interface는 실제 하드웨어 장치를 나타내지 않고 하드웨어 장치에 연결된다.대표적으로 여러 종류가 있는데 loopback, bridge, VLAN, 등이 있다.
- eth0: physical interface로 Etherenet network card를 나타낸다. 인터넷상에서 다른 컴퓨터와 통신하는 데 사용된다.
- lo: 특별한 virtual network interface로 loopback device라고 불린다. loopback은 주로 local host에서 실행되는 서비스에 연결하거나 진단 및 트러블 슈팅하는 데 사용된다.
- docker0: virtual bridge interface로 Docker에 의해 만들어 진다. 이 bridge는 docker container들을 위해 분리된 네트워크를 만들어주고 서로 통신할 수 있게 해 준다.
centos 7 및 ubuntu > 15.04에서의 NIC device 이름 규칙
eth0에 해당하는 device 이름이 centos에서는 en33 ununtu에서는 enp0s25 와같은 형식이다.
그 이유는 예측 가능한 네트워크 디바이스명이라는 규칙을 위해서다. 네트워크 장치가 많아지고 다양해지면서 세분화가 필요해졌다
◼ DNS(Domain Name System)
도메인 이름 시스템(DNS)은 사람이 읽을 수 있는 도메인 이름(예: www.amazon.com)을 머신이 읽을 수 있는 IP 주소(예: 192.0.2.44)로 변환시켜주기 위해 존재
- 포트 번호: UDP, TCP 모두 53번
- UDP: 일반적인 DNS 조회를 할 경우 사용한다.
- TCP: Zone Transfer(영역 전송)와 512Byte를 초과하는 DNS 패킷을 전송해야 할 경우이다.
- Nameserver(네임서버)
- 도메인 별 정보를 가지고 있는 서버 역할
- Resolver의 쿼리에 의해 정보 전달
- Resolver(리졸버)
- client에 위치한 s/w
- 도메인 정보를 응용프로그램으로부터 요청받아 쿼리 하여 Caching
- Zone file(존 파일)
- 도메인 네임 별 레코드 데이터를 존파일 포맷으로 표현
- 도메인 네임: 도메인 네임 공간에서 확보한 도메인 영역에서 도메인 네임 생성(i.e. www.my-domain.com)
- 리소스 레코드: 도메인 네임에 생성할 데이터를 미리 정의된 리소스 레코드 타입 설정(i.e. IPv4 주소 A 타입 레코드 설정, A 192.168.1.80)
- Resource Recode
- 도메인 네임 별 레코드 데이터를 존파일 포맷으로 표현
- 네트워크 설정 파일
- /etc/hosts
- IP와 Hostname 또는 Domain Name을 Mapping
- 작은 네트워크에서는 DNS를 대신하도록 설정 가능
- /etc/resolv.conf
- 요청할 DNS 서버 지정
- /etc/hosts
◼ NAT
IP 패킷의 TCP/UDP 포트 숫자와 소스 및 목적지의 IP 주소 등을 재기록하면서 라우터를 통해 네트워크 트래픽을 주고받는 기술
- 사용 이유
- IP 주소 절약
- 보안
- 주소 할당 방식에 따른 NAT
- Static NAT (1:1 NAT): 공인 IP주소와 사설 IP가 1:1 매칭 되는 방식
- Dynamic NAT(N:N NAT): 공인 IP 주소 대비 사설 IP가 더 많을 경우 사용하는 방식
- PAT(Port Address Translation) (1:N NAT): 공인 IP 주소 1개에 사설 IP가 여러 개 매칭 되는 방식
- 패킷 방향에 따른 NAT
- Twice NAT
- 출발지 주소와 목적지 주소가 모두 바뀌는 방식
- 두 지점 간 연결을 위한 중간 네트워크 허브 구조에 사용
- SNAT (Source Network Address Translation, IP Masquerade)
- 인터넷으로 나가는 패킷의 출발지 IP 주소를 게이트웨이의 공인 IP로 바꾸는 방식
- 가정에서 쓰이는 공유기에서 사용
- DNAT (Destination Network Address Translation)
- 외부에서 내부로 들어오는 패킷의 목적 IP 변환
- 방화벽, 로드밸런서
- Twice NAT
- IP Masquerade
- 가면이라는 뜻으로 NAT가 갖고 있는 기술
- 주소 변환만 하는 것이 아닌 포트번호까지 포워딩시켜주는 기능
Reference
- DHCP
- Network Interface
- centos, unbuntu nic
- DNS
반응형
'CS' 카테고리의 다른 글
[Network] HTTP/3 and QUIC (0) | 2022.01.18 |
---|---|
[Network] HTTP/2 (0) | 2022.01.10 |
[Network] HTTP/0.9 ~ 1.1 (0) | 2022.01.03 |
[Network/OS] Network Socket(IP Socket, WebSocket) (0) | 2021.12.27 |
Interpreter VS Compiler (0) | 2021.11.26 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- go
- cka
- inflearn
- user-agent
- Python
- k8s
- no-op
- web_server
- HTTP/2
- 원티드
- pytest
- http
- thetextbook
- 위코드
- Isolate level
- HTTP/3
- 덕타이핑
- Git
- GitHub
- database
- 프리온보딩
- QUIC
- direnv
- 창업
- docker-compose
- Network
- Complier
- MSA
- gitignore
- buildkit
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함