You get very excited once you get your own physical lab of routers and switches going. You just can’t wait to start managing and configuring switchport security, spanning-tree, etc. And then you get tired of having to move the console cable from one switch to the other. And you don’t have the ability to play with your lab remotely. Ugh.
Initially, I was going to buy into some sort of console server. Either utilize an old 2500 router or look at OpenGear. But why not use an RPi which would cost less than $100! That just made me happy. And from there I could access my lab anywhere!
My tutorial is very similar and I’ve included my experience below.
What you will need:
I purchased my USB to serial cable on Amazon. Wasn’t cheap but it works.
To get started, I installed Raspbian. Download the latest Raspbian image and extract the zip file. You can use win32diskimager-v0.9-binary to load the image to your SD card.
Go through the initial setup of Raspbian and be sure to enable SSH. Before accessing the RPi server remotely, I had to configure the Ethernet interface:
sudo nano /etc/network/interfaces
This is my following static configuration:
iface eth0 inet static address 10.1.10.250 gateway 10.1.10.1 netmask 255.255.255.0 network 10.1.10.0 broadcast 10.1.10.255
Save that sucker and reboot for good measure
sudo reboot
I’d like to change the hostname from raspberrypi to CONSOLE:
sudo nano /etc/hosts 127.0.0.1 localhost ::1 localhost ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters 127.0.1.1 CONSOLE
Then modify the hostname file:
sudo nano /etc/hostname CONSOLE
Now moving on to the actual console portion of this project. We’ll use Ser2net which allows you access the serial ports via telnetting into the RPi.
wget http://downloads.sourceforge.net/project/ser2net/ser2net/ser2net-2.9.1.tar.gz tar -xzvf ser2net-2.9.1.tar.gz cd ser2net-2.9.1/ ./configure make sudo make install make clean
Now lets find out where our USB to Serial is connected:
pi@CONSOLE ~ $ dmesg | grep tty [ 0.000000] Kernel command line: dma.dmachans=0x7f35 bcm2708_fb.fbwidth=656 bcm2708_fb.fbheight=416 bcm2708.boardrev=0xe bcm2708.serial=0x43e1602e smsc95xx.macaddr=B8:27:EB:E1:60:2E sdhci-bcm2708.emmc_clock_freq=100000000 vc_mem.mem_base=0x1ec00000 vc_mem.mem_size=0x20000000 dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait [ 0.000000] console [tty1] enabled [ 0.585230] dev:f1: ttyAMA0 at MMIO 0x20201000 (irq = 83) is a PL011 rev3 [ 0.916712] console [ttyAMA0] enabled [ 6.574040] usb 1-1.3: FTDI USB Serial Device converter now attached to ttyUSB0 [ 7.049168] usb 1-1.3: FTDI USB Serial Device converter now attached to ttyUSB1 [ 7.232239] usb 1-1.3: FTDI USB Serial Device converter now attached to ttyUSB2 [ 7.392448] usb 1-1.3: FTDI USB Serial Device converter now attached to ttyUSB3
My RPi recognized all the connectors but the actual device is connected to ttyUSB0.
Let’s edit the ser2net configuration to get things going. The following is my configuration for each serial connection:
sudo nano /etc/ser2net.conf BANNER:banner:CONSOLE LAB Terminal Server TCP port p device d serial parms srn TRACEFILE:tr1:/var/log/ser2net/p-Y-M-D-H:i:s.U 4001:telnet:0:/dev/ttyUSB0:9600 8DATABITS NONE 1STOPBIT banner tr=tr1 timestamp TRACEFILE:tr2:/var/log/ser2net/p-Y-M-D-H:i:s.U 4002:telnet:0:/dev/ttyUSB1:9600 8DATABITS NONE 1STOPBIT banner tr=tr2 timestamp TRACEFILE:tr3:/var/log/ser2net/p-Y-M-D-H:i:s.U 4003:telnet:0:/dev/ttyUSB2:9600 8DATABITS NONE 1STOPBIT banner tr=tr3 timestamp TRACEFILE:tr4:/var/log/ser2net/p-Y-M-D-H:i:s.U 4004:telnet:0:/dev/ttyUSB3:9600 8DATABITS NONE 1STOPBIT banner tr=tr4 timestamp
Save that file and lets make sure Ser2Net starts up automatically:
sudo nano /etc/rc.local
[Read more…] about Configuring Your Raspberry Pi As A Console Server