- Two IPs on one NIC ( network card ) [closed]
- 3 Answers 3
- Несколько IP-адресов на одном сетевом адаптере в CentOS
- Принцип настройки
- Разовая настройка (командой)
- Постоянная настройка
- Настройка отвечающего интерфейса
- Как создать два IP адреса на одном интерфейсе в Debian
- Настройка нескольких IP адресов на одном интерфейсе
- Пояснения по настройке
- Multiple IP source on single interface in Linux
- 2 Answers 2
Two IPs on one NIC ( network card ) [closed]
These are the two most important ones, I believe; I’ve got no idea what network card my dedicated server has, but I know it supports IEEE 802.1q , which I found out on the Ubuntu website.
What does ip addr show say after running that command and what does «it fails to see it as a separate IP» mean?
I found that ip addr was temporary. I’ve re-routed the NIC and now it works. I have forgotten to bind my processes too.
I also need that and i found a best answer «How to Assigning multiple Virtual IPs to a NIC» on this site linuxinpakistan.com/assigning-multiple-virtual-ips-nic
3 Answers 3
I’m not quite sure exactly what you’re trying to accomplish. I am assuming that your question could be re-titled «How to set up two IPs on a single network interface.»
Each network interface on your machine is given an identifier. Typically, you start with eth0 and work your way up (eth1, eth2, eth3). These are all physically different network cards.
You can also have virtual cards on top of each of your physical cards. This is how you would set up multiple IPs on the same NIC.
To set this up, you can use the following example, changing the addresses to suit your needs ( /etc/network/interfaces ):
# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # The primary network interface auto eth0 eth0:0 allow-hotplug eth0 eth0:0 #eth0 iface eth0 inet static address 123.123.123.123 netmask 255.255.255.0 gateway 123.123.123.1 #eth0:0 (LAN) iface eth0:0 inet static address 212.212.212.212 netmask 255.255.128.0 gateway 212.212.212.1
The tricky part could be the netmask. Try 255.255.255.0 if you aren’t sure.
Несколько IP-адресов на одном сетевом адаптере в CentOS
Опубликовано: 28.02.2019
Назначение 2-х и более адресов на один физический сетевой интерфейс позволяет запуск приложений и служб, которые используют несколько IP или работают на разных сетевых адресах.
Принцип настройки
Для назначения вторичного IP-адреса создается псевдоним (alias) сетевого интерфейса. Название для алиаса задается по принципу : , например, eth0:0 или eth0:1.
Псевдониму можно назначить только статический ip-адрес, нельзя присвоить адрес с помощью DHCP.
Разовая настройка (командой)
Добавить дополнительный адрес можно одной командой:
ip a add 192.168.1.11/24 dev enp2s0:1
* в данном примере мы назначили адрес 192.168.1.11 с маской 255.255.255.0 (/24) для сетевого интерфейса enp2s0. Данный алиас назван enp2s0:1.
Если для управления сетевыми интерфейсами используем утилиту ifconfig:
ifconfig enp2s0:1 192.168.1.11 up
Проверить настройку можно одной из команд:
* обе команды позволяют посмотреть сетевые интерфейсы и узнать IP-адреса, назначенные им.
Необходимо помнить, что данная настройка будет сброшена после перезагрузки сетевой службы или системы.
Постоянная настройка
Чтобы дополнительный адрес назначался при перезагрузках, создаем новый виртуальный адаптер:
DEVICE=enp2s0:1
BOOTPROTO=static
IPADDR=192.168.1.11
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
ONBOOT=yes
Для применения настроек, перезапускаем сетевую службу:
systemctl restart network
Настройка отвечающего интерфейса
Некоторые приложения, которые отвечают на сетевые запросы с интерфейсов-алиасов могут работать некорректно. Это связано с тем, что ответ выполняется не с вторичного IP-адреса, на который пришел запрос, а первичного.
Для настройки сетевых ответов с IP, на который пришел запрос, вносим изменения в таблицу маршрутизации.
Для начала нужно найти незанятую таблицу (по умолчанию, они все пусты, кроме основной):
* в данном примете мы посмотрим на маршруты таблицы с номером 100.
Если маршрутов нет, то добавляем следующие:
ip route add default via 192.168.1.1 src 192.168.1.11 table 100
ip rule add from 192.168.1.0/24 table 100
ip rule add to 192.168.1.0/24 table 100
* в данном примере добавлены маршруты для подсети 192.168.1.0/24
Для постоянного добавления маршрута, создаем файл:
default via 192.168.1.1 src 192.168.1.11 table 100
Также создаем файл для добавления правил:
from 192.168.1.0/24 table 100
systemctl restart network
Как создать два IP адреса на одном интерфейсе в Debian
Причин для нескольких IP адресов на одном физическом порту Ethernet может быть несколько. В этой статье я напишу как это реализовать на примере Debian 10.
Когда-то я уже писал как это сделать на примере Centos — https://moonback.ru/page/2ip-linux.
Настройка нескольких IP адресов на одном интерфейсе
Все действия необходимо проводить в консоли от имени Администратора (root).
Для достижения положительного результата необходимо внести изменения в файл /etc/network/interfaces.
По-умолчанию в нем содержатся следующие строки:
# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). source /etc/network/interfaces.d/* # The loopback network interface auto lo iface lo inet loopback # The primary network interface allow-hotplug enp1s0 iface enp1s0 inet dhcp
Добавим в конец файла необходимые настройки. У меня пример готового файла для двух статический и одного динамического (адрес получаем по DHCP) адресов.
# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). source /etc/network/interfaces.d/* # The loopback network interface auto lo iface lo inet loopback # The primary network interface allow-hotplug enp1s0 iface enp1s0 inet dhcp auto enp1s0:0 iface enp1s0:0 inet static address 192.168.49.2 netmask 255.255.255.0 auto enp1s0:1 iface enp1s0:1 inet static address 172.16.254.11 netmask 255.255.255.0
Далее перезагружаем сеть и проверяем, что все работает:
# service networking restart
Пояснения по настройке
В моем примере типовая настройка ethernet интерфейса остается без изменения. То есть компьютер получает адрес по DHCP.
Далее я добавляю два подинтерфейса enp1s0:0 и enp1s0:1 со статической адресацией.
В моем примере нет параметра шлюза по-умолчанию gateway. Предполагается, что компьютер его получает по DHCP. При необходимости вы можете прописать его в ручную для одного из (под)интерфейсов:
Следует помнить, что в системе может быть только один шлюз по-умолчанию.
Все адреса в примере нужно заменить на свои.
Multiple IP source on single interface in Linux
We could set multiple IP addressses on single interface, for example using NetworkManager: How to make any connection to outside of this PC to use different IP? for example if I have 8 IP addresses ( 10.7.4.x , 10.7.4.x+1 , 10.7.4.x+2 , . ), I want to connect each destination address using different IP, either using random IP or sequential mod (when destination IP mod 8 = 0, then use x , when destination mod 8 = 1, then use x+1 , and so on)
Not related to your question, but I notice that the UI is a bit misleading in that it gives the impression you can specify a separate gateway for each IP address. I see that you have specified the same gateway on all the lines, and you should probably keep it that way.
2 Answers 2
In Linux the selection of source addresses for outgoing connections can be controlled by the routing table:
ip route add 10.11.12.0/24 via 10.7.4.1 src 10.7.4.200
This is enough if you just need to use different source addresses for some fixed IP ranges. However, by combining the power of Linux netfilter ( iptables ) and policy routing ( ip rule ) you can get dynamic selection of the source address.
The basic procedure is as follows:
- Set the appropriate marks on the packets in the PREROUTING chain of the mangle table.
- Use different IP routing tables for packets with different marks ( ip rule add fwmark X table Y ).
- In each routing table use the required src address for packets.
The netfilter setup for marking packets according to the destination IP for the «mod 4» setup may look like this:
iptables -A PREROUTING -t mangle -j CONNMARK --restore-mark iptables -A PREROUTING -t mangle -m mark --mark 0x0 -d 0.0.0.0/0.0.0.3 \ -j MARK --set-mark 1 iptables -A PREROUTING -t mangle -m mark --mark 0x0 -d 0.0.0.1/0.0.0.3 \ -j MARK --set-mark 2 iptables -A PREROUTING -t mangle -m mark --mark 0x0 -d 0.0.0.2/0.0.0.3 \ -j MARK --set-mark 3 iptables -A PREROUTING -t mangle -m mark --mark 0x0 -d 0.0.0.3/0.0.0.3 \ -j MARK --set-mark 4 iptables -A POSTROUTING -t mangle -j CONNMARK --save-mark
(For this particular case you can omit two CONNMARK commands, because the other marking commands will give the same result for all packets in the same connection; however, for more complex cases, like the round-robin usage of source addresses, these commands are required to ensure that all packets in the connection will use the same route.)
The IP routing setup may then look like this:
ip route add default via 10.7.4.1 src 10.7.4.200 table 1 ip route add default via 10.7.4.1 src 10.7.4.201 table 2 ip route add default via 10.7.4.1 src 10.7.4.202 table 3 ip route add default via 10.7.4.1 src 10.7.4.203 table 4 ip rule add fwmark 1 pref 1 table 1 ip rule add fwmark 2 pref 2 table 2 ip rule add fwmark 3 pref 3 table 3 ip rule add fwmark 4 pref 4 table 4