Enkele dagen geleden overleed het scherm finaal op de Acer Aspire 721 van Tom (mijn buurman). Tom heeft inmiddels een iPad gekocht, ik bood aan om het wrak over te kopen en hij zou het laptop schijfje van 500GB (7200 rpm) houden.
Vereiste voorkennis voor maximaal genot: basis netwerken, NAT, PPPoE en VLANs

Acer Aspire 721

http://tweakers.net/ext/f/RNmddVSH3A9lyxQG1WPhQaLp/full.jpg http://tweakers.net/ext/f/TWXAEo6ppGbWvkXX3sogbt58/full.jpg
http://tweakers.net/ext/f/lJgar7aF11XVipk7O2m9mrbX/full.jpg http://tweakers.net/ext/f/sKMWsJDKpH88lTNOFh0Ca9IR/full.jpg

http://tweakers.net/ext/f/EhrbzYWKAJPfmiBdpWscc8N4/full.jpg


Zoals je op de foto’s ziet heeft het ding flink te verduren gekregen. Er missen toetsen, het linker scharnier is los en rot. Stuken behuizing ontbreken in de hoeken en in de buurt van het CPU rooster. De Windows 7 Home licentie sticker is jammer genoeg niet meer leesbaar.

  • AMD Athlon™ II Neo processor K125 (1 MB L2 cache, 1.70 GHz, 800 MHz FSB, 12 W)
  • AMD M880G Chipset
  • 2x 2GB Dual-channel DDR3 SDRAM
  • 11.6″ HD 1366 x 768 (WXGA)
  • ATI Radeon™ HD 4225 Graphics 384 MB (VGA/HDMI)
  • Multi-in-1 card reader (SD™, MMC, MS, MS PRO, xD)
  • Acer Crystal Eye webcam with 1280 x 1024 resolution
  • WLAN 802.11 b/g/n Wi-Fi
  • Three USB 2.0 ports
  • LAN: Gigabit Ethernet

bron

In mensentaal is dit een trage dual single core met 4GB ram, Wifi, geen fysieke opslag en één gigabit poort. Als surprise extra is er een nooit gebruikte accu! Ik zoek eigenlijk al jaren naar een goedkope speel laptop waarmee ik met wifi kan experimenteren. Helaas is deze wat te kapot voor mobiel gebruik maar perfect voor een zuinige router.

It’s a router in disguise

Hoewel dit niet op het eerste gezicht lijkt heb je niet meer dan één enkele netwerk poort nodig.Ik hoop dat je bekend bent met het concept van VLANs. Kort samengevat: een techniek om meerdere (virtuele) OSI layer 2 segmenten door middel van aangepaste ethernet frames te verkrijgen op één fysiek segment. Router-on-a-stick is een term die het concept beschrijft waarin de router enkel traffiek verplaatst tussen verschillende VLANs. Het gevolg hiervan is dat één enkele kabel meerdere netwerk segment aanlevert aan de router. Fysiek lijkt dit op een router-on-a-stick. Helaas zijn er geen plaatjes op het internet van Linksys doosjes geducttapete aan boomtakken, gebruik u fantasie. iemand?

Ik gebruik een HP Procurve 1810-xG netwerk stack; een fanless layer 2 smart managed non-blocking gigabit switch wat zich vertaalt in een 24 of 8 poorts switch met een web-interface, SNMP, Trunking, VLANs en wat geintjes. Ze zijn relatief goedkoop, stil en zuinig.

http://tweakers.net/ext/f/O992rjxp5g64d2fKTiQnWGA5/full.jpg
Naast de kabels staan de VLAN ID# en of deze Untagged,Tagged en afwezig is Excluded. Ik ben mij bewust dat dit HP syntax is, but screw you guys.

De bedoeling is dus om met de laptop traffiek tussen de verschillende VLANs te routeren (Clients, Servers, Inter-router), een PPPoe sessie naar mijn Belgacom modem via een apart VLAN, NAT tussen de verschillende VLANs en de PPPoe sessie naar het internet. We vervolgen met wat eenvoudig DHCP/DNS en firewall werk.

Wat een laptop nog meer aantrekkelijk maakt voor router gebruik is dat dankzij (in mijn geval ongebruikte) accu je internet blijft functioneren tijdens stroomuitval. Mijn servers en netwerk hangen ook op een UPS dus kan ik lekker door computeren. Het leuke aan deze specifieke laptop wat ik wel al wil verraden is dat er een extra mini-PCIe slot is waarin ik een Ubiquiti SR71-E (€90) ga steken. In deze blog ga ik enkel in op het bekabelde aspect van de laptop, het draadloze gedeelte komt later.

Vyatta

Vyatta is een open-source Linux distributie op basis van Debian linux welke (voornamelijk) x86 omtovert in geavanceerde routers met een Cisco achtige command-line. Er is commerciële support beschikbaar voor bedrijven met extra functionaliteit zoals een web-interface. Het leuke aan Vyatta is dat de community editie geen bizarre beperkingen kent. Als je er meer over wilt weten raad ik je Wikipedia – Vyatta aan en Open-source vs Enterprise feature comparison. Er zijn maar een aantal producten die ik jullie gaan opdringen, Vyatta is de eerste en als alternatief gebruik ik graag pFsense.

Ik heb Vyatta 6.5R1 gebruikt en installeren doe je door de live cd te booten, inloggen met vyatta/vyatta en install-image vervolledigen met een reboot. Ik heb een oud 1GB SD kaartje gebruikt dat netjes in de card reader volledig past. Volgens de BIOS kon hij ervan booten en dat bleek ook te zijn.

Ik denk dat Vyatta een erg eenvoudige configuratie command-line heeft en vertrouw op jullie geekness dat ik een lichtjes bewerkte dump van mijn sessie genoeg volstaat. De belangrijkste commando’s zijn show, configure, set, delete, commit, discard, save, load, run, exit, poweroff, reboot en veel de tab knop rammen.

$ configure
# set system host-name louise
# set system domain-search domain community.lan
# set system domain-search domain servers.community.lan
# set system name-server 4.2.2.1
# set system name-server 8.8.8.1
# set interfaces ethernet eth0 vif 1 description "Client LAN"
# set interfaces ethernet eth0 vif 1 address 192.168.1.23/25
# set interfaces ethernet eth0 vif 2 description "Server LAN"
# set interfaces ethernet eth0 vif 2 address 192.168.1.153/26
# set interfaces ethernet eth0 vif 3 description "Belgacom WAN"
# set interfaces ethernet eth0 vif 3 address 192.168.1.253/29
# set interfaces ethernet eth0 vif 4 description "Inter-router LAN"
# set interfaces ethernet eth0 vif 4 address 192.168.1.243/29
# commit
# run show interfaces
Codes: S - State, L - Link, u - Up, D - Down, A - Admin Down
Interface        IP Address                        S/L  Description
---------        ----------                        ---  -----------
eth0             -                                 u/u
eth0.1           192.168.1.23/25                   u/u  Client LAN
eth0.2           192.168.1.153/26                  u/u  Server LAN
eth0.3           192.168.1.253/29                  u/u  Belgacom WAN
eth0.4           192.168.1.243/29                  u/u  Inter-router LAN
lo               127.0.0.1/8                       u/u
                 ::1/128
# ping 192.168.1.1
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_req=1 ttl=64 time=0.572 ms
^C
--- 192.168.1.1 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.572/0.572/0.572/0.000 ms
# ping 192.168.1.131
PING 192.168.1.131 (192.168.1.131) 56(84) bytes of data.
64 bytes from 192.168.1.131: icmp_req=1 ttl=64 time=1.01 ms
^C
--- 192.168.1.131 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 1.012/1.012/1.012/0.000 ms
# ping 192.168.1.251
PING 192.168.1.251 (192.168.1.251) 56(84) bytes of data.
64 bytes from 192.168.1.251: icmp_req=1 ttl=64 time=0.598 ms
^C
--- 192.168.1.251 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.598/0.598/0.598/0.000 ms
# ping 192.168.1.241
PING 192.168.1.241 (192.168.1.241) 56(84) bytes of data.
64 bytes from 192.168.1.241: icmp_req=1 ttl=64 time=0.609 ms
^C
--- 192.168.1.241 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.609/0.609/0.609/0.000 ms         
# set interfaces ethernet eth0 vif 3 pppoe 0 user-id myuser
# set interfaces ethernet eth0 vif 3 pppoe 0 password mypass
# commit
# run show interfaces
Codes: S - State, L - Link, u - Up, D - Down, A - Admin Down
Interface        IP Address                        S/L  Description
---------        ----------                        ---  -----------
eth0             -                                 u/u
eth0.1           192.168.1.23/25                   u/u  Client LAN
eth0.2           192.168.1.153/26                  u/u  Server LAN
eth0.3           192.168.1.253/29                  u/u  Belgacom
eth0.4           192.168.1.243/29                  u/u  Inter-router LAN
lo               127.0.0.1/8                       u/u
                 ::1/128
pppoe0           87.64.67.3                        u/u
# ping google.fr
PING google.fr (173.194.65.94) 56(84) bytes of data.
64 bytes from ee-in-f94.1e100.net (173.194.65.94): icmp_req=1 ttl=49 time=49.3 ms
64 bytes from ee-in-f94.1e100.net (173.194.65.94): icmp_req=2 ttl=49 time=49.5 ms
^C
--- google.fr ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 2219ms
rtt min/avg/max/mdev = 49.336/49.420/49.505/0.237 ms
# set service dns forwarding listen-on eth0.1
# set service dns forwarding listen-on eth0.2
# set service dns forwarding listen-on eth0.4
# set service dns forwarding system
# commit
# set service ssh
# set service snmp community public
# set service snmp listen-address 192.168.1.153
# set service snmp location "Van Schoonbekestraat 168-1, 2000 Antwerpen, BE"
# set service snmp description "Acer Aspire 721"
# set service snmp contact "ewald.vangeffen@student.artesis.be"
# commit
# set service dhcp-server shared-network-name clients subnet 192.168.1.0/25 default-router 192.168.1.23
# set service dhcp-server shared-network-name clients subnet 192.168.1.0/25 dns-server  192.168.1.23
# set service dhcp-server shared-network-name clients subnet 192.168.1.0/25 domain-name clients.community.lan
# set service dhcp-server shared-network-name clients subnet 192.168.1.0/25 start 192.168.1.33 stop 192.168.1.62
# commit
# set nat source rule 10 description "Clients LAN to Belgacom"
# set nat source rule 10 outbound-interface pppoe0
# set nat source rule 10 translation address masquerade
# set nat destination rule 10 description "HTTP Port forward"
# set nat destination rule 10 destination port 80
# set nat destination rule 10 protocol tcp
# set nat destination rule 10 inbound-interface pppoe0
# set nat destination rule 10 translation address 192.168.1.131
# set nat destination rule 10 translation port 80
# commit
# set firewall name pppoe_in default-action drop
# set firewall name pppoe_in rule 10 description "Accept returning traffic"
# set firewall name pppoe_in rule 10 action accept
# set firewall name pppoe_in rule 10 state established enable
# set firewall name pppoe_in rule 10 state related enable
# set firewall name pppoe_in rule 80 description "HTTP to Server"
# set firewall name pppoe_in rule 80 action accept
# set firewall name pppoe_in rule 80 protocol tcp
# set firewall name pppoe_in rule 80 destination address 192.168.1.131
# set firewall name pppoe_in rule 80 destination port 80
# set interfaces ethernet eth0 vif 3 pppoe 0 firewall in name pppoe_in
# commit
# save

Dit is hopelijk duidelijk genoeg; zoals je ziet commit ik vaak, een beetje hetzelfde als de ctrl+s gewoonte onder Microsoft Word en Visual Studio gebruikers. Ik vermoed dat de meesten onder jullie geen VLANs maar fysieke interfaces gebruiken maar dat zal vanzelf wel duidelijk worden hoe dat verschil zich manifesteert als je het gewoon uitprobeert. Ik heb gepoogd de minimale SOHO router configuratie te nabootsten. Ik draai hem momenteel met een andere configuratie maar dat wordt binnenkort wel allemaal duidelijk. Als je dit vaak doet configureer je dus zo in een kwartiertje of minder in de command-line met de magical-tab toets.

Conclusie

Dit had een paragraaf of drie moeten zijn over een crappy laptop en een preek rond Vyatta, uiteindelijk is het een introductie Vyatta gids geworden. Ik hoop dat jullie er blij mij zijn, ik in ieder geval wel en verwacht binnenkort draadloze pret.

ps. Ik ben van plan een netwerken voor dummies blog reeks te schrijven met een bondige conceptuele uitleg van verschillende populaire netwerk technieken/constructies. Note to self: double nat is bad mkay, vlans, stp, routering, trunking, benchmarking, nat again?, vrrp