
Привет, народ, я пытаюсь отключить определенный IP из набора активных IP, как это сделать? Например, давайте предположим, что у меня есть следующие активные IP (последовательность будет такой же): 1.2.3.4 1.2.3.5 1.2.3.6 Я сделал это с помощью "ifconfig etho:x 1.2.3.x up", где x=4,5,6. Теперь я хочу отключить только первый 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:1
метка связана с 192.168.1.1 to 192.168.1.3
IP-адресами. А 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