- Как назначить несколько IP-адресов одной сетевой карте в Linux
- Назначение нескольких IP-адресов одной сетевой карте в системах на основе DEB
- Назначение нескольких IP-адресов одной сетевой карте в системах на основе RPM
- Назначение IP-адресов разных классов
- Назначение IP-адреса разных классов в системах на основе Ubuntu/Debian
- Назначение IP-адреса разных классов в системах на базе CentOS / RHEL / Scientific Linux
Как назначить несколько IP-адресов одной сетевой карте в Linux
Некоторым из вас может быть интересно, зачем назначать несколько IP-адресов одной сетевой карте. На то может быть много причин. Например, вам необходимо провести определенное тестирование на вашем Linux-компьютере, которое требует двух или более сетевых карт. Вы пойдете, специально для этого, покупать новые сетевые карты? Нет, покупать дополнительные сетевые карты не обязательно. Вы можете установить несколько IP-адресов из разных диапазонов, например, 192.168.1.0/24, 192.168.2.0/24, 192.168.3.0/24 и т.д., для сетевой карты и использовать их все одновременно. Этот метод может быть полезен при настройке серверов общего доступа в Интернет, таких как прокси-сервер Squid. Если вы когда-нибудь окажетесь в ситуации, когда это вам понадобится, просто следуйте этой статье.
Назначение нескольких IP-адресов одной сетевой карте в системах на основе DEB
Этот пункт статьи был проверен на сервере Ubuntu 16.04 LTS. Однако это будет работать и на Debian, и на других системах на основе DEB, таких как Linux Mint, Elementary OS и т.д.
Мы можем найти IP-адрес в Ubuntu с помощью команды:
1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: enp0s3: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 08:00:27:12:f8:c1 brd ff:ff:ff:ff:ff:ff inet 192.168.1.105/24 brd 192.168.1.255 scope global enp0s3 valid_lft forever preferred_lft forever inet6 fe80::a00:27ff:fe12:f8c1/64 scope link valid_lft forever preferred_lft forever
Как видно из приведенного примера IP-адрес сетевой карты enp0s3 имеет значение 192.168.1.105.
Мы назначили сетевой карте IP класса A, то есть из сети 192.168.1.0/24. Что делать, если нам необходим адрес в другой сети, например, в 192.168.2.0/24?
Просто введите следующую команду, чтобы установить дополнительный IP-адрес:
# ip addr add 192.168.2.105/24 dev enp0s3
Здесь 24 указывает на маску сети, т.е. 255.255.255.0.
Теперь давайте проверим, был ли назначен новый IP или нет.
1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: enp0s3: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 08:00:27:12:f8:c1 brd ff:ff:ff:ff:ff:ff inet 192.168.1.105/24 brd 192.168.1.255 scope global enp0s3 valid_lft forever preferred_lft forever inet 192.168.2.105/24 scope global enp0s3 valid_lft forever preferred_lft forever inet6 fe80::a00:27ff:fe12:f8c1/64 scope link valid_lft forever preferred_lft forever
Как видно из вышеприведенного вывода, сетевая карта теперь имеет два IP-адреса: 192.168.1.105 и 192.168.2.105. Точно так же вы можете назначить столько IP-адресов, сколько хотите, например, 192.168.3.105, 192.168.4.105 и т.д.
Давайте пропингуем новый IP-адрес:
PING 192.168.2.105 (192.168.2.105) 56(84) bytes of data. 64 bytes from 192.168.2.105: icmp_seq=1 ttl=64 time=0.040 ms 64 bytes from 192.168.2.105: icmp_seq=2 ttl=64 time=0.067 ms 64 bytes from 192.168.2.105: icmp_seq=3 ttl=64 time=0.066 ms --- 192.168.2.105 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2000ms rtt min/avg/max/mdev = 0.040/0.057/0.067/0.015 ms
И как говаривал кот Матроскин — «Заработало. »
Подождите, но это еще не конец. Пока то что мы сделали, это присвоили новый временный IP. После перезагрузки системы новый IP исчезнет. Как сделать этот IP постоянным? Это тоже просто.
Назначаем несколько IP-адресов навсегда:
Редактируем файл /etc/network/interfaces:
# nano /etc/network/interfaces
Теперь добавьте дополнительный IP-адрес, как показано ниже:
iface enp0s3 inet static address 192.168.2.105/24
Сохраните и закройте файл.
Выполните следующую команду, чтобы изменения вступили в силу.
# ifdown enp0s3 && sudo ifup enp0s3
Пример вывода данной команды:
Killed old client process Internet Systems Consortium DHCP Client 4.3.3 Copyright 2004-2015 Internet Systems Consortium. All rights reserved. For info, please visit https://www.isc.org/software/dhcp/ Listening on LPF/enp0s3/08:00:27:12:f8:c1 Sending on LPF/enp0s3/08:00:27:12:f8:c1 Sending on Socket/fallback DHCPRELEASE on enp0s3 to 192.168.1.1 port 67 (xid=0xe3877d4) RTNETLINK answers: Cannot assign requested address Internet Systems Consortium DHCP Client 4.3.3 Copyright 2004-2015 Internet Systems Consortium. All rights reserved. For info, please visit https://www.isc.org/software/dhcp/ Listening on LPF/enp0s3/08:00:27:12:f8:c1 Sending on LPF/enp0s3/08:00:27:12:f8:c1 Sending on Socket/fallback DHCPDISCOVER on enp0s3 to 255.255.255.255 port 67 interval 3 (xid=0x3080e44d) DHCPDISCOVER on enp0s3 to 255.255.255.255 port 67 interval 7 (xid=0x3080e44d) DHCPREQUEST of 192.168.1.105 on enp0s3 to 255.255.255.255 port 67 (xid=0x4de48030) DHCPOFFER of 192.168.1.105 from 192.168.1.1 DHCPACK of 192.168.1.105 from 192.168.1.1 bound to 192.168.1.105 -- renewal in 42937 seconds.
Теперь давайте запустим следующую команду, чтобы проверить, был ли назначен новый IP-адрес или нет.
1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: enp0s3: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 08:00:27:12:f8:c1 brd ff:ff:ff:ff:ff:ff inet 192.168.1.105/24 brd 192.168.1.255 scope global enp0s3 valid_lft forever preferred_lft forever inet 192.168.2.105/24 scope global enp0s3 valid_lft forever preferred_lft forever inet6 fe80::a00:27ff:fe12:f8c1/64 scope link valid_lft forever preferred_lft forever
Также вы можете проверить это после перезагрузки системы. Вы увидите, что новый IP по прежнему назначен.
Назначение нескольких IP-адресов одной сетевой карте в системах на основе RPM
Этот пункт статьи был проверен на CentOS 7 64-разрядной версии сервера. Однако те же шаги должны работать на других системах на основе RPM, таких как Fedora, Red Hat Linux и Scientific Linux.
Просто введите следующую команду, чтобы временно добавить дополнительный IP-адрес:
$ sudo ip addr add 192.168.2.150/24 dev enp0s3
Вы можете сразу начать использовать новый IP.
Чтобы добавить постоянный IP-адрес, просто измените файл конфигурации сетевой карты от имени пользователя root:
# vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
Добавьте новый IP-адрес, как показано ниже:
Для третьего IP-адреса добавьте строку IPADDR2=«192.168.2.150». Вы можете добавить любое количество IP-адресов один за другим.
Сохраните и закройте файл.
Перезапустите сетевой сервис с помощью команды:
# systemctl restart network
Проверьте новый IP-адрес, используя команду:
1: lo: mtu 65536 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: enp0s3: mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 08:00:27:80:63:19 brd ff:ff:ff:ff:ff:ff inet 192.168.1.150/24 brd 192.168.1.255 scope global enp0s3 valid_lft forever preferred_lft forever inet 192.168.2.150/24 brd 192.168.2.255 scope global enp0s3 valid_lft forever preferred_lft forever inet6 fe80::a00:27ff:fe80:6319/64 scope link valid_lft forever preferred_lft forever
Аналогичным образом добавьте столько IP-адресов, сколько необходимо.
Назначение IP-адресов разных классов
Существует пять классов доступных диапазонов IP, а именно: класс A, класс B, класс C, класс D и класс E. Обычно используются классы A, B и C.
Класс сети | Диапазон адресов | Поддерживает |
---|---|---|
Класс A | 1.0.0.1 — 126.255.255.254 | 16 миллионов хостов в каждой из 127 сетей. |
Класс B | 128.1.0.1 — 191.255.255.254 | 65 000 хостов в каждой из 16 000 сетей. |
Класс С | 192.0.1.1 — 223.255.254.254 | 254 хоста в каждой из 2 миллионов сетей. |
Класс D | 224.0.0.0 — 239.255.255.255 | Мультикаст |
Класс E | 240.0.0.0 — 254.255.255.254 | Зарезервировано для будущего использования или для целей исследований и разработок. |
Как вы могли заметить, в этой статье мы использовали адреса сетей класса C.
Попробуем назначить IP-адрес из другого класса сетей , например, из диапазона класса A. Возможно ли это? Конечно да.
Просто добавьте выбранный IP-адрес в файл конфигурации сетевой карты.
Назначение IP-адреса разных классов в системах на основе Ubuntu/Debian
В системах на базе DEB отредактируйте файл /etc/network/interfaces
$ sudo nano /etc/network/interfaces
Добавьте дополнительный IP-адрес:
iface enp0s3 inet static address 10.0.0.105/16
Сохраните и закройте файл.
Выполните следующую команду, чтобы изменения вступили в силу:
$ sudo ifdown enp0s3 && sudo ifup enp0s3
Проверьте, был ли добавлен новый IP, используя команду:
PING 10.0.0.105 (10.0.0.105) 56(84) bytes of data. 64 bytes from 10.0.0.105: icmp_seq=1 ttl=64 time=0.042 ms 64 bytes from 10.0.0.105: icmp_seq=2 ttl=64 time=0.070 ms 64 bytes from 10.0.0.105: icmp_seq=3 ttl=64 time=0.055 ms --- 10.0.0.105 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2000ms rtt min/avg/max/mdev = 0.042/0.055/0.070/0.014 ms
Таким образом, мы можем добавить несколько IP-адресов к одной сетевой карте в Ubuntu, Debian и их производных, таких как Linux Mint, Elementary OS и т.д.
Назначение IP-адреса разных классов в системах на базе CentOS / RHEL / Scientific Linux
Отредактируем файл конфигурации сетевой карты:
# vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
Добавим новый IP-адрес, как показано ниже. Обратите внимание, что вы должны добавить правильный префикс (маску сети) для каждого диапазона IP-адресов необходимого класса.
Давайте добавим IP-адрес из сети класса А, например 10.0.0.150.
IPADDR2="10.0.0.150" [. ] PREFIX2=16
Убедитесь, что номер IPADDR (IPADDR2) и номер PREFIX (PREFIX2) одинаковы для каждой сети ..0.150.
Сохраните и закройте файл. Перезапустите сетевой сервис, чтобы изменения вступили в силу.
# systemctl restart network
Проверьте новый IP с помощью команды:
1: lo: mtu 65536 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: enp0s3: mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 08:00:27:80:63:19 brd ff:ff:ff:ff:ff:ff inet 192.168.1.150/24 brd 192.168.1.255 scope global enp0s3 valid_lft forever preferred_lft forever inet 192.168.2.150/24 brd 192.168.255.255 scope global enp0s3 valid_lft forever preferred_lft forever inet 10.0.0.150/16 brd 10.255.255.255 scope global enp0s3 valid_lft forever preferred_lft forever inet6 fe80::a00:27ff:fe80:6319/64 scope link valid_lft forever preferred_lft forever
PING 10.0.0.150 (10.0.0.150) 56(84) bytes of data. 64 bytes from 10.0.0.150: icmp_seq=1 ttl=64 time=0.097 ms 64 bytes from 10.0.0.150: icmp_seq=2 ttl=64 time=0.100 ms 64 bytes from 10.0.0.150: icmp_seq=3 ttl=64 time=0.105 ms --- 10.0.0.150 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 1999ms rtt min/avg/max/mdev = 0.097/0.100/0.105/0.012 ms
Новый IP-адрес добавлен, и он работает. Не нужно покупать новую карту, делать сложные настройки маршрутизатора или что-то еще. Используя этот метод, мы можем легко добавить несколько разных IP за считанные минуты.
Если не указано иное, содержимое этой вики предоставляется на условиях следующей лицензии:
CC Attribution-Noncommercial-Share Alike 4.0 International