November 2007 Archives

To reboot a Linux box automatically after a kernel panic all you need to do is customize the “kernel.panic” sysctl.

echo “kernel.panic=10” >> /etc/sysctl.conf

This example will cause a reboot after 10 seconds.

Change Email Header in RT

| | Comments (0)

I wanted to change the email headers in RT’s autoreply emails to come from “do-not-reply” instead of the actual queue email address. This way an autoresponse to the autoresponder would bounce instead of polluting our ticket queue. After looking through the RT modules the fix is actually quite simple and only required adding the desired header fields to the top of the template. The adjusted template is below:

From: "{$Ticket->QueueObj->Description()}" <do-not-reply@inetops.com>
Reply-To: do-not-reply@inetops.com
Subject: {$Ticket->Subject}


** This is an Auto-Response **

Greetings,

This message has been automatically generated in response to the
creation of a trouble ticket, a summary of which appears below.
There is no need to reply to this message right now.

Please include the string:

    [{$rtname} #{$Ticket->id}]

in the subject line of all future correspondence about this issue.

                        Thank you,
                        {$Ticket->QueueObj->Description()}
                        {$Ticket->QueueObj->CorrespondAddress()}

-------------------------------------------------------------------------

{$Transaction->Content()}

Ceiling Fans Under Lights

| | Comments (0)
I was in a restaurant last night and for the life of me I couldn't figure out why my eyes were completely freaking out on me - I finally caught it when I looked up. They had installed ceiling fans underneath lights creating a nice steady flickering effect. People seem to have varying degrees of reactions to the CFUL but all are negative. If I wasn't at an event I probably would have walked out without finishing my meal.

I've been trying to use Ecto with Movable Type as an authoring tool. After troubleshooting the dreaded "Invalid Login" cryptic error message I finally found the simple solution.

The fix is to open the preferences for the user account you wish to use in Movable Type and reveal the web services password.

DNS Load Testing Results

| | Comments (1)

Years ago I stopped running BIND as an Authoritative Name Server within my sites - initially this was for security reasons but was quickly eclipsed for maintainability. After running almost every alternate DNS software available we’ve ended up running a mix of PowerDNS and BIND (BIND sneaked back in because of $GENERATE is just to convenient for in-addr.arpa domains). We are running PowerDNS against a Master -> Slave MySQL backend configuration and even though the maintainability is super easy (what could be better than a web interface to a SQL backend) I’ve always been a little paranoid about the potential loss of the DB backend and the loss of our DNS services as a result. I’ve always personally liked the simplicity of Tinydns from DJBDNS but the assumed performance loss on my part has always kept me at bay. Well today I broke down and ran some benchmarks. You could say that the results surprised me a little…

The first test is tinydns-1.05

> ./queryperf -d input_file -s 207.171.12.31

DNS Query Performance Testing Tool
Version: $Id: queryperf.c,v 1.8.192.3 2005/10/29 00:21:12 jinmei Exp $

[Status] Processing input data
[Status] Sending queries (beginning with 207.171.12.31)
[Status] Testing complete

Statistics:

  Parse input file:     once
  Ended due to:         reaching end of file

  Queries sent:         600000 queries
  Queries completed:    600000 queries
  Queries lost:         0 queries
  Queries delayed(?):   0 queries

  RTT max:              0.087436 sec
  RTT min:              0.000055 sec
  RTT average:          0.002845 sec
  RTT std deviation:    0.000680 sec
  RTT out of range:     0 queries

  Percentage completed: 100.00%
  Percentage lost:        0.00%

  Started at:           Tue Nov 20 15:29:18 2007
  Finished at:          Tue Nov 20 15:30:44 2007
  Ran for:              85.816039 seconds

  Queries per second:   6991.700001 qps

Note: Tinydns is running with a 150 MByte data.cdb

The second test is PowerDNS 2.9.21 w/ MySQL:

> ./queryperf -d input_file -s 207.171.11.22

DNS Query Performance Testing Tool
Version: $Id: queryperf.c,v 1.8.192.3 2005/10/29 00:21:12 jinmei Exp $

[Status] Processing input data
[Status] Sending queries (beginning with 207.171.11.22)
[Status] Testing complete

Statistics:

  Parse input file:     once
  Ended due to:         reaching end of file

  Queries sent:         600000 queries
  Queries completed:    600000 queries
  Queries lost:         0 queries
  Queries delayed(?):   0 queries

  RTT max:              0.086546 sec
  RTT min:              0.000401 sec
  RTT average:          0.002508 sec
  RTT std deviation:    0.000601 sec
  RTT out of range:     0 queries

  Percentage completed: 100.00%
  Percentage lost:        0.00%

  Started at:           Tue Nov 20 15:32:11 2007
  Finished at:          Tue Nov 20 15:33:26 2007
  Ran for:              75.741798 seconds

  Queries per second:   7921.649813 qps

The last test is BIND 9.3.3:

> ./queryperf -d input2 -s 207.171.11.32

DNS Query Performance Testing Tool
Version: $Id: queryperf.c,v 1.8.192.3 2005/10/29 00:21:12 jinmei Exp $

[Status] Processing input data
[Status] Sending queries (beginning with 207.171.11.32)
[Timeout] Query timed out: msg id 60619
[Status] Testing complete

Statistics:

  Parse input file:     once
  Ended due to:         reaching end of file

  Queries sent:         600000 queries
  Queries completed:    599999 queries
  Queries lost:         1 queries
  Queries delayed(?):   0 queries

  RTT max:              3.932287 sec
  RTT min:              0.000397 sec
  RTT average:          0.001155 sec
  RTT std deviation:    0.007110 sec
  RTT out of range:     0 queries

  Percentage completed: 100.00%
  Percentage lost:        0.00%

  Started at:           Tue Nov 20 15:36:26 2007
  Finished at:          Tue Nov 20 15:37:02 2007
  Ran for:              35.493465 seconds

  Queries per second:   16904.492137 qps

Needless to say I was impressed (and encouraged) to see that Tinydns wasn’t much slower than PowerDNS in our configuration. However I was blown away that BIND ran twice as fast! I have some serious investigation to do and some further testing. I wonder what tinydns would look like against an SSD or RAMDISK.

http://www.nyquistcapital.com/2007/11/16/googles-secret-10gbe-switch/

A very interesting evalution of Arastra and a possible Google connection: http://www.arastra.com/home/

Through conversations with multiple carrier, equipment, and component industry sources we have confirmed that Google has designed, built, and deployed homebrewed 10GbE switches for providing server interconnect within their data centers. This is very similar to Google’s efforts to build its own server computers … This decision by Google, while small in terms of units purchased, is enormous in terms of the disruptive impact it should have on 10GbE switching equipment providers and their component supply chains.

While installing Zend Studio 5.5 on OpenSUSE 10.3 the installer exits with this error:

java: xcbxlib.c:52: xcbxlib_unlock: Assertion `c->xlib.lock’ failed. Aborted

Some research on Google gave plenty of fixes for after Zend Studio was installed but not for the actual installation. You can fix this by setting the following variable before launching the installer and before running the application.

export LIBXCBALLOWSLOPPY_LOCK=1

Yesterday we finished integrating Phyber’s new public Route Server (rotue-server.phyber.com) with our Los Angeles infrastructure. Route Servers are excellent network troubleshooting tools for both internal engineers as well as external customers and users. It’s obviously a much safer to troubleshoot, test and experiment on a non-critical route server vs. a core router in your network.

The route server is running on a Cisco 7204vxr with a NPE-300 and 256MB of Ram. We chose the Cisco 7204 over other alternatives (Zebra, Quagga, OpenBGPd, etc…) for a few reasons, the main one’s being:

  • Phyber runs an end to end Cisco based network. So it’s easier for our engineers to use a Cisco based route server for troubleshooting.

  • We had an extra 7204vxr in storage, so adding 128MB of Ram to support a full BGP feed wasn’t a big deal.

The open source alternatives are all excellent choices and will run on minimal hardware. The selection process is ultimately what is best in your network environment. Because we already had the equipment cost was not a factor in this process. Honestly I would imagine if this box receives significant usage we would most likely move to something Unix based before spending the money to upgrade to a larger processor.

The configuration is extremely simple…

service timestamps debug datetime
service timestamps log datetime
service password-encryption
!
ip subnet-zero
ip multicast-routing
!
interface FastEthernet0/0
 no ip redirects
!
router bgp <ASN>
 bgp log-neighbor-changes
 bgp dampening
 no auto-summary
 no sync
 neighbor mcast-ebgp peer-group nlri unicast multicast
 neighbor mcast-ebgp ebgp-multihop 255
 neighbor mcast-ebgp update-source FastEthernet0/0
 neighbor mcast-ebgp next-hop-self
 neighbor mcast-ebgp distribute-list 100 out
 neighbor mcast-ebgp route-map set-nexthop in
 !
 neighbor <peer ip> remote-as <peer AS>
 neighbor <peer ip> peer-group mcast-ebgp
 neighbor <peer ip> description <peer name>
!
ip classless
ip route 0.0.0.0 0.0.0.0 <default-gw>
ip route <peer ip> 255.255.255.255 <default-gw>
no ip http server
ip bgp-community new-format
!
access-list 100 deny   ip any any
!
route-map set-nexthop permit 10
 set ip next-hop peer-address
!
line vty 0 4
 session-timeout 20  output
 exec-timeout 5 0
 timeout login response 0
 logging synchronous
 no login 
!
line vty 5 15
 session-timeout 20  output
 exec-timeout 5 0
 timeout login response 0
 logging synchronous
 no login 
!
ntp server 164.67.62.194
ntp server 192.12.19.20
end

If you need help examples for various routers are available here: http://www.routeviews.org/config.html

Gmail Woes

| | Comments (0)

I've been using my gmail account to track mailing list subscriptions - it's actually been a great tool for this process given how much email some of these lists generate. Lately I've noticed that my filters are only half working (setting the correct label but not archiving) or not working at all. I've gone as far as deleting all of my filter rules and re-creating everything.

About this Archive

This page is an archive of entries from November 2007 listed from newest to oldest.

October 2007 is the previous archive.

December 2007 is the next archive.

Find recent content on the main index or look in the archives to find all content.

View Max Clark's profile on LinkedIn
Powered by Movable Type 4.1