/ и т.д. / сеть / интерфейсы
auto eth0
iface eth0 inet static
address x.x.x.55
gateway x.x.x.49
netmask 255.255.255.255
pointopoint x.x.x.49
Ping DomU -> x.x.x.49 (он же Dom0)
PING x.x.x.49 (x.x.x.49) 56(84) bytes of data.
64 bytes from x.x.x.49: icmp_req=1 ttl=64 time=0.107 ms
Пинг DomU -> 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
^C
--- 8.8.8.8 ping statistics ---
34 packets transmitted, 0 received, 100% packet loss, time 33263ms
tcpdump -Kn
21:03:30.316328 IP x.x.x.55 > 8.8.8.8: ICMP echo request, id 4904, seq 3, length 64
21:03:31.324344 IP x.x.x.55 > 8.8.8.8: ICMP echo request, id 4904, seq 4, length 64
21:03:32.332338 IP x.x.x.55 > 8.8.8.8: ICMP echo request, id 4904, seq 5, length 64
21:03:33.340323 IP x.x.x.55 > 8.8.8.8: ICMP echo request, id 4904, seq 6, length 64
21:03:34.348343 IP x.x.x.55 > 8.8.8.8: ICMP echo request, id 4904, seq 7, length 64
/ и т.д. / сеть / интерфейсы
auto eth0
iface eth0 inet static
address x.x.x.49
gateway x.x.x.33
netmask 255.255.255.255
pointopoint x.x.x.33
sysctl -a
net.ipv4.conf.eth0.forwarding = 1
net.ipv4.conf.eth0.proxy_arp = 1
net.ipv6.conf.eth0.forwarding = 1
net.ipv4.conf.vif1/0.proxy_arp = 1
iptables -L -n (правила автоматически добавляются vif-route)
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 PHYSDEV match --physdev-out vif1.0 --physdev-is-bridged
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 PHYSDEV match --physdev-in vif1.0 --physdev-is-bridged udp spt:bootpc dpt:bootps
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 PHYSDEV match --physdev-out vif1.0 --physdev-is-bridged
ACCEPT all -- x.x.x.55 0.0.0.0/0 PHYSDEV match --physdev-in vif1.0 --physdev-is-bridged
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
cat /etc/xen/xend-config.sxp | grep -e скрипт
# (network-script network-bridge)
# (network-script 'network-bridge netdev=eth1')
# (network-script 'network-bridge bridge=<name>')
#(vif-script vif-bridge)
(network-script network-route)
(vif-script vif-route)
#(network-script network-nat)
#(vif-script vif-nat)
#(resource-label-change-script '')
Пинг Dom0 -> DomU
PING x.x.x.55 (x.x.x.55) 56(84) bytes of data.
64 bytes from x.x.x.55: icmp_req=1 ttl=64 time=0.148 ms
tcpdump -Kn | grep 55
21:01:36.545890 IP x.x.x.55 > 8.8.8.8: ICMP echo request, id 4880, seq 4, length 64
21:01:36.551504 IP 8.8.8.8 > x.x.x.55: ICMP echo reply, id 4880, seq 4, length 64
21:01:37.545838 IP x.x.x.55 > 8.8.8.8: ICMP echo request, id 4880, seq 5, length 64
21:01:37.550473 IP 8.8.8.8 > x.x.x.55: ICMP echo reply, id 4880, seq 5, length 64
Что может случиться, что Dom0 не пересылает входящие пакеты TCP на мой DomU?
Ну как оказалось, все настройки выше совершенно правильно. Проблема заключалась в том, что мой хостер назначил выделенный MAC-адрес дополнительному IP. Поэтому Dom0 сразу отказался от пакета, так как посчитал, что это не пакет для себя.
После удаления этого виртуального MAC пакеты были приняты без ошибок и прошли через всю систему.
Если вы столкнетесь с тем, что на вашем устройстве Ethernet (eth0
в моем случае), убедитесь, что все остальное правильно, и убедитесь, что MAC-адрес совпадает с вашим основным адресом, т.е. eth0
!