<?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>CCIE Lab</title>
	<atom:link href="http://ccielab.ro/feed/" rel="self" type="application/rss+xml" />
	<link>http://ccielab.ro</link>
	<description>Cry in the Lab, Laugh in the Datacenter</description>
	<lastBuildDate>Wed, 09 May 2012 12:02:36 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Private VLANs</title>
		<link>http://ccielab.ro/2012/05/private-vlans/</link>
		<comments>http://ccielab.ro/2012/05/private-vlans/#comments</comments>
		<pubDate>Wed, 09 May 2012 12:02:36 +0000</pubDate>
		<dc:creator>Marius Bunget</dc:creator>
				<category><![CDATA[CCNA]]></category>
		<category><![CDATA[Cisco IOS]]></category>
		<category><![CDATA[Switching]]></category>

		<guid isPermaLink="false">http://ccielab.ro/?p=243</guid>
		<description><![CDATA[PVLANs provide layer 2 isolation between ports within the same broadcast domain. There are three types of PVLAN ports:

Promiscuous— A promiscuous port can communicate with all interfaces, including the isolated and community ports within a PVLAN.
Isolated— An isolated port has complete Layer 2 separation from the  other ports within the same PVLAN, but not [...]]]></description>
			<content:encoded><![CDATA[<p><span>PVLANs provide layer 2 isolation between ports within the same broadcast domain. There are three types of PVLAN ports:</span></p>
<ul>
<li>Promiscuous— A promiscuous port can communicate with all interfaces, including the isolated and community ports within a PVLAN.</li>
<li>Isolated— An isolated port has complete Layer 2 separation from the  other ports within the same PVLAN, but not from the promiscuous ports.  PVLANs block all traffic to isolated ports except traffic from  promiscuous ports. Traffic from an isolated port is forwarded only to  promiscuous ports.</li>
<li>Community— Community ports communicate among themselves and with promiscuous ports. These interfaces are separated at Layer 2 from  all other interfaces in other communities or isolated ports within their  PVLAN.</li>
</ul>
<p><strong><span style="text-decoration: underline">IP Addressing</span></strong><br />
All the members of the Private VLAN can share a common IP Space where  the IP space is assigned to the Primary VLAN. The hosts connected to  isolated or community ports can have the addresses assigned from the  address space of the Primary VLAN.</p>
<p style="text-align: center">
<p style="text-align: center"><img class="aligncenter size-full wp-image-246" src="http://ccielab.ro/wp-content/uploads/2012/04/pvlan1.png" alt="pvlan" width="483" height="271" /></p>
<p style="text-align: left">
<p><strong><span style="text-decoration: underline"><span style="text-decoration: underline">Steps to Configure Private VLAN</span></span></strong></p>
<p>1. Set VTP mode to transparent<br />
2. Create Primary and Secondary VLANs<br />
3. Map secondary VLANs to Primary VLANs<br />
3. Configure ports in Secondary VLANs and assign VLAN memberships<br />
4. Configure Promiscuous ports and map them to primary-secondary VLAN pairs</p>
<p style="text-align: left">Configuration:</p>
<p style="text-align: left">Switches S1 and S2  must be configured as follows:</p>
<p style="text-align: left">Create vlans 101 and 102 and then associate them to the primary Vlan 100.</p>
<pre>vlan 100
  private-vlan primary
  private-vlan association 101-102
!
vlan 101
  private-vlan community
!
vlan 102
  private-vlan community</pre>
<p style="text-align: left">
<p>On S1:</p>
<pre>interface FastEthernet0/1
 switchport private-vlan mapping 100 101-102
 switchport mode private-vlan promiscuous
!
interface FastEthernet0/3
 switchport private-vlan host-association 100 101
 switchport mode private-vlan host
!
interface FastEthernet0/5
 switchport private-vlan host-association 100 102
 switchport mode private-vlan host
!
interface FastEthernet0/13
 switchport trunk encapsulation dot1q
 switchport mode trunk

On S2:
<pre>interface GigabitEthernet0/4
 switchport private-vlan host-association 100 101
 switchport mode private-vlan host
!
interface GigabitEthernet0/6
 switchport private-vlan host-association 100 102
 switchport mode private-vlan host
!
interface GigabitEthernet0/13
 switchport trunk encapsulation dot1q
 switchport mode trunk</pre>
</pre>
]]></content:encoded>
			<wfw:commentRss>http://ccielab.ro/2012/05/private-vlans/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Simple IOS authentication with Freeradius server</title>
		<link>http://ccielab.ro/2012/03/simple-ios-authentication-with-freeradius-server/</link>
		<comments>http://ccielab.ro/2012/03/simple-ios-authentication-with-freeradius-server/#comments</comments>
		<pubDate>Fri, 30 Mar 2012 19:47:58 +0000</pubDate>
		<dc:creator>Alex Juncu</dc:creator>
				<category><![CDATA[CCNP]]></category>
		<category><![CDATA[HowTo]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Switching]]></category>
		<category><![CDATA[AAA]]></category>
		<category><![CDATA[authentication]]></category>
		<category><![CDATA[FreeRADIUS]]></category>
		<category><![CDATA[RADIUS]]></category>
		<category><![CDATA[securing devices]]></category>

		<guid isPermaLink="false">http://ccielab.ro/?p=162</guid>
		<description><![CDATA[Securing a router or a switch involves not only filtering traffic with ACLs, but also means securing the device itself. Creating users with certain privilege levels is an important first step.  This can be done on a device by device basis or using a centralized authentication server. In any case, it involves using AAA (Authentication, [...]]]></description>
			<content:encoded><![CDATA[<p>Securing a router or a switch involves not only filtering traffic with ACLs, but also means securing the device itself. Creating users with certain privilege levels is an important first step.  This can be done on a device by device basis or using a centralized authentication server. In any case, it involves using <strong>AAA</strong> (Authentication, Authorization and Accounting).</p>
<p>If using a centralized system for user authentication, the router or switch would be an authentication client. It will need to communicate with a server using a specialized protocol. Two such protocols are wide known: TACACS, a Cisco proprietary protocol and RADIUS, an open standard protocol. In a Cisco-centered  network, IOS authentication would work with Cisco&#8217;s ACS (Access Control Server), but in some cases , specially for lab purposes, ACS could be harder to get an setup.</p>
<p>A very quick way to setup an authentication server is to use <strong>FreeRADIUS</strong>, an open source server that uses the RADIUS protocol. It can be easily installed on a Linux box and used with minimum configurations. Here are the steps to setup:</p>
<p>Install the packet:</p>
<blockquote><p>root@radiusserver# apt-get install freeradius</p></blockquote>
<p>Add each client (router or switch) in the /etc/freeradius/clients.conf file. Each client is identified by its hostname and requires a password (secret).</p>
<blockquote><p>root@radiusserver# vim /etc/freeradius/clients.conf</p>
<p>Client 192.168.0.2<br />
{<br />
secret = authentications3cr3t<br />
shortname = ClientRouter</p>
<p>}</p></blockquote>
<p>Add each user that is allowed on the device.</p>
<blockquote><p>root@radiusserver# vim /etc/freeradius/users.conf</p>
<p>iosuser Cleartext-Password := “icanhazroot”<br />
DEFAULT Auth-Type := Reject</p></blockquote>
<p>Start or restart the FreeRADIUS server:</p>
<blockquote><p>root@radiusserver# /etc/init.d/freeradius restart</p></blockquote>
<p>On the client side (the network device), AAA needs to be enabled, the RADIUS server configured and then the authentication need to be set to use an external server.</p>
<blockquote><p>ClientRouter(config)# aaa new-model<br />
ClientRouter(config)# radius-server host $RADIUS_SERVER_IP auth 1812 acct 1813 key authentications3cr3t<br />
ClientRouter(config)# aaa authentication login default group radius</p></blockquote>
<p>This is a basic configuration of a FreeRADIUS server, but it can also provide features like LDAP intergration.</p>
]]></content:encoded>
			<wfw:commentRss>http://ccielab.ro/2012/03/simple-ios-authentication-with-freeradius-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IP CEF</title>
		<link>http://ccielab.ro/2012/03/ip-cef/</link>
		<comments>http://ccielab.ro/2012/03/ip-cef/#comments</comments>
		<pubDate>Mon, 26 Mar 2012 21:35:51 +0000</pubDate>
		<dc:creator>Marius Bunget</dc:creator>
				<category><![CDATA[Routing]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://ccielab.ro/?p=185</guid>
		<description><![CDATA[CEF load balancing is based on a combination of  source and destination packet information. It allows you to optimize  resources by distributing traffic over multiple paths for transferring  data to a destination. You can configure load balancing on a  per-destination or per-packet basis. Load balancing decisions are made  on the [...]]]></description>
			<content:encoded><![CDATA[<p><span>CEF load balancing is based on a combination of  source and destination packet information. It allows you to optimize  resources by distributing traffic over multiple paths for transferring  data to a destination. You can configure load balancing on a  per-destination or per-packet basis. Load balancing decisions are made  on the outbound interface. When you configure load balancing, configure  it on outbound interfaces. </span></p>
<p><span>Per-destination load balancing allows the router  to use multiple paths to achieve load sharing. Packets for a given  source-destination host pair are guaranteed to take the same path, even  if multiple paths are available. Traffic destined for different pairs  tend to take different paths. Per-destination load balancing is enabled  by default when you enable CEF.</span></p>
<p>To determine if CEF is enabled globally on a router, use the  commands <em><span>show ip cef</span></em> and <em><span>show ipv6 cef</span></em>. If it is not enabled by default, you  can turn it on globally using the command <em><span>ip  cef</span></em> for IPv4. To enable CEF for IPv6, first enable CEF for IPv4, then use  the command <em><span>ipv6 cef</span></em>. You can verify that CEF is enabled on an interface using the  commands <em><span>show cef interface</span> {interface}</em> and  <em><span>show ipv6 cef</span> {inte</em><em>rface} </em><span><em>detail</em></span>.</p>
<p>Topology</p>
<p style="text-align: center"><img class="size-full wp-image-205 aligncenter" src="http://ccielab.ro/wp-content/uploads/2012/03/ccielab.png" alt="ip cef" width="267" height="105" /></p>
<p style="text-align: left"><span lang="en"><span>The routing table</span> <span>of</span> <span>router</span> <span>R2</span> <span>is</span> <span>similar to</span> <span>R1:</span></span></p>
<p style="text-align: left">R1#show ip route</p>
<p style="text-align: left">[...]</p>
<p style="text-align: left">C    192.168.12.0/24 is directly connected, FastEthernet0/0<br />
1.0.0.0/24 is subnetted, 1 subnets<br />
C       1.1.1.0 is directly connected, Loopback1<br />
2.0.0.0/24 is subnetted, 1 subnets<br />
S       2.2.2.0 [1/0] via 192.168.21.2<br />
[1/0] via 192.168.12.2<br />
C    192.168.21.0/24 is directly connected, FastEthernet1/0</p>
<p style="text-align: left">Check if CEF is enabled and show the forwarding information base (FIB) with information obtained from the  routing table.</p>
<p style="text-align: left">R1#show ip cef<br />
Prefix                    Next Hop                    Interface<br />
0.0.0.0/0           drop                              Null0 (default route handler entry)<br />
0.0.0.0/32         receive<br />
1.1.1.0/24           attached                      Loopback1<br />
1.1.1.0/32           receive<br />
1.1.1.1/32            receive<br />
1.1.1.255/32       receive<br />
2.2.2.0/24           192.168.21.2            FastEthernet1/0<br />
192.168.12.2            FastEthernet0/0</p>
<p style="text-align: left">[...]</p>
<p>Routers with default configuration perform Load Sharing per destination, also known as Fast Switching. Fast switching is the default IOS switching mode in some routers. The <em>debug ip packet</em> command displays process packets.</p>
<p style="text-align: left">R1#debug ip packet<br />
IP packet debugging is on<br />
R1#ping 2.2.2.2 repeat 1</p>
<p>Type escape sequence to abort.<br />
Sending 1, 100-byte ICMP Echos to 2.2.2.2, timeout is 2 seconds:<br />
!<br />
Success rate is 100 percent (1/1), round-trip min/avg/max = 56/56/56 ms<br />
R1#<br />
*Mar  1 00:39:40.379: IP: tableid=0, s=192.168.12.1 (local), d=2.2.2.2 (FastEthernet1/0), routed via FIB<br />
*Mar  1 00:39:40.379: IP: s=192.168.12.1 (local), d=2.2.2.2 (FastEthernet1/0), len 100, sending<br />
*Mar  1 00:39:40.431: IP: tableid=0, s=2.2.2.2 (FastEthernet0/0), d=192.168.12.1 (FastEthernet0/0), routed via RIB<br />
*Mar  1 00:39:40.431: IP: s=2.2.2.2 (FastEthernet0/0), d=192.168.12.1 (FastEthernet0/0), len 100, rcvd 3<br />
R1#ping 2.2.2.2 repeat 1 so<br />
R1#ping 2.2.2.2 repeat 1 source loo 1</p>
<p>Type escape sequence to abort.<br />
Sending 1, 100-byte ICMP Echos to 2.2.2.2, timeout is 2 seconds:<br />
<span>Packet sent with a source address of 1.1.1.1</span><br />
!<br />
Success rate is 100 percent (1/1), round-trip min/avg/max = 56/56/56 ms<br />
R1#<br />
*Mar  1 00:39:48.411: IP: tableid=0, s=1.1.1.1 (local), d=2.2.2.2 (FastEthernet0/0), routed via FIB<br />
*Mar  1 00:39:48.411: IP: s=1.1.1.1 (local), d=2.2.2.2 (FastEthernet0/0), len 100, sending<br />
*Mar  1 00:39:48.467: IP: tableid=0, s=2.2.2.2 (FastEthernet1/0), d=1.1.1.1 (Loopback1), routed via RIB<br />
*Mar  1 00:39:48.467: IP: s=2.2.2.2 (FastEthernet1/0), d=1.1.1.1, len 100, rcvd 4</p>
<p style="text-align: left">Note that for different source-destination pairs the outbound interface changes.</p>
<p style="text-align: left"><span lang="en"><span>Per packet </span></span><span lang="en"><span>Load Sharing configuration.</span></span></p>
<p style="text-align: left">R1(config)#int f 0/0<br />
R1(config-if)#no ip route-cache    //enable process switching<br />
R1(config-if)#ip load-sharing per-packet<br />
R1(config-if)#exit<br />
R1(config)#int f 1/0<br />
R1(config-if)#no ip route-cache<br />
R1(config-if)#ip load-sharing per-packet<br />
R1(config-if)#exit</p>
<p style="text-align: left">R1#sh cef interface fastEthernet 0/0<br />
[...]<br />
Per packet load-sharing is enabled<br />
[...]<br />
Fast switching type 1, interface type 18<br />
IP CEF switching disabled</p>
<p style="text-align: left">Verify per packet Load Sharing:</p>
<p style="text-align: left">R1#ping 2.2.2.2 source loopback 1 repeat 3</p>
<p>Type escape sequence to abort.<br />
Sending 3, 100-byte ICMP Echos to 2.2.2.2, timeout is 2 seconds:<br />
Packet sent with a source address of 1.1.1.1<br />
!!!<br />
Success rate is 100 percent (3/3), round-trip min/avg/max = 16/37/52 ms<br />
R1#<br />
*Mar  1 01:00:35.419: IP: tableid=0, s=1.1.1.1 (local), d=2.2.2.2 (FastEthernet1/0), routed via FIB<br />
*Mar  1 01:00:35.419: IP: s=1.1.1.1 (local), d=2.2.2.2 (FastEthernet1/0), len 100, sending<br />
!<br />
*Mar  1 01:00:35.467: IP: tableid=0, s=1.1.1.1 (local), d=2.2.2.2 (FastEthernet0/0), routed via FIB<br />
*Mar  1 01:00:35.467: IP: s=1.1.1.1 (local), d=2.2.2.2 (FastEthernet0/0), len 100, sending<br />
!<br />
*Mar  1 01:00:35.523: IP: tableid=0, s=1.1.1.1 (local), d=2.2.2.2 (FastEthernet1/0), routed via FIB<br />
*Mar  1 01:00:35.523: IP: s=1.1.1.1 (local), d=2.2.2.2 (FastEthernet1/0), len 100, sending</p>
<p>When CEF is disabled all the packets are processed by the Routing Information Base (RIB) as shown below:</p>
<p style="text-align: left">R1(config)#no ip cef<br />
R1(config)#exit<br />
R1#clear ip cef * prefix-statistics<br />
R1#clear ip cef 2.2.2.2 prefix-statistics<br />
R1#ping 2.2.2.2 source loopback 1 repeat 2<br />
Type escape sequence to abort.<br />
Sending 2, 100-byte ICMP Echos to 2.2.2.2, timeout is 2 seconds:<br />
Packet sent with a source address of 1.1.1.1<br />
!!<br />
Success rate is 100 percent (2/2), round-trip min/avg/max = 28/56/84 ms<br />
*Mar  1 01:07:07.475: IP: tableid=0, s=1.1.1.1 (local), d=2.2.2.2 (FastEthernet0/0), routed via RIB<br />
*Mar  1 01:07:07.475: IP: s=1.1.1.1 (local), d=2.2.2.2 (FastEthernet0/0), len 100, sending<br />
!<br />
*Mar  1 01:07:07.507: IP: tableid=0, s=1.1.1.1 (local), d=2.2.2.2 (FastEthernet1/0), routed via RIB<br />
*Mar  1 01:07:07.507: IP: s=1.1.1.1 (local), d=2.2.2.2 (FastEthernet1/0), len 100, sending</p>
]]></content:encoded>
			<wfw:commentRss>http://ccielab.ro/2012/03/ip-cef/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IOS + Linux = Quagga</title>
		<link>http://ccielab.ro/2011/12/ios-linux-quagga/</link>
		<comments>http://ccielab.ro/2011/12/ios-linux-quagga/#comments</comments>
		<pubDate>Thu, 29 Dec 2011 22:41:49 +0000</pubDate>
		<dc:creator>Alex Juncu</dc:creator>
				<category><![CDATA[Cisco IOS]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[BGP]]></category>
		<category><![CDATA[OSFP]]></category>
		<category><![CDATA[quagga]]></category>
		<category><![CDATA[RIP]]></category>
		<category><![CDATA[zebra]]></category>

		<guid isPermaLink="false">http://ccielab.ro/?p=180</guid>
		<description><![CDATA[Cisco IOS&#8217;s shell is a popular interface for devices in the networking world. But also in the network world, there are a lot of Linux/Open Source fans. The Quagga open source project tries to bring together IOS and Linux, by providing an IOS-like interface for configuring Linux&#8217;s interfaces, routing table and firewall, along side its [...]]]></description>
			<content:encoded><![CDATA[<p>Cisco IOS&#8217;s shell is a popular interface for devices in the networking world. But also in the network world, there are a lot of Linux/Open Source fans. The <a href="http://www.quagga.net" target="_blank"><strong>Quagga</strong></a> open source project tries to bring together IOS and Linux, by providing an IOS-like interface for configuring Linux&#8217;s interfaces, routing table and firewall, along side its own implementations of RIP, OSPF and BGP daemons.</p>
<p>The Quagga Software Routing Suite comes as a set of daemos. The main one is the <strong>zerbra daemon</strong> (Zebra is the old name of the project). This core daemon does the interaction with the Linux kernel and, also, with other daemons like ripd (RIP daemon), ospfd (OSPF daemon), bgpd (BGP daoemon). Quagga is modular, so you can implement new protocols if needed via a standard API.</p>
<p>To configure Quagga, you first need to start the daemons (at least the core one), in the <em>/etc/quagga/daemons</em> file. Each daemon has its own configuration file (ex. <em>/etc/quagga/zebra.conf</em>, <em>/etc/quagga/ripd.conf</em> etc.). Accessing the IOS-like shell is done via the <strong>vtysh</strong> command. Once in this shell, most commands available in Cisco&#8217;s IOS are available.</p>
<blockquote><p>Router / # cd<br />
Router ~ # vtysh</p>
<p>Hello, this is Quagga (version 0.99.18).<br />
Copyright 1996-2005 Kunihiro Ishiguro, et al.</p>
<p>Router# conf t<br />
Router(config)# hostname  LinuxRouter<br />
LinuxRouter(config)# exit<br />
LinuxRouter# show ?<br />
bgp             BGP information<br />
clns            clns network information<br />
daemons         Show list of running daemons<br />
debugging       State of each debugging option</p>
<p>[...]</p></blockquote>
<p>Keep in mind that some things are not 100% identical to a Cisco router (ex. the interface names). Here&#8217;s an example of how to configure an interface.</p>
<blockquote><p>LinuxRouter# conf t<br />
LinuxRouter(config)# interface  eth0<br />
LinuxRouter(config-if)# ip address  141.85.42.1 ?<br />
A.B.C.D/M  IP address (e.g. 10.0.0.1/8)<br />
LinuxRouter(config-if)# ip address  141.85.42.1/24<br />
LinuxRouter(config-if)# link-detect</p></blockquote>
<p>Monitor output (show commands) are similar aside some Linux specific details (ex. Kernel routes are available in Linux, but not in IOS).</p>
<blockquote><p>Router# sh ip route<br />
Codes: K &#8211; kernel route, C &#8211; connected, S &#8211; static, R &#8211; RIP, O &#8211; OSPF,<br />
I &#8211; ISIS, B &#8211; BGP, &gt; &#8211; selected route, * &#8211; FIB route</p>
<p>K * 0.0.0.0/0 via 192.0.2.1, venet0 inactive<br />
O 10.10.12.0/24 [110/10] is directly connected, eth0, 00:03:41<br />
C&gt;* 10.10.12.0/24 is directly connected, eth0<br />
O 10.10.14.0/24 [110/10] is directly connected, eth1, 00:03:36<br />
C&gt;* 10.10.14.0/24 is directly connected, eth1<br />
O&gt;* 10.10.23.0/24 [110/20] via 10.10.12.2, eth0, 00:02:46<br />
O&gt;* 10.10.24.0/24 [110/20] via 10.10.12.2, eth0, 00:02:14<br />
*via 10.10.14.4, eth1, 00:02:14<br />
O&gt;* 10.10.25.0/24 [110/20] via 10.10.12.2, eth0, 00:02:41<br />
O&gt;* 10.10.35.0/24 [110/30] via 10.10.12.2, eth0, 00:01:21<br />
* via 10.10.14.4, eth1, 00:01:21<br />
O&gt;* 10.10.45.0/24 [110/20] via 10.10.14.4, eth1, 00:02:08<br />
C&gt;* 127.0.0.0/8 is directly connected, lo<br />
C&gt;* 127.0.0.1/32 is directly connected, venet0<br />
C&gt;* 172.10.10.0/32 is directly connected, venet0<br />
K&gt;* 192.0.2.1/32 is directly connected, venet0</p></blockquote>
<p>Configuring a routing protocol instance is also similar:</p>
<blockquote><p>LinuxRouter# conf t<br />
LinuxRouter(config)# router ospf<br />
LinuxRouter(config-router)# network  192.168.123.0/0 area 0</p></blockquote>
<p>As you can see, coming from an IOS background, this tool is very easy to use on your Linux box. It is far from perfect since it doesn&#8217;t have the years in production like IOS or iproute2, but it is cool to test out.</p>
]]></content:encoded>
			<wfw:commentRss>http://ccielab.ro/2011/12/ios-linux-quagga/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>ACL case study: The hidden defaults of ACLs</title>
		<link>http://ccielab.ro/2011/12/the-hidden-defaults-of-acls/</link>
		<comments>http://ccielab.ro/2011/12/the-hidden-defaults-of-acls/#comments</comments>
		<pubDate>Tue, 13 Dec 2011 10:42:45 +0000</pubDate>
		<dc:creator>Alex Juncu</dc:creator>
				<category><![CDATA[CCNA]]></category>
		<category><![CDATA[Cisco IOS]]></category>
		<category><![CDATA[acl]]></category>
		<category><![CDATA[any]]></category>
		<category><![CDATA[deny]]></category>
		<category><![CDATA[filter]]></category>
		<category><![CDATA[permit]]></category>

		<guid isPermaLink="false">http://ccielab.ro/?p=164</guid>
		<description><![CDATA[Unlike Linux&#8217;s iptables, Cisco&#8217;s filtering via Access Control Lists sometimes has hidden behavior.
Let us test how ACL filtering works using the following topology. We assume that we have Layer 3 connectivity via static routes. We will apply ACLs on the outbound direction of F1/0 on R2 (we want it to be somewhere in the path [...]]]></description>
			<content:encoded><![CDATA[<p>Unlike Linux&#8217;s iptables, Cisco&#8217;s filtering via Access Control Lists sometimes has hidden behavior.</p>
<p>Let us test how ACL filtering works using the following topology. We assume that we have Layer 3 connectivity via static routes. We will apply ACLs on the outbound direction of F1/0 on R2 (we want it to be somewhere in the path from R1 to R3)</p>
<p><img class="aligncenter size-medium wp-image-165" src="http://ccielab.ro/wp-content/uploads/2011/12/3r-300x148.png" alt="3r" width="300" height="148" /></p>
<p>With no ACLs applied anywhere, <strong>all </strong>traffic will flow.</p>
<blockquote><p>R1#ping 3.3.3.3 source 1.1.1.1<br />
Packet sent with a source address of 1.1.1.1<br />
!!!!!<br />
Success rate is 100 percent</p></blockquote>
<p>Let&#8217;s start with the basics and make a classic standard access list that denies R1&#8217;s loopback.</p>
<blockquote><p>R2(config)#access-list 42 deny host 1.1.1.1<br />
R2(config)#int f1/0<br />
R2(config-if)#ip access-group 42 out</p></blockquote>
<p>The loopback on R1 is blocked&#8230;</p>
<blockquote><p>R1#ping 3.3.3.3 source 1.1.1.1<br />
U.U.U<br />
Success rate is 0 percent (0/5)</p></blockquote>
<p>&#8230; but so is any other traffic that goes out of R2&#8217;s F1/0.</p>
<blockquote><p>R1#ping 3.3.3.3 source F0/0<br />
U.U.U<br />
Success rate is 0 percent (0/5)</p></blockquote>
<p>The first rule of Cisco&#8217;s ACLs is that <strong>there is an implicit deny (ip) all (all) rule at the end of every ACL</strong>. But this is <strong>not visible</strong> anywhere. You have to know it.</p>
<blockquote><p>R2#sh access-lists<br />
Standard IP access list 42<br />
10 deny   1.1.1.1 (8 matches)<br />
Extended IP access list BLOCK_HTTP</p></blockquote>
<p>But if that ACL is empty? What if you apply an access list that does not contain any rules (was not declared)?</p>
<blockquote><p>R2(config)#int f1/0<br />
R2(config-if)#ip access-group 28 out<br />
R2(config-if)#do sh access-lists<br />
Standard IP access list 42<br />
10 deny   1.1.1.1 (8 matches)<br />
Extended IP access list BLOCK_HTTP</p>
<p>R1#ping 3.3.3.3 source 1.1.1.1</p>
<p>Type escape sequence to abort.<br />
!!!!!<br />
Success rate is 100 percent</p></blockquote>
<p>Traffic passes. The inexistent ACL applied on an interface is ignored. But this is because you can&#8217;t have an empty classical (numbered) ACL. What if you do the same thing with a named ACL?</p>
<blockquote><p>R2(config)#ip access-list standard EMPTY_ACL<br />
R2(config-std-nacl)#exit<br />
R2(config)#do sh ip access-list<br />
Standard IP access list 42<br />
10 deny   1.1.1.1 (8 matches)<br />
Standard IP access list EMPTY_ACL<br />
Extended IP access list BLOCK_HTTP<br />
R2(config)#int f1/0<br />
R2(config-if)#ip access-group EMPTY_ACL out</p></blockquote>
<blockquote>
<p style="text-align: left">R1#ping 3.3.3.3 source 1.1.1.1</p>
<p style="text-align: left">Type escape sequence to abort.<br />
!!!!!<br />
Success rate is 100 percent</p></blockquote>
<p style="text-align: left">Traffic is still not filtered. So, the rule is that <strong>a empty (inexistant or deleted)  ACL is ignored by the interface filter</strong>.</p>
<p style="text-align: left">One more ACL applied on R2 with a deny all rule (no traffic should pass out of F1/0).</p>
<blockquote><p>R2(config)#ip access-list standard DENY_ALL_ACL<br />
R2(config-std-nacl)#deny any<br />
R2(config-std-nacl)#do sh ip access<br />
Standard IP access list 42<br />
10 deny   1.1.1.1 (8 matches)<br />
Standard IP access list DENY_ALL_ACL<br />
10 deny   any (8 matches)<br />
Standard IP access list EMPTY_ACL<br />
10 deny   any (8 matches)<br />
Extended IP access list BLOCK_HTTP<br />
R2(config-std-nacl)#int f1/0<br />
R2(config-if)#ip access-group DENY_ALL_ACL out</p></blockquote>
<p>Ping form R1 is filtered.</p>
<p>R1#ping 3.3.3.3 source 1.1.1.1<br />
Packet sent with a source address of 1.1.1.1<br />
U.U.U<br />
Success rate is 0 percent (0/5)</p>
<p>Since no traffic should go out the interface, a ping from R2 to R3 should also fail, yet it doesn&#8217;t.</p>
<blockquote><p>R2#ping 3.3.3.3<br />
!!!!!<br />
Success rate is 100 percent (5/5), round-trip min/avg/max = 8/20/44 ms</p></blockquote>
<p>As a final rule, <strong>traffic generated by a router is never filtered by an ACL applied any interface of that router</strong>.</p>
]]></content:encoded>
			<wfw:commentRss>http://ccielab.ro/2011/12/the-hidden-defaults-of-acls/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>RIP lab: Send RIP routes to remote neighbours</title>
		<link>http://ccielab.ro/2011/07/rip-lab-send-rip-routes-to-remote-neighbours/</link>
		<comments>http://ccielab.ro/2011/07/rip-lab-send-rip-routes-to-remote-neighbours/#comments</comments>
		<pubDate>Mon, 18 Jul 2011 07:57:19 +0000</pubDate>
		<dc:creator>Alex Juncu</dc:creator>
				<category><![CDATA[CCNA]]></category>
		<category><![CDATA[CCNP]]></category>
		<category><![CDATA[Cisco IOS]]></category>
		<category><![CDATA[Routing]]></category>
		<category><![CDATA[neighbor]]></category>
		<category><![CDATA[RIP]]></category>
		<category><![CDATA[routes]]></category>
		<category><![CDATA[unicast]]></category>
		<category><![CDATA[updates]]></category>

		<guid isPermaLink="false">http://ccielab.ro/?p=156</guid>
		<description><![CDATA[Scenario:
You have two routers running RIP, but the two routers aren&#8217;t directly connected because there is a third router between them. See topology below. How do you get routes across because RIP only communicates with routers that are directly connected?

The simple answer is to create a GRE tunnel between R1 and R3 so a tun [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Scenario:</strong><br />
You have two routers running RIP, but the two routers aren&#8217;t directly connected because there is a third router between them. See topology below. How do you get routes across because RIP only communicates with routers that are directly connected?<br />
<img class="alignnone size-full wp-image-158" src="http://ccielab.ro/wp-content/uploads/2011/07/riplab1.png" alt="riplab" width="325" height="113" /></p>
<p>The simple answer is to create a GRE tunnel between R1 and R3 so a tun interface simulates a direct connection of the two routers. But let&#8217;s take a more didactic approach to remember some things about RIP.</p>
<p>RIP v2 sends the updates to the address 224.0.0.9 that is a local multicast address (TTL=1).  But there is another, very important in some situations (like some Frame Relay networks), way to send routes, and that is via unicast to a statically configured neighbor. Configuration is done via the <strong>neighbor</strong> command in the <strong>router rip</strong> configuration.  The routes will be encapsulated in normal IP unicast packets and since RIP runs on top of UDP, they should be routed as any other packet.</p>
<p><strong>R1:</strong></p>
<blockquote><p>interface Serial0/0/1<br />
ip address 10.1.2.1 255.255.255.0<br />
interface Loopback 0<br />
ip address 192.168.0.1 255.255.255.0<br />
router rip<br />
version 2<br />
passive-interface Loopback0<br />
network 10.0.0.0<strong><br />
network 192.168.0.0</strong><br />
<strong>neighbor 10.2.3.3</strong><br />
no auto-summary<strong> </strong></p></blockquote>
<p><strong>R3:</strong></p>
<blockquote><p>interface Serial0/0/1<br />
ip address 10.2.3.3 255.255.255.0<br />
interface Loopback 0<br />
ip address 172.16.0.1 255.255.255.0<br />
router rip<br />
version 2<br />
passive-interface Loopback0<br />
<strong>network 10.0.0.0</strong><br />
network 172.16.0.0<br />
<strong>neighbor 10.1.2.1</strong><br />
no auto-summary</p></blockquote>
<p>You still need to have a network command for the interfaces when you send and receive the updates (in this case 10.0.0.0) otherwise the received updates will be ignored.</p>
<p>First thing you should be careful of is the fact that R1 and R3 need layer3 communication. So you do need static routes for the R1 and R3 routers through R2.</p>
<p>Having connectivity between each other, the router starts sending unicast packets with the routes. debug ip rip would show the following:</p>
<blockquote><p>RIP: sending v2 update to 10.1.2.1 via Serial0/0/1 (10.2.3.3)<br />
RIP: build update entries<br />
172.16.0.0/24 via 0.0.0.0, metric 1, tag 0</p></blockquote>
<p>Notice the update is sent to an unicast address and not 224.0.0.9.</p>
<p>Routes are received but they still are not in the routing tables. debug ip rip shows why:</p>
<blockquote><p>RIP: ignored v2 update from bad source 10.2.3.3 on Serial0/0/1</p></blockquote>
<p>This reminds us of how RIP works: if a router receives an update it checks to see if the <strong>source</strong> of the packet is on the same subnet as the IP configured on the interface. If they don&#8217;t match, the update is ignored. In our case, the source of the updates are not on the same network because R2 does not modify the packet source/destination in any way.</p>
<p>The solution to this is to disable the default mechanism with the <strong>no validate-update-source</strong> command in the router rip configuration. This way any updates will be accepted.</p>
<p>Here is a wanted route in the routing table of R3:</p>
<blockquote><p>R    192.168.0.0/24 [120/1] via 10.1.2.1, 00:00:27</p></blockquote>
<p>Notice that the next hop is not directly connected so it need to do a recursive lookup and use the static route to send it to R2 first.</p>
<blockquote><p>S       10.1.2.1/32 [1/0] via 10.2.3.2</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://ccielab.ro/2011/07/rip-lab-send-rip-routes-to-remote-neighbours/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>DHCP Relay Server and NAT Case Study</title>
		<link>http://ccielab.ro/2010/08/dhcp-relay-server-and-nat-case-study/</link>
		<comments>http://ccielab.ro/2010/08/dhcp-relay-server-and-nat-case-study/#comments</comments>
		<pubDate>Tue, 03 Aug 2010 17:38:37 +0000</pubDate>
		<dc:creator>Alex Juncu</dc:creator>
				<category><![CDATA[CCNA]]></category>
		<category><![CDATA[CCNP]]></category>
		<category><![CDATA[Routing]]></category>
		<category><![CDATA[Switching]]></category>
		<category><![CDATA[boradcast]]></category>
		<category><![CDATA[debug ip packet]]></category>
		<category><![CDATA[debup ip dhcp server]]></category>
		<category><![CDATA[DHCP]]></category>
		<category><![CDATA[DHCP Relay]]></category>
		<category><![CDATA[Gateway IP Address]]></category>
		<category><![CDATA[GIADDR]]></category>
		<category><![CDATA[inside nat]]></category>
		<category><![CDATA[ip helper-address]]></category>
		<category><![CDATA[NAT]]></category>
		<category><![CDATA[PAT]]></category>
		<category><![CDATA[unicast]]></category>

		<guid isPermaLink="false">http://ccielab.ro/?p=143</guid>
		<description><![CDATA[Topology:

Scenario:
The Host in the 192.168.0.0/24 network should get its IP address from a DHCP server.
Relay is the default router for the Host, but doesn&#8217;t have a DHCP service running. It will pass any DHCP requests from it&#8217; f1/0 interface to the DHCP server that has DHCP pools configured on it, using the &#8220;ip helper-addres&#8221; command.
Between [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Topology:</strong></p>
<p><img class="alignnone size-full wp-image-144" src="http://ccielab.ro/wp-content/uploads/2010/07/dhcp_nat.png" alt="dhcp_nat" width="307" height="109" /></p>
<p style="text-align: justify"><strong>Scenario:</strong></p>
<p style="text-align: justify">The <strong>Host</strong> in the 192.168.0.0/24 network should get its IP address from a DHCP server.</p>
<p style="text-align: justify"><strong>Relay</strong> is the default router for the <strong>Host</strong>, but doesn&#8217;t have a DHCP service running. It will pass any DHCP requests from it&#8217; f1/0 interface to the <strong>DHCP</strong> server that has <strong>DHCP pools</strong> configured on it, using the <strong>&#8220;ip helper-addres&#8221;</strong> command.</p>
<p style="text-align: justify">Between the <strong>DHCP</strong> router and the <strong>Relay</strong> router there is a public network, but behind <strong>Relay</strong>, there is a private network (<strong>Host</strong> is part of that network).  Relay will use <strong>NAT with overload</strong> (PAT) to service the private network.</p>
<p style="text-align: justify"><strong>Relay</strong> uses <strong>DHCP</strong> as it&#8217;s default route to the Internet, but DHCP doesn&#8217;t know about the private network in which <strong>Host</strong> is in (private networks shoudn&#8217;t be permitted to be accessed from the Internet).</p>
<p style="text-align: justify"><strong>Configurations:</strong></p>
<p>DHCP:</p>
<blockquote><p>ip dhcp pool DHCP_POOL<br />
network 192.168.0.0 255.255.255.0<br />
default-router 192.168.0.1</p>
<p>interface FastEthernet0/0<br />
ip address 200.0.0.1 255.255.255.0</p></blockquote>
<p>Relay:</p>
<blockquote><p>interface FastEthernet0/0<br />
ip address 200.0.0.100 255.255.255.0<br />
ip nat outside</p>
<p>interface FastEthernet1/0<br />
ip address 192.168.0.1 255.255.255.0<br />
ip helper-address 200.0.0.1<br />
ip nat inside</p>
<p>ip nat inside source list NAT_HOSTS interface FastEthernet0/0 overload</p>
<p>ip access-list standard NAT_HOSTS<br />
permit 192.168.0.0 0.0.0.255</p></blockquote>
<p>Host:</p>
<blockquote><p>interface FastEthernet1/0<br />
ip address dhcp</p></blockquote>
<p><strong>Problem:</strong></p>
<p><strong>Relay</strong> will receive a DHCP request (broadcast) on F1/0 interface. Because of the &#8220;<strong>ip helper-address</strong>&#8220;, <strong>Relay</strong> will transform the request from broadcast to unicast and send it to the <strong>DHCP</strong> router. The  DHCP request will reach the router, it will assign  an IP from the pool, but the reply will never reach <strong>Host</strong>.</p>
<p><strong>Explenation:</strong></p>
<p>Using &#8220;<strong>debug ip dhcp server events</strong>&#8220;, &#8220;<strong>debug ip dhcp server packet</strong>&#8221; and &#8220;<strong>debug ip packet</strong>&#8220;, we can find out the problem.</p>
<p>The first thing that could come to mind is the fapt that if <strong>Relay</strong> receives a packet on F1/0 interface (192.168.0.1) it will send an unicast message with the source IP address of that interface and a destination address of the ip-helper server. This is not true. The relayed request is considered to be generated by the local router (<strong>Relay</strong>). This means that the source IP address of the relayed request is that of the outgoing interface to the DHCP Server. Here is the <strong>debug ip packet</strong> output:</p>
<blockquote><p>*Mar  1 02:33:23.127: IP: tableid=0, s=200.0.0.100 (FastEthernet0/0), d=200.0.0. 1 (FastEthernet0/0), routed via RIB</p></blockquote>
<p>If  the source address of the IP packet does not have an IP address from the 192.168.0.0/24 network, how does the DHCP Server know from witch pool to give out a free address. The answer is a field in the DHCP protocol, called GIADDR (Gateway IP Address). The value of this field will be the IP address of the interface in the private network.</p>
<p>The problem is that after the DHCP server chooses an IP from the pool, it will reply to the unicast request, with another unicast packet that has the destination IP the GIADDR, not the source address of the request. The output from <strong>debug ip dhcp server events:</strong></p>
<blockquote><p>*Mar  1 03:13:33.719: DHCPD: DHCPDISCOVER received from client 0063.6973.636f.2d 63.6330.322e.3035.6230.2e30.3031.302d.4661.312f.30 through relay 192.168.0.1.<br />
*Mar  1 03:13:33.731: DHCPD: Sending DHCPOFFER to client 0063.6973.636f.2d63.6330.322e.3035.6230.2e30.3031.302d.4661.312f.30 (192.168.0.2).<br />
*Mar  1 03:13:33.731: DHCPD: unicasting BOOTREPLY for client cc02.05b0.0010 to relay 192.168.0.1</p></blockquote>
<p>The <strong>DHCP</strong> router doesn&#8217;t know about the 192.168.0.0/24 network because that is a private network behind a NAT.</p>
<p>A solution to the situation is to add a static route on the <strong>DHCP</strong> router to the private network. But this would ruin the purpose of NAT. A better solution is to avoid the scenario by design (still, the situation could come up in lab environments and you should now know why it behaves the way it does)</p>
]]></content:encoded>
			<wfw:commentRss>http://ccielab.ro/2010/08/dhcp-relay-server-and-nat-case-study/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Anti-lockout best practice</title>
		<link>http://ccielab.ro/2010/07/anti-lockout-best-practice/</link>
		<comments>http://ccielab.ro/2010/07/anti-lockout-best-practice/#comments</comments>
		<pubDate>Fri, 23 Jul 2010 19:43:25 +0000</pubDate>
		<dc:creator>Alex Juncu</dc:creator>
				<category><![CDATA[CCNA]]></category>
		<category><![CDATA[CCNP]]></category>
		<category><![CDATA[Cisco IOS]]></category>
		<category><![CDATA[acl]]></category>
		<category><![CDATA[configuration]]></category>
		<category><![CDATA[reload]]></category>
		<category><![CDATA[reload cancel]]></category>
		<category><![CDATA[reload in]]></category>

		<guid isPermaLink="false">http://ccielab.ro/?p=130</guid>
		<description><![CDATA[ACL are usually configured for firewall configurations, for traffic filtering. When configuring ACLs, careful planing should be made so that in the moment when you are applying an ACL, things get filtered exactly the way you want it. In a lab environment tests can be made and if somethings doesn&#8217;t work right, you can start [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify">ACL are usually configured for firewall configurations, for traffic filtering. When configuring ACLs, careful planing should be made so that in the moment when you are applying an ACL, things get filtered exactly the way you want it. In a lab environment tests can be made and if somethings doesn&#8217;t work right, you can start over. But in a live network router, filtering the wrong traffic could cause network outages.</p>
<p style="text-align: justify">If you are connected to the router via telnet or ssh (most likely in productions routers) it is very easy to lock yourself out of the router by denying the telnet or ssh traffic on an interface between you to that router. This is mostly because how IOS works. Any commands given in IOS are instantly commited to the live configuration. And, for example, if you make a configuration with an ACL and you forget about the implicit <strong>deny any (any)</strong> and you also forget to permit the telnet/ssh traffic, you might find yourself with the router not responding to any input after you apply the rules. It might take a while to figure out that you can&#8217;t access the router anymore and need to get physically to its location and either reload it or  use the console port to remove the ACL from the running-config.</p>
<p style="text-align: justify">One way of avoiding this is to schedule an automated reload in 10-15 minutes, while you are configuring, From enable mode issue the command:</p>
<blockquote>
<p style="text-align: justify"><strong>#reload in MINUTES</strong></p>
</blockquote>
<p style="text-align: justify">This will reload the router after the specified number of minutes. It will ensure that if you lock yourself out, the router will revert back to the working startup-config. If the configuration was applied successfully, you can cancel the scheduled reload with the command</p>
<blockquote>
<p style="text-align: justify"><strong>#reload cancel</strong></p>
</blockquote>
<div style="overflow: hidden;width: 1px;height: 1px;text-align: justify">http://www.youtube.com/watch?v=SMWi7CLoZ2Q</div>
]]></content:encoded>
			<wfw:commentRss>http://ccielab.ro/2010/07/anti-lockout-best-practice/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Frame Relay Switching</title>
		<link>http://ccielab.ro/2010/07/frame-relay-switching/</link>
		<comments>http://ccielab.ro/2010/07/frame-relay-switching/#comments</comments>
		<pubDate>Sun, 18 Jul 2010 08:32:46 +0000</pubDate>
		<dc:creator>Alex Juncu</dc:creator>
				<category><![CDATA[CCNA]]></category>
		<category><![CDATA[CCNP]]></category>
		<category><![CDATA[HowTo]]></category>
		<category><![CDATA[Routing]]></category>
		<category><![CDATA[Troubleshooting]]></category>
		<category><![CDATA[DLCI]]></category>
		<category><![CDATA[Frame Relay]]></category>
		<category><![CDATA[Frame Relay Switch]]></category>
		<category><![CDATA[Inverse ARP]]></category>
		<category><![CDATA[LMI]]></category>

		<guid isPermaLink="false">http://ccielab.ro/?p=119</guid>
		<description><![CDATA[Frame Relay is still very much a popular subject in exams, labs and in the real networks.
Any lab with topologies that run different protocols over FR must start with the layer 2 configuration of the Frame Relay switched network. FR Topologies like full mesh or hub and spoke require a Frame Relay Switch. A FR [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify"><strong>Frame Relay</strong> is still very much a popular subject in exams, labs and in the real networks.</p>
<p style="text-align: justify">Any lab with topologies that run different protocols over FR must start with the layer 2 configuration of the Frame Relay switched network. FR Topologies like full mesh or hub and spoke require a <strong>Frame Relay Switch. </strong>A FR Switch is a normal router but specifically configured to do Frame Relay switching.<strong><br />
</strong></p>
<p style="text-align: justify">First of all, we need to tell the router to start switching Frame Relay traffic. From global configuration mode we need to issue the <strong>frame-relay switching </strong>command.</p>
<p style="text-align: justify">Then, on the interfaces to Frame Relay clients, we need to start sending keepalives (LMIs) by configuring the interface as DCE with the <strong>frame-relay intf-type dce</strong> command.</p>
<p style="text-align: justify">The last thing that the FR Switch needs to do is to route DLCI on the virtual cicuits. This is done to tell an interface where to put a received frame with a DLCI. The frame will be put on another interface with another DLCI.  The configuration is done per interface with the <strong>frame-relay route</strong> command. The command requires that you specify the incoming  DLCI, on which the switching decision will be maide, the outgoing interface, and the DLCI with which the frame will be sent (&#8221;freame-relay route IN_DLCI OUT_INT OUT_DLCI&#8221;).</p>
<p style="text-align: justify">If Inverse ARP is not disabled on the FR Switch, no DLCI-IP mappings will be required.</p>
<p><strong>Topology:</strong></p>
<p><img class="alignnone size-full wp-image-127" src="http://ccielab.ro/wp-content/uploads/2010/07/fr_sw.png" alt="fr_sw" width="392" height="85" /></p>
<p><strong>Configuration:</strong></p>
<p>R1(config)#int s0/0<br />
R1(config-if)#no shut<br />
R1(config-if)#encapsulation frame-relay<br />
R1(config-if)#clock rate 128000<br />
R1(config-if)#ip address 10.1.2.1 255.255.255.0</p>
<p>R2(config)#int s0/0<br />
R2(config-if)#no shut<br />
R2(config-if)#encapsulation frame-relay<br />
R2(config-if)#clock rate 128000<br />
R2(config-if)#ip address 10.1.2.2 255.255.255.0</p>
<p>FR-Sw(config)#frame-relay switching<br />
FR-Sw(config)#int s0/1<br />
FR-Sw(config-if)#no shut<br />
FR-Sw(config-if)#clock rate 128000<br />
FR-Sw(config-if)#encapsulation frame-relay<br />
FR-Sw(config-if)#frame-relay intf-type dce<br />
FR-Sw(config-if)#frame-relay route 102 interface s0/0 201<br />
FR-Sw(config-if)#int s0/0<br />
FR-Sw(config-if)#no shut<br />
FR-Sw(config-if)#clock rate 128000<br />
FR-Sw(config-if)#encapsulation frame-relay<br />
FR-Sw(config-if)#frame-relay intf-type dce<br />
FR-Sw(config-if)#frame-relay route 201 interface s0/1 102</p>
<p><strong><br />
</strong></p>
<p><strong>Running Configurations:</strong></p>
<p><strong>R1:</strong></p>
<p>interface Serial0/0<br />
ip address 10.1.2.1 255.255.255.0<br />
encapsulation frame-relay<br />
clockrate 128000<br />
no fair-queue<br />
end</p>
<p><strong>R2:</strong></p>
<p>interface Serial0/0<br />
ip address 10.1.2.2 255.255.255.0<br />
encapsulation frame-relay<br />
clockrate 128000<br />
no fair-queue<br />
end</p>
<p><strong>FR-Sw:</strong></p>
<p>interface Serial0/0<br />
no ip address<br />
encapsulation frame-relay<br />
no fair-queue<br />
frame-relay intf-type dce<br />
frame-relay route 201 interface Serial0/1 102<br />
end</p>
<p>interface Serial0/1<br />
no ip address<br />
encapsulation frame-relay<br />
frame-relay intf-type dce<br />
frame-relay route 102 interface Serial0/0 201<br />
end</p>
]]></content:encoded>
			<wfw:commentRss>http://ccielab.ro/2010/07/frame-relay-switching/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Back-to-back Frame Relay</title>
		<link>http://ccielab.ro/2010/07/back-to-back-frame-relay/</link>
		<comments>http://ccielab.ro/2010/07/back-to-back-frame-relay/#comments</comments>
		<pubDate>Sun, 18 Jul 2010 07:52:09 +0000</pubDate>
		<dc:creator>Alex Juncu</dc:creator>
				<category><![CDATA[CCNA]]></category>
		<category><![CDATA[CCNP]]></category>
		<category><![CDATA[HowTo]]></category>
		<category><![CDATA[Routing]]></category>
		<category><![CDATA[back-to-back]]></category>
		<category><![CDATA[DCE]]></category>
		<category><![CDATA[DLCI]]></category>
		<category><![CDATA[FR Switch]]></category>
		<category><![CDATA[Frame Relay]]></category>
		<category><![CDATA[Inverse ARP]]></category>
		<category><![CDATA[keepalive]]></category>
		<category><![CDATA[serial]]></category>

		<guid isPermaLink="false">http://ccielab.ro/?p=123</guid>
		<description><![CDATA[This is the simplest use of a Frame Relay encapsulation and it&#8217;s  between two routers, without a Frame Relay Switch. PPP or HDLC  would make more sense to use in these types of links, but it is useful  in labs.
In a back-to-back scenario is important to remember what the FR  Switch [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify">This is the simplest use of a Frame Relay encapsulation and it&#8217;s  between two routers, <strong>without a Frame Relay Switch</strong>. PPP or HDLC  would make more sense to use in these types of links, but it is useful  in labs.</p>
<p style="text-align: justify">In a back-to-back scenario is important to remember what the FR  Switch should be doing: being the DCE and sending the keepalives to  maintain the layer 2 link to the client router. Because of the fact that  no FR Switch is present, the lack of keepalives being sent must be ignored using the &#8220;<strong>no  keepalive</strong>&#8221; command. Also, Inverse ARP won&#8217;t work, so manual IP-DLCI  mapping will be needed.</p>
<p style="text-align: justify">The FR Switch should be the one doing swapping of DLCIs on the network so the frames arrive at their destination with the correctly mapped DLCIs. In this case, we will need to have the same DLCI set in the manual mapping so the routers match entries in the mappings.</p>
<p><strong>The topology:</strong></p>
<p><img class="alignnone size-full wp-image-124" src="http://ccielab.ro/wp-content/uploads/2010/07/fr_b2b.png" alt="fr_b2b" width="375" height="126" /></p>
<p><strong>Configuration:</strong></p>
<p>R1(config)#int s0/1<br />
R1(config-if)#no shut<br />
R1(config-if)#clock rate 128000<br />
R1(config-if)#ip address 10.1.2.1 255.255.255.0<br />
R1(config-if)#encapsulation frame-relay<br />
R1(config-if)#frame-relay map ip 10.1.2.2 42<br />
R1(config-if)#no keepalive</p>
<p>R2(config)#int s0/1<br />
R2(config-if)#no shut<br />
R2(config-if)#clock rate 128000<br />
R2(config-if)#ip address 10.1.2.2 255.255.255.0<br />
R2(config-if)#encapsulation frame-relay<br />
R2(config-if)#frame-relay map ip 10.1.2.1 42<br />
R2(config-if)#no keepalive</p>
<p><strong>Running configurations:</strong></p>
<p><strong>R1:</strong></p>
<p>interface Serial0/1<br />
ip address 10.1.2.1 255.255.255.0<br />
encapsulation frame-relay<br />
no keepalive<br />
clockrate 128000<br />
frame-relay map ip 10.1.2.2 42<br />
end</p>
<p><strong>R2:</strong></p>
<p>interface Serial0/1<br />
ip address 10.1.2.2 255.255.255.0<br />
encapsulation frame-relay<br />
no keepalive<br />
frame-relay map ip 10.1.2.1 42<br />
end</p>
]]></content:encoded>
			<wfw:commentRss>http://ccielab.ro/2010/07/back-to-back-frame-relay/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

