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.
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()}
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.
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
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.
