738 | | Dit is een extreem handige feature en word in het veld veel gebruikt om netwerken te scheiden die over een enkele fysieke kabel of binnen een (managed)switch lopen. In openwrt kunnen de vlan instel wijzes aanzienlijk verschillen tussen de architecturen en gebruikte ethernet interfaces of ingebouwde managed switches. De volgende vlan instel mogelijkheden die we gaan toepassen zal voor apparaten met unieke eth interfaces i.t.t. ingebouwde (managed)switches redelijk generiek toepasbaar zijn. |
739 | | '' Let op: Echte embeddded apparaten met ingebouwde (managed)switches zoals Linksys WRT54GL, TPLINK TL-1043ND, microtik routerboards of UBNT Airrouter zullen andere parameters vereisen en niet werken met onderstaande opties. '' |
740 | | |
741 | | {{{ |
742 | | insmod 8021q |
| 741 | Dit is een extreem handige feature en word in het veld veel gebruikt om netwerken te scheiden die over een enkele fysieke kabel of binnen een (managed)switch lopen. In openwrt kunnen de vlan instel methoden aanzienlijk verschillen tussen de architecturen en gebruikte ethernet interfaces of ingebouwde managed switches. De volgende vlan instel mogelijkheden die we gaan toepassen zal voor apparaten met unieke eth interfaces i.t.t. ingebouwde (managed)switches redelijk generiek toepasbaar zijn en op andere linux distributies ook functioneren. |
| 742 | '' Let op: Echte embeddded apparaten met ingebouwde (managed)switches zoals Linksys WRT54GL, TPLINK wr1043ND, microtik routerboards of UBNT Airrouter zullen andere parameters vereisen en niet werken met onderstaande opties. '' |
| 743 | |
| 744 | In openwrt 10.03.1 en 12.09 is standaard het pakket "vconfig" aanwezig met kernel module "8021q", dit laatste heb je wellicht tijdens het booten al zien paseren. Met "vconfig" is voor iedere echte "eth" network interface direct vanuit de C.L.I. een of meerdere (4096) vlans voor die interface te creeeren. Als de standaard interface "eth0" met bijvoorbeeld 192.168.45.1 is geconfigureerd en functioneerd met een dhcp server, kun je door "vconfig add eth0 7" een tagged vlan7 toevoegen waar weer een eigen ipaddress bv 192.168.77.1 ook met dhcp server opgezet kan worden. Beide dhcpservers en subnets lopen over de zelfde kabel, de basis interface untagged en daar zijn alle apparaten gevoelig voor en de vlan interface op tagged. Wanneer deze kabel direct met een normale pc dhcp client gestop word kan deze client enkel de dhcp server op de untagged interface benaderen aangezien zijn eigen pakketjes geen vlan7 tag meesturen, echter wanneer de kabel in een inteligente (managed) switch word geplaatst kan deze switch beide netwerken weer over twee porten verdelen en de vlan7 taggen geheel voorzich zelf untagged naar een vrije port op de switch zetten. Als je daar weer je client pc op inhaakt krijg je wel een ip adres van de dhcp server op de vlan7 interface. Dit klinkt moeilijker dan het lijkt. Je hebt wel een managed switch nodig om makkelijk te demonstreren hoe het werkt. |
| 745 | '' Let Op: In backfire 10.03.1 werkt vlans opzetten niet direct met interfaces waar een bridge op zit(received geen packets) en dat is bij ons met eth0 die een bridge is het geval, kies daarom hier "br-lan" zowel bij vconfig als later bij ifname in /etc/config/network! '' |
| 746 | |
| 747 | Maak een tagged vlan 7 op de bestaande eth0 interface: |
| 748 | {{{ |
| 749 | vconfig add eth0 7 |
| 750 | ifconfig -a #shows newly undefined tagged vlan interface as eth0.7 |
| 751 | }}} |
| 752 | |
| 753 | Geef tijdelijk (overleeft reboot niet) een ipadress/subnetmask aan deze eth0.7 interface: |
| 754 | {{{ |
| 755 | ifconfig eth0.7 192.168.77.1/24 |
| 756 | }}} |
| 757 | |
| 758 | Als je de vlan settings permanent wil maken zodat ze een reboot overleven, moet je deze opzetten in /etc/rc.local zodat ze iedere keer opnieuw worden opgezet. Daarnaast moet deze eth0.7 interface netals iedere andere interface in /etc/config/network gedefinieerd worden, tevens de bijbehorende dhcp en firewall settings. |
| 759 | |
| 760 | # add. example code # /etc/rc.local |
| 761 | {{{ |
| 762 | #at end of comments |
| 763 | /sbin/vconfig add eth0 7 |
| 764 | #between exit0 statement |
746 | | Handige feature die in het veld veel gebruikt word, een enkele ethernet interface eth0 kan over dezelfde kabel met verschillende subnet functioneren die totaal niet in elkaars range liggen. |
| 768 | Handige feature die in het veld veel gebruikt word, hierdoor kan een enkele ethernet interface eth0 met een macaddress over dezelfde kabel toch met verschillende subnets functioneren die totaal niet in elkaars range liggen. Bij wirelessleiden zie je dit veel op de interlinks, omdat daar het aantal ip's al beperkt is en er soms meerdere stations op een ap zitten met totaal een andere eind node! Wanneer een alias ip word toegevoegd word deze afhankelijk van de methode niet altijd weergegeven met ifconfig of ifconfig -a, daarvoor heb je de ip en kmod-macvlan nodig. Dat laatste kmod-macvlan plaatst extra virtuele macaddressen op de interface waar een eigen (alias)ip aan vast komt, dit vooral handig als je met dhcp-client wil werken, zodat iedere aparate mac een eigen ip van dhcp server kan krijgen! |
| 769 | |
| 770 | # add. example code # /etc/config/network |
| 771 | {{{ |
| 772 | config alias lan5 |
| 773 | option proto static |
| 774 | option interface lan |
| 775 | option ipaddr 192.168.5.1 |
| 776 | option netmask 255.255.255.0 |
| 777 | }}} |
| 778 | |
| 779 | De volgende methode is wat robuster maar vereist iets meer moeite maar is wel compatible met bijvoorbeeld meerdere alias ip's die via dhcp-clients ieder uniek gevoed willen worden met een ip. De modules "ip" en "kmod-macvlan" zijn hiervoor nodig. Netals met vlans worden de virtuale macaddressen iedere reboot opgezet via /etc/rc.local en op reguliere worden deze nieuwe interfaces in /etc/config/network geconfigureerd! |
| 780 | |
| 781 | {{{ |
| 782 | opkg update |
| 783 | opkg install ip |
| 784 | opkg install kmod-macvlan |
| 785 | }}} |
| 786 | |
| 787 | # add. example code # /etc/rc.local |
| 788 | {{{ |
| 789 | #at end of comments |
| 790 | ip link add link eth1 eth3 type macvlan |
| 791 | ifconfig eth3 hw ether 00:11:22:33:44:54 |
| 792 | ifup -a |
| 793 | #between exit0 statement |
| 794 | }}} |
| 795 | |
| 796 | # add. example code # /etc/config/network |
| 797 | {{{ |
| 798 | config interface wan3 |
| 799 | option ifname eth3 |
| 800 | option proto static |
| 801 | option ipaddr 192.168.50.1 |
| 802 | option netmask 255.255.255.0 |
| 803 | }}} |
749 | | |
750 | | {{{ |
751 | | brctl show |
752 | | }}} |
| 806 | Deze functionaliteit word in de achtergrond normaal al gebruikt om de bedrade lokale interface "eth0" te bridgen met het wireless accesspoint "wlan0", iets dat in de meeste huis tuin en keuken routers een gewoonte is, zodat wireless gebruikers toch direct op de bedrade printer of NAS kunnen komen. Bij bridging word niet gekeken naar ip informatie maar word alles onvoorwaardelijk doorgestuurd beide kanten op! |
| 807 | |
| 808 | {{{ |
| 809 | brctl show #shows current active bridges |
| 810 | brctl addbr br-brlan1 #creates new bridge with name brlan1 |
| 811 | brctl delbr br-brlan1 #removes it |
| 812 | brctl addif br-lan eth2 #add interface eth2 to br-lan |
| 813 | brctl delif br-lan eth2 #removes it |
| 814 | }}} |
| 815 | |
| 816 | /etc/config/network |
| 817 | {{{ |
| 818 | #bridge between the two vlan interfaces VID 100 |
| 819 | config interface brlan1 |
| 820 | option type bridge |
| 821 | option ifname 'eth0.100 eth2.100' |
| 822 | option proto none |
| 823 | option auto 1 |
| 824 | }}} |
| 825 | |