Назад | Перейти на главную страницу

Сеть Xen - dom0 получает запросы ARP, но недоступности

И dom0, и domU - это Debian 8.

Конфигурация сети Dom0:

auto xenbr0
iface xenbr0 inet manual
    bridge_ports eth1
    bridge_stp off
    bridge_waitport 0
    bridge_fd 0

auto xenbr0.4
iface xenbr0.4 inet static
    address 192.168.4.13
    broadcast 192.168.4.255
    netmask 255.255.255.0
    gateway 192.168.4.1
    vlan-raw-device xenbr0

На хосте я также изменил некоторые параметры ядра, чтобы разрешить пересылку пакетов через брандмауэр.

# sysctl -p /etc/sysctl.conf
net.ipv4.ip_forward = 1
net.ipv4.conf.xenbr0.proxy_arp = 1
net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0

Файл конфигурации в / etc / xen / содержит строку:

vif = ['bridge=xenbr0,mac=00:16:3e:40:27:fa,ip=192.168.4.21']

Теперь вот конфигурация сети domU.

auto eth0
iface eth0 inet static
    address 192.168.4.21
    broadcast 192.168.4.255
    netmask 255.255.255.0
    gateway 192.168.4.1

После перезапуска сети мы можем увидеть маршруты по умолчанию и таблицы ARP.

На dom0:

# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.4.1     0.0.0.0         UG    0      0        0 xenbr0.4
192.168.4.0     0.0.0.0         255.255.255.0   U     0      0        0 xenbr0.4

# arp -n
Address                  HWtype  HWaddress           Flags Mask            Iface
192.168.4.21                     (incomplete)                              xenbr0.4
192.168.4.21             ether   00:16:3e:40:27:fa   C                     xenbr0
192.168.4.1              ether   00:00:5e:00:01:05   C                     xenbr0.4
192.168.4.2              ether   00:17:7c:41:7c:ce   C                     xenbr0.4

DomU:

# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.4.1     0.0.0.0         UG    0      0        0 eth0
192.168.4.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0

# arp -n
Address                  HWtype  HWaddress           Flags Mask            Iface
192.168.4.1              ether   20:47:47:8c:d0:4c   C                     eth0

Итак, что произойдет, если я пропингую 192.168.4.1 с domU и запустил tcpdump на dom0?

На dom0:

# tcpdump -vv host 192.168.4.21
tcpdump: listening on xenbr0, link-type EN10MB (Ethernet), capture size 262144 bytes
11:14:57.603076 IP (tos 0x0, ttl 64, id 55216, offset 0, flags [DF], proto ICMP (1), length 84)
    domU > 192.168.4.1: ICMP echo request, id 725, seq 1, length 64
11:14:57.603086 IP (tos 0x0, ttl 63, id 55216, offset 0, flags [DF], proto ICMP (1), length 84)
    domU > 192.168.4.1: ICMP echo request, id 725, seq 1, length 64
11:14:57.621871 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has domU tell 192.168.4.1, length 46
...
8 packets captured
11 packets received by filter
0 packets dropped by kernel

DomU:

# ping 192.168.4.1
PING 192.168.4.1 (192.168.4.1) 56(84) bytes of data.
^C
--- 192.168.4.1 ping statistics ---
148 packets transmitted, 0 received, 100% packet loss, time 147000ms

Я получаю аналогичные результаты при пинге 192.168.4.13, и, конечно, dom0 может подключаться к внешним IP-адресам, а domU - нет. У кого-нибудь есть идеи, что делать дальше? Спасибо.