<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" version="2.0">

<channel>
	<title>Packetslave Industries</title>
	
	<link>http://www.packetslave.com</link>
	<description>This is my blog.  There are many like it, but this one is mine.</description>
	<lastBuildDate>Fri, 03 Sep 2010 03:39:06 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/PacketslaveIndustries" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="packetslaveindustries" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Ffeeds.feedburner.com%2FPacketslaveIndustries" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2FPacketslaveIndustries" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.bloglines.com/sub/http://feeds.feedburner.com/PacketslaveIndustries" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2FPacketslaveIndustries" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.live.com/?add=http%3A%2F%2Ffeeds.feedburner.com%2FPacketslaveIndustries" src="http://tkfiles.storage.msn.com/x1piYkpqHC_35nIp1gLE68-wvzLZO8iXl_JMledmJQXP-XTBOLfmQv4zhj4MhcWEJh_GtoBIiAl1Mjh-ndp9k47If7hTaFno0mxW9_i3p_5qQw">Subscribe with Live.com</feedburner:feedFlare><item>
		<title>Maybe sleep now?</title>
		<link>http://www.packetslave.com/2010/09/02/maybe-sleep-now/</link>
		<comments>http://www.packetslave.com/2010/09/02/maybe-sleep-now/#comments</comments>
		<pubDate>Fri, 03 Sep 2010 03:39:06 +0000</pubDate>
		<dc:creator>blanders</dc:creator>
				<category><![CDATA[CCIE]]></category>
		<category><![CDATA[CCIE Security]]></category>

		<guid isPermaLink="false">http://www.packetslave.com/?p=246</guid>
		<description />
			<content:encoded><![CDATA[<p><a href="http://www.packetslave.com/wp-content/uploads/2010/09/CCIERouting_and_Switching_UseLogo.gif"><img class="alignnone size-full wp-image-247" title="CCIERouting_and_Switching_UseLogo" src="http://www.packetslave.com/wp-content/uploads/2010/09/CCIERouting_and_Switching_UseLogo.gif" alt="" width="150" height="150" /></a><a href="http://www.packetslave.com/wp-content/uploads/2010/09/CCIESecurity_UseLogo.gif"><img class="alignnone size-full wp-image-248" title="CCIESecurity_UseLogo" src="http://www.packetslave.com/wp-content/uploads/2010/09/CCIESecurity_UseLogo.gif" alt="" width="150" height="150" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.packetslave.com/2010/09/02/maybe-sleep-now/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>CCIE Security — DMVPN Phase 1</title>
		<link>http://www.packetslave.com/2010/08/18/ccie-security-dmvpn-phase-1/</link>
		<comments>http://www.packetslave.com/2010/08/18/ccie-security-dmvpn-phase-1/#comments</comments>
		<pubDate>Thu, 19 Aug 2010 01:12:36 +0000</pubDate>
		<dc:creator>blanders</dc:creator>
				<category><![CDATA[CCIE]]></category>
		<category><![CDATA[CCIE Security]]></category>
		<category><![CDATA[Cisco]]></category>

		<guid isPermaLink="false">http://www.packetslave.com/?p=244</guid>
		<description><![CDATA[Notes Tunnel network: 172.16.1.0 / 24 NBMA network: 8.7.6.0 / 24 No spoke-to-spoke tunnels in DMVPN Phase 1 Hub crypto isakmp key 0 cisco address 8.7.6.0 255.255.255.0 ! crypto isakmp policy 100 encryption aes 256 hash sha authentication pre-share ! crypto ipsec transform-set AES256_SHA esp-aes 256 esp-sha-hmac mode transport ! crypto ipsec profile DMVPN set [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Notes</strong></p>
<ul>
<li>Tunnel network:  172.16.1.0 / 24</li>
<li>NBMA network:  8.7.6.0 / 24</li>
<li>No spoke-to-spoke tunnels in DMVPN Phase 1</li>
</ul>
<p><strong>Hub</strong></p>
<pre>crypto isakmp key 0 cisco address 8.7.6.0 255.255.255.0
!
crypto isakmp policy 100
  encryption aes 256
  hash sha
  authentication pre-share
!
crypto ipsec transform-set AES256_SHA esp-aes 256 esp-sha-hmac
  mode transport
!
crypto ipsec profile DMVPN
  set transform-set AES256_SHA
!
interface serial0/0
  ip address 8.7.6.100 255.255.255.0
!
interface Tunnel100
  ip address 172.16.1.100 255.255.255.0
  ip nhrp map multicast dynamic
  ip nhrp network-id 1
  tunnel source Serial0/0
  tunnel mode gre multipoint
  tunnel key 1
  tunnel protection ipsec profile DMVPN
  no ip split-horizon eigrp 100
  no ip next-hop-self eigrp 100
!
router eigrp 100
  network 172.16.1.100 0.0.0.0
  no auto-summary
!</pre>
<p><strong>Spoke</strong></p>
<pre>crypto isakmp key 0 cisco address 8.7.6.1
!
crypto isakmp policy 100
  encryption aes 256
  hash sha
  authentication pre-share
!
crypto ipsec transform-set AES256_SHA esp-aes 256 esp-sha-hmac
  mode transport
!
crypto ipsec profile DMVPN
  set transform-set AES256_SHA
!
interface Serial0/0
  ip address 8.7.6.50 255.255.255.0
!
interface Tunnel100
  ip address 172.16.1.50 255.255.255.0
  ip nhrp map multicast 8.7.6.100
  ip nhrp map 172.16.1.100 8.7.6.100
  ip nhrp server 172.16.1.100
  ip nhrp network-id 1
  tunnel source Serial0/0
  tunnel destination 8.7.6.100
  tunnel key 1
  tunnel protection ipsec profile DMVPN
!
router eigrp 100
  network 172.16.1.50 0.0.0.0
  no auto-summary
!</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.packetslave.com/2010/08/18/ccie-security-dmvpn-phase-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CCIE Security Notes — EzVPN with Radius</title>
		<link>http://www.packetslave.com/2010/08/12/ccie-security-notes-ezvpn-with-radius/</link>
		<comments>http://www.packetslave.com/2010/08/12/ccie-security-notes-ezvpn-with-radius/#comments</comments>
		<pubDate>Thu, 12 Aug 2010 23:06:05 +0000</pubDate>
		<dc:creator>blanders</dc:creator>
				<category><![CDATA[CCIE]]></category>
		<category><![CDATA[CCIE Security]]></category>

		<guid isPermaLink="false">http://www.packetslave.com/?p=239</guid>
		<description><![CDATA[Group attributes: [006] Service-Type = Outbound [064] Tunnel-Type (1) = ESP [069] Tunnel-Password = my_group_key Need to create an ACS user &#8220;GROUP_NAME&#8221; with password &#8220;cisco&#8221; in addition to actual users. Both should be in the group in which you set the above attributes. AV-Pairs for EzVPN: ipsec:tunnel-type=ESP ipsec:key-exchange=IKE ipsec:inacl=MY_SPLIT_ACL ipsec:save-password=1 ipsec:addr-pool=MY_POOL]]></description>
			<content:encoded><![CDATA[<ul>
<li>Group attributes:
<ul>
<li>[006] Service-Type = Outbound</li>
<li>[064] Tunnel-Type (1) = ESP</li>
<li>[069] Tunnel-Password = my_group_key</li>
</ul>
</li>
<li>Need to create an ACS user &#8220;GROUP_NAME&#8221; with password &#8220;cisco&#8221; in addition to actual users.  Both should be in the group in which you set the above attributes.
<li>AV-Pairs for EzVPN:
<pre>
ipsec:tunnel-type=ESP
ipsec:key-exchange=IKE
ipsec:inacl=MY_SPLIT_ACL
ipsec:save-password=1
ipsec:addr-pool=MY_POOL
</pre>
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.packetslave.com/2010/08/12/ccie-security-notes-ezvpn-with-radius/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IOS EzVPN Client with VTI</title>
		<link>http://www.packetslave.com/2010/08/12/ios-ezvpn-client-with-vti/</link>
		<comments>http://www.packetslave.com/2010/08/12/ios-ezvpn-client-with-vti/#comments</comments>
		<pubDate>Thu, 12 Aug 2010 22:17:34 +0000</pubDate>
		<dc:creator>blanders</dc:creator>
				<category><![CDATA[CCIE]]></category>
		<category><![CDATA[CCIE Security]]></category>
		<category><![CDATA[Cisco]]></category>

		<guid isPermaLink="false">http://www.packetslave.com/?p=237</guid>
		<description><![CDATA[crypto ipsec client ezvpn EZCLIENT connect manual group REMOTE key cisco mode client peer 1.2.3.4 virtual-interface 2 username cisco password cisco xauth userid mode local ! interface Virtual-Template2 type tunnel ip unnumbered FastEthernet0/1 tunnel mode ipsec ipv4 ! interface Fast0/1 crypto ipsec client ezvpn EZCLIENT outside ! interface Fast0/0 crypto ipsec client ezvpn EZCLIENT inside [...]]]></description>
			<content:encoded><![CDATA[<pre>
crypto ipsec client ezvpn EZCLIENT
 connect manual
 group REMOTE key cisco
 mode client
 peer 1.2.3.4
 virtual-interface 2
 username cisco password cisco
 xauth userid mode local
!
interface Virtual-Template2 type tunnel
 ip unnumbered FastEthernet0/1
 tunnel mode ipsec ipv4
!
interface Fast0/1
  crypto ipsec client ezvpn EZCLIENT outside
!
interface Fast0/0
  crypto ipsec client ezvpn EZCLIENT inside
!
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.packetslave.com/2010/08/12/ios-ezvpn-client-with-vti/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IOS EzVPN Server with RSA Certificates and VTI</title>
		<link>http://www.packetslave.com/2010/08/12/ios-ezvpn-server-with-rsa-certificates-and-vti/</link>
		<comments>http://www.packetslave.com/2010/08/12/ios-ezvpn-server-with-rsa-certificates-and-vti/#comments</comments>
		<pubDate>Thu, 12 Aug 2010 21:55:46 +0000</pubDate>
		<dc:creator>blanders</dc:creator>
				<category><![CDATA[CCIE Security]]></category>
		<category><![CDATA[Cisco]]></category>

		<guid isPermaLink="false">http://www.packetslave.com/?p=232</guid>
		<description><![CDATA[EzVPN clients will get addresses on the 2.0.0.0/24 network EzVPN clients will have access to only the 3.0.0.0/24 network The server will accept clients with certificates from the CA on host 1.2.3.4 The server will allow users with OU=EZVPN aaa new-model aaa authentication login EZ_AUTHEN local aaa authorization network EZ_AUTHOR local ! username cisco password [...]]]></description>
			<content:encoded><![CDATA[<ul>
<li>EzVPN clients will get addresses on the 2.0.0.0/24 network</li>
<li>EzVPN clients will have access to only the 3.0.0.0/24 network</li>
<li>The server will accept clients with certificates from the CA on host 1.2.3.4</li>
<li>The server will allow users with OU=EZVPN</li>
</ul>
<pre>
aaa new-model
aaa authentication login EZ_AUTHEN local
aaa authorization network EZ_AUTHOR local
!
username cisco password cisco1234
!
clock timezone GMT 0
ntp server 1.2.3.4
!
crypto pki trustpoint CA
  enrollment url http://1.2.3.4
  subject-name ROUTER.example.com
  revocation-check none
!
crypto pki authenticate CA
crypto pki enroll CA
!
crypto isakmp policy 1
  encryption 3DES
  hash SHA
  authentication rsa-sig
  group 2
!
crypto isakmp identity dn
!
ip local pool EZ_POOL 2.0.0.1 2.0.0.254
!
ip access-list extended EZ_ROUTES
  permit 3.0.0.0 0.0.0.255
!
crypto isakmp client configuration group EZVPN
  pool EZ_POOL
  acl EZ_ROUTES
!
crypto isakmp profile EZ_PROFILE
  match identity group EZVPN
  client authentication list EZ_AUTHEN
  isakmp authorization list EZ_AUTHOR
  client configuration address respond
  virtual-template 1
!
crypto ipsec transform-set 3DES_SHA esp-3des esp-sha-hmac
!
crypto ipsec profile EZ_IPSEC_PROFILE
  set transform-set 3DES_SHA
  set isakmp-profile EZ_PROFILE
!
interface Virtual-Template 1 type tunnel
  ip unnumbered FastEthernet0/1
  tunnel mode ipsec ipv4
  tunnel protection ipsec profile EZ_IPSEC_PROFILE
!
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.packetslave.com/2010/08/12/ios-ezvpn-server-with-rsa-certificates-and-vti/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Opsview Slaves and “Host key verification failed”</title>
		<link>http://www.packetslave.com/2010/07/20/opsview-slaves-and-host-key-verification-failed/</link>
		<comments>http://www.packetslave.com/2010/07/20/opsview-slaves-and-host-key-verification-failed/#comments</comments>
		<pubDate>Tue, 20 Jul 2010 19:03:44 +0000</pubDate>
		<dc:creator>blanders</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[opsview]]></category>

		<guid isPermaLink="false">http://www.packetslave.com/?p=221</guid>
		<description><![CDATA[This is mostly for my own benefit. When setting up a new Opsview slave server, make sure ~nagios/.ssh/known_hosts has an entry for the FQDN of the slave, not just the short name. Otherwise you&#8217;ll spend an hour beating your head against the wall trying to figure out why ssh slavehost date works, but send2slaves -t [...]]]></description>
			<content:encoded><![CDATA[<p>This is mostly for my own benefit.  When setting up a new Opsview slave server, make sure <code>~nagios/.ssh/known_hosts</code> has an entry for the FQDN of the slave, not just the short name.  </p>
<p>Otherwise you&#8217;ll spend an hour beating your head against the wall trying to figure out why <code>ssh slavehost date</code> works, but <code>send2slaves -t slavehost</code> doesn&#8217;t.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.packetslave.com/2010/07/20/opsview-slaves-and-host-key-verification-failed/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IOS 12.4T: Management-Plane Protection</title>
		<link>http://www.packetslave.com/2010/07/06/ios-12-4t-management-plane-protection/</link>
		<comments>http://www.packetslave.com/2010/07/06/ios-12-4t-management-plane-protection/#comments</comments>
		<pubDate>Tue, 06 Jul 2010 17:39:55 +0000</pubDate>
		<dc:creator>blanders</dc:creator>
				<category><![CDATA[CCIE Security]]></category>
		<category><![CDATA[Cisco]]></category>

		<guid isPermaLink="false">http://www.packetslave.com/?p=216</guid>
		<description><![CDATA[While working through a CCIE Security practice lab, I came across a task that read (in essence): &#8220;Only allow SSH and SNMP access to the router through interface Gig0/1.  Do not use an interface or VTY ACL to accomplish this.&#8221;   A search through the IOS configuration guides and command references was unhelpful, including the [...]]]></description>
			<content:encoded><![CDATA[<p>While working through a CCIE Security practice lab, I came across a task that read (in essence): &#8220;Only allow SSH and SNMP access to the router through interface Gig0/1.  Do not use an interface or VTY ACL to accomplish this.&#8221;   A search through the IOS configuration guides and command references was unhelpful, including the last-resort tactic of &#8220;go to the Master Index and use Ctrl-F to search for likely keywords.&#8221;  Finally, I resorted to asking on GroupStudy.  Within minutes, the answer came back:  <strong>use management-plane protection</strong>.  What on earth is that?  To quote Cisco:</p>
<blockquote><p>The Management Plane Protection (MPP) feature in Cisco IOS software provides the capability to restrict the interfaces on which network management packets are allowed to enter a device. The MPP feature allows a network operator to designate one or more router interfaces as management interfaces. Device management traffic is permitted to enter a device only through these management interfaces. After MPP is enabled, no interfaces except designated management interfaces will accept network management traffic destined to the device.</p>
<p>http://www.cisco.com/en/US/docs/ios/12_4t/12_4t11/htsecmpp.html</p></blockquote>
<p>This feature was added in 12.4(6)T but <strong>only</strong> seems to be documented under Feature Guides, <strong>not</strong> in the main IOS command reference or configuration guides.  Gee, thanks Cisco!</p>
<p>A configuration example (based on the practice lab task above):</p>
<pre style="padding-left: 30px;">control-plane host
  management-interface GigabitEthernet0/1 allow ssh snmp
end</pre>
<p>When this configuration is applied to the router (assuming SSH has been previously configured), remote SSH and SNMP connections to the router will <strong>only</strong> be accepted when entering through Gi0/1.  This is based on the <strong>interface</strong>, not on the IP address.  SSH and SNMP connections to Gi0/1&#8242;s IP address entering through other interfaces will fail.  In addition, other management traffic (telnet, etc.) entering through Gi0/1 will also fail.  The complete list of what IOS considers management traffic is:</p>
<ul>
<li>SSH v1 and v2</li>
<li>telnet</li>
<li>HTTP / HTTPS</li>
<li>FTP</li>
<li>SNMP (all version)</li>
<li>TFTP</li>
<li>BEEP (Blocks Extensible Exchange Protocol)</li>
</ul>
<p>Note that other traffic destined for the router (such as routing protocols and ARP) are not affected, nor is traffic routed through the management interface.  This is different from the management-interface functionality on an ASA, where the designated port can only be used for management traffic.</p>
<p>In summary, it is quite annoying that Cisco doesn&#8217;t seem to have actually documented this feature properly, since it has the potential to be a very useful tool in the network administrator&#8217;s toolbox.  Depending on the network design, enabling MPP makes it less likely that a management protocol becomes accessible on an interface connected to a hostile network, while simplifying interface ACLs needed to properly secure the device.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.packetslave.com/2010/07/06/ios-12-4t-management-plane-protection/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Cisco ACE:  Basic HTTP Load Balancing</title>
		<link>http://www.packetslave.com/2010/01/24/cisco-ace-basic-http-load-balancing/</link>
		<comments>http://www.packetslave.com/2010/01/24/cisco-ace-basic-http-load-balancing/#comments</comments>
		<pubDate>Mon, 25 Jan 2010 02:37:53 +0000</pubDate>
		<dc:creator>blanders</dc:creator>
				<category><![CDATA[Cisco ACE]]></category>

		<guid isPermaLink="false">http://www.packetslave.com/?p=187</guid>
		<description><![CDATA[The ACE (Application Control Engine) is Cisco&#8217;s replacement for the CSS and CSM load balancers in their data center product line.  It comes in both a module (or &#8220;blade&#8221;) for the Catalyst 6500 switch and as a standalone appliance.  This post will cover the basics of configuring an ACE to load-balance a farm of HTTP [...]]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://www.cisco.com/en/US/products/ps5719/Products_Sub_Category_Home.html">ACE</a> (Application Control Engine) is Cisco&#8217;s replacement for the CSS and CSM load balancers in their data center product line.  It comes in both a <a href="http://www.cisco.com/en/US/products/ps6906/index.html">module</a> (or &#8220;blade&#8221;) for the Catalyst 6500 switch and as a <a href="http://www.cisco.com/en/US/products/ps8361/index.html">standalone appliance</a>.  This post will cover the basics of configuring an ACE to load-balance a farm of HTTP servers.  Subsequent posts will cover advanced features such as session persistence, health checks, and more.</p>
<h3>Assumptions</h3>
<ol>
<li>The ACE has been configured (possibly using the setup wizard) with interface and trunking options.</li>
<li>You are deploying the ACE in &#8220;routed mode&#8221;, e.g. the ACE is the default gateway for the backend servers and the VIPs live on a different network on the &#8220;outside&#8221; interface.</li>
<li>You have three web servers, WEB1, WEB2, and WEB3 all listening on port 80.</li>
</ol>
<h3>Configuration</h3>
<p>Unlike a router, the ACE is a &#8220;deny by default&#8221; device.  You must explicitly permit any traffic entering the ACE from the network.  Thus, we need an access list (ACL) to allow traffic to our HTTP virtual IP (VIP).</p>
<pre>access-list VLAN1 extended permit tcp any host 1.1.1.100 eq www
</pre>
<p>Next, we need to define our backend servers.  The &#8220;inservice&#8221; keyword is the ACE equivalent of the &#8220;no shutdown&#8221; command for an interface.  If you forget it, things won&#8217;t work.</p>
<pre>rserver host WWW1
  ip address 2.2.2.101
  inservice

rserver host WWW2
  ip address 2.2.2.102
  inservice

rserver host WWW3
  ip address 2.2.2.103
  inservice</pre>
<p>Now we need to define a health check, so that the ACE can determine if each backend server is functional and should receive traffic.  We&#8217;ll use a very basic HTTP service check at this point.  We configure the probe to check each server every 10 seconds and accept the default behavior of marking a server as &#8220;failed&#8221; if it fails 3 checks.  Also by default, the ACE will use an HTTP GET request for the root or &#8220;/&#8221; URL.  That&#8217;s fine for this example.  Finally, we tell the ACE that a server must respond for at least 60 seconds before it is marked as &#8220;back up&#8221; after a failure.</p>
<p>An important note:  the HTTP probe <strong>must</strong> have an expected status code or range of codes defined.  If you omit this statement, your backend servers will never come up!</p>
<pre>probe http HTTP_PROBE
  interval 10
  passdetect interval 60
  expect status 200
</pre>
<p>Now that we have our backend servers defined, as well as a probe to check their status, we can join them together into a server farm.  Again, don&#8217;t forget to &#8220;inservice&#8221; each rserver, or it won&#8217;t come up.</p>
<pre>serverfarm host HTTP_FARM
  probe HTTP_PROBE
  rserver WWW1
    inservice
  rserver WWW2
    inservice
  rserver WWW3
    inservice</pre>
<p>We need to tell the ACE about the virtual IP (VIP) on which we want it to listen.  This is done with a class-map.</p>
<pre>class-map match-all HTTP_VIP
  2 match virtual-address 1.1.1.100 tcp eq www</pre>
<p>Next, we need to define our load-balancing policy, to tell the ACE what to do with traffic once it hits the VIP.  In this case, we just direct it to the server farm defined above.</p>
<pre>policy-map type loadbalance http first-match HTTP_POLICY
  class class-default
    serverfarm HTTP_FARM</pre>
<p>The last piece we need is something to tie the policy to the VIP.  We do this with a policy-map of type &#8220;multi-match&#8221;.  For convenience, we configure the VIP to respond to ICMP echo request (pings) as long as at least one backend server is up.</p>
<pre>policy-map multi-match VIPs
  class HTTP_VIP
    loadbalance vip inservice
    loadbalance policy HTTP_POLICY
    loadbalance vip icmp-reply active</pre>
<p>Finally, we need to apply our policy to the &#8220;outside&#8221; interface of the ACE, bringing up our VIP.  We also need to apply the ACL we created above to allow the HTTP requests inbound.</p>
<pre>interface vlan 1
  description Public Network
  ip address 1.1.1.1 255.255.255.0
  access-group input VLAN1
  service-policy input VIPs
  no shutdown
</pre>
<p>That&#8217;s the end!  You can grab the full configuration <a href="/wp-content/uploads/2010/01/ace-basic-http.txt">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.packetslave.com/2010/01/24/cisco-ace-basic-http-load-balancing/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>BGP Route Manipulation</title>
		<link>http://www.packetslave.com/2009/12/21/bgp-route-manipulation/</link>
		<comments>http://www.packetslave.com/2009/12/21/bgp-route-manipulation/#comments</comments>
		<pubDate>Tue, 22 Dec 2009 04:03:43 +0000</pubDate>
		<dc:creator>blanders</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.packetslave.com/?p=179</guid>
		<description><![CDATA[At $DAYJOB, one of our sites has two WAN circuits from the same provider. Both learn our full global routing table via BGP, and both inbound and outbound traffic are load-balanced using BGP multi-path. In some cases, however, we want specific traffic to always prefer one path over the other (mostly for latency reasons). We [...]]]></description>
			<content:encoded><![CDATA[<p>At $DAYJOB, one of our sites has two WAN circuits from the same provider.  Both learn our full global routing table via BGP, and both inbound and outbound traffic are load-balanced using BGP multi-path.  In some cases, however, we want specific traffic to always prefer one path over the other (mostly for latency reasons).  We could use static routes, but we also want traffic to fail over to the other link in the case of an outage.</p>
<p>In this example, we want to manipulate the routing as follows:</p>
<ul>
<li>Traffic between the 192.168.1.0/24 local network and 10.0.1.0/24 remote network should prefer PATH #1</li>
<li>Traffic between the 192.168.2.0/24 local network and 10.0.2.0/24 remote network should prefer PATH #2</li>
</ul>
<p>Note: for the purpose of this example we will assume that the specified local and remote networks <em>only</em> talk to each other.  We don&#8217;t need to consider traffic between 192.168.1.0/24 and other remote networks, for example.  </p>
<pre>
router bgp 65000
  network 192.168.1.0 mask 255.255.255.0
  network 192.168.2.0 mask 255.255.255.0
  !
  neighbor 1.1.1.1 remote-as 65534
  neighbor 1.1.1.1 send-community
  neighbor 1.1.1.1 route-map PATH1-LEARN in
  neighbor 1.1.1.1 route-map PATH1-ADVERTISE out
  !
  neighbor 2.2.2.2 remote-as 65534
  neighbor 2.2.2.2 send-community
  neighbor 2.2.2.2 route-map PATH2-LEARN in
  neighbor 2.2.2.2 route-map PATH2-ADVERTISE out
!
</pre>
<p>First we need to define our ACLs to specify which traffic prefers which path</p>
<pre>
ip access-list standard PREFER-PATH1-LOCAL
  permit 192.168.1.0 0.0.0.255
!
ip access-list standard PREFER-PATH1-REMOTE
  permit 10.0.1.0 0.0.0.255
!
ip access-list standard PREFER-PATH2-LOCAL
  permit 192.168.2.0 0.0.0.255
!
ip access-list standard PREFER-PATH2-REMOTE
  permit 10.0.2.0 0.0.0.255
!
</pre>
<p>As we learn routes, we raise the local preference on routes coming from the preferred path, so they are chosen over the same routes learned on the other path with a default of 100.</p>
<p>The permit 999 ensures all routes are still learned from both peers, even if they&#8217;re not being manipulated.</p>
<pre>
route-map PATH1-LEARN permit 10
  match ip address PREFER-PATH1-REMOTE
  set local-preference 110
!
route-map PATH1-LEARN permit 999
!
route-map PATH2-LEARN permit 10
  match ip address PREFER-PATH2-REMOTE
  set local-preference 110
!
route-map PATH2-LEARN permit 999
!
</pre>
<p>For incoming traffic, we need to influence the ISP&#8217;s  routing decisions.  There are several ways of doing this, including the MED.  In our case, we&#8217;ll use the ISP&#8217;s pre-defined community values to force them to set a local preference on certain routes.</p>
<p>Again, the permit 999 rules ensure that we’re still sending all our routes to both peers, even if they don’t get tagged.</p>
<pre>
route-map PATH1-ADVERTISE permit 10
  match ip address PREFER-PATH1-LOCAL
  set community 65534:110
!
route-map PATH1-ADVERTISE permit 999
!
route-map PATH2-ADVERTISE permit 15
  match ip address PREFER-PATH2-LOCAL
  set community 65534:110
!
route-map PATH2-ADVERTISE permit 999
!
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.packetslave.com/2009/12/21/bgp-route-manipulation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ASA URL filtering with MPF</title>
		<link>http://www.packetslave.com/2009/10/21/asa-url-filtering-with-mpf/</link>
		<comments>http://www.packetslave.com/2009/10/21/asa-url-filtering-with-mpf/#comments</comments>
		<pubDate>Wed, 21 Oct 2009 17:36:03 +0000</pubDate>
		<dc:creator>blanders</dc:creator>
				<category><![CDATA[ASA]]></category>
		<category><![CDATA[CCIE]]></category>
		<category><![CDATA[CCIE Security]]></category>
		<category><![CDATA[filtering]]></category>
		<category><![CDATA[MPF]]></category>

		<guid isPermaLink="false">http://www.packetslave.com/?p=177</guid>
		<description><![CDATA[Problem:  &#8220;I want to block facebook.com and myspace.com but I don&#8217;t have a Websense server.&#8221; regex domlist1 "facebook.com" regex domlist2 "myspace.com" ! class-map type regex match-any DomainBlockList match regex domlist1 match regex domlist2 ! class-map type inspect http match-all BlockDomainsClass match request header host regex class DomainBlockList ! policy-map type inspect http http_inspection_policy class BlockDomainsClass [...]]]></description>
			<content:encoded><![CDATA[<p>Problem:  &#8220;I want to block facebook.com and myspace.com but I don&#8217;t have a Websense server.&#8221;</p>
<pre>regex domlist1 "facebook.com"
regex domlist2 "myspace.com"
!
class-map type regex match-any DomainBlockList
  match regex domlist1
  match regex domlist2
!
class-map type inspect http match-all BlockDomainsClass
  match request header host regex class DomainBlockList
!
policy-map type inspect http http_inspection_policy
  class BlockDomainsClass
  reset log
!
policy-map global_policy
  class inspection_default
  inspect http http_inspection_policy
!
service-policy global_policy global
wr mem</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.packetslave.com/2009/10/21/asa-url-filtering-with-mpf/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
