[BSD] bsd as a router - csapo2

PÁSZTOR György pasztor at linux.gyakg.u-szeged.hu
2017. Okt. 24., K, 00:08:16 CEST


Sziasztok,

Picit fejlesztettem a "játszótéren", amiről ca. 2 hónapja írtam.
Lett játszósba egy pici managelhető switch is (SG300-10p), amin
tudok vlan-okat csinálni. Meg mindenféle "virtuális" kötözgetést,
vezetékek fizikai mozgatása nélkül.

A múltkori felállás változatlan:
[HOMELAN] - [XenDomU/bsdr] - [XenDomu/kliens gép: cdeb.bsdr]

Mellékes jelenség, nem tudom erre van-e már egyáltalán hibajegy, vagy hol
tudnám ellenőrizni, vagy ha nincs még, akkor jelenteni:
Ha igbvf -et adok neki pci passthrough-val, akkor már a boot-kor
crashdump-ol.

Kénytelen voltam egy komplett igb pci device-t átadni pci-passthrough-val a
bsd-nek.
A felállás annyiban változott, hogy a bsdr HOMELAN felé néző interfésze
továbbra is maradt xen pcifront driver által hajtott eszköz, de a másik xen
domU felé néző interfésze megkapott egy komplett igb pci eszközt, az meg
egy teljesen külön vlan-ba néző access portra lett kötve a switchen.

Innentől kezdve a switchnek mindegy volt, hogy egy másik virtuális bridgen
keresztül a dom0 köti össze a switchporttal a kliens gépet, vagy épp adok
neki egy ixgbevf-t és a hozzá tartozó port van a megfelelő külön vlan-ban,
a bsd működött mint router.

Ergo leszűkítettem a hiba reprodukciójának feltételeit:
Ha a bsd:
* xen virtualizációban
* a route-olt alhálózat/domU felé xen pcifront driveren keresztül
  csatlakozik
akkor csak ping megy át. tcp/udp payloadok már nem.
Érdekes kérdés, hogy miért pont az a lába. Elméletben szimmetrikusnak
gondolnám, hogy kellene hogy legyen a helyzet.
Leteszteltem: Ha a bsd szempontjából "wan"-portját konfigurálom fizikai
interfésznek, az nem javít a helyzeten.
Valamiért, kifejezetten az általa route-olt / mögötte lévő lan felőli
interfésznél nem viseli jól a rendszer, ha az egy xen pcifront eszköz.
Fizikai interfészből meg kevés van. És mint említettem a virtual
function-től meg crashdumpol.

Ötletek?

Részletesebb konfigok:

Scenario #1, ami közelebb van a kívánt felálláshoz
bsdr xen-konfig releváns részlet:
vif = [ 'bridge=br0' ]
pci = [ '06:00.1' ]

+ a 06:00.1-el összekötött switchport
switchport mode access
switchport access vlan 100

Eredmény:
* tudom pingelni a cdeb.bsdr -t
* tudok ssh-zni a cdeb.bsdr -re.
* A cdeb.bsdr -en tudok apt update -t sikeresen futtatni.

Scenario #2, ami távolabb van a kívánt felállástól
bsdr xen-konfig releváns részlet:
* uplink: igb, downling: xn
vif = [ 'bridge=br2' ]
pci = [ '06:00.1' ]

+ a 06:00.1-el összekötött switchport:
switchport mode access
(vlan nincs konfigurálva, így a default vlan1-et éri el)

Eredmény ->
* "ssh -A bsdr", majd onnan az "ssh cdeb.bsdr" működik
* ping cdeb.bsdr működik
* ssh cdeb.bsdr -> NEM működik
* A cdeb.bsdr -> NEM lát ki, az apt update timeoutol már a dns feloldással

Üdv,
Gyu


További információk a(z) BSD levelezőlistáról