리눅스 기반 배포판은 명령어 세트를 제공하여 명령줄을 통해 네트워킹을 쉽고 강력하게 구성할 수 있는 방법을 제공했습니다. 이 명령어 세트는 거의 모든 배포판에 오랫동안 존재해온 net-tools 패키지에서 사용할 수 있으며 ifconfig, route, nameif, iwconfig, iptunnel, netstat, arp와 같은 명령어를 포함합니다.

이러한 명령어는 네트워크를 구성하는 데 초보자나 전문가 리눅스 사용자가 원하는 방식으로 충분하지만, 지난 몇 년 동안 리눅스 커널의 발전과 이 패키지 명령어 세트의 유지 관리 불가능성으로 인해 사용이 중단되고 이러한 모든 명령어를 대체할 수 있는 더 강력한 대안이 나타나고 있습니다.
이 대안은 지금까지 오랫동안 존재했으며 이러한 명령어보다 훨씬 강력합니다. 나머지 섹션에서는 이 대안을 강조하고 net-tools 패키지 중 하나인 ifconfig와 비교할 것입니다.
ip – ifconfig 대체품
ifconfig은 오랫동안 존재하며 많은 사람들이 네트워크 인터페이스를 구성, 표시 및 제어하는 데 사용하지만, 이보다 훨씬 강력한 새로운 대안이 이제 리눅스 배포판에 존재합니다. 이 대안은 ip
명령어로 iproute2util 패키지에서 제공됩니다.
이 명령은 처음에는 다소 복잡해 보일 수 있지만 ifconfig보다 훨씬 기능이 넓습니다. 네트워킹 스택의 두 계층인 계층 2 (링크 계층), 계층 3 (IP 계층)에 기능적으로 구성되어 있으며 net-tools 패키지에서 언급된 모든 명령을 수행합니다.
ifconfig은 주로 시스템의 인터페이스를 표시하거나 수정하는 반면, 이 명령은 다음 작업을 수행할 수 있습니다:
- 인터페이스 속성 표시 또는 수정.
- ARP 캐시 항목 추가, 제거 및 호스트에 대한 새로운 정적 ARP 항목 생성.
- 모든 인터페이스에 연결된 MAC 주소 표시.
- 커널 라우팅 테이블 표시 및 수정.
이전 버전인 ifconfig과 구별되는 주요 특징 중 하나는 후자가 네트워크 구성에 ioctl을 사용하는 반면, 전자는 동일한 작업을 위해 netlink 소켓 메커니즘을 활용하므로 커널과 사용자 공간 간의 상호 작용에 더 유연한 ioctl의 후속 버전인 rtnetlink를 사용합니다 (네트워킹 환경 조작 기능 추가).
이제 ifconfig의 기능을 강조하고 이를 효과적으로 대체하는 ip 명령을 살펴볼 수 있습니다.
ip vs ifconfig 명령
다음 섹션에서는 ifconfig 명령 중 일부와 해당 대체 방법을 사용하는 ip 명령을 강조합니다.
1. 리눅스에서 모든 네트워크 인터페이스 표시하기
여기서 ip와 ifconfig의 한 가지 차이점은 ifconfig는 활성화된 인터페이스만 표시하는 반면, ip는 활성화되었든 비활성화되었든 모든 인터페이스를 표시한다.
ifconfig 명령어
$ ifconfig

ip 명령어
$ ip a

2. 리눅스에서 IP 주소 추가 또는 삭제하기
아래 명령은 IP 주소 192.168.80.174를 인터페이스 eth0
에 할당한다.
ifconfig – IP 주소 추가/삭제
# ifconfig eth0 add 192.168.80.174
ifconfig 명령어를 사용하여 인터페이스를 추가/제거하는 구문:
# ifconfig eth0 add 192.168.80.174 # ifconfig eth0 del 192.168.80.174
ip – IP 주소 추가/삭제
# ip a add 192.168.80.174 dev eth0
ip 명령어를 사용하여 인터페이스를 추가/제거하는 구문:
# ip a add 192.168.80.174 dev eth0 # ip a del 192.168.80.174 dev eth0
4. 네트워크 인터페이스에 MAC 하드웨어 주소 추가하기
아래 명령은 인터페이스 eth0
에 하드웨어 주소를 지정된 값으로 설정한다. 이는 ifconfig 명령어의 출력에서 HWaddr
값을 확인하여 검증할 수 있다.
ifconfig – MAC 주소 추가
여기서 ifconfig 명령어를 사용하여 MAC 주소를 추가하는 구문:
# ifconfig eth0 hw ether 00:0c:29:33:4e:aa
ip – MAC 주소 추가
여기서 ip 명령어를 사용하여 MAC 주소를 추가하는 구문:
# ip link set dev eth0 address 00:0c:29:33:4e:aa
4. 네트워크 인터페이스의 다른 구성 설정하기
IP 주소나 하드웨어 주소를 설정하는 것 외에도 인터페이스에 적용할 수 있는 다른 구성에는 다음이 포함된다:
- MTU (최대 전송 단위)
- 멀티캐스트 플래그
- 전송 큐 길이
- promiscuous mode
- 모든 멀티캐스트 모드를 활성화 또는 비활성화합니다
ifconfig – 기타 네트워크 구성
ip – 기타 네트워크 구성
a. Set MTU value to 2000.
# ifconfig eth0 mtu 2000
# ip link set dev eth0 mtu 2000
b. Enable or Disable multicast flag.
# ifconfig eth0 multicast
# ip link set dev eth0 multicast on
c. Setting the transmit queue length.
# ifconfig eth0 txqueuelen 1200
# ip link set dev eth0 txqueuelen 1200
d. Enabling or disabling promiscuous mode.
# ifconfig eth0 promisc
# ip link set dev eth0 promisc on
e. Enable or disable all multicast mode.
# ifconfig eth0 allmulti
# ip link set dev eth0 allmulti on
5. 네트워크 인터페이스 활성화/비활성화
아래 명령어는 특정 네트워크 인터페이스를 활성화 또는 비활성화합니다
ifconfig – 네트워크 인터페이스 비활성화/활성화
아래 명령어는 eth0
인터페이스를 비활성화하며, ifconfig의 출력을 통해 확인할 수 있습니다. 기본적으로는 UP 상태인 인터페이스만 표시합니다
# ifconfig eth0 down
인터페이스를 다시 활성화하려면, down을 up으로 변경하면 됩니다
# ifconfig eth0 up
ip – 네트워크 인터페이스 비활성화/활성화
아래 ip 명령어는 ifconfig 대신 특정 인터페이스를 비활성화하는 데 사용할 수 있습니다. 이를 'ip a'
명령어의 출력으로 확인할 수 있습니다. 이 명령어는 기본적으로 모든 인터페이스를 UP 또는 DOWN 상태로 표시하며, 그들의 상태와 설명을 함께 강조합니다
# ip link set eth0 down
인터페이스를 다시 활성화하려면, down을 up으로 변경하면 됩니다
# ip link set eth0 up
6. ARP 프로토콜 사용 활성화/비활성화
아래 명령어는 특정 네트워크 인터페이스에서 ARP 프로토콜을 활성화 또는 비활성화합니다
ifconfig – ARP 프로토콜 활성화/비활성화
이 명령어는 eth0 인터페이스에서 ARP 프로토콜을 사용하도록 활성화합니다. 이 옵션을 비활성화하려면, arp를 -arp
로 변경하면 됩니다
# ifconfig eth0 arp
ip – ARP 프로토콜 활성화/비활성화
이 명령은 eth0 인터페이스에 대한 ARP를 활성화하는 ip 대안입니다. 비활성화하려면 on을 off으로 변경하면 됩니다.
# ip link set dev eth0 arp on
결론
따라서 ifconfig 명령의 특징과 ip 명령을 사용하여 어떻게 수행할 수 있는지를 설명했습니다. 현재 Linux 배포판은 사용자에게 두 명령어를 모두 제공하여 편의성에 따라 사용할 수 있습니다. 그렇다면 어느 명령어가 더 편리한지 어떻게 생각하시나요? 의견을 주시기 바랍니다.
이 두 명령어에 대해 더 배우고 싶다면 이전에 ifconfig와 ip 명령의 실제 예제를 자세히 설명한 기사를 읽어보시기 바랍니다.
Source:
https://www.tecmint.com/ifconfig-vs-ip-command-comparing-network-configuration/