
이걸 모르면 네트워크 관련 작업하기가 너무 어렵다. 그래서 자주 쓰는 명령어를 싹 다 정리하려고 한다.
ip 명령어 구조ip 명령은 크게 다음과 같이 구성된다:
ip[ OPTION ]OBJECT{ COMMAND | help }
옵션은 있어도 되고 없어도 되는 optional 인데 뒤에 잇따르는 OBJECT 종류에 따라 옵션의 결과가 달라진다. 가령 -s 옵션(통계 정보)의 경우 ip link 와 ip address 에 대해서 동일한 결과를 보여주지만 ip neighbor 에서 사용하게 되면 그 결과가 약간 달라지게 된다.
OBJECT 가 실제 수행하게 될 명령이고 이를 구분으로 각각의 명령을 설명하려 한다.
ip-addrip 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 address change <IP address>[/CIDR] dev <dev name>
ip address show
ip-netns network namespace 관련 명령이다. 네트워크 네임스페이스는 네트워킹과 관련된 시스템 리소스를 고립시킬 수 있게 만드는 기능이다. 네트워크 장치, IPv4, IPv6 스택, IP 라우팅 테이블, 방화벽 규칙 등을 따로 관리할 수 있게 된다.
하나의 물리 네트워크 장비는 반드시 하나의 네트워크 네임스페이스에서 존재한다. 따라서 네임 스페이스가 제거되면 해당 네임 스페이스에 있었던 물리 네트워크 장비는 초기 네트워크 네임스페이스로 복귀하게 된다.

ip netns add <namespace>
# ip netns add dlink

ip netns exec <namespace> <command>
ip-linkip 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
ip-route
ip route show
첫 줄을 해석해보자면 다음과 같다:
default) 은192.168.0.1 로 (게이트웨어) 빠져나가는데dev) enp4s0 를 통하여 간다.dhcp 에 의해 생성 되었으며 (proto)src) 는 192.168.0.49 이다.metric 은 100 이다.metric 은 우선순위로 숫자가 낮을수록 우선순위는 높아진다. 이 상황에서는 enp4s0 가 enp5s0 보다 우선순위가 더 높다.세 번재 줄은 다음과 같이 이해할 수 있다:
192.168.0.0/24 로 가는 패킷은enp5s0 로 빠져 나간다.proto kernel)scope link) 에서 유효하며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