<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Benjamin Grant &#187; Cisco 678</title>
	<atom:link href="http://bengrant.org/tag/cisco-678/feed/" rel="self" type="application/rss+xml" />
	<link>http://bengrant.org</link>
	<description></description>
	<lastBuildDate>Mon, 27 May 2013 07:16:35 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=4.2.7</generator>

	<image>
		<url>http://bengrant.org/files/2015/05/bg_clear_huge-5563eec5v1_site_icon-32x32.png</url>
		<title> &#187; Cisco 678</title>
		<link>http://bengrant.org</link>
		<width>32</width>
		<height>32</height>
	</image> 
	<item>
		<title>Monitoring the Cisco 678</title>
		<link>http://bengrant.org/2013/05/27/monitoring-the-cisco-678/</link>
		<comments>http://bengrant.org/2013/05/27/monitoring-the-cisco-678/#comments</comments>
		<pubDate>Mon, 27 May 2013 07:16:35 +0000</pubDate>
		<dc:creator><![CDATA[bgrantrobus]]></dc:creator>
				<category><![CDATA[technical]]></category>
		<category><![CDATA[Cisco 678]]></category>
		<category><![CDATA[Net-SNMP]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[rsyslog]]></category>
		<category><![CDATA[SNMP]]></category>
		<category><![CDATA[syslog]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://bengrant.org/?p=166</guid>
		<description><![CDATA[My connection to the boundless cache of information called the &#8220;internet&#8221; is handled by my trusty Cisco 678. Unfortunately, the phone infrastructure in my building is less than top quality and my connection quality degrades over time. Part of my solution to this problem involves monitoring my 678 (running CBOS 2.4). Configuring Syslog The Cisco [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>My connection to the boundless cache of information called the &#8220;internet&#8221; is handled by my trusty Cisco 678. Unfortunately, the phone infrastructure in my building is less than top quality and my connection quality degrades over time. Part of my solution to this problem involves monitoring my 678 (running CBOS 2.4).</p>
<h2>Configuring Syslog</h2>
<p>The Cisco 67x has a built-in syslog facility, but it has limited memory and can be cumbersome to access. The Cisco has the capability to send syslog messages to a central syslog server, and I just happen to maintain such a server on my network. My syslog server currently runs Ubuntu Server 12.04.2 LTS (Precise Pangolin) and I use the provided rsyslogd (5.8.6). To configure it, edit /etc/rsyslog.conf and ensure UDP support is enabled (I had to uncomment the following lines).</p>
<pre>$ModLoad imudp
$UDPServerRun 514</pre>
<p>I also had to add a firewall rule to allow the traffic.</p>
<pre>iptables -A INPUT -i eth1 -s &lt;cisco ip&gt;/32 -p udp --dport 514 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth1 -d &lt;cisco ip&gt;/32 -p udp --sport 514 -m state --state RELATED,ESTABLISHED -j ACCEPT</pre>
<p>Next, configure the Cisco to send its syslog messages to the remote server. This consists of connecting to the Cisco, configuring syslog, writing the config, rebooting, and testing.</p>
<pre>User Access Verification
Password:********

cbos&gt;<strong>enable</strong>
Password:********

cbos#<strong>set syslog enabled</strong>
SYSLOG is enabled

cbos#<strong>set syslog remote &lt;syslog server ip&gt;</strong>
SYSLOG will now send messages to &lt;syslog server ip&gt;

cbos#<strong>set syslog port 514</strong>
SYSLOG will now use port 514

cbos#<strong>write</strong>
Warning: traffic may pause while NVRAM is being modified
NVRAM written.

cbos#<strong>reboot</strong></pre>
<p>Obviously, you need to replace &lt;syslog server ip&gt; with an actual IP. Adjust the port if necessary. Once the reboot is complete, you can test it.</p>
<pre>cbos#<strong>set syslog test testing syslog from cisco 678</strong>
Message: "testing syslog from cisco 678" sent via syslog</pre>
<p>You should see the message appear in your logs on the central syslog server.</p>
<pre>user@syslog$ <strong>tail /var/log/syslog.log</strong>
May 24 18:29:11 &lt;cisco ip&gt; "testing sysylog from cisco 678"</pre>
<p>If the message doesn&#8217;t appear in the syslog logs, check for errors on the Cisco.</p>
<pre>cbos#<strong>show errors</strong>
- Current Error Messages -
## Ticks Module Level Message
 0 000:00:00:00 SYSLOG Alarm Could not send message</pre>
<p>If the error &#8220;Could not send message&#8221; appears, verify that the Cisco was configured correctly. <strong>Note:</strong> <em>the Cisco will probably fail until the config is written and the device is rebooted.</em></p>
<p>Messages from the Cisco should now be appearing in your central syslog logs.</p>
<h2>Configuring SNMP</h2>
<p>The Cisco 678 has built-in support for SNMP, and it&#8217;s fairly straight-forward to enable. My goal is to use <a href="http://www.net-snmp.org">Net-SNMP</a> to monitor the performance and general health of the Cisco. To setup the 678 to support SNMP, add a &#8216;manager&#8217; (use &#8220;set snmp manager&#8221; for details). In my example, &lt;client ip&gt; is the IP of the machine generating SNMP requests, and &#8220;internal&#8221; is the name of my SNMP &#8216;community&#8217;.</p>
<pre>cbos#<strong>set snmp manager &lt;client ip&gt; internal read enable all</strong>
Added SNMP Manager

cbos#<strong>set snmp enable</strong>
SNMP enabled

cbos#<strong>write</strong>
Warning: traffic may pause while NVRAM is being modified
NVRAM written.

cbos#<strong>reboot</strong></pre>
<p>The Cisco should now respond to SNMP requests originating from &lt;client ip&gt;. Net-SNMP includes several tools, such as snmpwalk, that can be used to test the setup. This can be done on an Ubuntu client as follows.</p>
<pre>user$ <strong>sudo apt-get install -y snmp</strong>
user$ <strong>snmpwalk -r 0 -v1 -c internal &lt;cisco ip&gt;</strong></pre>
<p>The output of both commands has been omitted, but the system information for the Cisco should look similar to the following.</p>
<pre>user$ <strong>snmpwalk -r0 -v1 -c internal &lt;cisco ip&gt; system</strong>
SNMPv2-MIB::sysDescr.0 = STRING: Cisco CPE SNMPv3 Agent
SNMPv2-MIB::sysObjectID.0 = OID: SNMPv2-SMI::enterprises.9.10.1.1
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (8835020) 1 day, 0:32:30.20
SNMPv2-MIB::sysContact.0 = STRING: Cisco Systems, Inc
SNMPv2-MIB::sysName.0 = STRING: CBOS675
SNMPv2-MIB::sysLocation.0 = STRING: Irvine
SNMPv2-MIB::sysServices.0 = INTEGER: 72</pre>
<p><strong>Note:</strong> Net-SNMP 5.4.3 was having problems translating OID numbers into more human-friendly strings. Eventually, Google led me to several articles explaining a bug in 5.4 that caused Net-SNMP to fail when reading MIB files to translate the OID numbers. It was necessary for me to build and install 5.7.1 to resolve this problem. If you&#8217;re using 5.4.3, then you may need to change your command, and the result will be different (and more cryptic).</p>
<pre>user$ <strong>snmpwalk -r0 -v1 -c internal &lt;cisco ip&gt; .1.3.6.1.2.1.1</strong>
iso.3.6.1.2.1.1.1.0 = STRING: "Cisco CPE SNMPv3 Agent"
iso.3.6.1.2.1.1.2.0 = OID: iso.3.6.1.4.1.9.10.1.1
iso.3.6.1.2.1.1.3.0 = Timeticks: (8887560) 1 day, 0:41:15.60
iso.3.6.1.2.1.1.4.0 = STRING: "Cisco Systems, Inc"
iso.3.6.1.2.1.1.5.0 = STRING: "CBOS675"
iso.3.6.1.2.1.1.6.0 = STRING: "Irvine"
iso.3.6.1.2.1.1.7.0 = INTEGER: 72</pre>
<p>Most of the examples I found online use <a href="http://man.cx/mrtg(1)">mrtg</a> (along with <a href="http://httpd.apache.org">Apache</a>, <a href="http://man.cx/cron(1)">cron</a>, and <a href="http://man.cx/rrdtool(1)">rrdtool</a>) to generate web-accessible graphs of  data collected via SNMP. This isn&#8217;t the model I&#8217;m using, but <a href="http://www.google.com/search?q=snmp+mrtg">Google can lead you to the answer</a>; I&#8217;m using a custom tool to record specific parameters as part of my overall network monitoring.</p>
<h2>A Final Thought</h2>
<p>Between syslog and SNMP, it should be relatively easy to keep an eye on a Cisco 678 or 675. It&#8217;s worth noting that there are some security trade offs to consider when enabling SNMP. In my setup, I was able to disable my 678&#8217;s telnet server, but end up exposing its SNMP functionality. This may or may not be advisable in your environment.</p>
]]></content:encoded>
			<wfw:commentRss>http://bengrant.org/2013/05/27/monitoring-the-cisco-678/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Trusty Cisco 678 (Needs A Refresh)</title>
		<link>http://bengrant.org/2012/12/31/the-trusty-cisco-678-needs-a-refresh/</link>
		<comments>http://bengrant.org/2012/12/31/the-trusty-cisco-678-needs-a-refresh/#comments</comments>
		<pubDate>Mon, 31 Dec 2012 19:49:27 +0000</pubDate>
		<dc:creator><![CDATA[bgrantrobus]]></dc:creator>
				<category><![CDATA[technical]]></category>
		<category><![CDATA[Cisco 678]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[screen(1)]]></category>
		<category><![CDATA[telnet(1)]]></category>

		<guid isPermaLink="false">http://bengrant.org/?p=85</guid>
		<description><![CDATA[I&#8217;ve been using the same Cisco 678 DSL router/modem for around a decade, and I had a 675 for a year or two before that. My DSL provider tries to sell or lease me a new DSL modem every time I call to change my service or move, but I&#8217;m sticking with my 678 until it [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>I&#8217;ve been using the same <a href="http://www.cisco.com/en/US/products/hw/routers/ps295/index.html">Cisco 678</a> DSL router/modem for around a decade, and I had a 675 for a year or two before that. My DSL provider tries to sell or lease me a new DSL modem every time I call to change my service or move, but I&#8217;m sticking with my 678 until it dies, doesn&#8217;t support the service I need, or my provider completely drops support for it. (I can&#8217;t recall contacting them for any kind of support related to anything other than a service change or move; their residential DSL service has been stable and sufficient, and my 678 just keeps trucking.) I recently made a small service change and decided to reset and reconfigure my router/modem.</p>
<h2>Connecting</h2>
<p>The 678 <em>can</em> be reset and configured using the LAN port, but connecting to the management port using the provided management cable is safer. If you don&#8217;t have a management cable, Cisco is kind enough to <a href="http://www.cisco.com/en/US/tech/tk175/tk15/technologies_configuration_example09186a0080093e33.shtml">tell you how</a> (basically, a DB9 to RJ45 cable). If you&#8217;re stuck using the LAN, then do your homework, double check your work, and be prepared to accept defeat. I use <a href="http://man.cx/TELNET(1)">telnet</a> when connecting over the LAN and <a href="http://man.cx/SCREEN(1)">screen</a>, <a href="http://man.cx/TIP(1)">tip</a>, or <a href="http://man.cx/CU(1)">cu</a> when connecting with the management cable.</p>
<p>When the connection is initially opened, the router should prompted for the <em>exec</em> password. If the router/modem is already running when the connection is opened, then it may be necessary to hit <em>enter</em> to trigger the prompt.</p>
<p>If you don&#8217;t know the <em>exec</em> or <em>enable</em> passwords for your router/modem, then check out the <a href="http://www.cisco.com/en/US/products/hw/routers/ps295/products_password_recovery09186a0080094154.shtml">Password Recovery Procedure for the Cisco 6xx</a>.</p>
<h2>Resetting</h2>
<p>Start by resetting the router/modem to a known state. If the current state is a complete disaster, then it can be completely reset using RMON. See <a href="http://www.cisco.com/en/US/products/hw/routers/ps295/products_password_recovery09186a0080094154.shtml#erasing_cfg">Erase the Configuration</a> from the Password Recovery Procedure for details. Typically, the router/modem can be reset by connecting and erasing the configuration in normal mode (shown below).</p>
<p>This is where working with the LAN can be tricky. If the configuration is erased and written, but the connection is dropped before a new configuration is written, the router could be left in an unknown/undesirable state. If you&#8217;re connected using the LAN, skip the <em>reboot</em> step at the end. And, good luck!</p>
<pre>User Access Verification
Password: <strong>&lt;your password&gt;</strong>

cbos&gt;<strong>enable</strong>
Password: <strong>&lt;your password&gt;</strong>

cbos#<strong>set nvram erase</strong>
Erasing Running Configuration.
You must use "write" for changes to be permanent.

cbos#<strong>write</strong> 
Warning: traffic may pause while NVRAM is being modified
NVRAM written.

cbos#<strong>reboot</strong></pre>
<p>The router/modem will reboot into a &#8220;clean&#8221; state with no configuration (including blank passwords).</p>
<h2>Configuring</h2>
<p>My configuration is fairly straight forward. I have a single external IP and a handful of devices that use network address translation (NAT) to access the outside world. Most of my internal network is assigned static IPs, but I maintain a small pool of IPs for (mostly wireless) DHCP devices. In my setup, my Cisco 678 acts as the modem and router, but it&#8217;s possible to configure the 678 as a simple modem bridged to another device that handles PPP, NAT, DHCP, etc. For details, see the <a href="http://www.cisco.com/en/US/products/hw/modems/ps296/products_installation_guide_chapter09186a008007dd70.html#xtocid1095513">RFC 1483 Routing</a> section in the <a href="http://www.cisco.com/en/US/products/hw/modems/ps296/products_installation_guide_book09186a008007dd7e.html">Cisco 600 Series Installation and Operation Guide</a>.</p>
<p>I start by connecting and setting the passwords for <em>exec</em> and <i>enable</i>.</p>
<pre>User Access Verification
Password:<strong>&lt;your password; blank after reset&gt;</strong>

cbos&gt;<strong>enable</strong>
Password:<strong>&lt;your password; blank after reset&gt;</strong>

cbos#<strong>set password exec &lt;new password&gt;</strong>
Exec Password Change Successful!

cbos#<strong>set password enable &lt;new password&gt;</strong>
Enable Password Change Successful!</pre>
<p>Next, configure the PPP connection.</p>
<pre>cbos#<strong>set ppp wan0-0 ipcp 0.0.0.0</strong>
PPP wan0-0 IPCP Address set to 0.0.0.0

cbos#<strong>set ppp wan0-0 dns 0.0.0.0</strong>
PPP wan0-0 DNS Server Addresses set to 0.0.0.0

cbos#<strong>set ppp wan0-0 authentication enable</strong>
PAP and CHAP Authentication is now enabled on specified port

cbos#<strong>set ppp wan0-0 login &lt;your login&gt;</strong>
User name for wan0-0 has been set to &lt;your login&gt;

cbos#<strong>set ppp wan0-0 password &lt;your password&gt;</strong>
Password for wan0-0 has been set to &lt;your password&gt;.

cbos#<strong>set ppp restart enabled</strong>
CPE Remote Restart is now enabled...</pre>
<p>Next, enable network address translation (NAT).</p>
<pre>cbos#<strong>set nat enabled</strong>
NAT is now enabled
You must use "write" then reboot for changes to take effect.</pre>
<p>Next, configure the internal/local network. The LAN port is <em>eth0</em>, and the following example sets the router/modem&#8217;s IP to 10.0.0.1.<em><br />
</em></p>
<pre>cbos#<strong>set interface eth0 address 10.0.0.1</strong>
eth0 ip address changed from 10.0.0.1 to 10.0.0.1</pre>
<p>Next, setup a DHCP server for the internal/local network. The following example allocates a pool of 16 IPs starting at 10.0.0.200, sets a DNS server to pass to DHCP clients, and a gateway that points to the router.</p>
<pre>cbos#<strong>set dhcp server enabled</strong>
DHCP Server enabled

cbos#<strong>set dhcp server pool 0 ip 10.0.0.200 size 16 netmask 255.255.255.0</strong>
Pool 0 IP parameter is now 10.0.0.200

cbos#<strong>set dhcp server pool 0 dns &lt;dns server IP&gt;</strong>
Pool 0 DNS parameter is now &lt;dns server IP&gt;

cbos#<strong>set dhcp server pool 0 gateway 10.0.0.1</strong>
Pool 0 gateway parameter is now 10.0.0.1

cbos#<strong>set dhcp server pool 0 enabled</strong>
DHCP Server Pool 0 now enabled</pre>
<p>Next, configure the WAN port. Before executing the following steps, disconnect the phone line. Once the configuration is complete and written, the phone line can be reconnected.</p>
<pre>cbos#<strong>set interface wan0-0 close</strong>
Closing connection wan0-0

cbos#<strong>set interface wan0-0 vpi 0</strong>
Change completed.

cbos#<strong>set interface wan0-0 vci 32</strong>
Change completed.

cbos#<strong>set interface wan0-0 open</strong>
Opening connection wan0-0</pre>
<p>Finally, write the configuration and reboot.</p>
<pre>cbos#<strong>write</strong>
Warning: traffic may pause while NVRAM is being modified
NVRAM written.

cbos#<strong>reboot</strong></pre>
<h2>Validating</h2>
<p>At this point, I like to connect over the LAN and issue a few commands to validate that the running configuration was persisted correctly, the DSL line is trained and authenticated, and the connection&#8217;s upstream and downstream data rates are correct (verify you&#8217;re getting what you pay for).</p>
<pre>User Access Verification
Password: <strong>&lt;your password&gt;</strong>

cbos&gt;<strong>enable</strong>
Password: <strong>&lt;your password&gt;</strong>

cbos#<strong>show nvram</strong>
Warning: traffic may pause while NVRAM is being accessed
[[ CBOS = Section Start ]]
NSOS MD5 Enable Password = <em>&lt;omitted&gt;</em>
NSOS Remote Restart = enabled
NSOS MD5 Root Password = <em>&lt;omitted&gt;</em>
NSOS MD5 Commander Password = <em>&lt;omitted&gt;</em>
[[ PPP Device Driver = Section Start ]]
PPP Port Option = 00, IPCP,IP Address,3,Auto,Negotiation Not Required,Negotiable,IP,0.0.0.0
PPP Port Option = 00, IPCP,Primary DNS Server,129,Auto,Negotiation Not Required,Negotiable,IP,0.0.0.0
PPP Port Option = 00, IPCP,Secondary DNS Server,131,Auto,Negotiation Not Required,Negotiable,IP,0.0.0.0
PPP Port User Name = 00, <em>&lt;omitted&gt;</em>
PPP Port User Password = 00, ****
[[ IP Routing = Section Start ]]
IP NAT = enabled
[[ DHCP = Section Start ]]
DHCP Server = enabled
DHCP Server Pool IP = 00, 10.0.0.200
DHCP Server Pool DNS = 00, <em>&lt;omitted&gt;</em>
[[ ATM WAN Device Driver = Section Start ]]
ATM WAN Virtual Connection Parms = 00, 0, 32, 0

cbos#<strong>show interface wan0</strong>
wan0 ADSL Physical Port
 Line Trained
Actual Configuration:
 Overhead Framing: 3
 Trellis Coding: Enabled
 Standard Compliance: T1.413
 Downstream Data Rate: 6144 Kbps
 Upstream Data Rate: 896 Kbps
<em>&lt;omitted the rest... but there's lots more!&gt;</em>

cbos#<strong>show interface wan0-0</strong>
WAN0-0 ATM Logical Port
 PVC (VPI 0, VCI 32) is open.
 ScalaRate set to Auto
 AAL 5 UBR Traffic
 PPP LCP State: Opened
 PPP NCP State (IP Routing): Opened
 PPP MRU: 2048 HDLC Framing: disabled MPOA Mode: VC Mux
 PPP Login: &lt;your login&gt;
 Authentication Type: Autodetecting/PAP
 RADIUS: disabled
 PPP Tx: 113997 Rx: 387171 
 Dest IP: <em>&lt;omitted&gt;</em>
 Dest Mask: 255.255.255.255
 IP Port Enabled</pre>
<p>If there are any problems, check out the <a href="http://www.cisco.com/en/US/products/hw/modems/ps296/products_installation_guide_chapter09186a008007dd74.html">Cisco 600 Series Installation and Operation Guide &#8211; Troubleshooting</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://bengrant.org/2012/12/31/the-trusty-cisco-678-needs-a-refresh/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
