이걸 모르면 네트워크 관련 작업하기가 너무 어렵다. 그래서 자주 쓰는 명령어를 싹 다 정리하려고 한다.
ip
명령어 구조ip
명령은 크게 다음과 같이 구성된다:
ip
[ OPTION ]
OBJECT
{ COMMAND | help }
옵션은 있어도 되고 없어도 되는 optional
인데 뒤에 잇따르는 OBJECT
종류에 따라 옵션의 결과가 달라진다. 가령 -s
옵션(통계 정보)의 경우 ip link
와 ip address
에 대해서 동일한 결과를 보여주지만 ip neighbor
에서 사용하게 되면 그 결과가 약간 달라지게 된다.
OBJECT
가 실제 수행하게 될 명령이고 이를 구분으로 각각의 명령을 설명하려 한다.
ip-addr
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 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-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
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