Linux에서 특정 IP를 얻는 방법은 무엇입니까?

Linux에서 특정 IP를 얻는 방법은 무엇입니까?

안녕하세요 여러분, 사용 가능한 IP 집합에서 특정 IP를 제거하려고 합니다. 어떻게 해야 합니까? 예를 들어, 다음과 같은 IP(동일한 순서)가 있다고 가정해 보겠습니다. 1.2.3.4 1.2.3.5 1.2.3.6 x=4,5,6인 경우 "ifconfig etho:x 1.2.3.x up"을 사용하여 이 작업을 수행합니다. 이제 첫 번째 IP인 1.2.3.4만 다운시키려고 합니다. "ifconfig eth0:4 down"으로 시도했습니다. 문제는 이로 인해 원하는 IP뿐만 아니라 그 아래의 모든 IP도 다운된다는 것입니다. 저는 Linux RedHat에서 일하고 있습니다. 미리 감사드립니다...

답변1

ip addr del 1.2.3.4/24 dev eth0:4 이는 eth0:n실제로 인터페이스가 아니며 레이블(또는 별칭)이라고 합니다. 동일한 인터페이스에 여러 주소를 할당할 수 있으므로 레이블은 IP의 목적을 구별하는 데 도움이 될 수 있습니다. 이것은 또한 레이블을 설정할 때 실제로 eth0과 대화하기 때문에 다른 모든 것이 따르는 이유를 설명합니다.

답변2

대부분의 운영 체제에서는 IP 별칭 또는 논리 네트워크 인터페이스라고 하는 단일 인터페이스에 여러 IP 주소를 할당할 수 있습니다. 여러 IP 주소를 특정 레이블/별칭과 연결할 수 있습니다. 별칭은 우리 자신의 편의를 위한 것입니다.

아래 예에서 레이블은 eth0:1IP 주소와 연결되어 있습니다. 192.168.1.1 to 192.168.1.3그리고 eth0:2라벨은 와 연관되어 있습니다 192.168.1.4 to 192.168.1.6.

# ip addr add 192.168.1.1/24 dev eth0 label eth0:1
# ip addr add 192.168.1.2/24 dev eth0 label eth0:1
# ip addr add 192.168.1.3/24 dev eth0 label eth0:1
# ip addr add 192.168.1.4/24 dev eth0 label eth0:2
# ip addr add 192.168.1.5/24 dev eth0 label eth0:2
# ip addr add 192.168.1.6/24 dev eth0 label eth0:2

$ ip addr ls dev eth0 
    inet 192.168.1.1/24 scope global eth0:1
    inet 192.168.1.2/24 scope global secondary eth0:1
    inet 192.168.1.3/24 scope global secondary eth0:1
    inet 192.168.1.4/24 scope global secondary eth0:2
    inet 192.168.1.5/24 scope global secondary eth0:2
    inet 192.168.1.6/24 scope global secondary eth0:2

특정 IP 주소를 인터페이스에 연결하거나 여러 IP 주소를 별칭에 연결할 수 있습니다.

다음 명령은 레이블과 연결된 모든 IP 주소를 나열합니다 eth0:1.

$ ip addr ls label eth0:1
    inet 192.168.1.1/24 scope global eth0:1
    inet 192.168.1.2/24 scope global secondary eth0:1
    inet 192.168.1.3/24 scope global secondary eth0:1

특정 IP 주소를 제거할 수 있습니다.

$ sudo ip addr del 192.168.1.3/24 dev eth0 
$ sudo ip addr ls label eth0:1
    inet 192.168.1.1/24 scope global eth0:1
    inet 192.168.1.2/24 scope global secondary eth0:1

관련 정보