Libvirt - Hálózati talány

Na, ez igy fura volt, leírom, hogy más ne szívja meg, illetve hátha van értelmes magyarázat is.

Szóval, adott egy Xen Dom0, két bridge rajta, virbr0 és virbr1. Adott továbbá egy NetBSD és egy Linux guest.
A NetBSD-nek mindkét bridge-ben van lába, mert amúgy ö a default router a két net között, egész szépen szabályozható minden rajta.
A linux guest default routereként a NetBSD megfelelö lába van megjelölve, nem a Dom0

A hálózat a következö paraméterekkel megy:

Dom0 - virbr0: 10.0.20.1/24
Dom0 - virbr1: 192.168.2.4/24

NetBSD - virbr0: 10.0.20.3/24
NetBSD - virbr1: 192.168.2.20/24

Linux - virbr0: 10.0.20.99/24

Linux ping 192.168.2.20 -ra. Ekkor a kövi történik:
- A csomag megjelenik a virbr0-n, mint 192.168.2.20 felé menö csomag (?)
- A Dom0 NAT-olja az IP-t a saját virbr0-s címére
- Ezt bezavarja a NetBSD virbr1-es lábán
- A NetBSD visszaküldi a ping választ a virbr0 felé, de a 10.0.20.1-nek címezve
- A csomag eltünik.

Oké, alapvetően azért értem, hogy miről van szó, mert onnantól, hogy a Dom0 NAT-ol egyet, a csomag helyzete reménytelenné válik. Ám az oda vezető két lépés számomra fura.
- Eleve, a Linux-nak a default route-ja a NetBSD felé esö lába (ez fix)
- Mivel az IP tök idegen, ezért a Linux kisakkozza, hogy neki a 10.0.20.0/24 -es hálóba nem fér bele
- És ki kellene küldenie a default route fele.

Namármost, amit nem értek, hogy miért nem a default route felé ment a csomag, vagyis explicite a 10.0.20.3 felé címezve, miért ment ki a bridge-re úgy, mintha külsö IP-re ment volna? Valószinüleg az a feltételezésem hibás, hogy az ismeretlen csomagok dedikáltan a default gw felé mennek, hanem a hálózatnak kell ezt oda eljuttatni valahogy.

Tényleg így van? Vagy rosszul okoskodok?

A probléma gyökere amúgy az volt, hogy a default virbr0 NAT-os interfészként volt felvéve a libvirt-ben, amint kivertem belöle a NAT-ot, a háló megjavult.

Hozzászólások

Ezek a XEN-es network scriptek meg tudják kavarni az embert rendesen. Én éppen ezért /etc/network/interfaces-ben hozom létre a hidakat amik kellenek. Nem használok network scripteket. XEN ugyan úgy beköti a domU vifeket a hídba. Ha érdekel elküldöm.

|| "Software is like sex: it's better when it's free." Linus Torvalds || Visit Gorkhaan's Homepage

/etc/network/interfaces

# The primary network interface
auto xen-pub
iface xen-pub inet static
address xxx.xxx.xxx.xxx
netmask 255.255.255.0
broadcast xxx.xxx.xxx.xxx
gateway xxx.xxx.xxx.xxx
dns-nameservers xxx.xxx.xxx.xxx xxx.xxx.xxx.xxx
dns-search xxxxxx
bridge_ports XXX
bridge_maxwait 1
bridge_stp no

auto xen-int
iface xen-int inet static
address 192.168.222.1
netmask 255.255.255.0
pre-up brctl addbr xen-int ; ifconfig xen-int up
post-down ifconfig xen-int down ; brctl delbr xen-int

domU config:
# Networking
vif = [ 'vifname=domUneve,mac=08:00:00:CC:CC:00,bridge=xen-pub' ]

|| "Software is like sex: it's better when it's free." Linus Torvalds || Visit Gorkhaan's Homepage

Az a baj, hogy en ilyeneket nem tudok csinalni. Nem tudom megmondani a libvirt-nek, hogy itt egy bridge, es ne akard letrehozni, csak kezeld.

A problema amugy solved, mert annyi volt csak a baja, hogy le kellett venni a NAT-olast a bridge-rol, inkabb csak halozattechnikailag erdekel, hogy mi tortent.
--

Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal