As "interfaces virtuais" ( wlan0:1
etc.) são apenas a maneira antiga de dizer ao kernel que mais de um endereço IPv4 está associado a uma interface de rede. Em um kernel moderno, essas interfaces realmente não existem e elas não são mostradas quando você usa ip addr
. Em vez disso, apenas todos os endereços IPv4 designados são listados (mostrados aqui para uma extremidade de um par veth):
$ sudo ifconfig veth0b:1 add 10.0.0.2
$ sudo ifconfig
veth0b: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.0.0.1 netmask 255.255.255.0 broadcast 0.0.0.0
inet6 fe80::801e:15ff:fe73:e98a prefixlen 64 scopeid 0x20<link>
ether 82:1e:15:73:e9:8a txqueuelen 1000 (Ethernet)
RX packets 58 bytes 7700 (7.5 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 15 bytes 1174 (1.1 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
veth0b:1:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.0.0.2 netmask 0.0.0.0 broadcast 0.0.0.0
ether 82:1e:15:73:e9:8a txqueuelen 1000 (Ethernet)
$ ip addr show dev veth0b
2: veth0b@if5: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 82:1e:15:73:e9:8a brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet 10.0.0.1/24 scope global veth0b
valid_lft forever preferred_lft forever
inet 10.0.0.2/0 scope global veth0b:1:0
valid_lft forever preferred_lft forever
inet6 fe80::801e:15ff:fe73:e98a/64 scope link
valid_lft forever preferred_lft forever
Em particular, você não pode escolher "interfaces virtuais" como uma interface para ligar:
$ ping -I veth0b:1 10.0.0.254
ping: invalid source address veth0b:1
Mas você pode escolher o endereço IP de origem para o ping (o que equivale à mesma coisa):
$ ping -I 10.0.0.1 10.0.0.254
$ ping -I 10.0.0.2 10.0.0.254
Isso não tem nada a ver com roteamento ou gateways; o roteamento é decidido pelo endereço de destino somente , a menos que o roteamento de políticas esteja em vigor e, em qualquer dos casos, que ocorra após um aplicativo ligar a uma interface ou selecionar uma fonte específica.