487 | | |
488 | | ===== countrycode firmware patch ===== |
489 | | Naast dat de prism gebaseerde senao kaarten een firmware upgrade nodig hadden om goed te functioneren, hebben de atheros kaarten bij levering eigenlijk een specifieke landcode nodig in de firmware, de default regdomain code 0x0 debugmode word in de nieuwe linux kernels opgemerkt als US waardoor channel 12-13 op de 2,4ghz en een aantal kanalen op de 5ghz wegvallen en niet direct bruikbaar zijn in native builds van openwrt. Via de Windows tool RCU.exe en de atheros driver van Commview kan wanneer pin13 op de minipci kaart is afgeplakt (PLAKBAND ;-) deze eenvoudig worden gefixed op de juiste regio. Voor europa is ETSI1_WORLD 0x37 als regdomain aan te raden. Via linux kan via ath_info of eth-tool onderdeel van de madwifi driver vaak alleen via een oudere kernel ook het regdomain worden gepatched. Soms moet er nog wel een bepaalde register op de kaart aan of uit geschakeld worden bijvoorbeeld 1:0 4:0. |
| 535 | * hostapd |
| 536 | * hostapd-utils |
| 537 | * wireless-tools |
| 538 | * wpa-supplicant |
| 539 | * crda |
| 540 | |
| 541 | Met de volgende "/etc/config/wireless" template bestanden kun je 2,4 of 5ghz dualband functionaliteit van de atheros kaarten inregelen op gewenste channels! De template verkrijgen kan ook automatisch plaatsvinden wanneer alle benodigde modules aanwezig met "wifi detect > /etc/config/wireless", zo niet zie het voorbeeld! |
| 542 | |
| 543 | {{{ |
| 544 | config wifi-device radio0 |
| 545 | option type mac80211 |
| 546 | option channel 1 |
| 547 | option macaddr 00:xx:xx:xx:xx:x1 |
| 548 | option hwmode 11g |
| 549 | # REMOVE THIS LINE TO ENABLE WIFI: |
| 550 | option disabled 0 |
| 551 | |
| 552 | config wifi-iface |
| 553 | option device radio0 |
| 554 | option network lan |
| 555 | option mode ap |
| 556 | option ssid http://www.wirelessleiden.nl/2ghz |
| 557 | option encryption none |
| 558 | |
| 559 | config wifi-device radio1 |
| 560 | option type mac80211 |
| 561 | option channel 48 |
| 562 | option macaddr 00:xx:xx:xx:xx:x2 |
| 563 | option hwmode 11a |
| 564 | # REMOVE THIS LINE TO ENABLE WIFI: |
| 565 | option disabled 0 |
| 566 | |
| 567 | config wifi-iface |
| 568 | option device radio1 |
| 569 | option network lan |
| 570 | option mode ap |
| 571 | option ssid http://wirelessleiden.nl/5ghz |
| 572 | option encryption none |
| 573 | }}} |
| 574 | |
| 575 | ===== countrycode dfs radar ===== |
| 576 | Naast dat de prism gebaseerde senao kaarten een firmware upgrade nodig hadden om goed te functioneren, hebben de atheros kaarten bij levering eigenlijk een specifieke landcode nodig in de firmware, de default regdomain code 0x0 debugmode word in de nieuwe linux kernels opgemerkt als US waardoor channel 12-13 op de 2,4ghz en een aantal kanalen op de 5ghz wegvallen en niet direct bruikbaar zijn in native builds van openwrt. Via de Windows tool RCU.exe en de atheros driver van Commview kan wanneer pin13 op de minipci kaart is afgeplakt (PLAKBAND ;-) deze eenvoudig worden gefixed op de juiste regio. Voor europa is ETSI1_WORLD 0x37 als regdomain aan te raden. Via linux kan via ath_info of eth-tool onderdeel van de madwifi driver vaak alleen via een oudere kernel ook het regdomain worden gepatched. Soms moet er nog wel een bepaalde register op de kaart aan of uit geschakeld worden bijvoorbeeld 1:0 4:0. Naast kanaal bereik kan dit ook invloed hebben op het vermogen dat uitgezonden mag worden, exacte details staan bij de links/urls/references beschreven. |
| 577 | |
| 578 | Voor de 5ghz is er dfs/radar detectie nodig en deze ontbreekt in de opensource drivers, de nieuwste versie van ath9k heeft deze wel in openwrt trunk barierbreaker, kortom enkele kanalen werken maar op beperkt vermogens op de 5ghz band, maar dan weet je waarom! |
494 | | === portforwarding === |
495 | | /etc/config/firewall |
496 | | |
497 | | === vlans === |
498 | | Handige feature om netwerken te scheiden over 1 een fysieke kabel. |
499 | | |
500 | | {{{ |
501 | | insmod 8021q |
502 | | }}} |
503 | | |
504 | | === ip alias === |
505 | | 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. |
506 | | |
507 | | === bridges === |
508 | | |
509 | | {{{ |
510 | | brctl show |
511 | | }}} |
512 | | == Direct aan de slag! == |
513 | | Met wat eigenlijk? Met doosjes hardware(soekris boards/wifi uitbreidingen) en software als referentie of functionaliteiten zoals router en accesspoint opzetten en de hardware software instellingen ondersteunend maken aan dat verhaal? Ik heb het nu aan de hand van de hardware beschreven, tegelijk met het mixen van functionaliteiten zonder die direct altijd te benoemen en ook nog eens met verschillende openwrt versies... dit moet nog opgeschoond worden. |
514 | | |
515 | | Het eerste doel is een router op te zetten, die qua functionaliteit overeenkomt met de router in een huis tuin en keuken accesspoint van een reguliere interprovider, daarbij wifi toevoegen en mogelijk wat meer. |
516 | | |
517 | | === soekris 4501 === |
518 | | Werkt met standaard image ook prima, net als de 4521 tevens net zo traag ;-) heeft met dns-resolve te maken! |
519 | | |
520 | | === soekris 4521 === |
521 | | Ondanks dat de meeste hardware direct is aan te spreken vanuit opernwrt gaan de pcmcia sloten pas werken als daarvoor de juiste (kant en klare) pakketjes uit de reposity zijn geladen, dit geldt voor zowel backfire als attitude adjustment. Maar het laden uit de repository gaat pas werken wanneer het board via de "wan" aansluiting op het internet is aangesloten. Echter de "wan" aansluiting is standaard in de network config niet geconfigureerd, dit omdat niemand kenlijk een nette detect board-layout heeft opgegeven aan de openwrt developers, zodat gedetecteerd kan worden welke interfaces in het ergste geval een ethernet adapter heeft beschikt eth0(poe+lan). Daarom moet er eerst een "wan" interface worden toegevoegd en "eth0" bij de lan vervangen worden door "eth1" en "eth0" bij de "wan" plaatsen. Vervolgens nog firewall rules toevoegen zodat je via diezelfde wan interface kunt managen met ssh/http. Tenslotte kun je dan pas na de reboot het board met de pakket manager verder configureren. Nu eerst de CF kaart voorbereiden! |
522 | | |
523 | | {{{ |
524 | | #download openwrt image on client pc/laptop with card-reader |
525 | | wget http://downloads.openwrt.org/attitude_adjustment/12.09/x86/generic/openwrt-x86-generic-combined-squashfs.img |
526 | | |
527 | | #warning dd will overwrite anything and can destroy data in a inrecoverable fashion on your own PC!!! |
528 | | #write bootable image directly to CF-CARD |
529 | | sudo dd if=openwrt-x86-generic-combined-squashfs.img of=/dev/sdX |
530 | | |
531 | | #if you don't have ConMute=Enabled in comBIOS nor have a serial |
532 | | #cable active console with soekris follow the steps at chapter "grub boot loader" |
533 | | }}} |
534 | | |
535 | | Plaats de CF-CARD in de soekris, en sluit een losse lan/poe kabel van eth0 port op de soekris (dichtst bij de voeding) direct op je PC aan. Je PC zal via dhcp automatisch een ip van de soekris krijgen zo niet, de port is namelijk ingesteld als lokaal LAN en de tweede/derde ethernet port moet ook geconfigureerd worden! |
536 | | |
537 | | {{{ |
538 | | #login via telnet |
539 | | telnet 192.168.1.1 |
540 | | |
541 | | #add default password dit moet! |
542 | | passwd |
543 | | |
544 | | #reboot so rootfs will be writable next boot |
545 | | reboot;exit |
546 | | |
547 | | #login again, but with ssh |
548 | | ssh root@192.168.1.1 |
549 | | |
550 | | #backup original config files |
551 | | cp -r /etc/config /etc/config.ori |
552 | | |
553 | | #add wan interface |
554 | | vi /etc/config/network #see example code! |
555 | | |
556 | | #add 'ssh' and 'http' to firewall rules |
557 | | vi /etc/config/firewall #see example code! |
558 | | |
559 | | #finish setting up networkinterface and firewall |
560 | | reboot;exit |
561 | | |
562 | | #disconnect PC lan cable from soekris |
563 | | #connect the soekris via wan interface |
564 | | #directly to the local router with internet! |
565 | | }}} |
566 | | |
567 | | # example code # /etc/config/network |
568 | | {{{ |
569 | | # Copyright (C) 2006 OpenWrt.org |
570 | | |
571 | | config interface loopback |
572 | | option ifname lo |
573 | | option proto static |
574 | | option ipaddr 127.0.0.1 |
575 | | option netmask 255.0.0.0 |
576 | | |
577 | | config interface lan |
578 | | option ifname eth0 #! <--- |
579 | | option type bridge |
580 | | option proto static |
581 | | option ipaddr 192.168.45.1 |
582 | | option netmask 255.255.255.0 |
583 | | |
584 | | config interface wan |
585 | | option ifname eth1 #! <--- |
586 | | option type bridge |
587 | | option proto dhcp |
588 | | #option proto static |
589 | | #option ipaddr 172.16.6.45 |
590 | | #option netmask 255.255.255.0 |
591 | | |
592 | | }}} |
| 583 | === firewall (port)forwarding === |
| 584 | Het standaard gedrag voor openwrt is dat van buitenaf op de "wan" zone geen enkele service bereikbaar is, zelfs geen ssh! Vanuit dit configuratie bestand "/etc/config/firewall" kun je bijvoorbeeld binnenkomende porten openzetten op de "wan" zone of forwarden naar een lokaal ip op de "lan" zone. Het volgende voorbeeld laat zien hoe je de volgende services:ssh, webinterface, proxy en iperf toevoegd aan de firewall instellingen. |
| 619 | Om deze extra firewall uitbreidingen actief te maken, moet je de firewall service herstarten. Dit doe je net als vele andere services met /etc/init.d/servicenaam restart! |
| 620 | Maak firewall wijzigingen actief: |
| 621 | {{{ |
| 622 | /etc/init.d/firewall restart |
| 623 | }}} |
| 624 | |
| 625 | '' Let Op: Verkeerde firewall instellingen kunnen ervoor zorgen dat je jezelf buitensluit! Enkel kun je dan alleen via serial-console of als je geluk hebt via de lan nog binnenkomen! '' |
| 626 | |
| 627 | Extra zone(s) (afgezonderd in wlgst voorbeeld) definieren kan op de volgende manier, wel moet dan nog een aansluitende interface in /etc/config/network en een extra item aan /etc/config/dhcp worden toegevoegd of er nou wel of geen dhcp server draait, als je de wifi hierbij wil betrekken moet je ook /etc/config/wireless editen. Deze services moeten na het wijzigen ook ieder opnieuw gestart worden! |
| 628 | |
| 629 | # add. example code # /etc/config/firewall |
| 630 | {{{ |
| 631 | config zone |
| 632 | option name lanb |
| 633 | option network 'lanb' |
| 634 | option input ACCEPT |
| 635 | option output ACCEPT |
| 636 | option forward REJECT |
| 637 | |
| 638 | config forwarding |
| 639 | option src lanb |
| 640 | option dest wan |
| 641 | }}} |
| 642 | |
| 643 | # add. example code # /etc/config/dhcp |
| 644 | {{{ |
| 645 | config dhcp lanb |
| 646 | option interface lanb |
| 647 | option start 100 |
| 648 | option limit 150 |
| 649 | option leasetime 12h |
| 650 | }}} |
| 651 | |
| 652 | Een afgezonderd guest netwerk voor bijvoorbeeld wifi is ook op te zetten zelfs met virtual/multi ssid op een enkele atheros kaart, zie eduroam accesspoint als praktijk voorbeeld. Hieronder de settings. |
| 653 | |
| 654 | /etc/config/firewall |
| 655 | {{{ |
| 656 | #add these items! |
| 657 | #! Allow multiSSID wlgst zone if not bridging <--- |
| 658 | config zone |
| 659 | option name wlgst |
| 660 | option input REJECT |
| 661 | option forward REJECT |
| 662 | option output ACCEPT |
| 663 | |
| 664 | #! Allow multiSSID wlgst to internet on wan <--- |
| 665 | config forwarding |
| 666 | option src wlgst |
| 667 | option dest wan |
| 668 | |
| 669 | #! Allow multiSSID wlgst to DNS <--- |
| 670 | #! Client DNS queries ordinate from dynamic UDP ports (>1023) |
| 671 | config rule |
| 672 | option src wlgst |
| 673 | option dest_port 53 |
| 674 | option proto tcpudp |
| 675 | option target ACCEPT |
| 676 | |
| 677 | #! Allow multiSSID wlgst to DHCP -> Router <--- |
| 678 | #! DHCP communication uses UDP ports 67-68 |
| 679 | config rule |
| 680 | option src wlgst |
| 681 | option src_port 67-68 |
| 682 | option dest_port 67-68 |
| 683 | option proto udp |
| 684 | option target ACCEPT |
| 685 | }}} |
| 686 | |
| 687 | /etc/config/dhcp |
| 688 | {{{ |
| 689 | #! Add extra dhcp-server for multiSSID hotspot when using nat <--- |
| 690 | config dhcp wlgst |
| 691 | option interface wlgst |
| 692 | option start 5 |
| 693 | option limit 252 |
| 694 | option leasetime 1h |
| 695 | }}} |
| 696 | |
| 697 | /etc/config/network |
| 698 | {{{ |
| 699 | #!Add this wlgst interface |
| 700 | config interface wlgst |
| 701 | #option ifname wlgst |
| 702 | #option type bridge |
| 703 | option proto static |
| 704 | option ipaddr 192.168.5.1 |
| 705 | option netmask 255.255.255.0 |
| 706 | }}} |
| 707 | |
| 708 | /etc/config/wireless |
| 709 | {{{ |
| 710 | #!Add extra virtual/multissid AP to radio0 |
| 711 | config wifi-iface |
| 712 | option device radio0 |
| 713 | option network wlgst |
| 714 | option mode ap |
| 715 | option ssid guestnetwork2.4ghz |
| 716 | option encryption none |
| 717 | }}} |
| 718 | === vlans === |
| 719 | Handige feature om netwerken te scheiden over 1 een fysieke kabel. |
| 720 | |
| 721 | {{{ |
| 722 | insmod 8021q |
| 723 | }}} |
| 724 | |
| 725 | === ip alias === |
| 726 | 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. |
| 727 | |
| 728 | === bridges === |
| 729 | |
| 730 | {{{ |
| 731 | brctl show |
| 732 | }}} |
| 733 | == Direct aan de slag! == |
| 734 | Met wat eigenlijk? Met doosjes hardware(soekris boards/wifi uitbreidingen) en software als referentie of functionaliteiten zoals router en accesspoint opzetten en de hardware software instellingen ondersteunend maken aan dat verhaal? Ik heb het nu aan de hand van de hardware beschreven, tegelijk met het mixen van functionaliteiten zonder die direct altijd te benoemen en ook nog eens met verschillende openwrt versies... dit moet nog opgeschoond worden. |
| 735 | |
| 736 | Het eerste doel is een router op te zetten, die qua functionaliteit overeenkomt met de router in een huis tuin en keuken accesspoint van een reguliere interprovider, daarbij wifi toevoegen en mogelijk wat meer. |
| 737 | |
| 738 | === soekris 4501 === |
| 739 | Werkt met standaard image ook prima, net als de 4521 tevens net zo traag ;-) heeft met dns-resolve te maken! |
| 740 | |
| 741 | === soekris 4521 === |
| 742 | Ondanks dat de meeste hardware direct is aan te spreken vanuit opernwrt gaan de pcmcia sloten pas werken als daarvoor de juiste (kant en klare) pakketjes uit de reposity zijn geladen, dit geldt voor zowel backfire als attitude adjustment. Maar het laden uit de repository gaat pas werken wanneer het board via de "wan" aansluiting op het internet is aangesloten. Echter de "wan" aansluiting is standaard in de network config niet geconfigureerd, dit omdat niemand kenlijk een nette detect board-layout heeft opgegeven aan de openwrt developers, zodat gedetecteerd kan worden welke interfaces in het ergste geval een ethernet adapter heeft beschikt eth0(poe+lan). Daarom moet er eerst een "wan" interface worden toegevoegd en "eth0" bij de lan vervangen worden door "eth1" en "eth0" bij de "wan" plaatsen. Vervolgens nog firewall rules toevoegen zodat je via diezelfde wan interface kunt managen met ssh/http. Tenslotte kun je dan pas na de reboot het board met de pakket manager verder configureren. Nu eerst de CF kaart voorbereiden! |
| 743 | |
| 744 | {{{ |
| 745 | #download openwrt image on client pc/laptop with card-reader |
| 746 | wget http://downloads.openwrt.org/attitude_adjustment/12.09/x86/generic/openwrt-x86-generic-combined-squashfs.img |
| 747 | |
| 748 | #warning dd will overwrite anything and can destroy data in a inrecoverable fashion on your own PC!!! |
| 749 | #write bootable image directly to CF-CARD |
| 750 | sudo dd if=openwrt-x86-generic-combined-squashfs.img of=/dev/sdX |
| 751 | |
| 752 | #if you don't have ConMute=Enabled in comBIOS nor have a serial |
| 753 | #cable active console with soekris follow the steps at chapter "grub boot loader" |
| 754 | }}} |
| 755 | |
| 756 | Plaats de CF-CARD in de soekris, en sluit een losse lan/poe kabel van eth0 port op de soekris (dichtst bij de voeding) direct op je PC aan. Je PC zal via dhcp automatisch een ip van de soekris krijgen zo niet, de port is namelijk ingesteld als lokaal LAN en de tweede/derde ethernet port moet ook geconfigureerd worden! |
| 757 | |
| 758 | {{{ |
| 759 | #login via telnet |
| 760 | telnet 192.168.1.1 |
| 761 | |
| 762 | #add default password dit moet! |
| 763 | passwd |
| 764 | |
| 765 | #reboot so rootfs will be writable next boot |
| 766 | reboot;exit |
| 767 | |
| 768 | #login again, but with ssh |
| 769 | ssh root@192.168.1.1 |
| 770 | |
| 771 | #backup original config files |
| 772 | cp -r /etc/config /etc/config.ori |
| 773 | |
| 774 | #add wan interface |
| 775 | vi /etc/config/network #see example code! |
| 776 | |
| 777 | #add 'ssh' and 'http' to firewall rules |
| 778 | vi /etc/config/firewall #see example code! |
| 779 | |
| 780 | #finish setting up networkinterface and firewall |
| 781 | reboot;exit |
| 782 | |
| 783 | #disconnect PC lan cable from soekris |
| 784 | #connect the soekris via wan interface |
| 785 | #directly to the local router with internet! |
| 786 | }}} |
| 787 | |
| 788 | # example code # /etc/config/network |
| 789 | {{{ |
| 790 | # Copyright (C) 2006 OpenWrt.org |
| 791 | |
| 792 | config interface loopback |
| 793 | option ifname lo |
| 794 | option proto static |
| 795 | option ipaddr 127.0.0.1 |
| 796 | option netmask 255.0.0.0 |
| 797 | |
| 798 | config interface lan |
| 799 | option ifname eth0 #! <--- |
| 800 | option type bridge |
| 801 | option proto static |
| 802 | option ipaddr 192.168.45.1 |
| 803 | option netmask 255.255.255.0 |
| 804 | |
| 805 | config interface wan |
| 806 | option ifname eth1 #! <--- |
| 807 | option type bridge |
| 808 | option proto dhcp |
| 809 | #option proto static |
| 810 | #option ipaddr 172.16.6.45 |
| 811 | #option netmask 255.255.255.0 |
| 812 | |
| 813 | }}} |
| 814 | |
| 815 | |
| 816 | |