개인/리눅스

[리눅스] 네트워크 주소설정 관련 명령어

OmeGa2 2020. 2. 3. 20:35

리눅스의 네트워크 설정

리눅스를 설치하고나서 관련 네트워크 설정을 확인하거나 변경하는데에 사용하는 명령어에는 ifconfig, netstat 등 여러가지가 있다. 사용자에게 설정된 IP주소나 게이트웨이 및 도메인에 관련된 정보를 확인할 수 있다면 네트워크에서 구조를 이해한데 조금이나마 도움이 되지 않을까 싶다.

 

이번에는 네트워크 설정 관련 내용이 저장되는 파일이나 확인방법 및 변경방법 등을 알아보려고 한다.

 

 

네트워크 관련 파일

리눅스에서 네트워크정보나 일반 유틸리티 등으로 IP주소를 설정할 경우 관련정보가 저장되는 파일이 별도로 존재하며 이는 vi편집기를 통해 변경할 수 있다. 이 파일들은 부팅시에 읽어들이는 파일로, 설정값을 지속적으로 적용하기 위해서는 해당 파일들을 수정하는것이 좋다.

 

네트워크 설정관련

/etc/hosts

② /etc/host.conf

③ /etc/resolv/conf

④ /etc/sysconfig/network

⑤ /etc/sysconfig/network-scripts/ifcfg-eth0

1 ~ 3 파일의 경우 도메인 (DNS)서비스에 관련된 파일이다. 

 

도메인이란 DNS : Domain name service의 약자로 도메인이나 호스트 이름 인터넷의경우 (www.naver.com)를 IP주소로 해석해서 연결해주는 TCP/IP 서비스이다. 만약 IP주소로 인터넷 홈페이지 (네이버, 다음, 구글 등)을 이용하려면 해당 IP주소를 외우고있어야하는 번거로움이 있을 뿐더러 구분하기도 쉽지않다.

 

DNS서비스는 IP주소를 알기쉬운 찾기쉬운 이름으로 표현해서 보다 편하게 서비스를 이용할 수 있게 만들어준다.

(IP주소 -> 문자로 표현 : 정방향)

(문자 -> IP주소로 표현 : 역방향)

 

1번의 경우 IP와 hostname 을 맵핑하는 역할을 하며 작은네트워크에서는 DNS설정을 대신 하기도 한다.  3번의 경우 기본적으로 사용할 도메인 명과 IP를 설정해서 도메인명으로 해당IP서버에 접속할 수 있게 만들어준다.

 

4번에서는 게이트웨이 주소와 호스트네임 및 연결 허용여부 등을 설정할 수 있다. 이외에 5번에서는 NIC 카드의 설정을 확인할 수 있으며 현재 사용하는 IP주소를 바꿀 수 있다.

 

 

네트워크 (eth0) 설정 확인 및 변경

 

 

네트워크 인터페이스 확인

]# ifconfig

▶ IP주소, 넷마스크, MAC주소 등 확인

▶ NIC 카드의 설정값 변경

기본적으로 사용자가 현재 사용중인 IP주소와 설정값을 확인할 때 가장 자주 사용하는 명령어이다. 보통 NIC의 설정을 보기위해서 사용하며 변경할 수도 있다.

 

ifconfig 명령어 사용

eth0는 리눅스에서 사용중인 이더넷카드를 나타낸다. ifconfig 명령어로 현재 IP주소와 넷마스크 등의 설정값을 바꿀 수 있지만 이는 재부팅을 하면 원래상태로 돌아온다.

 

따라서 부팅시에 지속적으로 바꾸기 위해서는 etc/sysconfig/network-scripts에서 해당 파일의 내용을 vi편집기로 바꿔야 한다.

 

 

/etc/sysconfig/network-scripts 안에서 확인

현재 eth0 카드의 설정을 확인했을 때 BOOTPROTO="dhcp" 설정을 볼 수 있다. 

 

DHCP는 자동으로 IP주소를 할당받아 사용하는 설정으로 부팅할때마다 해당 대역에서 랜덤으로 IP주소를 할당받아 사용한다. 즉 IP주소가 바뀔 수도 있다. 만약 고정적인 IP주소를 사용하기 위해서는 원하는 IP주소와 넷마스크, 게이트웨이 주소 등을 별도로 설정해야한다.

 

 

※ IP설정을 위해 들어가야할 최소한의 내용

--------------------------------------------------------

DEVICE=eth0

BOOTPROTO=static // 정적 IP (static), 동적 IP(dhcp)

NM_CONTROLLED=no // 네트워크 관리도구 사용여부 (no)

ONBOOT=yes // 부팅시 자동 활성화 (yes)

TYPE=Ethernet

IPADDR=192.168.0.0 // 동적IP설정

NETMASK=255.255.255.0 // 넷마스크 주소

GATEWAY=192.168.0.2 // 게이트웨이 주소

--------------------------------------------------------

추가사항 IPADDR , NETMASK , GATEWAY 기입

- BOOTPROTO를 static으로 설정

 

]# ifconfig eth0 down = eth0카드 사용중지

]# ifconfig eth0 up = eth0카드 활성화

]# ifconfig eth0 192.168.2.2 up = IP주소 변경

 

 

라우팅 테이블 확인

 

 

라우팅 테이블정보 확인

]# route

▶ 항목

- Destination : 목적지 네트워크 주소

- Gateway     : 게이트웨이 주소

- Genmask    : 넷마스크 주소

- Flags         : 목적지 네트워크와 연결상태

- Metric        : 목적지 네트워크와의 거리 (Hop count)

- Ref            : 다른라우터가 참조한 횟수

- Use           : 다른라우터가 사용한 횟수

- lface          : 목적지와 연결된 인터페이스

관련된 네트워크 정보를 확인하거나 삭제할 수 있는 명령어다. 여기서 다른네트워크 주소를 추가하거나, IP주소 및 게이트웨이 주소를 삭제할 수 있다. 

 

 

route 명령어 사용 예시

route 명령을 봤을 때 네트워크 주소가 192.168.19.0 이며 넷마스크 주소가 255.255.255.0인걸 보니 사용자가 이용할 수 있는 IP주소의 범위는 (192.168.19.2 ~ 192.168.19.254) 인 것을 확인할 수 있다.

 

게이트웨이 주소가 *로 표시되면 별도의 경유가 필요없이 네트워크와 직접적으로 연결된 장비라는것을 의미한다. 또한 FIags에서 "U"로 표시되는 경우는 인터페이스를 사용하고 있다는 의미를 가진다. 

 

연결된 네트워크와의 거리를 나타내는 Metric는 직접 연결된 경우에는 당연히 0이 표시된다. 다른 라우터를 거칠때마다 1씩 증가하게 된다.

 

 

 

 

이외에 네트워크 관련 명령어

 

 

]# netstat

-r : 라우팅 테이블정보

-i : 네트워크 인터페이스 테이블 정보

-a : 모든 소켓정보

-l : 대기중인 포트 출력

네트워크 연결상태를 확인할 수 있는 명령으로 이외에 라우팅테이블이나 네트워크 상태, 멀티캐스트 등 각종 세부정보를 확인할 수 있는 명령이다.

 

 

 

]# arp

-a : 특정 호스트에 대한 정보 확인

-n : 호스트의 IP주소 출력

-v : 상세정보 출력

ARP에서는 캐시를 관리하는데, 접속된 IP주소를 MAC주소로 바꿔서 기억하는 곳이다. IP주소는 사용자가 변경할 수 있지만 각 컴퓨터는 고유한 물리주소 MAC주소를 가지고 있다. 즉 ARP를 확인하면 접속되어있는 호스트에 관한 정보를 알 수 있다.  또한 다른호스트의 MAC주소를 확인할 수도 있다. 이후 사용되지 않는 MAC주소는 자동으로 제거된다. 

 

 

]# ping <ip주소>

ping은 ICMP를 이용하는 가장 대표적인 예로 네트워크상의 연결을 확인할 때 주로 사용한다.

 

목적지의 네트워크 IP주소를 이용해 지속적으로 패킷을 보내서 살아있는지, 죽어있는지 판단할 수 있다. 보통 특정 장비를 재부팅한 뒤 지속적으로 ping을 보내 언제 살아나는지 확인하는 용도로 사용한다.

 

 

]# traceroute <hostname/IPaddress>

목적지 네트워크에 패킷을 보내 패킷이 어느경로로 이동하는지 확인할 수 있는 명령어다. 만약 라우팅시 장애가 발생한다면 어느지점에서 패킷에 문제가 발생하는지 위치를 파악하는 용도로 주로 사용한다.

 

 

]# nslookup

DNS서비스에서 IP주소와 도메인을 조회하는 명령이다.

 

보통 명령어 실행 후 대화형으로 조회하면서 도메인을 입력하면 해당 도메인에 설정된 IP주소나 설정정보를 확인할 수 있다. IP주소를 입력하는 경우에도 마찬가지로 도메인에 대한 정보를 출력해준다.