Netwerkconfiguratie van OpenWrt op een Asus WL-HDD

In dit artikel wordt beschreven hoe de netwerkinstellingen van OpenWrt (versie Kamikaze) op de Asus WL-HDD (wireless harddiskdrive) geconfigureerd moeten worden. Doel is om de Asus WL-HDD draadloos (Wi-Fi) te laten connecten met het WIFI-access point. In mijn geval is het WiFo-access point een Samsung Router SMT-G3210 geconfigureerd als ADSL-router.

We hebben reeds in de artikelen Compileren van OpenWrt en Installeren van OpenWrt op een Asus WL-HDD gezien hoe OpenWrt respectievelijk gecompileerd en geïnstalleerd kan worden.

Setup

De Asus WL-HDD zullen we in routed client mode configureren. Dit betekent dat de Local Area Network-  (LAN) en Wireless LAN- (WLAN) interfaces niet gebridged zijn, maar het verkeer tussen LAN en WLAN wordt gerouteerd. In een bridged-netwerk zitten alle devices in hetzelfde subnet. In een gerouteerd netwerk worden verschillende subnetten gebruikt.

Een overzicht van de verschillende devices met beschrijving, functie en netwerkinstellingen:

Samsung Router SMT-G3210

  • Beschrijving: (A)DSL-router
  • Functie: WIFI-access point
  • WiFi SSID (Name of WLAN network): WLAN2
  • WiFi Security: WPA-PSK Encryption
  • WiFi Channel: Channel 6
  • WLAN IP-adres: 192.168.178.1
  • WLAN Subnet: 192.168.178.0/24
  • Verbindingen:
    • Zal na deze configuratie middels WiFi verbonden zijn met de Asus WL-HDD.
    • Is als (a)DSL-modem verbonden met het Internet (niet noodzakelijk om te weten voor deze configuratie)

Asus WL-HDD

  • Beschrijving: Device dat we aan het configureren zijn.
  • Functie: WLAN-client en LAN-server (routed client)
  • WLAN IP-adres: 192.168.178.35
  • WLAN Subnet: 192.168.178.0/24
  • LAN IP-adres: 192.168.1.1
  • LAN Subnet: 192.168.1.0/24
  • Verbindingen:
    • Via LAN-poort verbonden met beheercomputer
    • Zal na deze configuratie via WiFi verbonden zijn met de Samsung Router.

Beheercomputer

  • Beschrijving: Deze computer wordt gebruikt voor de configuratie werkzaamheden. Computer heeft een toetsenbord (keybord) en monitor.
  • LAN IP-adres: 192.168.1.2
  • LAN Subnet: 192.168.1.0/24
  • Verbinding: Verbonden middels een ethernetkabel met de LAN-poort van de Asus WL-HDD.

Inloggen het device waar OpenWrt op draait

  1. Verbind de beheercomputer middels een ethernetkabel met de Asus WL-HDD
  2. Zorg dat de Asus WL-HDD aan staat.
  3. Stel IP-adres van beheercomputer (LAN interface) in op: 192.168.1.2
  4. Login vanaf de beheercomputer op de Asus WL-HDD middels het commando: ssh root@192.168.1.1

Configuratiebestanden

In tegenstelling tot eerdere versies van OpenWrt zoals WhiteRussian, worden de (netwerk)instellingen nu niet in het NVRAM-geheugen gedaan maar met configuratiefiles in de etc-directory zoals we gewend zijn bij andere Linux-distributies.

Belangrijke bestanden voor de netwerkconfiguratie zijn:

  • /etc/config/wireless Bevat de configuratie voor de WiFi-radio zoals de benodigde driver, soort beveiliging/encryptie en naam en kanaal van het WLAN netwerk.
  • /etc/config/network Hierin staat de configuratie voor de (LAN- en WLAN-)netwerkinterfaces. Denk hierbij aan de IP-adressen, subnetmasks, gateway en Domain Name-servers (DNS).
  • /etc/config/dhcp De configuratie van de Dynamic Host Configuration Protocol-server (DHCP).
  • /etc/config/firewall De instellingen voor de virtuele beschermende muur tussen het device en het netwerk.

Geprobeerd is om met zo weinig mogelijk aanpassingen een werkende netwerkconfiguratie te verkrijgen.

Wireless

Het bestand /etc/config/wireless is redelijk klein en zal hieronder in zijn geheel worden weergegeven.

config wifi-device  wl0
 option type     broadcom
 # option channel  6

config wifi-iface
 option 'device' 'wl0'
 option 'network' 'wan'
 option 'mode' 'sta'
 option 'ssid' 'WLAN2'
 option 'encryption' 'psk2+tkip+ccmp'
 option 'key' 'XXXXXX'

In een lopende zin staat hier: Gebruik voor het WiFi-device de ‘broadcom’-driver. Koppel het WiFi-device (wl0) aan de networkinterface (wan). Zet het WiFi-device in STAtion-mode (routed client mode) en verbind met het draadloze netwerk genaamd WLAN2. De beveiliging is WPA2 Personal (PSK)-mode met TKIP/CCMP-ciphers voor encryptie.

Merk op dat als networkinterface WAN wordt gebruikt. De Asus WL-HDD heeft geen WAN-poort maar de standaard configuratie van OpenWrt bevat wel WAN-configuratie. Deze configuratie wordt nu ‘misbruikt’ zodat er maar minimale wijzigingen nodig zijn in de configuratiebestanden om WiFi-werkend te krijgen.

Network

Het volgende belangrijke bestand is: /etc/config/network hier bespreek ik alleen de specifieke zaken voor deze configuratie.

config interface lan
 option type 	bridge
 option ifname	"eth1"
 option proto	static
 option ipaddr	192.168.1.1
 option netmask	255.255.255.0

config interface wan
 option proto	static
 option ipaddr   192.168.178.35
 option netmask  255.255.255.0
 option gateway	192.168.178.1
 option dns	192.168.178.1

We zien dat de netwerkinterfaces LAN en WAN worden geconfigureerd. Beide interfaces worden in ‘static’-mode gezet. Dit wil zeggen dat de netwerkconfiguratie (IP-adres, subnetmask, gateway en DNS-server) niet middels DHCP wordt opgehaald maar in dit bestand wordt neergezet. Merk de volgende twee zaken op: Bij LAN staat het type ‘bridge’, dit staat zo in dit bestand na een build van OpenWrt en kan geen kwaad. Dit laten we ze staan omdat we zo min mogelijk aanpassingen in de configuratiefiles willen doen. Dan zien we bij LAN een ‘ifname’ (interface-naam) staan en bij WAN niet. Deze koppeling is namelijk al gemaakt in het bestand: /etc/config/wireless

DHCP

Nu is het tijd om het bestand /etc/config/dhcp onder handen te nemen. Zowel voor de LAN- en WLAN-interfaces gebruiken we statische instellingen. Dus het configureren van de DHCP-server zal bestaan uit het uitschakelen van de server voor LAN en W(L)AN. Dit doen we met de regel: ‘option ignore 1’.

Een fragment van de configuratie is dan:

config dhcp lan
 option interface	lan
 option ignore   1

config dhcp wan
 option interface	wan
 option ignore	1

Firewall

Tenslotte wordt de firewall geconfigureerd middels het bestand: /etc/config/firewall De wijzigingen hierin zijn minimaal omdat we zoveel mogelijk gebruik maken van de standaard settings. De WiFi-verbinding is immers gekoppeld aan de WAN-netwerkinterface en deze settings staan al in de firewall-configuratie. Willen we echter via WiFi en SSH in kunnen loggen op de Asus WL-HDD dan moet de volgende optie worden toegevoegd aan de WAN-zone: ‘option input ACCEPT’. Op die manier is het mogelijk om ‘van buiten af’ via WiFi verbindingen op te zetten.

Complete configuratie

Voor de compleetheid en als persoonlijke backup heb ik aan het einde van dit artikel de bestanden staan van mijn werkende netwerkconfiguratie. Daarnaast heb ik ook de uitvoer opgenomen van de meest belangrijke systeeminformatie commando’s die betrekking hebben op de netwerkconfiguratie.

Configuratie testen

Zorg dat het WiFi-access point zo is ingesteld dat nieuwe devices mogen verbinden. Later kan met ‘MAC Access Control’ de beveiliging weer strikter gemaakt worden.

Na een herstart van de Asus WL-HDD zou het mogelijk moeten zijn om in te loggen op:

  • ssh root@192.168.1.1 (ethernetkabel)
  • ssh root@192.168.178.35 (WiFi)

Merk op dat twee verschillende subnets worden gebruikt namelijk: 192.168.1.0/24 en 192.168.178.0/24.

Lees in het artikel Compileren software voor OpenWrt hoe je zelfgeschreven software kunt installeren.

Zie ook


Inhoud configuratie bestanden

Uitvoer systeeminformatie

root@OpenWrt:~# lsmod
Module			Size  Used by    Tainted: P
wlcompat                9504   0 (unused)
ip_conntrack_tftp       1628   0 (unused)
ip_nat_irc              2296   0 (unused)
ip_conntrack_irc        3028   1
ip_nat_ftp              2920   0 (unused)
ip_conntrack_ftp        4172   1
ipt_MASQUERADE          1316   2
iptable_nat            20856   3 [ip_nat_irc ip_nat_ftp ipt_MASQUERADE]
ipt_state                408   6
ip_conntrack           22304   3 [ip_conntrack_tftp ip_nat_irc ip_conntrack_irc ip_nat_ftp ip_conntrack_ftp ipt_MASQUERADE iptable_nat ipt_state]
ipt_REJECT              3932   2
ipt_TCPMSS              2316   2
ipt_LOG                 3804   0 (unused)
ipt_multiport            748   0 (unused)
ipt_mac                  556   0 (unused)
ipt_limit                892   1
iptable_mangle          2156   0 (unused)
iptable_filter          1676   1
ip_tables              16960  13 [ipt_MASQUERADE iptable_nat ipt_state ipt_REJECT ipt_TCPMSS ipt_LOG ipt_multiport ipt_mac ipt_limit iptable_mangle iptable_filter]
ppp_async               8044   0 (unused)
ppp_generic            22380   0 [ppp_async]
slhc                    6064   0 [ppp_generic]
wl                    666560   0 (unused)
switch-core             5104   0
diag                   50448   0 (unused)
root@OpenWrt:~# ps auxfww
PID USER       VSZ STAT COMMAND
1 root      1920 S    init
2 root         0 SW   [keventd]
3 root         0 SWN  [ksoftirqd_CPU0]
4 root         0 SW   [kswapd]
5 root         0 SW   [bdflush]
6 root         0 SW   [kupdated]
9 root         0 SW   [mtdblockd]
58 root         0 SWN  [jffs2_gcd_mtd4]
68 root      1920 S    /bin/sh /etc/init.d/rcS S boot
70 root      1916 S    logger -s -p 6 -t sysinit
87 root      1936 S    syslogd -C16
89 root      1916 S    klogd
347 root      1524 S    /usr/sbin/nas -P /var/run/nas.wl0.pid -H 34954 -i wl0
541 root      1872 S    /usr/sbin/dropbear -p 22
545 root      1920 S    /usr/sbin/httpd -p 80 -h /www -r OpenWrt
559 nobody    1212 S    /usr/sbin/dnsmasq -K -D -y -Z -b -E -s lan -S /lan/ -
567 root      1932 S    /usr/sbin/dropbear -p 22
568 root      1932 S    -ash
575 root      1928 S    logread -f
576 root      1932 S    /usr/sbin/dropbear -p 22
577 root      1936 S    -ash
600 root      1932 R    /usr/sbin/dropbear -p 22
601 root      1928 S    -ash
609 root      1920 R    ps auxfww
root@OpenWrt:~# iwconfig wl0
wl0       IEEE 802.11-DS  ESSID:"WLAN2"
          Mode:Managed  Frequency:2.437 GHz  Access Point: xx:xx:xx:xx:xx:xx
          Bit Rate=54 Mb/s   Tx-Power:32 dBm
          Retry min limit:7   RTS thr:off   Fragment thr:off
          Power Management:off
          Link Quality=2/5  Signal level=-71 dBm  Noise level=-95 dBm
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0
root@OpenWrt:~# ifconfig
br-lan    Link encap:Ethernet  HWaddr xx:xx:xx:xx:xx:xx
          inet addr:192.168.1.1  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

eth1      Link encap:Ethernet  HWaddr xx:xx:xx:xx:xx:xx
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
          Interrupt:4 

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:116 errors:0 dropped:0 overruns:0 frame:0
          TX packets:116 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:8118 (7.9 KiB)  TX bytes:8118 (7.9 KiB)

wl0       Link encap:Ethernet  HWaddr xx:xx:xx:xx:xx:xx
          inet addr:192.168.178.35  Bcast:192.168.178.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:5312 errors:0 dropped:0 overruns:0 frame:1703237
          TX packets:4953 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1606596 (1.5 MiB)  TX bytes:2084065 (1.9 MiB)
          Interrupt:6