[Linux] IP 명령어 정리

문연수·2025년 5월 19일
0

Linux (Fedora)

목록 보기
25/27
post-thumbnail

이걸 모르면 네트워크 관련 작업하기가 너무 어렵다. 그래서 자주 쓰는 명령어를 싹 다 정리하려고 한다.

0. ip 명령어 구조

ip 명령은 크게 다음과 같이 구성된다:

ip [ OPTION ] OBJECT { COMMAND | help }

 옵션은 있어도 되고 없어도 되는 optional 인데 뒤에 잇따르는 OBJECT 종류에 따라 옵션의 결과가 달라진다. 가령 -s 옵션(통계 정보)의 경우 ip linkip address 에 대해서 동일한 결과를 보여주지만 ip neighbor 에서 사용하게 되면 그 결과가 약간 달라지게 된다.

OBJECT 가 실제 수행하게 될 명령이고 이를 구분으로 각각의 명령을 설명하려 한다.

1. ip-addr

- IP 설정하기

ip address add <IP address>[/CIDR] dev <dev name>
# ip addr add 192.168.0.16/24 dev enp36s0

CIDR 을 설정하지 않으면 자동으로 32 로 설정된다. 만약 하나의 interface 에 두 개 이상의 IP 가 할당되면 가장 먼저 할당된 IP 가 default 로 사용되고 만약 첫 번째 IP 가 제거되면 두 번째 IP 가 쓰이게 된다.

- IP 변경하기

ip address change <IP address>[/CIDR] dev <dev name>

- IP 확인하기

ip address show

2. ip-netns

network namespace 관련 명령이다. 네트워크 네임스페이스는 네트워킹과 관련된 시스템 리소스를 고립시킬 수 있게 만드는 기능이다. 네트워크 장치, IPv4, IPv6 스택, IP 라우팅 테이블, 방화벽 규칙 등을 따로 관리할 수 있게 된다.

 하나의 물리 네트워크 장비는 반드시 하나의 네트워크 네임스페이스에서 존재한다. 따라서 네임 스페이스가 제거되면 해당 네임 스페이스에 있었던 물리 네트워크 장비는 초기 네트워크 네임스페이스로 복귀하게 된다.

- 네임스페이스 생성하기

ip netns add <namespace>
# ip netns add dlink

- 명령 실행하기

ip netns exec <namespace> <command>

3. ip-link

- 설정 정보

ip link show
ip link show dev <dev name>

스탯 정보도 함께 보고 싶다면...

ip -s link show
ip -s -s link show		# 더 디테일한 스탯 정보

- 네임 스페이스 설정

ip link set <dev> netns <namespace>
# ip link set enp36s0 netns dlink

네임스페이스에서 빠져 나오려면?

ip netns exec <namespace> ip link set <dev> netns 1
sudo ip link set <dev name> up

4. ip-route

- 라우팅 테이블 출력

ip route show

첫 줄을 해석해보자면 다음과 같다:

  1. 목적지가 정해지지 않은 패킷(default) 은
  2. 주소 192.168.0.1 로 (게이트웨어) 빠져나가는데
  3. 이 패킷은 장치(dev) enp4s0 를 통하여 간다.
  4. 이 규칙은 dhcp 에 의해 생성 되었으며 (proto)
  5. 출발지의 주소 (src) 는 192.168.0.49 이다.
  6. metric 은 100 이다.
    metric 은 우선순위로 숫자가 낮을수록 우선순위는 높아진다. 이 상황에서는 enp4s0enp5s0 보다 우선순위가 더 높다.

세 번재 줄은 다음과 같이 이해할 수 있다:

  1. 주소 192.168.0.0/24 로 가는 패킷은
  2. 장치 enp5s0 로 빠져 나간다.
  3. 이 규칙은 커널에 의해 생성 되었으며 (proto kernel)
  4. 같은 링크 상(scope link) 에서 유효하며
  5. 출발지의 주소는 192.168.0.140 이다.

그러므로 로컬로 보내는 모든 패킷은 무조건 enp5s0 를 통해 빠져 나가게 된다.

ip route change default via 192.168.0.16 dev enp36s0

출처

[사이트] http://linux-ip.net/html/ (진짜 최고의 사이트)
[사이트] https://man7.org/linux/man-pages/man7/network_namespaces.7.html

profile
2000.11.30

0개의 댓글