Tenha um host Ubuntu Server dedicado com uma única interface de rede, mas com dois endereços IP:
root@server:~# cat /etc/netplan/50-cloud-init.yaml
network:
version: 2
ethernets:
eno3:
dhcp4: true
match:
macaddress: 00:00:00:00:00:00
set-name: eno3
addresses: [IP-A/24, IP-B/32]
Quando IP-A
é o endereço IP nativo atribuído ao servidor e IP-B
é um endereço IP adicional que contratei. Ao configurar usando netplan apply
tudo funciona muito bem, o servidor WEB sai pelo endereço IP IP-A
e pelo curl consigo ver como é possível acessar a internet de IP-B
:
wget -qO- http://checkip.dyndns.com/ --bind-address IP-A
... Current IP Address: IP-A
wget -qO- http://checkip.dyndns.com/ --bind-address IP-B
... Current IP Address: IP-B
O problema é que também tenho uma máquina virtual com kvm
( virsh
), como posso fazer a máquina virtual sair para a internet usando IP-B
e não IP-A
como faz por padrão?
Minhas interfaces de rede:
root@yhojann:~# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
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
2: eno3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 11:11:11:11:11:11 brd ff:ff:ff:ff:ff:ff
inet IP-A/24 brd x.x.x.255 scope global dynamic eno3
valid_lft 63801sec preferred_lft 63801sec
inet IP-B/32 scope global eno3
valid_lft forever preferred_lft forever
inet6 ffff::fff:ffff:ffff:ffff/64 scope link
valid_lft forever preferred_lft forever
3: eno4: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 22:22:22:22:22:22 brd ff:ff:ff:ff:ff:ff
17: virbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 33:33:33:33:33:33 brd ff:ff:ff:ff:ff:ff
inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
valid_lft forever preferred_lft forever
18: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc fq_codel master virbr0 state DOWN group default qlen 1000
link/ether 44:44:44:44:44:44 brd ff:ff:ff:ff:ff:ff
20: vnet0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master virbr0 state UNKNOWN group default qlen 1000
link/ether 44:44:44:44:44:44 brd ff:ff:ff:ff:ff:ff
Eu tentei descobrir se é possível configurar a rede kvm usandovirsh net-edit default
mas não encontrei nenhuma referência que permita fazer uso de um endereço ip de saída específico do host principal sem ter que usar uma nova interface virtual e redirecionar pacotes com iptables, pois isso causa uma grande latência na conectividade.
Existe uma maneira mais "nativa" de dizer ao kvm para usar o IP específico?
Os endereços IP e endereços mac mostrados são apenas para referência. Eu utilizo o ufw para gerenciar as conexões.