У меня есть KVM-Host (на Debian) с
root@kvm-host:/# cat /etc/network/interfaces
auto eth0
iface eth0 inet manual
auto vmbr0
iface vmbr0 inet static
address 176.x.y.133
netmask 255.255.255.224
gateway 176.x.y.129 # Provider's GW IP
bridge_ports eth0
bridge_stp off
bridge_fd 0
root@kvm-host:/# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
176.x.y.128 0.0.0.0 255.255.255.224 U 0 0 0 vmbr0
0.0.0.0 176.x.y.129 0.0.0.0 UG 0 0 0 vmbr0
root@kvm-host:/# arp -an
? (176.x.y.155) at <incomplete> on vmbr0
? (176.x.y.129) at xx:yy:zz:11:22:33 [ether] on vmbr0
root@kvm-host:/# ifconfig
1: lo: ...
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether AA:BB:CC:DD:EE:FF brd ff:ff:ff:ff:ff:ff
inet6 fe80::a60:6eff:feDD:EEFF/64 scope link
valid_lft forever preferred_lft forever
3: vmbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN
link/ether AA:BB:CC:DD:EE:FF brd ff:ff:ff:ff:ff:ff
inet 176.x.y.133/27 brd 176.x.y.159 scope global vmbr0
inet6 fe80::a60:6eff:feDD:EEFF/64 scope link
valid_lft forever preferred_lft forever
4: venet0: <BROADCAST,POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN
link/void
inet6 fe80::1/128 scope link
valid_lft forever preferred_lft forever
У меня публичные IP-адреса: 176.x.y.133 (KVM-Host), 176.x.y.151, 176.x.y.155.
Теперь пытаюсь завести сеть на каждой ВМ:
user@VM:/$ cat /etc/network/interfaces
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 176.x.y.155
netmask 255.255.255.255
pointtopoint 176.x.y.133
gateway 176.x.y.133
Я удалил сетевой менеджер.
Следующие шаги:
user@VM:/$ sudo ifup eth0
RTNETLINK answers: File exists
Failed to bring up eth0
user@VM:/$ ping 176.x.y.133
connect: Network is unreachable
root@VM:/# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
(т.е. пусто, нет даже шлюза по умолчанию)
user@VM:/$ sudo add default via 176.x.y.133
RTNETLINK answers: no such process
user@VM:/$ sudo arp -a
(i.e. empty)
user@VM:/$ sudo arp -s 176.x.y.133 AA:BB:CC:DD:EE:FF
SIOCSARP Network is unreachable
Я даже не могу установить статические маршруты (MAC-addr./IP-addr.).
В чем может быть проблема при настройке сети на ВМ? (Надеюсь, я предоставил всю необходимую информацию, чтобы быть конкретным)
Убедитесь, что MAC-адрес не генерируется случайным образом; многие интернет-провайдеры будут выделять IP-адреса только тем MAC-адресам, которые выдаются действующими провайдерами. Мне удалось получить IP-адрес на машине, взяв заведомо исправный, увеличив последний октет на единицу.
Изменить: убедитесь, что "brctl show vmbr0" показывает что-то разумное. Что-то вроде
xen-br0 8000.90b11c316da4 no eth0
На HW узле (хосте), /etc/network/interface
может выглядеть так:
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# Which interface are to be started at boot
auto lo vmbr0
# The loopback network interface
iface lo inet loopback
# The bridge for VM
iface vmbr0 inet static
address 176.x.y.133
netmask 255.255.255.224
network 176.x.y.128
broadcast 176.x.y.159
gateway 176.x.y.129 # Provider's GW IP
bridge_ports eth0
bridge_maxwait 2
up /sbin/ifconfig eth0 inet 0.0.0.0 promisc
up /sbin/sysctl -w net.ipv4.conf.br0.proxy_arp=1
up /sbin/sysctl -w net.ipv4.conf.default.forwarding=1
up /sbin/sysctl -w net.ipv4.ip_forward=1
Конечно, вы можете предпочесть создать vm-routing
файл в /etc/sysctl.d/
хранить sysctl
config.
На Хост ВМ, вы должны уметь использовать тем же конфигурация сети:
iface eth0 inet static
address 176.x.y.155
netmask 255.255.255.224
network 176.x.y.128
broadcast 176.x.y.159
gateway 176.x.y.129 # Provider's GW IP