Download as pdf or txt
Download as pdf or txt
You are on page 1of 20

1/10/2015

g. ROUTING PROTOCOLS | CCNA Basics

CCNA Basics

Category Archives: g. ROUTING PROTOCOLS


August 20, 2012

7.1 INTERIOR GATEWAY ROUTING


PROTOCOL (IGRP)
IGRP is also a distance vector Interior Gateway Protocol (IGP). To use IGRP in your network, all
routers must be CISCO routers. CISCO created this routing protocol to overcome problems of RIP.
IGRP has a maximum hop count of 255with default being 100 which is same as EIGRP. This is helpful I
larger networks and solves the problem of 15 hops being the maximum possible in a RIP network.
IGRP uses bandwidth and delay of the line as metrics for determining the best route to an
internetwork. This is called a composite metric. Reliability, load and maximum transmission unit (MTU)
can also be used as metrics but they are not used by default.
Differences between IGRP and RIP are shown in table below:
IGRP

RIP

1. Can be used in large networks.

1. Works best in smaller networks.

1. Uses an autonomous system number for


activation.

1. Does not use an autonomous system number.

1. Gives a full route table update every 90


seconds.

1. Gives a full route table update every 30


seconds.

1. Has an AD=100

1. Has an AD=120

1. Uses bandwidth and delay of the line as


metric with maximum hop count of 100.

1. Uses only hop count to determine the best


path to a remote network. Maximum hop

http://ccnabasics.com/category/g-routing-protocols/

1/20

1/10/2015

g. ROUTING PROTOCOLS | CCNA Basics

count is 15.
IGRP timers:
Update Timer: These specify how frequently routing-update messages should be sent. The default is
90 seconds.
Invalid Timers: These specify how long a router should wait before declaring a route invalid if it
does not receive a specific update about it. The default is three times the update period.
Hold-down Timers: The holddown timer specifies the amount of time for which information about
poorer routes is ignored. The default is three times the update timer period plus 10 seconds.
Route Flush Timer: These indicate how much time should pass before a route should be flushed
from the routing table. The default is seven times the routing period.
IGRP has a number of features that are designed to enhance its stability, such as:
Holddowns used to prevent regular update messages from inappropriately reinstating a route that
may not be up.
Split horizons derived from the premise that it is usually not useful to send information about a
route back in the direction from which it came.
Poison reverse updates used to defeat larger routing loops, increases the hop count to one more
than the maximum hop count.
IGRP Updates
By default, a router running IGRP sends an update broadcast every 90 seconds. It declares a route
inaccessible if it does not receive an update from the first router in the route within 3 update periods i.e.,
270 seconds. After 7 update periods (630 seconds), the Cisco IOS software removes the route from the
routing table.
IGRP uses flash update and poison reverse updates to speed up the convergence of the routing algorithm.
Flash update is the sending of an update sooner than the standard periodic update interval of notifying
other routers of a metric change. Poison reverse updates are intended to defeat larger routing loops
caused by increases in routing metrics. The poison reverse updates are sent to remove a route and place
it in holddown, which keeps new routing information from being used for a certain period of time.
IGRP CONFIGURATION
Step

Command

Purpose

router igrp
<autonomous-system>

Enables an IGRP routing process, which places you in router


configuration mode.

network <networknumber>

Associate networks with an IGRP routing process.

But dont worry about configuration of IGRP as it is no more supported by CISCO routers. An
Enhanced IGRP is supported these days called EIGRP.
http://ccnabasics.com/category/g-routing-protocols/

2/20

1/10/2015

g. ROUTING PROTOCOLS | CCNA Basics

Posted in g. ROUTING PROTOCOLS


Leave a comment
August 20, 2012

7.2 ROUTING INFORMATION


PROTOCOL (RIP)
RIP is a distance vector protocol. It uses hop count as basic metric for route selection. Maximum
allowable hop count is 15 for RIP by default; this means that if hop count exceeds 15, the device is
unreachable.
It sends the complete routing table out to all active interfaces every 30 seconds i.e., routing updates are
broadcasted after every 30 seconds. RIP works well in small networks, but it is inefficient on large
networks with slow WAN links or on network with large number of routers installed.
There are 2 versions of RIP:
1. RIP Version 1 (RIP v1)
2. RIP Version 2 (RIP v2)
RIP v1
It uses only classful routing. This means that
all devices in the network must use same
subnet mask. This is because RIP v1 does not
send subnet mask information with route
updates.
It supports broadcasting.

RIP v2
It uses prefix routing or classless routing .it
sends subnet mask information with route
updates.
It supports multicasting.

RIP timers:
1.
2.
3.
4.

Route update timer: route update timer for RIP is 30 seconds.


Route invalid timer: route invalid timer for RIP is 180 seconds.
Route flush timer: route flush timer for RIP is 240 seconds.
Hold down timer: hold down timer for RIP is 180 seconds.

CONFIGURING RIP v1
RIPv1 sends routes without their subnet masks. It is the function of the router receiving the RIP route to
set a subnet mask for it.
Consider the figure below:
http://ccnabasics.com/category/g-routing-protocols/

3/20

1/10/2015

g. ROUTING PROTOCOLS | CCNA Basics

Each device
has been
allocated an
IP address in
the figure
above.
Following
commands
are used to
implement
RIP:
1. In global
config mode,
type in the

command router rip. This command adds the RIP routing protocol.
2. Now network command is used to tell the router on which interfaces to run RIP. Use the
command network <network address>.
3. Now, specify the next hop address using the command network <next hop address>.
In the figure shown above, implement RIP on each device.

Example: for
router1,

implementation of RIP will be done as shown below:


Verify implementation of RIP command:
You can check whether RIP command has been implemented properly by using sh ip route
command in privileged exec mode.
Check the RIP command in above example for router1:

http://ccnabasics.com/category/g-routing-protocols/

4/20

1/10/2015

g. ROUTING PROTOCOLS | CCNA Basics

In the figure
above, you
can see
[120/1]
written next
to the
networks on
which RIP
has been
implemented.
The [120/1] is
the
administrative distance of the route (120) and 1 is the number of hops to that remote network.
ADMINISTRATIVE DISTANCE
The administrative distance (AD) shows the trustworthiness of a protocol. Directly connected networks
have AD value zero. Lesser the AD value, more trustworthy is the protocol.
Administrative distance of few is given in table below:

http://ccnabasics.com/category/g-routing-protocols/

5/20

1/10/2015

g. ROUTING PROTOCOLS | CCNA Basics

LOAD BALANCING
Load balancing is a concept that allows a router to take advantage of multiple best paths to a given
destination. The paths are derived either statically or with dynamic protocols, such as RIP, EIGRP,
OSPF, and IGRP. When a router learns multiple routes to a specific network, the route with the lowest
administrative distance is installed in the routing table. Sometimes the router must select a route from
among many, learned via the same routing process with the same administrative distance. The router
chooses the path with the lowest cost or metric to the destination. Load balancing is a concept that
allows a router to take advantage of multiple best paths to a given destination.
When routing IP, the Cisco IOS offers two methods of load balancing, per-packet and per-destination
load balancing. If process switching is enabled, the router will alternate paths on a per-packet basis. If
fast switching is enabled, only one of the alternate routes will be cached for the destination address, so
all packets in the packet stream bound for a specific host will take the same path. Packets bound for a
different host on the same network may use an alternate route, traffic is load balanced on a perdestination basis.
CONVERGENCE
Convergence is the speed and ability of a group of internetworking devices running a specific
routing protocol to agree on the topology of an internetwork after a change in that topology.
A network has converged when all routers have consistent knowledge and correct routing tables.
Routing loops can occur when inconsistent routing tables are not updated due to slow convergence
in a changing network.
If a network has not converged, the following are possible:
Inconsistent routing tables
Inconsistent traffic forwarding
Routing loops
RIP v2
RIP v2 is mostly the same as RIP v1.
Similarities and differences of both are given below:
Similarities of RIP v1 and RIP v2
1. Both are a distance vector protocol which means each router sends its complete routing tables out
to all active interfaces at periodic time intervals.
1. Timers and loop avoidance schemes are the same in both.
1. AD=120
1. Max hop count=15

http://ccnabasics.com/category/g-routing-protocols/

6/20

1/10/2015

g. ROUTING PROTOCOLS | CCNA Basics

RIPv1

RIPv2

1. Classful

1. Classless

1. Broadcast based

1. Multicast based (224.0.0.9)

1. No support for VLSM

1. Supports VLSM

1. No authentication.

1. Allows for MD5 authentication.

1. No support for discontiguous networks.

1. Supports discontiguous networks.

CONFIGURING RIPv2
1. In global config mode, type in the command router rip. This command adds the RIP routing
protocol.
2. Now network command is used to tell the router on which interfaces to run RIP. Use the
command network <network address>.
3. Now, specify the next hop address using the command network <next hop address>.
4. Type in the command version 2. This command makes you run RIP v2.
So, configuring RIPv2 is pretty easy and straight forward. If you notice, first 3 steps are same as
configuring RIPv1, just add command version 2 to run RIPv2.
Problems with RIP
IP classless command: In order for the Cisco IOS software to forward packets to the best supernet
route possible, use the ip classless command in global config mode. If the router receives a packet
for a subnet that does not have a default route and ip classless is enabled, it will forward the packet
to the subnet via a supernet route. A supernet route is a route that covers a greater range of subnets
with a single entry. For example, an enterprise uses the entire subnet 10.10.0.0 /16, then a supernet
route for 10.10.10.0 /24 would be 10.10.0.0 /16.
To disable this feature, use the no form of this command I global config mode as: no ip classless.
When this feature is disabled any packets received that are destined for a subnet that numerically
falls within the routers sub network addressing scheme will be discarded.
Passive-interface command: Another issue with routing protocols is the unwanted advertisement
of routing updates out a particular interface.
When a network command is issued for a given network while configuring RIP, it will
immediately begin sending advertisements out to all interfaces within the specified network address
range. To control the set of interfaces that will exchange routing updates, the network administrator
http://ccnabasics.com/category/g-routing-protocols/

7/20

1/10/2015

g. ROUTING PROTOCOLS | CCNA Basics

can disable the sending of routing updates on specified interfaces by configuring the passiveinterface command in global config mode.
The command is used as: passive-interface
<interface name>.
Posted in g. ROUTING PROTOCOLS
Leave a comment
August 20, 2012

7.3 Enhance Interior Gateway Routing


Protocol (EIGRP)
EIGRP is ENHANCED IGRP. It is classless, enhanced distance-vector protocol. Like IGRP, EIGRP also
uses the concept of autonomous system to describe the set of contiguous routers that run the same
routing protocol and share routing information. Unlike IGRP, EIGRP includes subnet mask in its route
updates.
EIGRP is also referred to as hybrid routing protocol because it has the characteristics of both distancevector and link-state protocols.
EIGRP has distance-vector characteristics as it sends the information of various networks and cost of
reaching them.
EIGRP has link-state characteristics as it synchronizes routing tables between neighbours at start-up
and then sends specific updates only when topology change occurs. This makes EIGRP suitable for
very large networks.
EIGRP supports:
Rapid convergence
Reduced bandwidth usage
Multiple network-layer protocols
Features that make EIGRP better than IGRP are:
1.
2.
3.
4.
5.
6.

It supports IP and IPv6 via protocol dependent modules.


It is considered classless, same as RIPv2 and OSPF.
It supports VLSM/CIDR.
It supports summaries and discontiguous networks.
It has an efficient neighbour discovery.
It communicates via Reliable Transport Protocol (RTP).

http://ccnabasics.com/category/g-routing-protocols/

8/20

1/10/2015

g. ROUTING PROTOCOLS | CCNA Basics

7. It can select the best path via Diffusing Update Algorithm (DUAL).
What are protocol dependent modules?
EIGRP provides routing support for multiple network layer protocols through the use of protocol
dependent modules (PDMs). Each EIGRP PDM will maintain a separate series of table containing the
routing information that applies to a specific routing protocol.

How Does EIGRP Work?


EIGRP has four basic components:
Neighbour Discovery/Recovery
Reliable Transport Protocol
DUAL Finite State Machine
Protocol Dependent Modules
Neighbour Discovery/Recovery is the process that routers use to dynamically learn of other routers
on their directly attached networks. Routers must also discover when their neighbours become
unreachable or inoperative. This process is achieved with low overhead by periodically sending small
hello packets. As long as hello packets are received, a router can determine that a neighbour is alive and
functioning. Once this is determined, the neighbouring routers can exchange routing information.
The reliable transport is responsible for guaranteed, ordered delivery of EIGRP packets to all
neighbours. It supports intermixed transmission of multicast or unicast packets. Some EIGRP packets
must be transmitted reliably and others need not. For efficiency, reliability is provided only when
necessary. For example, on a multi-access network that has multicast capabilities, such as Ethernet, it is
not necessary to send hellos reliably to all neighbours individually. So EIGRP sends a single multicast
hello with an indication in the packet informing the receivers that the packet need not be
acknowledged. Other types of packets, such as updates, require acknowledgment and this is indicated
in the packet. The reliable transport has a provision to send multicast packets quickly when there are
unacknowledged packets pending. This helps insure that convergence time remains low in the presence
of varying speed links.
The DUAL finite state machine embodies the decision process for all route computations. It tracks all
routes advertised by all neighbours. The distance information, known as a metric, is used by DUAL to
select efficient loop free paths. DUAL selects routes to be inserted into a routing table based on feasible
successors. A successor is a neighbouring router used for packet forwarding that has a least cost path to
a destination that is guaranteed not to be part of a routing loop. When there are no feasible successors
but there are neighbours advertising the destination, a recomputation must occur. This is the process
where a new successor is determined. The amount of time it takes to recompute the route affects the
convergence time. Even though the recomputation is not processor-intensive, it is advantageous to
avoid recomputation if it is not necessary. When a topology change occurs, DUAL will test for feasible
http://ccnabasics.com/category/g-routing-protocols/

9/20

1/10/2015

g. ROUTING PROTOCOLS | CCNA Basics

successors. If there are feasible successors, it will use any it finds in order to avoid any unnecessary
recomputation. Feasible successors are defined in more detail later
(http://www.cisco.com/en/US/tech/tk365/technologies_tech_note09186a0080093f07.shtml) in this
document.
The protocol-dependent modules are responsible for network layer, protocol-specific requirements. For
example, the IP-EIGRP module is responsible for sending and receiving EIGRP packets that are
encapsulated in IP. IP-EIGRP is responsible for parsing EIGRP packets and informing DUAL of the
new information received. IP-EIGRP asks DUAL to make routing decisions and the results of which are
stored in the IP routing table. IP-EIGRP is responsible for redistributing routes learned by other IP
routing protocols.
Neighbour discovery
Before the EIGRP enabled routers exchange routes with each other, they must become neighbours.
There are 3 conditions for becoming neighbours:
HELLO or ACK (acknowledgement) received.
AS (autonomous system) numbers match.
Identical metrics (K values).
Link-state protocols send HELLO messages to establish neighborship. When the other router receive
HELLO message, it sends back an acknowledgement. EIGRP routers that belong to different
autonomous systems do not become neighbours. This is helpful in large networks as it reduces the
amount of route information propagated through a specific AS.
EIGRP advertises its entire routing table only when it discovers a new neighbour and forms an
adjacency with it through HELLO packets. Then, both neighbours advertise their routing tables to
one another. After each has learned its neighbours routes, only changes to the routing table are
propagated from then on.
When EIGRP routers receive their neighbours updates, they store them in a local topology table. This
table contains all known routers from all known neighbours and serves as the raw material from which
the best routes are selected and placed in the routing table.
Few terms are defined below:
FEASIBLE DISTANCE: this is the best metric along all paths to the remote network.
REPORTED/ADVERTISED DISTANCE: this is the metric of the remote network as reported by a
neighbour.
NEIGHBOR TABLE: each router contains state information about adjacent neighbours. When a
newly discovered neighbour is learned, the address and interface of the neighbour are recorded, and
this information is held in the neighbour table, stored in RAM.
TOPOLOGY TABLE: this table contains various protocol dependent modules acted upon by diffusing
update algorithm (DUAL). It contains all destinations advertised by neighbouring routers.
http://ccnabasics.com/category/g-routing-protocols/

10/20

1/10/2015

g. ROUTING PROTOCOLS | CCNA Basics

FEASIBLE SUCCESSOR: it is the path whose reported distance is less than feasible distance. A
feasible successor is the backup route and is stored in the topology table.
SUCCESSOR: it is the best route to the remote network.
RELIABLE TRANSPORT PROTOCOL (RTP): it manages communication of messages between
EIGRP configured routers. The EIGRP uses class-D address (224.0.0.9) to send multicast messages.
DIFFUSING UPDATE ALGORITHM (DUAL): it selects and maintains best path to each remote
network. It allows the following:
Backup route determination if available.
Support of VLSMs.
Dynamic route recoveries.
Queries for an alternate route if no route can be found.
CONFIGURING EIGRP:
1. Router (config)# router eigrp autonomous-system.
It defines EIGRP as the IP routing protocol.
2. Router (config-router)# network network-number. It selects participating attached networks.
EXAMPLE:

Verifying the EIGRP configurations:


1. Router# show ip route eigrp. It displays current EIGRP entries in the routing table.
2. Router# show ip protocols. It displays the parameters and current state of the active process.
3. Router# show ip eigrp interfaces. It displays information about interfaces configured for EIGRP.

http://ccnabasics.com/category/g-routing-protocols/

11/20

1/10/2015

g. ROUTING PROTOCOLS | CCNA Basics

1. Router# show ip eigrp neighbors. It displays the neighbors discovered by IP EIGRP.

1. Router# show ip eigrp topology. It displays the IP EIGRP topology table.

1. Router# show ip eigrp traffic. It displays the number of IP EIGRP packets sent and received.

http://ccnabasics.com/category/g-routing-protocols/

12/20

1/10/2015

g. ROUTING PROTOCOLS | CCNA Basics

Packet Formats
EIGRP uses five packet types:
Hello/Acks
Updates
Queries
Replies
Requests
Hellos are multicast for neighbour discovery/recovery. They do not require acknowledgment. A hello
with no data is also used as an acknowledgment (ack). Acks are always sent using a unicast address
and contain a non-zero acknowledgment number.
Updates are used to convey reach ability of destinations. When a new neighbour is discovered, update
packets are sent so the neighbour can build up its topology table. In this case, update packets are
unicast. In other cases, such as a link cost change, updates are multicast. Updates are always
transmitted reliably.
Queries and replies are sent when destinations go into Active state. Queries are always multicast
unless they are sent in response to a received query. In this case, it is unicast back to the successor that
originated the query. Replies are always sent in response to queries to indicate to the originator that it
does not need to go into Active state because it has feasible successors. Replies are unicast to the
originator of the query. Both queries and replies are transmitted reliably.
Request packets are used to get specific information from one or more neighbours. Request packets
are used in route server applications. They can be multicast or unicast. Requests are transmitted
unreliably.
SUMMARY
EIGRP is an interior gateway protocol that scales well and provides quick convergence
times with minimal network traffic.
EIGRP is an enhanced version of IGRP developed by Cisco, with improved convergence
properties and operating efficiency over IGRP.
The router eigrp and network commands can be used to create an EIGRP routing process.
The show ip eigrp commands can be used to verify the EIGRP configuration.
The debug ip eigrp privileged EXEC command can be used to display information on EIGRP
packets.
http://ccnabasics.com/category/g-routing-protocols/

13/20

1/10/2015

g. ROUTING PROTOCOLS | CCNA Basics

Posted in g. ROUTING PROTOCOLS


Leave a comment
August 20, 2012

7.4 LINK STATE ROUTING PROTOCOL (LSRP)


This type of routing protocol requires each router to maintain at least a partial map of the network.
When a network link changes state (up to down, or vice versa), a notification, called a link state
advertisement (LSA) is flooded throughout the network. All the routers note the change, and recompute
their routes accordingly. This method is more reliable, easier to debug and less bandwidth-intensive
than Distance-Vector. It is also more complex and more compute-intensive and memory-intensive.
LSRP has bandwidth and delay as its criteria and not hop count.
OSPF is link state routing protocol.
LINK STATE ROUTING PROTOCOL has 3 tables:
1. Neighbour table
2. Topology table
3. Routing table
Neighbour table: it contains the information of the neighbours of the routers.
Topology table: it contains the information about how many routers have to be crossed, i.e.,
number of hops, by a router to deliver a packet to a particular network.
Routing table: it contains the information of the best path among all the routes which has to be
followed to deliver a packet.
A hybrid routing protocol is a mixture of link state routing protocol and distance vector routing
protocol.
LSRP sends a hello packet to its neighbours before creating routing table with the information of all
the networks. When neighbours reply to the hello packet, the router creates its neighbour table with
the information of all the neighbours. If a neighbour does not reply to hell, its information is not
added to the neighbour table. Then the router generates LSA information i.e., information about all the
routers directly connected and sends it to the neighbours. Each router shares their LSA information
with their neighbours.

http://ccnabasics.com/category/g-routing-protocols/

14/20

1/10/2015

g. ROUTING PROTOCOLS | CCNA Basics

On the basis of LSA, topology table is created and then topology table is created.
Topology table/topology tree has information about all the nodes connected to a router. A packet is sent
from source to destination considering topology table.
DRAWBACK OF LSRP:
It is very time consuming as topology table needs a lot of time to be created.
It occupies more memory than distance vector routing protocol.
ADVANTAGE OF LSRP:
We can choose secondary or primary path to send packet, as required.
Posted in g. ROUTING PROTOCOLS
Leave a comment
August 20, 2012

7.5 OPEN SHORTEST PATH FIRST (OSPF)


OSPF is an open standard protocol i.e., it works on every device no matter of what company or
brand.
It follows link state routing protocol.
It uses 2 IP addresses: 224.0.0.5 and 224.0.0.6 to give updates.
It uses only one metric- bandwidth.
It has manual route summarization (not automatic).
It supports VLSM.
It can create groups of routers inside AS (autonomous system) also called AREA.
It follows a hierarchical structure.

http://ccnabasics.com/category/g-routing-protocols/

15/20

1/10/2015

g. ROUTING PROTOCOLS | CCNA Basics

ABR: area border router


ASBR: autonomous system border router
BR: border router
All interfaces of BR are under AREA 0. ABR can act as BR. ABR exchanges information between
multiple networks through BR. AREA 0 is created first of all.

http://ccnabasics.com/category/g-routing-protocols/

16/20

1/10/2015

g. ROUTING PROTOCOLS | CCNA Basics

Routers within an area, exchange information through 224.0.0.5


Routers exchange information between areas using 224.0.0.6
RID: router ID. RID is the highest IP address (physical address).
Example:

In above scenario, BR is identified using IP address 40 as it is the highest IP address i.e., it is the RID.
The router with highest RID is made DR. If a router R1 is wants to share information with R2, it will
forward information to DR which will forward it to the destination.
http://ccnabasics.com/category/g-routing-protocols/

17/20

1/10/2015

g. ROUTING PROTOCOLS | CCNA Basics

BDR: backup designated router. It acts as DR in case DR router goes down.


LOOPBACK INTERFACE: every router has a loopback interface. Any IP is given to this interface.
This IP is not physical but logical.
GIVING IP TO LOOPBACK INTERFACE:
1. In global config mode, type in Interface loopback ?. the question mark (?) gives the range of
interface numbers.
2. Interface loopback <number>. The number is the interface number and should be one selected
from the range of interface numbers got in above step.
3. IP add <IP address> 255.255.255.255. The subnet mask of loopback interface is always fixed to
255.255.255.255 and is independent of what class IP address is chosen.
Consider the example below:

To give IP on loopback interface of router0:

http://ccnabasics.com/category/g-routing-protocols/

18/20

1/10/2015

g. ROUTING PROTOCOLS | CCNA Basics

Similarly give IP on loopback interface of router1.


CONFIGURING OSPF:
1. To enable OSPF type in router ospf'<space>?. The ? gives the range of process ID.
2. Router ospf <process ID>. The process ID must be a number chosen from the range of process ID
got in step above.
3. network <network address>
<wild card mask> <area><area number>
Wild card mask: A wildcard mask is a mask of bits that indicates which parts of an IP address can
assume any value. A wild card mask replaces 0 in subnet mask by 255 and any number other than 0 in
subnet mask by 0.
Example: wild card mask of subnet mask 172.10.0.0 is 0.0.255.255.
Configuring ospf on router0:

Now exit the config mode using command CTRL+Z and save the configuration using command wr
and then press enter.
To check route, use command sh ip route in privileged exec mode.

Posted in g. ROUTING PROTOCOLS


Leave a comment
CCNA Basics
Follow
http://ccnabasics.com/category/g-routing-protocols/

Create a free website or blog at WordPress.com. The Splendio Theme.


19/20

1/10/2015

g. ROUTING PROTOCOLS | CCNA Basics

Follow CCNA Basics


Build a website with WordPress.com

http://ccnabasics.com/category/g-routing-protocols/

20/20

You might also like