Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie
Toon posts:

[FreeBSD/FreeNAS] Jail in een VLAN krijgen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0Henk 'm!

  • Dennis
  • Registratie: februari 2001
  • Laatst online: 12:54
Ik heb een FreeNAS (9.3) machine en daarin heb ik een aantal jails. Waar een hoop op internet over te vinden is, maar nergens echt goed beschreven, is het proces om een jail in een VLAN te krijgen.

Gisteren heb ik al gepoogd om met de webinterface van FreeNAS voor elkaar te krijgen wat ik wil, maar het resultaat was dat alle netwerken dood waren en ik op de console alles opnieuw moest instellen :F.

Anyway, wat heb ik:

Twee netwerkadapters, igb0 en igb1. Daaroverheen heb ik lagg0 (lacp trunk). Die zit gewoon op een untagged VLAN 3. Ik wil VLAN 1, VLAN 3 en VLAN 12 trunked aanbieden. FreeNAS maakt zelf een bridge aan (bridge0) en een heleboel epairXa en epairXb interfaces. De 'a' interface zitten op de host en de 'b' op de jail. Alle 'a' interfaces zitten in bridge0 op de host.

Op Google heb ik al redelijk wat gevonden. Zoals een simpele basis hoe je VLANs aanmaakt. Dat is natuurlijk gelukt. Ik heb nu dus interfaces vlan1, vlan3 en vlan12 die als parentinterface lagg0 hebben. Ook heb ik ze allemaal toegevoegd aan de bridge, een beetje zoals ik hier heb gelezen.

Vervolgens dacht ik hier beet te hebben, maar het lijkt erop dat dit niet meer van toepassing is op de release die ik gebruik.

Hier nog even de relevante config van de host - ten behoeve van de leesbaarheid heb ik het aantal jail interfaces even beperkt tot 2 (ik heb er in werkelijkheid meer):
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
[root@nas003] ~# ifconfig
igb0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=400b8<VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,VLAN_HWTSO>
        ether d0:50:99:5a:fb:12
        nd6 options=9<PERFORMNUD,IFDISABLED>
        media: Ethernet autoselect (1000baseT <full-duplex>)
        status: active
igb1: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=400b8<VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,VLAN_HWTSO>
        ether d0:50:99:5a:fb:12
        nd6 options=9<PERFORMNUD,IFDISABLED>
        media: Ethernet autoselect (1000baseT <full-duplex>)
        status: active
ipfw0: flags=8801<UP,SIMPLEX,MULTICAST> metric 0 mtu 65536
        nd6 options=9<PERFORMNUD,IFDISABLED>
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
        options=600003<RXCSUM,TXCSUM,RXCSUM_IPV6,TXCSUM_IPV6>
        inet6 ::1 prefixlen 128
        inet6 fe80::1%lo0 prefixlen 64 scopeid 0x5
        inet 127.0.0.1 netmask 0xff000000
        nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
lagg0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=400b8<VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,VLAN_HWTSO>
        ether d0:50:99:5a:fb:12
        inet 172.16.11.60 netmask 0xffffff00 broadcast 172.16.11.255
        nd6 options=9<PERFORMNUD,IFDISABLED>
        media: Ethernet autoselect
        status: active
        laggproto lacp lagghash l2,l3,l4
        laggport: igb1 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>
        laggport: igb0 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>
bridge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        ether 02:17:d5:ef:cb:00
        nd6 options=1<PERFORMNUD>
        id 00:00:00:00:00:00 priority 32768 hellotime 2 fwddelay 15
        maxage 20 holdcnt 6 proto rstp maxaddr 2000 timeout 1200
        root id 00:00:00:00:00:00 priority 32768 ifcost 0 port 0
        member: vlan12 flags=143<LEARNING,DISCOVER,AUTOEDGE,AUTOPTP>
                ifmaxaddr 0 port 18 priority 128 path cost 20000
        member: vlan3 flags=143<LEARNING,DISCOVER,AUTOEDGE,AUTOPTP>
                ifmaxaddr 0 port 17 priority 128 path cost 20000
        member: vlan1 flags=143<LEARNING,DISCOVER,AUTOEDGE,AUTOPTP>
                ifmaxaddr 0 port 16 priority 128 path cost 20000
        member: epair1a flags=143<LEARNING,DISCOVER,AUTOEDGE,AUTOPTP>
                ifmaxaddr 0 port 9 priority 128 path cost 2000
        member: epair0a flags=143<LEARNING,DISCOVER,AUTOEDGE,AUTOPTP>
                ifmaxaddr 0 port 8 priority 128 path cost 2000
        member: lagg0 flags=143<LEARNING,DISCOVER,AUTOEDGE,AUTOPTP>
                ifmaxaddr 0 port 6 priority 128 path cost 20000
epair0a: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=8<VLAN_MTU>
        ether 02:70:e8:00:08:0a
        nd6 options=1<PERFORMNUD>
        media: Ethernet 10Gbase-T (10Gbase-T <full-duplex>)
        status: active
epair1a: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=8<VLAN_MTU>
        ether 02:ca:ae:00:09:0a
        nd6 options=1<PERFORMNUD>
        media: Ethernet 10Gbase-T (10Gbase-T <full-duplex>)
        status: active
vlan1: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500
        ether d0:50:99:5a:fb:12
        nd6 options=9<PERFORMNUD,IFDISABLED>
        media: Ethernet autoselect
        status: active
        vlan: 1 parent interface: lagg0
vlan3: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500
        ether d0:50:99:5a:fb:12
        nd6 options=9<PERFORMNUD,IFDISABLED>
        media: Ethernet autoselect
        status: active
        vlan: 3 parent interface: lagg0
vlan12: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500
        ether d0:50:99:5a:fb:12
        nd6 options=9<PERFORMNUD,IFDISABLED>
        media: Ethernet autoselect
        status: active
        vlan: 12 parent interface: lagg0


Mijn vraag is nu als volgt:
Ik veronderstel dat mijn VLAN configuratie juist is en dat ik theoretisch gezien zou moeten communiceren vanaf de host op vlan1, vlan3 en vlan12 interfaces (mits ik daar een IP-adres aan koppel natuurlijk). Ook ga ik er vanuit dat ik ze op de juiste manier in de bridge geplaatst heb.

Hoe kan ik er nu voor zorgen dat een specifieke set interfaces van een jail (epairXa & epairXb) gebruik maakt van de (bijvoorbeeld) vlan1 interface die ik al in de bridge heb zitten en niet van de lagg0. Ik moet dat vast op één of andere manier expliciet koppelen.

Of is mijn denkwijze onjuist en moet ik nieuwe bridges maken (bijv. bridge1, bridge3 en bridge12) en daar dan de vlan1, vlan3 en vlan12 interfaces inhangen tezamen met de epairXa? En die laatstgenoemde dus uit bridge0 halen?

Mijn Unix kennis schiet hier tekort, dus hoop op een schop de goede richting op. Dank! :)

Acties:
  • 0Henk 'm!

  • CAPSLOCK2000
  • Registratie: februari 2003
  • Laatst online: 10:06

CAPSLOCK2000

zie teletekst pagina 888

Begrijp ik goed dat je al je vlans aan 1 bridge hebt gekoppeld? Dat klopt niet, je wilt denk ik 1 bridge per vlan. Het helpt als je een bridge als een eenvoudige switch ziet (dus zonder vlans).

Vergeet anders even het hele "virtuele" gedeelte en denk aan fysieke hardware. Jij hebt de kabels van lan1, lan3 en lan12 in dezelfde domme switch gestoken. Je wil een aparte switch voor ieder lan. Vervolgens prik je de kabels van je machine in de juiste switch om ze aan een bepaal lan te koppelen.

This post is warranted for the full amount you paid me for it.


  • Dennis
  • Registratie: februari 2001
  • Laatst online: 12:54
Ja precies, dat is niet handig hè! Ik was misschien teveel geïnspireerd door de link die ik hierboven al had gebruikt, hoewel het beoogde doel daar anders is.

Ik zal vanavond eens aparte bridges gaan maken en daar de adapters van mijn jail aan toevoegen. Tevens even een dubbelcheck of de tagged VLANs niet geblokkeerd zijn op de switch.

De vlan1, vlan3 en vlan12 die ik nu heb met parent interface lagg0 is in principe goed toch?

Wat ik ook wel bijzonder vind, is dit uit de FreeBSD docs over epair:
The basic intend is to provide connectivity between two virtual network
stack instances. When connected to a if_bridge(4) one end of the inter-
face pair can also be part of another (virtual) LAN. As with any other
Ethernet interface one can configure vlan(4) support on top of it.
Waar ik uit afleid dat ik de epairXa adapters ook aan meerdere bridges kan hangen, omdat hij dan al die VLAN's automatisch(?) over de epair leidt.

  • Demo
  • Registratie: juni 2000
  • Laatst online: 12:59

Demo

Probleemschietende Tovenaar

Dat kan, maar dan voeg je de epair adapter toe aan een jail en configureer je de VLAN's binnen de jail. Dat betekent dat je jail lid kan worden van elk VLAN wat je gebruikt en dat is waarschijnlijk niet wat je wil.

Ik maak zelf gebruik van LXC en KVM op Linux, maar doe ongeveer hetzelfde. De NIC van mijn hypervisor is verdeeld over 3 VLAN's, die vervolgens in een bridge worden opgenomen. De NICs van VM's en containers worden aan één van de bridges toegevoegd. De router VM heeft 3 NICs, één voor elk VLAN en routeert het verkeer tussen die drie.

Unix doesn't prevent a user from doing stupid things, because that would necessarily prevent them from doing brilliant things.
while true ; do echo -n "bla" ; sleep 1 ; done


  • Dennis
  • Registratie: februari 2001
  • Laatst online: 12:54
Demo schreef op woensdag 25 mei 2016 @ 09:38:
Dat kan, maar dan voeg je de epair adapter toe aan een jail en configureer je de VLAN's binnen de jail. Dat betekent dat je jail lid kan worden van elk VLAN wat je gebruikt en dat is waarschijnlijk niet wat je wil.
Terecht punt van je, dat is inderdaad vanuit securityoogpunt onwenselijk: als de jail compromised is kan hij ook op de secure netwerken komen. Niet doen dus.

Ik ga hem in één bridge hangen in de host.

Thanks!

  • Dennis
  • Registratie: februari 2001
  • Laatst online: 12:54
Nou, dat was me het dagje wel zeg. Ik kon sinds gisteravond amper nog op mijn eigen netwerk komen. Ik heb me een ongeluk lopen zoeken maar kwam er uiteindelijk achter dat het toevoegen van de VLAN's aan de bridge0 tot een loop leidde en een flood aan "br-slan: received packet on eth0.3 with own address as source address" op OpenWRT, met als gevolg dat die nergens meer op reageerde (en dus mijn internet dood ging). Gelukkig kunnen herstellen via de console op FreeNAS.

Uiteindelijk heb ik alles nu geconfigureerd zoals ik denk dat het zou moeten zijn:
Op de host (niet-relevante config heb ik weggelaten):
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
[root@nas003] ~# ifconfig
igb0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=400b8<VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,VLAN_HWTSO>
        ether d0:50:99:5a:fb:12
        nd6 options=9<PERFORMNUD,IFDISABLED>
        media: Ethernet autoselect (1000baseT <full-duplex>)
        status: active
igb1: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=400b8<VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,VLAN_HWTSO>
        ether d0:50:99:5a:fb:12
        nd6 options=9<PERFORMNUD,IFDISABLED>
        media: Ethernet autoselect (1000baseT <full-duplex>)
        status: active
ipfw0: flags=8800<SIMPLEX,MULTICAST> metric 0 mtu 65536
        nd6 options=9<PERFORMNUD,IFDISABLED>
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
        options=600003<RXCSUM,TXCSUM,RXCSUM_IPV6,TXCSUM_IPV6>
        inet6 ::1 prefixlen 128
        inet6 fe80::1%lo0 prefixlen 64 scopeid 0x5
        inet 127.0.0.1 netmask 0xff000000
        nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
lagg0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=400b8<VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,VLAN_HWTSO>
        ether d0:50:99:5a:fb:12
        inet 172.16.11.60 netmask 0xffffff00 broadcast 172.16.11.255
        nd6 options=9<PERFORMNUD,IFDISABLED>
        media: Ethernet autoselect
        status: active
        laggproto lacp lagghash l2,l3,l4
        laggport: igb1 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>
        laggport: igb0 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>
vlan1: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500
        ether d0:50:99:5a:fb:12
        inet 192.168.1.80 netmask 0xffffff00 broadcast 192.168.1.255
        nd6 options=9<PERFORMNUD,IFDISABLED>
        media: Ethernet autoselect
        status: active
        vlan: 1 parent interface: lagg0
epair4a: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=8<VLAN_MTU>
        ether 02:85:18:00:0c:0a
        nd6 options=1<PERFORMNUD>
        media: Ethernet 10Gbase-T (10Gbase-T <full-duplex>)
        status: active
bridge1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        ether 02:17:d5:ef:cb:01
        nd6 options=9<PERFORMNUD,IFDISABLED>
        id 00:00:00:00:00:00 priority 32768 hellotime 2 fwddelay 15
        maxage 20 holdcnt 6 proto rstp maxaddr 2000 timeout 1200
        root id 00:00:00:00:00:00 priority 32768 ifcost 0 port 0
        member: epair4a flags=143<LEARNING,DISCOVER,AUTOEDGE,AUTOPTP>
                ifmaxaddr 0 port 12 priority 128 path cost 2000
        member: vlan1 flags=143<LEARNING,DISCOVER,AUTOEDGE,AUTOPTP>
                ifmaxaddr 0 port 16 priority 128 path cost 55

De epair4a zit uiteraard niet meer in bridge0.

Op de jail:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
root@ubiquiti:/ # ifconfig
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
        options=600003<RXCSUM,TXCSUM,RXCSUM_IPV6,TXCSUM_IPV6>
        inet6 ::1 prefixlen 128
        inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1
        inet 127.0.0.1 netmask 0xff000000
        nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
epair4b: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=8<VLAN_MTU>
        ether 02:85:18:00:13:0b
        inet 192.168.1.70 netmask 0xffffff00 broadcast 255.255.255.0
        nd6 options=9<PERFORMNUD,IFDISABLED>
        media: Ethernet 10Gbase-T (10Gbase-T <full-duplex>)
        status: active


Werkt het? Nee. Onderling kunnen ze prima pingen met 192.168.1.70 en 192.168.1.80. Vanaf de host kan ik ook succesvol pingen naar andere apparaten in VLAN 1 en andersom. Maar de jail is onbereikbaar vanaf buitenaf en kan ook zelf niet naar buiten pingen.

Ik zal dus nog wel vast ergens iets aan moeten zetten? Iemand die weet wat dat is?

  • Hero of Time
  • Registratie: oktober 2004
  • Laatst online: 02-12 22:19

Hero of Time

Moderator NOS

There is only one Legend

Bij Linux worden VLANs op de bonding interface gemaakt, en de resulterende bond0.vlanid wordt dan weer gebridged met de KVM guest. Ik weet niet hoe dat precies op BSD werkt, maar is dat hoe je te werk gaat?

Commandline FTW | Tweakt met mate


  • Dennis
  • Registratie: februari 2001
  • Laatst online: 12:54
Hero of Time schreef op woensdag 25 mei 2016 @ 22:19:
Bij Linux worden VLANs op de bonding interface gemaakt, en de resulterende bond0.vlanid wordt dan weer gebridged met de KVM guest. Ik weet niet hoe dat precies op BSD werkt, maar is dat hoe je te werk gaat?
Ik weet niet of ik je goed begrijp, maar volgens mij doe ik wat je schrijft.

De vlan1 interface is een child van de lagg0 interface. Die vlan1 zit vervolgens in bridge1 samen met epair4a. epair4b zit in de jail.

Die epair functioneert goed, maar de bridge lijkt niet precies te doen waarvoor ik hem bedoeld had :+.

  • Dennis
  • Registratie: februari 2001
  • Laatst online: 12:54
Heeft iemand hier nog een suggestie voor?

  • ppl
  • Registratie: juni 2001
  • Niet online
Heb je al eens gezocht met de keywords "freebsd jail vlan"? Ik kom daar het volgende artikel tegen: FreeBSD Jails with VLAN HOWTO

Het jails hoofdstuk in het FreeBSD handbook geeft ook nog wat tuning tips.

Houdt er rekening mee dat een jail echt een confined environment is en je daardoor diverse zaken niet mag. Zo is er standaard geen raw socket toegang waardoor een dhcp server draaien in een jail niet mogelijk is. Wanneer je dat toch wil zul je de toegang tot raw sockets aan moeten zetten (wat dan meteen voor alle jails geldt iirc). Zie hiervoor ook de documentatie van [url=https://www.freebsd.org/cgi/man.cgi?query=jail&sektion=8&manpath=freebsd-release-ports]jail(8)[/ur] (zoek naar het stukje over allow). Diezelfde manual meldt ook het volgende: "Since jails are implemented using IP aliases, one of the first things to do is to disable IP services on the host system that listen on all local IP addresses for a service.". Lijkt mij een kwestie van VLAN interfaces aanmaken en daar de jails weer aan koppelen middels ip aliasses.

Acties:
  • 0Henk 'm!

  • Dennis
  • Registratie: februari 2001
  • Laatst online: 12:54
Ik heb al uitgebreid gezocht inderdaad voor ik het topic opende, maar jouw link was ik nog niet tegengekomen. Ik heb hem even doorgenomen, maar daar doen ze het wel op een iets andere manier.

Feitelijk wordt in dat voorbeeld de hele main interface op de host in een bridge gegooid en wordt pas op jail niveau een vlan device gemaakt. Wat ik echter doe is hem al afsplitsen in de host en vanaf daar verder routeren. Dat is een iets andere tactiek en in mijn optiek veiliger (want de jail is beperkt tot toegang tot 1 vlan).

Misschien denk ik verkeerd, maar ik krijg mijn netwerk op de host binnen als trunk (lagg0). Daarin zit dus (o.a.) vlan1 tagged. Nu haal ik hem eruit op de host met vlan1. Ik beschouw dan vlan1 als een untagged vlan 1 netwerk.

Die vlan1 deel ik vervolgens in de bridge1 en breng ik met een epair richting jail. Ik veronderstel dus dat hij daar ook 'untagged' is en direct zou moeten werken. Maar dat is niet zo. Ik begrijp niet waarom het niet werkt.

Acties:
  • 0Henk 'm!

  • Hero of Time
  • Registratie: oktober 2004
  • Laatst online: 02-12 22:19

Hero of Time

Moderator NOS

There is only one Legend

Let ook op wat de switch doet en hoe deze is ingesteld. Als jij daar hebt aangegeven dat vlan1 tagged moet zijn en al het untagged verkeer in vlan3 zit, kom je met je jail natuurlijk nergens met untagged vlan1. ;)

Commandline FTW | Tweakt met mate

Pagina: 1


Apple iPhone 12 Microsoft Xbox Series X LG CX Google Pixel 5 Black Friday 2020 Samsung Galaxy S20 4G Sony PlayStation 5 Nintendo Switch Lite

Tweakers vormt samen met Hardware Info, AutoTrack, Gaspedaal.nl, Nationale Vacaturebank, Intermediair en Independer DPG Online Services B.V.
Alle rechten voorbehouden © 1998 - 2020 Hosting door True