Flashrd

From Noisebridge
(Difference between revisions)
Jump to: navigation, search
m (Reverted edits by Abenaqadat (Talk) to last revision by Dr jesus)
 
(8 intermediate revisions by 4 users not shown)
Line 1: Line 1:
Installation notes
+
== flashrd ==
 +
 
 +
flashrd is an OpenBSD installer tailored for flash-backed devices that have at least 1Gb of flash and 128Mb of RAM. Here's the [http://www.nmedia.net/flashrd/ project's homepage].
 +
 
 +
== Installing flashrd ==
  
 
Download the flashrd binary images.
 
Download the flashrd binary images.
Line 7: Line 11:
 
dd the new flashrd images to the existing flash cards.
 
dd the new flashrd images to the existing flash cards.
  
Mount the flash cards or boot the flash card using qemu, modify /etc/ttys as follows:
+
Mount the flash cards, boot into single user mode, or boot the flash card using qemu, then modify /etc/ttys as follows:
  
 
<pre>
 
<pre>
Line 20: Line 24:
 
<pre>
 
<pre>
 
set timeout 5
 
set timeout 5
 +
stty com0 9600
 
set tty com0
 
set tty com0
 
</pre>
 
</pre>
Line 33: Line 38:
 
entry point at 0x200120</pre>
 
entry point at 0x200120</pre>
  
To boot the older flash images, "boot -s" and then "/stand/rc".  If you need to use the network, remember to do "pfctl -d".
+
== Usage notes ==
 +
 
 +
To boot the older flash images, "boot -s" and then "/stand/rc" or "sh /etc/rc".  If you need to use the network, remember to do "pfctl -d".  
  
 
Once you have a serial console on the new image, copy /etc/hostname.*, /etc/ssh/*key*, and /root/.ssh/authorized_keys to the new image from the old image.  Upon reboot you should be able to log in.
 
Once you have a serial console on the new image, copy /etc/hostname.*, /etc/ssh/*key*, and /root/.ssh/authorized_keys to the new image from the old image.  Upon reboot you should be able to log in.
Line 39: Line 46:
 
Files to copy from /etc:
 
Files to copy from /etc:
 
<pre>
 
<pre>
hosts
+
hosts x
dhcpd.conf
+
dhcpd.conf x
resolv.conf
+
resolv.conf x
myname
+
myname x
rc.conf.local
+
rc.conf.local x
pf.conf
+
pf.conf x
 
localtime x
 
localtime x
snmpd.conf
+
snmpd.conf x
rtadvd.conf
+
rtadvd.conf x
 
hostname.*
 
hostname.*
master.passwd
+
master.passwd x
 
ntpd.conf x
 
ntpd.conf x
passwd
+
passwd x
 
ttys x
 
ttys x
 
sysctl.conf x
 
sysctl.conf x
 
mygate x
 
mygate x
dnsmasq.conf
+
dnsmasq.conf x
 
</pre>
 
</pre>
  
Line 62: Line 69:
 
export PKG_PATH=ftp://ftp.openbsd.org/pub/OpenBSD/4.7/packages/i386/
 
export PKG_PATH=ftp://ftp.openbsd.org/pub/OpenBSD/4.7/packages/i386/
 
pkg_add -v dnsmasq lsof curl bash iperf isc-dhcp-server net-snmp ngrep bwm-ng
 
pkg_add -v dnsmasq lsof curl bash iperf isc-dhcp-server net-snmp ngrep bwm-ng
 +
</pre>
 +
 +
== Tunnel configuration ==
 +
 +
Sonic has a example ipv6 tunnel configuration generator for OpenBSD, but it only gives the pre-4.7 syntax.  Here's how r00ter is configured, and these settings should work for any 4.7 or up installation, including recent flashrd builds.
 +
 +
Note that regardless of what the ISP tells you to use as your subnet, you have to use a prefix length of /64 for automatic address configuration to work.  If you have a DHCPv6 server you can do whatever you want, though.
 +
 +
/etc/hostname.sisX:
 +
<pre>
 +
inet6 2001:05a8:0004:5630::0001/64
 +
</pre>
 +
 +
/etc/rc.conf.local:
 +
<pre>
 +
rtadvd_flags="sisX"
 +
</pre>
 +
 +
/etc/rtadvd.conf:
 +
<pre>
 +
sis1:addr="2001:5a8:4:5630::":prefixlen#64
 +
</pre>
 +
 +
/etc/hostname.gif0:
 +
<pre>
 +
tunnel 75.101.62.88 208.201.234.221
 +
inet6 alias 2001:5a8:0:1::ac7 prefixlen 127
 +
</pre>
 +
 +
/etc/pf.conf:
 +
You also have to make sure that any nat rules for your regular IPv4 traffic explicitly say "inet" only instead of all protocols, otherwise pf will try to nat the ipv6 packets too.
 +
<pre>
 +
pass in quick on gif0 inet6 keep state
 +
pass in quick on $ext_if proto ipv6
 +
pass out quick on $ext_if proto ipv6
 
</pre>
 
</pre>

Latest revision as of 19:21, 23 November 2010

Contents

[edit] flashrd

flashrd is an OpenBSD installer tailored for flash-backed devices that have at least 1Gb of flash and 128Mb of RAM. Here's the project's homepage.

[edit] Installing flashrd

Download the flashrd binary images.

Backup the existing flash cards using dd.

dd the new flashrd images to the existing flash cards.

Mount the flash cards, boot into single user mode, or boot the flash card using qemu, then modify /etc/ttys as follows:

19c19
< tty00 "/usr/libexec/getty std.9600" unknown off
---
> tty00 "/usr/libexec/getty std.9600" vt220 on secure

Add this to /flash/etc/boot.conf: (/flash is on /dev/wd0a)

set timeout 5
stty com0 9600
set tty com0

Plug the flash cards into the existing devices, boot as follows:

boot> set tty com0
switching console to com0
                         >> OpenBSD/i386 BOOT 3.02
boot> boot
booting hd0a:/bsd: 10707316+1055248 [52+360656+344597]=0xbe4014
entry point at 0x200120

[edit] Usage notes

To boot the older flash images, "boot -s" and then "/stand/rc" or "sh /etc/rc". If you need to use the network, remember to do "pfctl -d".

Once you have a serial console on the new image, copy /etc/hostname.*, /etc/ssh/*key*, and /root/.ssh/authorized_keys to the new image from the old image. Upon reboot you should be able to log in.

Files to copy from /etc:

hosts x
dhcpd.conf x
resolv.conf x
myname x
rc.conf.local x
pf.conf x
localtime x
snmpd.conf x
rtadvd.conf x
hostname.*
master.passwd x
ntpd.conf x
passwd x
ttys x
sysctl.conf x
mygate x
dnsmasq.conf x

Packages to install:

export PKG_PATH=ftp://ftp.openbsd.org/pub/OpenBSD/4.7/packages/i386/
pkg_add -v dnsmasq lsof curl bash iperf isc-dhcp-server net-snmp ngrep bwm-ng

[edit] Tunnel configuration

Sonic has a example ipv6 tunnel configuration generator for OpenBSD, but it only gives the pre-4.7 syntax. Here's how r00ter is configured, and these settings should work for any 4.7 or up installation, including recent flashrd builds.

Note that regardless of what the ISP tells you to use as your subnet, you have to use a prefix length of /64 for automatic address configuration to work. If you have a DHCPv6 server you can do whatever you want, though.

/etc/hostname.sisX:

inet6 2001:05a8:0004:5630::0001/64

/etc/rc.conf.local:

rtadvd_flags="sisX"

/etc/rtadvd.conf:

sis1:addr="2001:5a8:4:5630::":prefixlen#64

/etc/hostname.gif0:

tunnel 75.101.62.88 208.201.234.221
inet6 alias 2001:5a8:0:1::ac7 prefixlen 127

/etc/pf.conf: You also have to make sure that any nat rules for your regular IPv4 traffic explicitly say "inet" only instead of all protocols, otherwise pf will try to nat the ipv6 packets too.

pass in quick on gif0 inet6 keep state
pass in quick on $ext_if proto ipv6
pass out quick on $ext_if proto ipv6
Personal tools