Configuring APC Rack PDUs

A brand new APC should be ready to have its IP set via using an ‘arp and ping’ technique. Its in the manual, but worth noting, since I normally google search before RTFM! And so does most of the world..

  1. On any running host on the same network, set the ARP for the MAC address of the device. Eg: arp -s 10.0.0.10 00:C0:B7:76:08:CC will tell the host you are on to send to hat mac address when you use the IP 10.0.0.10.
  2. On the same host, before the arp expires (normally 5 mins), send a ping to this IP with a special size of 113 bytes. Eg: ping -l 113 10.0.0.10 from Win, or ping -s 113 10.0.0.10 if you have a better operating system (Linux)!

If this fails, then you need to get the serial cable out and wire it up (9600 8N1 is default I think, turn off ALL flow control; no hardware, no software). Password recovery: find the small hole and use a paper clip or similar to reset the device. You have to reset it twice for it to take effect, and then you can use the default username and password of apc/apc.

Modprobe, kernel 2.4 and 2.6

Random note: getting the bonding module to work, edit /etc/modprobe.d/bonding (a new file) and add:

alias bond0 bonding
options bond0 miimon=100 mode=active-backup

If you are using a 2.6 kernel, then the bonding module will be loaded with the correct options when you try to bring up the interface. Referencing the interface by name triggers the loading of the module, and the reading of this config file. However, and I talk to myself here since I forgot today, this doesnt work with the old 2.4 kernel modutils package. Only the new module-init-tools package when using a 2.6 kernel!

To complete the rant here, populate your /etc/network/interfaces file with something like the following, adjusting the address as required of course:

auto iface bond0

iface bond0 inet static

pre-up ifconfig bond0 up

pre-up ifconfig eth0 up

pre-up ifconfig eth1 up

pre-up ifenslave bond0 eth0 eth1

address 10.0.0.5

netmask 255.255.0.0

broadcast 10.10.255.255

gateway 10.0.0.1

down ifconfig eth0 down

down ifconfig eth1 down

Now, if you don’t know which intrefaces you want to bond together into a bond (what Windows calls a ‘team’, or ‘teaming’), then you can take a look at Nick Ferrier‘s solution involving doing a quick DHCP request on each interface and working out which interfaces are on common networks; a very clever piece.

So, if you’re still reading this about bonding, you should probably be monitoring your bonded connections. Otherwise, one link will fail, and you’ll never notice! Check out my SVN repository for the Nagios plugin to check the /proc/net/bonding/* file(s).

code

SIP Telephony, good and bad

I’ve had a SIP handset now for about two weeks: a Budgetone 102 handset. Its not too bad, from what I can tell, but I am using a provider in Perth, SimTex, whichis around 400ms away RTT, and I am getting some bad audio on one side of the call.

Its so frustrating, that we constantly have to abandon the SIP phone and use the PSTN, at more expense. I’m connecting through Demon internet in London on a 512 DSL link., which should be plenty fast enough. The annoying thing is that my emails and now phone calls to SimTex have gone unanswered. Not a way to keep customers. TIme to start looking for other providers, or, put my own box in…. Asterisk rocks, and the PSTN cards arent that expensive… if I put a 1U box with an ISDN 30 card in each city…. I’d be a SIP-telco.

I found Cisco had a nice lit of SIP response codes.