У меня есть подинтерфейсeth0:0
auto eth0:0
iface eth0:0 inet static
address 192.168.2.96
netmask 255.255.255.0
gateway 192.168.2.1
и я стараюсь
ping -I eth0:0 8.8.8.8
и я получаю
ping: SO_BINDTODEVICE: Invalid argument
Если я пингую с обычного интерфейса ( eth0
), то все в порядке.
Я пробовал на Ubuntu 14.04 и CentOS 7.
решение1
Вы не можете определить eth0:0 как источник вашего ICMP-пакета с помощью ping
команды; как было сказано в предыдущих комментариях, будут применены правила маршрутизации, и при маршрутизации в другие сети будет использоваться адрес eth0.
Однако вы можете подделать пакет ICMP, имеющий IP-адрес eth0:0 в качестве источника, с помощью hping3
следующей команды:
sudo hping3 -1 8.8.8.8 -a 192.168.2.96
Обратите внимание: для работы ваш пограничный маршрутизатор должен выполнять NAT для сетевого блока 192.168.2.0/24.
решение2
Как только вы пропингуете адрес в своей сети
192.168.2.0/24
В качестве источника будет использован адрес eth0:0. В противном случае будет использован адрес интерфейса eth0.