Как может, я (от CLI) присваиваю несколько IP-адресов одному интерфейсу?

На моем сервере я хочу присвоить несколько IP-адресов одному NIC, но не используя устаревшее ifconfig или устаревшая нотация "псевдонима" (как eth0:0) в /etc/network/interfaces потому что в Искажении IP (на www.kernel.org) можно читать

Псевдонимы IP являются устаревшим способом управлять несколькими IP-АДРЕСАМИ/МАСКАМИ на интерфейс

43
задан 8 November 2014 в 21:45

3 ответа

  1. При необходимости в дополнительном IP-адресе просто в настоящий момент, можно добавить его к любому интерфейсу на машине с

     sudo ip address add <ip-address>/<netmask> dev <interface>
    

    например,

     sudo ip address add 172.16.100.17/24 dev eth0
    

    добавил бы 172.16.100.17 использование сетевой маски на 24 бита к списку адресов, настроенных для Вашего eth0.

    Можно проверить результат с

    ip address show eth0
    

    и можно удалить этот адрес снова с

    sudo ip address del 172.16.100.17/24 dev eth0
    

    Конечно, эти изменения потеряны при перезагрузке машины.

  2. Для создания дополнительных адресов постоянными, можно отредактировать файл /etc/network/interfaces путем добавления как много строк файла конфигурации формы

    iface eth0 static
        address 172.16.100.17/24
    

    так, чтобы это было похоже

    iface eth0 inet dhcp
    
    iface eth0 inet static
        address 172.16.100.17/24
    
    iface eth0 inet static
        address 172.16.24.11/24
    

    Можно даже сохранить dhcp для основного адреса.

    Активировать эти настройки без использования перезагрузки ifdown/ifup как

    sudo ifdown eth0 && sudo ifup eth0
    

    Важно поместить те две команды в одну строку, если Вы - дистанционная работа в сервер, потому что первый отбросит Ваше соединение! Учитывая таким образом ssh-сессию выживет.

48
ответ дан 16 November 2019 в 10:34

С новым инструментарием это столь же легко как со старым для добавления новых IP-адресов:

ip addr add 192.168.1.1/24 dev eth0

При взгляде с ip addr show снова, Вы видите второй IP-адрес, присвоенный интерфейсу:

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.100/24 brd 192.168.0.255 scope global eth0
    inet 192.168.1.1/24 scope global eth0
    inet6 fe80::223:54ff:fe45:f307/64 scope link
       valid_lft forever preferred_lft forever

Удаляют тот IP-адрес с:

ip addr del 192.168.1.1/24 dev eth0
<час>

iproute2 комплект:

iproute2 комплект является коммуникационным комплектом для межпроцессного взаимодействия beween ядро и пространство пользователя по netlink протоколу. Это должно заменить целые стандартные сетевые инструменты. Вот то, что они заменяют:

  • ifconfig-> ip addr и ip link
  • route-> ip route
  • arp-> ip neigh
  • iptunnel-> ip tunnel
  • ipmaddr-> ip maddr
  • netstat-> ss
20
ответ дан 16 November 2019 в 10:34

Один путь:

sudo ip addr add 192.168.0.2/24 dev eth1
0
ответ дан 16 November 2019 в 10:34

Другие вопросы по тегам:

Похожие вопросы: