Op deze veel te warme vrijdag ben ik aan het stoeien met een geavanceerde netwerksetup op Solaris. Ik heb een server met 4 gigabit netwerkpoorten, en een volledig redundant netwerk middels STP. Ik wil de 4 poorten samenvoegen tot 2 poorten van 2 gigabit, en die verbinden met twee switches. Doel: hogere doorvoersnelheid en redundantie, zodat als ofwel een netwerkkaart ofwel een switch uitvalt, alles vrolijk doordraait.
Schematisch ziet dit er als volgt uit:
Op beide switches zijn poorten 40 en 41 met elkaar getrunked middels LACP. Ik gebruik op Solaris (OpenSolaris 2009.06) dladm om de netwerkpooorten te configureren. In de eerste instantie heb ik dit getest:
Dit werkt perfect. Ik heb een interface aggr1 erbij gekregen, die netjes een IP-adres krijgt. Deze is nu echter maar met 1 switch verbonden. Ik wil uiteindelijk 1 interface (van de 4) overhouden. Om te testen of ik een aggregate van twee aggregates kan maken, heb ik het volgende geprobeerd (e1000g0 en e1000g1 kan ik even nog niet gebruiken).
Ik heb twee aggregates met beide 1 interface. Als ik deze twee aggregates wil verbinden in 1 nieuwe aggregate die met LACP met de switches communiceert, gaat het echter mis:
Het gaat ongetwijfeld niet goed omdat aggr0 en aggr1 geen ether-links zijn. Kan iemand me een zetje in de goede richting geven hoe dit wel voor elkaar te krijgen is? Moet ik wellicht 1 grote aggr0 maken over alle 4 de interfaces? Hoe verloopt de communicatie met de switches dan?
Schematisch ziet dit er als volgt uit:
╔════════════╗ ╔════════════╗ ║ Switch 1 ║ ║ Switch 2 ║ ╚══╤══════╤══╝ ╚══╤══════╤══╝ │40 41│ │40 41│ └───┬──┘ └───┬──┘ │ │ └───────┬────────┘ │ │aggr2 <-- LACP ┌────┴────┐ │aggr0 │aggr1 <-- Trunks ┌──┴──┐ ┌──┴─┐ │0 1│ │2 3│ <-- Ethernetpoorten e1000g{0,1,2,3} ╔═══╧═════╧═══╧════╧═══╗ ║ SERVER ║ ╚══════════════════════╝
Op beide switches zijn poorten 40 en 41 met elkaar getrunked middels LACP. Ik gebruik op Solaris (OpenSolaris 2009.06) dladm om de netwerkpooorten te configureren. In de eerste instantie heb ik dit getest:
root@file5:~# dladm create-aggr -t --link e1000g2 --link e1000g3 --policy=L2 --unicast=00:15:17:ea:48:00 --lacp-mode=active 0 root@file5:~# ifconfig aggr0 plumb root@file5:~# ifconfig aggr0 dhcp
Dit werkt perfect. Ik heb een interface aggr1 erbij gekregen, die netjes een IP-adres krijgt. Deze is nu echter maar met 1 switch verbonden. Ik wil uiteindelijk 1 interface (van de 4) overhouden. Om te testen of ik een aggregate van twee aggregates kan maken, heb ik het volgende geprobeerd (e1000g0 en e1000g1 kan ik even nog niet gebruiken).
root@file5:~# dladm create-aggr -t --link e1000g2 --policy=L2 0 root@file5:~# dladm create-aggr -t --link e1000g3 --policy=L2 1 root@file5:~# dladm show-link LINK CLASS MTU STATE BRIDGE OVER e1000g2 phys 1500 up -- -- e1000g0 phys 1500 up -- -- e1000g3 phys 1500 up -- -- e1000g1 phys 1500 up -- -- aggr0 aggr 1500 up -- e1000g2 aggr1 aggr 1500 up -- e1000g3 root@file5:~# dladm show-aggr LINK POLICY ADDRPOLICY LACPACTIVITY LACPTIMER FLAGS aggr0 L2 auto off short ----- aggr1 L2 auto off short -----
Ik heb twee aggregates met beide 1 interface. Als ik deze twee aggregates wil verbinden in 1 nieuwe aggregate die met LACP met de switches communiceert, gaat het echter mis:
root@file5:~# dladm create-aggr -t --link aggr0 --link aggr1 --policy=L2 --lacp-mode=active 2 dladm: create operation failed: invalid argument
Het gaat ongetwijfeld niet goed omdat aggr0 en aggr1 geen ether-links zijn. Kan iemand me een zetje in de goede richting geven hoe dit wel voor elkaar te krijgen is? Moet ik wellicht 1 grote aggr0 maken over alle 4 de interfaces? Hoe verloopt de communicatie met de switches dan?