본문 바로가기
개념/Study

Linux 환경의 IP / 이더넷 / 서브넷마스크 / 브로드캐스트

by Hwanii_ 2023. 11. 29.
728x90

1. hostname -I

 

리눅스 시스템에서 현재 호스트의 IP 주소를 표시하는 명령어.

 

 

맨 앞의 11.11.11.xxx 는 다음과 같다.

이 IP 주소는 현재 시스템 (리눅스) 의 네트워크 인터페이스 주소 이다.

 

두번째의 11.11.11xxx 도 아래와 같다.

현재 시스템 (리눅스) 의 다른 네트워크 인터페이스 주소 이다.

 

세번째의 192.168.122.1 은 아래와 같다.

시스템 (리눅스) 의 가상화 환경 에서 사용 할 수 있는 가상의 네트워크의 IP 주소 이다.

 

 

 

2. /etc/sysconfig/network-scripts 디렉토리

 

RHEL8 리눅스 환경 에서 네트워크 구성은 주로 NetworkManager를 통해 이루어진다.

NetworkManager은 네트워크 설정을 관리하는 데 사용 되는 시스템 도구 이다.

 

이 네트워크 설정을 관리하는 파일은 /etc/sysconfig/network-scripts 디렉토리에 위치 한다.

 

 

ifcfg-ens192 라는 이름으로 네트워크 설정 파일이 있는것을 확인 할 수 있다.

 

ifcfg-<인터페이스 명> 구조의 이름을 가진다.

 

ens는 Ethernet (이더넷) 네트워크 인터페이스를 의미 한다.

 

리눅스에서는 네트워크 인터페이스의 이름을 정의할 때 해당 인터페이스가 어떤 종류의 네트워크인지를 명시 한다.

 

여러가지 네이밍 프리픽스가 존재 하지만, 암튼, ens는 이더넷 인터페이스를 의미 한다.

이더넷은 유선 LAN (Local Area Network) 통신에 사용되는 프로토콜 이다.

 

 

위와 같은 것들이 작성 되어 있다.

 

여기서 IPADDR 은 사용할 정적 IP 주소를 의미 한다.

 

GATEWAY는 기본 게이트웨이 주소 이다. (게이트웨이는 공용 복도 ? (공용 현관문) 정도로 생각 하면 될듯)

 

DNS1, DNS2 는 DNS 서버 주소를 의미 한다.

 

[ 참고 ]

 

더보기

 

Ethernet : 이더넷

 

이더넷은 네트워크 통신에 널리 사용 되는 기술 중 하나 이다.

 

이더넷은 주로 Local Area Network == LAN == 로컬 영역 네트워크 에서

다양한 기기들 간에 데이터를 주고 받기 위해 사용 된다.

 

기본 개념 및 특징은 아래와 같다.

 

1) 통신 방식 :

이더넷은 CSMA/CD (Carrier Sense Multiple Access with Collision Detection) 라는 통신 방식을 사용 한다.

(뭐가 이렇게 어려워)

 

이 통신 방식은 여러 기기가 동시적으로 네트워크에 데이터를 전송 하려고 할 때,

충돌을 감지 하고, 충돌이 만약 발생 하면, 재전송을 시도 하는 방식을 의미 한다.

 

하지만, 현재의 대부분의 네트워크 에서는 스위치 등이 충돌을 방지하므로 CSMA/CD 활용이 줄어 들게 되었다.

 

2) 프레임 구조 :

데이터는 이더넷 프레임이라는 구조로 전송 된다.

 

각 프레임에는 목적지 및 출발지 (MAC == Media Access Control) 주소, 데이터, 오류 체크 등이 포함 된다.

 

3) 물리적인 매체 :

이더넷은 기본적으로 물리적인 유선의 매체를 사용 한다.

케이블을 생각 하면 되는데, 최근에는 무선 이더넷 (WI-FI) 가 흔히 사용 된다.

 

4) 속도 :

초기에는 이더넷은 10 Mbps (메가비트/초) 로 시작했다.

하지만 현재는 100 Mbps, 1 Gbps, 10 Gbps, 100 Gbps 등 다양한 속도가 존재 한다.

 

5) 계층 구조 :

이더넷은 OSI 모델에서 두번째 레이어 (계층) 에 위치 한다.

즉, 데이터 링크 계층에서 동작 하는데, 네트워크 계층에서 IP 주소를 사용 해서 통신 한다.

 

6) 스위치 사용 :

이더넷은 네트워크 트래픽을 효율적으로 관리 하기 위해서 스위치를 활용 한다.

스위치는 네트워크의 다양한 디바이스 간에 데이터 전송을 관리 하고 충돌을 방지 하는 역할을 한다.

 

위와 같은 개념 및 특징을 가지고,

이더넷은 네트워크에서 표준적으로 널리 사용 되고 있다.

 

 

 

3. ifconfig

 

ifconfig 명령어는 네트워크 인터페이스의 현재 상태를 확인 한다.

 

필요한 경우 구성을 변경 하는데 사용 되는 리눅스 명령어 이다.

 

ifconfig 대신에 ip 명령어도 사용이 가능 하다.

 

 

우선 위와 같이 ifconfig 명령어를 입력 하면, 여러 정보들이 출력 되는것을 확인 할 수 있다.

 

ip addr show 명령어를 통해 아래와 같이도 출력 될 수 있다.

 

 

1: 의 inet 127.0.0.1/8 은 아래와 같다.

 

해당 인터페이스의 IP 주소는 127.0.0.1 로, 로컬 루프백 (Loopback) 의 주소 이다.

 

로컬 시스템과의 통신에 사용 된다.

 

state가 UNKNOWN 으로 되어 있는 상태 이다.

 

 

 

2: 의 ens192는 다음과 같다.

 

이더넷 인터페이스를 의미 하고, 해석 하자면,

 

inet 11.11.11.xxx/24 는 첫번째 IP 주소는 11.11.11.xxx 으로 24 비트 서브넷 마스크를 가진 주소를 의미 한다.

 

inet 11.11.11.xxx/24 는 두번째 IP 주소로, 첫번째 IP 주소와 유사하지만, 동적으로 할당된 주소를 의미 한다.

dynamic 이라고 적혀 있는 것을 볼 수 있다.

 

inet6 샬라샬라는 IPv6 의 주소를 의미 한다.

 

state가 UP 으로 되어 있는 상태 이다.

 

 

 

3: 의 virbr0은 다음과 같다.

 

virbr0이 의미하는건 다른 가상 브리지를 의미 하는데, 가상 머신 등과 통신을 하기 위한 내부 주소 이다.

 

가상 머신과 가상 머신 끼리 서로 내부 네트워크로 통신하거나

또는,

가상 머신과 호스트 시스템과 통신 하여 외부 네트워크와 연결 될 수도 있다.

 

 

 

가상 브리지를 사용 하면 호스트 시스템과 가상 머신과의 연결 

또는,

가상 머신과 가상 머신 간의 통신을 쉽고 효율적으로 할 수 있게 된다.

 

state가 DOWN 으로 되어 있는 상태 이다.

 

[ 참고 ]

 

더보기

 

서브넷 마스크 란 ?

 

서브넷 마스크 == Subnet Mask 

 

서브넷 마스크는 IP 주소를 네트워크와 호스트 부분으로 나누는 역할을 한다.

 

IP 주소는 네트워크 부분과 호스트 부분으로 나뉘어져 있고,

서브넷 마스크는 이 둘을 나누는 가상의 마스크 이다.

 

서브넷 마스크는 보통 32비트의 IPv4 주소 중에서

네트워크 부분을 나타내는 비트를 1로 하고,

호스트 부분을 나타내는 비트는 0으로 표현 한다.

 

예)

 

IP 주소 : 192.168.1.1

 

서브넷 마스크 : 255.255.255.0

 

32비트 중에서 앞의 24비트는 네트워크 부분을 나타내고,

나머지 8비트가 호스트 부분을 나타낸다는 것을 의미 한다.

 

그래서 이 주소는 192.168.1 이라는 네트워크에 속하게 된다.

 

 

 

브로드 캐스트 란 ?

 

브로드 캐스트 == Broadcast

 

브로드 캐스트는 네트워크 상의 모든 기기에 메세지를 전달 하는 통신 방식을 말한다.

 

특정 네트워크의 브로드캐스트 주소는 해당 네트워크에 속한 모든 기기에게 메세지를 전달 하게 된다.

 

예)

 

IP 주소 : 192.168.1.0

 

서브넷 마스크 : 255.255.255.0

 

일 때,

 

브로드캐스트의 주소는 192.168.1.255 가 된다.

 

그래서, 이 주소로 전송된 메세지는 해당 네트워크에 속한 모든 기기에게 전달 된다.

 

특히 ARP (Address Resolution Protocol) 와 같은 프로토콜에서 자주 사용 된다.

 

 

 

4. Static (정적 == 고정) IP

 

일반적으로 리눅스 서버는 고정된 IP 주소를 사용 한다.

 

대부분의 서버는 네트워크 관리자가 할당한 고정된 IP 주소를 사용 한다.

따라서, 서버를 다시 시작해도 IP 주소가 변경 되지 않는다.

 

/etc/sysconfig/network-scripts/ifcfg-<인터페이스 명>

 

네트워크 설정 파일을 열어서 사용할 고정 IP 주소를 작성해준다.

 

 

그리고, 네트워크 서비스를 아래의 명령어를 입력 해서 재시작 하면 된다.

 

systemctl restart NetworkManager.service

 

5. DHCP (동적 == 유동) IP

 

가끔은 DHCP (Dynamic Host Configuration Protocol) 를 사용 한다.

서버에 동적으로 IP를 할당하는 경우가 있기 때문 이다.

 

DHCP는 네트워크에서 컴퓨터 또는 기타 기기에 IP 주소를 동적으로 할당해주는 프로토콜 이다.

IP 주소 뿐만 아니라, 서브넷 마스크, 게이트웨이, DNS 서버 주소, 기타 설정 등을 제공 한다.

 

즉, DHCP는 네트워크 관리자가 중앙에서 기기에 필요한 네트워크 구성 정보를 동적으로 제공 한다.

 

하지만, 대부분의 서버 환경 에서는 정적 (고정) 인 IP 주소를 사용 한다.

 

서버의 IP 주소는 상식적으로 안정적이고 예측 가능 해야 한다.

그렇기 때문에 고정 IP 주소를 사용 하여 관리 한다.

특별한 경우가 아니라면, 서버의 IP 주소는 변경 되지 않도록 설정 해야 한다.

 

네트워크 설정 파일을 열어서, BOOTPROTO 설정을 dhcp로 하면 DHCP 설정이 완료 된다.

 

 

그리고, 네트워크 서비스를 아래의 명령어를 입력 해서 재시작 하면 된다.

 

systemctl restart NetworkManager.service

 

 

 

만약에, 고정 IP 주소를 명시 하고, dhcp 설정을 하고 싶지 않으면,

 

BOOTPROTO = none 으로 변경 하면 된다.

 

대신에, IPADDR과 PREFIX, GATEWAY, DNS1, DNS2 등의 설정이 잘 작성 되어 있어야 한다.

반응형