본문 바로가기
한화시스템 Beyond SW Camp/기반기술

[리눅스]기초 : 네트워크 기초, IP주소 설정

by taeh00n 2024. 11. 23.

 

※ 이 글에서 다룬 기반기술, 프론트엔드, 백엔드, 데브옵스 등 풀스택 개발 지식은 모두 한화시스템 Beyond SW Camp 12기에서 배운 내용을 복습한 것입니다.

 

네트워크 기초 

네트워크 : 데이터를 주고 받을 수 있는 연결망 (=통신망)

LAN(Local Area Network) : 한정된 지역내에서 컴퓨터와 장비들이 서로 연결된 네트워크 (ex. 집, 사무실)

WAN(Wide Area Network) : 넓은 지역에 걸쳐 컴퓨터와 장비들이 연결된 네트워크 (ex.도시, 국가)

* LAN이 여러개가 뭉치면 WAN이다

 

네트워크 통신 방식

● 유니캐스트 - 1:1로 통신
●  멀티캐스트 - 특정 다수와 1:N 통신
●  브로드 캐스트 - 네트워크에 있는 모든 대상과 통신

 

 

IP 주소 : 멀리 떨어진 '컴퓨터'를 찾아가기 위한 주소

포트번호 : 컴퓨터에서 실행중인 특정 프로그램을 찾아가는 번호

-> 네트워크에서 IP 주소는 서로 연결된 컴퓨터를 식별하는 고유한 주소이다. 이를 통해 요청한 데이터가 정확한 컴퓨터로 전달될 수 있다. 하지만 컴퓨터내에서는 여러 프로그램이 동시에 실행되고 있을 수 있기 때문에 포트번호를 사용해 어떤 프로그램과 통신할 것인지 정한다.

 

쉽게 말해, 컴퓨터끼리는 IP 주소와 포트번호를 사용해 데이터를 주고 받는다.


IP 주소

 IP 주소 범위 : 0.0.0.0 ~ 255.255.255.255 (한 자리에 8비트 이기 때문)

* IP 주소는 보통 서브넷 마스크와 함께 쓰인다 -> 서브넷 마스크가 네트워크의 범위와 호스트의 범위를 구분하기 때문

 

서브넷 마스크 : IP 주소에서 네트워크 부분호스트 부분을 구분하는 데 사용

네트워크 범위 : 동일한 네트워크에 속하는 장치들이 공유하는 주소 범위

호스트 범위 : 네트워크 내에서 개별 장치(컴퓨터, 프린터, 서버 등)에게 할당된 IP 주소 범위

* 네트워크 범위는 '아파트 동'까지라 생각하면 되고 호스트 범위는 '호수'라고 이해하면 편하다

게이트웨이 : 네트워크 내부의 장치들이 외부 네트워크(인터넷 등)와 연결될 수 있도록 해주는 중개자 (라우터, 공유기...)

 

* IP 주소는 선점하는 장치가 먼저 사용할 수 있다.

IP 주소를 192.168.200.xxx/24를 예로 들어 설명해보겠다.
192.168.200.xxx (xxx는 0~255이다)는 IP 주소이고, /24는 서브넷 마스크의 비트 길이이다. 
/24는 2진수로 표현했을 때 앞의 24비트가 1로 채워진 상태를 의미한다.

서브넷 마스크는 네트워크에 속한 모든 장치를 구분하는데 사용되지만 이해하기 쉽게 공유기로 예를 들어 설명하겠다.

192.168.200.xxx
11000000 10101000 11001000 xxxxxxxx
/24 (서브넷 마스크)
11111111 11111111 11111111 00000000

서브넷 마스크가 1로 채워진 곳 까지가 네트워크 범위 즉, 공유기 내에서 아파트 '동'이 되는 것이다.
그리고 나머지 자리가 공유기 내에서 아파트 '호수'가 된다,

설명한 내용대로라면 192.168.200동192.168.200.0호~192.168.200.255호 까지 있다라고 생각할 수 있다.
하지만!
192.168.200.0은 네트워크 주소
192.168.200.255는 브로드캐스트 주소
그리고 게이트웨이 주소 (여기에서는 공유기 주소)
이렇게 세 개의 주소는 장치에 할당되지 못한다.

 


IP 주소 설정

IP 주소 설정은 아래와 같은 과정으로 진행할 것이다.

  1. 가상 컴퓨터 생성
  2. IP 주소 설정
  3. 설정 적용
  4. 확인

리눅스 환경에서 가상 컴퓨터의 IP 주소를 할당하기 위해 test용 컴퓨터를 생성하겠다.

 

https://taeh00n.tistory.com/entry/%EB%A6%AC%EB%88%85%EC%8A%A4%EA%B8%B0%EC%B4%88

 

리눅스_기초 : 가상 컴퓨터(VMware), 명령어, 권한

※ 이 글에서 다룬 기반기술, 프론트엔드, 백엔드, 데브옵스 등 풀스택 개발 지식은 모두 한화시스템 Beyond SW Camp 12기에서 배운 내용을 복습한 것입니다. 리눅스를 들어가기에 앞서 서버, 클라이

taeh00n.tistory.com

가상 컴퓨터를 만드는 방법은 위의 링크에 있긴하지만 자세한 내용은 구글링을 추천한다.

 

1. 가상 컴퓨터 생성

test용 가상 컴퓨터의 IP 주소

위의 사진은 test용 가상 컴퓨터를 생성하자마자 IP 주소를 찾아본 것이다. 따로 설정을 하지도 않은 IP가 할당되어 있는 것을 볼 수 있다.

 

이것은 DHCP(Dynamic Host Configuration Protocol) 때문인데 IP 주소를 자동으로 할당해주는 프로토콜이다.

DHCP 기본 설정

위의 경로에 있는 DHCP 설정 파일을 보면 dhcp4가 true 즉 IP 자동할당으로 설정되어있는 것을 볼 수 있다.

그러면 IP를 수동으로 할당을 해주려면 이 파일을 수정하면 된다.

 

2. IP 주소 설정

vi 편집기를 이용해 DHCP 기본 설정 변경

  1. 해당 장치에 할당할 IP 주소 (서브넷 마스크 포함!)
  2. DNS 서버 주소 (구글 DNS 서버를 사용해 인터넷 도메인을 해석)
  3. 기본 게이트웨이 IP 주소

위와 같이 설정을 해보았다. 설정에 관련된 내용은 구글링을 통해 찾아보는 것을 추천한다.

 

게이트웨이 IP 주소 확인 방법 : Virtual Network Editor -> NAT settings에서 확인할 수 있다.

3. 설정 적용

IP 주소 상태

해당 설정 파일을 수정해서 IP 주소가 바꼈다고 생각할 수도 있지만 여전히 192.168.189.111이 아닌 128이다.

설정 파일이 적용되지 않았기 때문이다.

netplan apply

 

● netplan apply : Netplan에서 설정한 네트워크 구성을 적용하는 명령

 

명령어를 실행했지만 오류가 뜬 상황

읽어보니 Open vSwitch를 열 수 없다는 걸 보니 Open vSwitch를 다시 실행하거나 다시 다운해서 실행하면 된다고 예측할 수 있다.

 

apt update -y
apt-get install -y openvswitch-switch-dpdk

강사님께서 코드가 뜨면 재부팅 후 위와 같은 명령어를 치면 된다고 하셨다. (Error가 아니라 WARNING이라 크게 상관은 없을 듯)

1. -y 옵션은 업데이트 하는 도중에 모든 질문에 yes를 답변한다는 옵션이다.

2. 두 번째 줄은 openvswitch를 설치하는 명령어이다.

이 과정을 거치고 난 후 netplan apply 명령어를 다시 실행하면 된다.

 

변경 사항 적용 내용

오류 처리를 한 후 netplan apply로 변경 사항 적용하고 ip addr 명령어로 IP 주소를 확인해보니 내가 설정한 파일로 정상적으로 바뀌었다는 것을 볼 수 있다.

 

4. 확인

IP 주소가 바뀌었으면 마지막으로 정상적으로 통신을 하는지 확인해야한다.

이때 ping 명령어를 사용하면 된다.

● ping : 네트워크 장치가 서로 연결되어 있는지 확인

 

우리는 2가지 테스트를 할 것이다.

1. 특정 IP 주소에 대한 연결 확인 (8.8.8.8)

8.8.8.8(구글 DNS 서버)과 통신

구글 DNS 서버인 8.8.8.8과 잘 통신되고 있는 것을 볼 수 있다.

DNS(Domain Name System) 서버 : 도메인 이름(ex. www.naver.com)을 IP 주소(ex.104.94.xxx.xxx)로 변환해주는 시스템

 

예를 들어 설명하자면, 인터넷에서 컴퓨터는 IP 주소로 통신하지만 사람이 숫자로 된 IP 주소를 기억하기는 어렵다.

이때 DNS 서버는 전화번호부 같은 것이고, 우리가 입력한 도메인을 IP 주소로 변환해주는 것이다.

 

2. 특정 도메인에 대한 연결 확인 (www.naver.com)

www.naver.com에 대한 연결 확인

응답을 잘 주고 받는 것을 보니 정상적으로 통신하는 것을 확인할 수 있다.

 

그러면 통신이 안되는 케이스도 살펴보겠다.

통신이 안되는 케이스에는 보냈는데 응답이 안되는 경우, 보내지 조차 못한 경우로 나눌  수 있다.

 

보냈지만 응답이 안되는 경우 (패킷 손실)

ping 명령어를 통해 패킷을 보냈으나 목적지에서 응답을 받지 못한 상황

  • 목적지 서버가 응답을 거부: 서버나 네트워크 장비에서 ICMP 요청을 차단. 예를 들어, 방화벽이나 보안 장비에서 ICMP 패킷을 차단하거나, 서버에서 ICMP 응답을 비활성화
  • 네트워크 중간에 있는 장비에서 차단: 라우터나 중간 네트워크 장비에서 ICMP 패킷을 필터링. 예를 들어, 인터넷 서비스 제공업체(ISP)에서 ICMP 응답을 차단할 수도 있다.
  • 목적지 서버 과부하: 서버가 과부하 상태에 있거나 응답 속도가 매우 느려서 시간 초과가 발생. 이 경우, ping 요청에 대해 응답을 못 받을 수도 있다.

-> time out (요청시간이 만료)같은 메세지가 뜰 것이다.

보내지도 못한 경우 (패킷 전송 실패)

ping 명령어를 보내는 데 실패한 상황

  • 잘못된 목적지 IP 또는 도메인: 대상 IP 주소나 도메인 이름이 잘못되었거나 존재하지 않는 경우
  • 네트워크 연결 불안정: 자신의 로컬 네트워크인터넷 연결이 끊어졌거나 네트워크가 불안정할 경우. 게이트웨이라우터에 문제가 있을 수 있습니다.
  • 방화벽 또는 보안 정책: 본인의 컴퓨터나 라우터에서 네트워크 트래픽을 차단하는 방화벽 설정이 되어 있으면, ping 명령이 아예 전송되지 않을 수도 있다. 이 경우, 방화벽에서 ICMP 패킷을 차단하여 네트워크 연결이 되지 않게 된다.

-> destination unreachable(목적지에 도달할 수 없음) 같은 메세지가 뜰 것이다.