리눅스 네트워크 관리에 필요한 <ifconfig> 사용법 11가지

2018년 11월 9일

Linux_ifconfig

역사는 반복된다고 했던가. 인터넷 초창기 개발자들은 직접 서버의 네트워크를 구성하고 모니터링해 가면서 서비스를 만들었습니다. 그리고 분야가 점점 세분화되면서 서버의 네트워크 구성은 전문 엔지니어들의 영역으로 발전해 나갔습니다. 하지만 클라우드는 시스템 엔지니어링에 관한 전문 영역을 가져가면서 개발자들에게 기본적이며 논리적인 부분의 시스템 엔지니어링 역할을 요구하고 있습니다. 그리고 데브옵스는 시스템 엔지니어와 개발자 모두에게 기본적인 시스템 지식을 요구하고 있습니다. 그래서 개발자가 서비스를 모니터링하는데 필요한 네트워크 명령어인 ifconfig에 대해 알아보려고 합니다.

ifconfig는 “interface configuration”의 약자로 리눅스의 네트워크 관리를 위한 인터페이스 구성 유틸리티입니다. 리눅스 명령 줄 인터페이스 중에서 ifconfig는 top과 함께 가장 많이 쓰입니다.

ifconfig 명령은 현재 네트워크 구성 정보를 표시하고 네트워크 인터페이스에 IP 주소, 넷 마스크 또는 broadcast 주소를 설정하고 네트워크 인터페이스의 별칭을 만들고 하드웨어 주소를 설정하고 네트워크 인터페이스를 활성화 또는 비활성화하는 등 다양한 곳에 사용됩니다.

1. 네트워크 인터페이스 구성 확인하기 <ifconfig>

인수가 없는 ifconfig 명령은 활성화된 인터페이스의 세부 사항을 표시합니다. 다만 ifconfig만으로는 비활성화된 네트워크 인터페이스를 볼 수가 없습니다.

Linux_ifconfig_1
  • [enp0s3] : 네트워크 인터페이스
  • [flags] : 네트워크 카드의 상태 표시
  • [mtu] : 네트워크 인터페이스의 최대 전송 단위(Maximum Transfer Unit)
  • [inet] : 네트워크 인터페이스에 할당된 IP 주소
  • [netmask] : 네트워크 인터페이스에 할당된 넷마스크 주소
  • [broadcast] : 네트워크 인터페이스에 할당된 브로드캐스트 주소
  • [inet6] : 네트워크 인터페이스에 할당된 IPv6 주소
  • [prefixlen] : IP 주소에서 서브 넷 마스크로 사용될 비트 수
  • [scopeid] : IPv6의 범위. LOOPBACK / LINKLOCAL / SITELOCAL / COMPATv4 / GLOBAL
  • [ether] : 네트워크 인터페이스의 하드웨어 주소
  • [RX packets] : 받은 패킷 정보
  • [TX packets] : 보낸 패킷 정보
  • [collision] : 충돌된 패킷 수
  • [Interrupt] : 네트워크 인터페이스가 사용하는 인터럽트 번호

2. 모든 네트워크 인터페이스 구성 확인하기. <ifconfig – a>

-a 옵션이 들어가게 되면 비활성화된 네트워크 인터페이스를 볼 수 있게 됩니다. 비활성화된 네트워크 카드가 없다면 -a 옵션이 있을 때와 없을 때가 같아 보입니다. 아래 lo는 루프 백 인터페이스로 내부 통신용 네트워크 인터페이스를 비활성화 시킨 상태입니다.

Linux_ifconfig_2

3. 해당 인터페이스 정보만 보기 <ifconfig [interface]>

인터페이스가 너무 많은 경우에는 원하는 인터페이스만 보는 것도 가능합니다.

Linux_ifconfig_3

4. 해당 인터페이스 비활성화 하기 <ifconfig [interface] down>

인터페이스에 down 옵션을 사용하면 네트워크 인터페이스 카드가 활성화됩니다. Ifconfig enp0s3으로 확인했을 때, Flags가 달라진 것을 알 수 있습니다.

flags=4098 <BROADCAST,MULTICAST>

Linux_ifconfig_4

5. 해당 인터페이스 활성화하기 <UP,BROADCAST,RUNNING,MULTICAST>

인터페이스에 up 옵션을 사용하면 네트워크 인터페이스 카드가 활성화됩니다. ifconfig [interface]으로 확인했을 때, flags가 달라진 것을 확인할 수 있습니다.

flags=4163 <BROADCAST,MULTICAST>
Linux_ifconfig_5

6. 해당 인터페이스에 IP 변경하기 <ifconfig [interface] [IP]>

네트워크 인터페이스에 아이피 설정을 바꾸는 방법은 인터페이스 정보와 ip 정보를 입력하는 것으로 가능합니다.

Linux_ifconfig_6

7. 해당 인터페이스에 넷마스크 변경하기 <ifconfig [interface] netmask [IP]>

네트워크 인터페이스에 넷마스크 설정을 바꾸는 방법은 인터페이스 정보와 netmask 옵션 그리고 마스크 정보를 입력하는 것으로 가능하다.

Linux_ifconfig_7

8. 해당 인터페이스에 브로드캐스트 주소 변경하기 <ifconfig [interface] broadcast [IP]>

네트워크 인터페이스에 브로드캐스트 설정을 바꾸는 방법은 인터페이스 정보와 broadcast 옵션 그리고 마스크 정보를 입력하는 것으로 가능하다.

Linux_ifconfig_8

9. 해당 인터페이스에 IP / 넷마스크 / 브로드캐스트 주소 한꺼번에 변경하기 <ifconfig [interface] [ip] netmask [ip] broadcast [IP]>

인터페이스에 관련된 정보를 한꺼번에 바꾸는 것이 편한 경우가 있습니다. 그렇다면 한번에 옵션을 다 넣으면 됩니다.

Linux_ifconfig_9

10. 해당 인터페이스에 맥 어드레스 할당하기 <ifconfig [interface] hw ether [mac address]>

네트워크 인터페이스에 맥 어드레스 설정을 바꾸는 방법은 인터페이스 정보와 hw ether 그리고 변경할 맥 어드레스 정보를 입력하는 것으로 가능합니다.

Linux_ifconfig_10

11. 인터페이스에 별칭 추가해서 가상 인터페이스 만들기 <ifconfig [interface]:0 [ip]>

별칭을 사용하여 네트워크 인터페이스에 여러 개의 IP를 설정할 수 있습니다. 명령을 실행한 후에 ifconfig로 확인해 보면 새로운 네트워크 인터페이스가 추가된 것을 확인할 수 있습니다.

Linux_ifconfig_11

마무리

네트워크 인터페이스 관리와 모니터링을 위한 명령줄 기반의 도구는 많지만 ifconfig가 가장 기본이 되는 도구입니다. 개발자라 하더라도 최근 시스템 엔지니어가 자사에 없는 경우가 많기 때문에 서비스의 네트워크 입출력 량을 확인해야 하거나 네트워크 구성을 변경해야 하는 경우에는 직접 간단한 명령어들을 이용할 수 있어야 합니다. 그리고 네트워크에 대한 모니터링 필요가 커지게 되면 Cacti, Zabbix, Munin과 같은 모니터링 도구를 도입하는 것을 권합니다.

개발자와 운영자가 위치와 업무에 상관없이
볼 수 있는 멀티테넌트 기능을 가진 강력한 데브옵스 툴

와탭 무료로 시작하기
이전 글

다음 글

최신글