{"id":78,"date":"2026-08-06T18:49:21","date_gmt":"2026-08-06T18:49:21","guid":{"rendered":"https:\/\/mrnetwork.nl\/index.php\/qos-quality-of-service-2\/"},"modified":"2026-08-06T20:00:00","modified_gmt":"2026-08-06T20:00:00","slug":"qos-quality-of-service-2","status":"publish","type":"page","link":"https:\/\/mrnetwork.nl\/index.php\/qos-quality-of-service-2\/","title":{"rendered":"QOS (Quality of Service)"},"content":{"rendered":"<p><a href=\"\/\" class=\"back-link\">Terug naar home<\/a><\/p>\n<h1>QOS (Quality of Service)<\/h1>\n<div class=\"headline\">Introduction<\/div>\n<div class=\"paragraph\">QoS stands for Quality of Service. The term is being used by Cisco to refer to IP-based features that allow specification and delivery of services much like the Quality of Service features in ATM. <\/div>\n<div class=\"paragraph\">When you get right down to it, there isn&#8217;t all that much a router can do to control traffic, since it is not the originator of most of the traffic. The router can drop traffic &#8212; although we&#8217;d prefer it didn&#8217;t do so. It can put some queued frames out an interface before others. It can be selective about accepting traffic &#8212; another form of dropped traffic. And, with TCP, it can selectively drop the occasional packet as an indirect signal to slow down. With cooperative hosts, the router can try to accept reservations and hold bandwidth for applications that need it. <\/div>\n<div class=\"paragraph\">Acronyms, features or topics that fall under QoS include: Priority Queuing (PQ), Custom Queuing (CQ), Fair and Weighted Fair Queuing (WFQ), Random EarlyDetection (RED) and its Distributed, Weighted variant (DWRED), Resource Reservation Protocol (RSVP), Traffic Shaping, Committed Access Rate (CAR), Policy Routing, QoS Policy Propagation via BGP (QPPB), NetFlow, and Cisco Express Forwarding (CEF). <\/div>\n<div class=\"paragraph\">The first set of functions relate to queuing, to managing congestion. They are sometimes referred to as &#8220;Fancy Queuing&#8221;. These include Priority Queuing (PQ), Custom Queuing (CQ), and Weighted Fair Queuing (WFQ). These features allow the router to control which frames are sent first on an interface. If there are too many frames (congestion), then we are, in effect, also selecting which frames get dropped. <\/div>\n<div class=\"paragraph\"><b>These functions, Priority Queuing (PQ), Custom Queuing (CQ), and Weighted Fair Queuing (WFQ), are the subject of this article. <\/b>They are also discussed as one small part of the Cisco certified ACRC course. <\/div>\n<div class=\"paragraph\">The next feature on the list, Weighted Random Early Detection, is intended to prevent or reduce congestion &#8212; trying to reduce problems, rather than mitigating the consequences once the problem has already occurred. <\/div>\n<div class=\"paragraph\">RSVP allows for applications to reserve bandwidth, primarily WAN bandwidth. It is designed to work with WFQ or Traffic Shaping on the outbound interface. <\/div>\n<div class=\"paragraph\">Traffic Shaping and Committed Access Rate (CAR) control traffic. It seems like a better acronym could have been chosen: CAR controls traffic? Anyway, CAR controls the rate of inbound traffic, allowing specification of what to do with traffic that is coming in faster than policy. Traffic Shaping paces outbound traffic, controlling use of bandwidth. Traffic Shaping also allows matching the speed of the output access link across a WAN cloud, so that a faster central hub access circuit doesn&#8217;t cause carrier or remote link congestion. <\/div>\n<div class=\"paragraph\">CAR, Policy Routing, and QPPB can also set the IP precedence bits (TOS bits), which are used by some of the above mechanisms to favor some traffic over other traffic. <\/div>\n<div class=\"paragraph\">Finally, NetFlow and CEF are switching techniques used in high-performance routers. They assist in providing QoS by providing efficient packet delivery and statistics on the traffic, statistics to manage traffic flow, trunk sizing, and network design&nbsp; with. <\/div>\n<p> <\/p>\n<div class=\"headline\">Priority Queuing<\/div>\n<div class=\"paragraph\">Priority Queuing is the oldest of the queuing techniques. Traffic is prioritized with a priority-list, applied to an interface with a priority-group command. The traffic goes into one of four queues: high, medium, normal, or low priority.When the router is ready to transmit a packet, it searches the high queue for a packet. If there is one, it gets sent. If not, the medium queue is checked. If there is a packet, it is sent. If not, the normal, and finally the low priority queues are checked. For the next packet, the process repeats. If there is enough traffic in the high queue, the other queues may get starved: they never get serviced. <\/div>\n<div class=\"paragraph\">You can regard Priority Queuing as being drastic. It says that the high priority traffic must go out the interface at all costs, and any other traffic can be dropped. It is generally intended for use on low bandwidth links. <\/div>\n<p> <\/p>\n<div class=\"headline\">Configuring Priority Queuing<\/div>\n<div class=\"paragraph\">To assign traffic meeting certain characteristics to a queue (high, medium, normal, or low), use one of the following commands: <\/div>\n<div class=\"paragraph\">\n<ul>priority-list <i>list-number <\/i>protocol <i>protocol-name <\/i>{high | medium | normal | low} <i>queue-keyword keyword-value<\/i><br \/>priority-list <i>list-number <\/i>interface <i>interface-type interface-number <\/i>{high | medium | normal | low}<\/ul>\n<\/div>\n<div class=\"paragraph\">The first of these takes a protocol, like ip, ipx, appletalk, rsrb, dlsw, etc., to classify traffic. The queue-keyword can be one of: fragments, gt, lt, list, tcp, and udp. The keyword-value specifies the port for tcp or udp, or the size for gt (greater than) and lt (less than). The word list allows you to specify an access list characterizing the traffic. And fragments means just that, IP fragments (which should probably get expedited handling, so as to not have to retransmit all the fragments again if one is lost).  <\/div>\n<div class=\"paragraph\">The second command above is similar, but classifies traffic based on the interface it arrived on. <\/div>\n<div class=\"paragraph\">The list-number is any number in the range 1-16. All statements in one policy use the same number. <\/div>\n<div class=\"paragraph\">To change the default queue for all other traffic: <\/div>\n<div class=\"paragraph\">\n<ul>priority-list <i>list-number <\/i>default {high | medium | normal |low}<\/ul>\n<\/div>\n<div class=\"paragraph\">To change the queue sizes from the defaults 20, 40, 60, 80 (don&#8217;t go overboard on this if you see output drops, you may make things worse): <\/div>\n<div class=\"paragraph\">\n<ul>priority-list <i>list-number <\/i>queue-limit <i>high-limit medium-limit normal-limit low-limit<\/i><\/ul>\n<\/div>\n<div class=\"paragraph\">To apply the priority queueing policy for outbound packets on an interface: <\/div>\n<div class=\"paragraph\">\n<ul>interface &#8230;<br \/>priority-group <i>list-number<\/i><\/ul>\n<\/div>\n<div class=\"paragraph\"> Relevant EXEC Commands<\/div>\n<div class=\"paragraph\">\n<ul>show queueing priority<\/ul>\n<\/div>\n<p><\/p>\n<div class=\"headline\">Sample Configuration &#8211; Priority Queuing<\/div>\n<div class=\"paragraph\">The following configuration sets up a priority list where DLSw traffic goes into the high priority traffic, as does telnet transmissions. The remaining IP that matches access list 101 goes to the medium queue, and any thing else goes in the low queue. (Standard joke: you&#8217;ve planned to send your boss&#8217;s traffic into the low queue, to make sure the congestion gets noticed). You&#8217;ve mildly upped the default queue sizes. And this policy is in effect for packets being sent out serial 0. <\/div>\n<div class=\"paragraph\">\n<ul>priority-list 1 protocol dlsw high <br \/>         priority-list 1 protocol ip high tcp 23 <br \/>    priority-list 1 protocol ip medium list 101 <br \/>priority-list 1 default low <br \/>                priority-list 1 queue-limit 30 60 90 120 <\/p>\n<p>                                            interface serial 0<br \/>                          priority-group 1                            <\/ul>\n<\/div>\n<\/div>\n<p><\/p>\n<div class=\"headline\">Custom Queuing<\/div>\n<div class=\"paragraph\">Custom Queuing uses 17 queues to divide up bandwidth on an interface. Queue 0, the system queue, is always serviced first. It is used for keepalives and other critical interface traffic. The remaining traffic can be assigned to queues 1 through 16. These queues are serviced in round-robin fashion. <\/div>\n<div class=\"paragraph\">Here&#8217;s how it works. Packets are sent from each queue in turn. As each packet is sent, a byte counter is incremented. When the byte counter exceeds the default or configured threshold for the queue, transmission moves on to the next queue. The byte count total for the queue that just finished has the threshold value subtracted from it, so that it starts its next turn penalized by the number of bytes that it went over its quota. This provides additional fairness to the mechanism. <\/div>\n<div class=\"paragraph\">If you think about it, you can&#8217;t send half of a packet. That&#8217;s why this mechanism might well exceed quota on any given round of transmission from a queue. But on the next round, the queue is penalized for taking more than it&#8217;s fair share, so in the long run it averages out.  <\/div>\n<div class=\"paragraph\">Custom Queuing is aimed at fair division of bandwidth. For instance, you might set it up to allow IP roughly 50% of a link, DLSw 25%, and IPX 25%. When congestion is taking place, the limits are enforced. If there is unused bandwidth, say from IPX, it is divided equally among any excess traffic from the other classes of traffic, IP and DLSw. To implement this, you would tweak the thresholds for the relevant queues, say making them 3000, 1500, and 1500 bytes respectively. Some fine tuning to average packet MTU size can make this more precise. <\/div>\n<p><\/p>\n<div class=\"headline\">Configuring Custom Queuing<\/div>\n<div class=\"paragraph\">The commands for CQ are very similar to those for PQ. The difference is that you put the traffic into queues numbered 1-16, rather than named high, medium, normal, low. Hence we build our CQ policy with: <\/div>\n<div class=\"paragraph\">\n<ul>queue-list <i>list-number <\/i>protocol <i>protocol-name queue-number  queue-keyword keyword-value<\/i><br \/>queue-list <i>list-number <\/i>interface <i>interface-type interface-number <\/i>queue-number<\/ul>\n<\/div>\n<div class=\"paragraph\">You can specify the default queue, the one that receives any unmatched traffic, with the command: <\/div>\n<div class=\"paragraph\">\n<ul>queue-list <i>list-number <\/i>default <i>queue-number<\/i><\/ul>\n<\/div>\n<div class=\"paragraph\">(The default default queue is 1). <\/div>\n<div class=\"paragraph\">You can specify the number of packets allowed in any queue with the command: <\/div>\n<div class=\"paragraph\">\n<ul>queue-list <i>list-number <\/i>queue <i>queue-number <\/i>limit <i>limit-number<\/i><<\/ul>\n<\/div>\n<div class=\"paragraph\">The threshold for a queue can be changed with the following command: <\/div>\n<div class=\"paragraph\">\n<ul>queue-list <i>list-number <\/i>queue <i>queue-number <\/i>byte-count <i>byte-count-number<\/i><\/ul>\n<\/div>\n<div class=\"paragraph\">The default threshold for the queues is 1500 bytes. <\/div>\n<div class=\"paragraph\">And the CQ policy is applied to outbound frames on an interface with: <\/div>\n<div class=\"paragraph\">\n<ul>interface &#8230;<br \/>custom-queue-list <i>list-number<\/i><\/ul>\n<\/div>\n<p><\/p>\n<div class=\"headline\">Relevant EXEC Commands<\/div>\n<div class=\"paragraph\">\n<ul>show queueing custom<br \/>show interface <i>type number<\/i><\/ul>\n<\/div>\n<p><\/p>\n<div class=\"headline\">Sample Configuration<\/div>\n<div class=\"paragraph\">The following configuration is similar to that for PQ, except&nbsp; that we&#8217;re not making DLSw and Telnet traffic top priority any more. Instead, we&#8217;reusing four (4) queues (since default traffic goes to queue 10). The thresholds are 1500, 1500, 3000, and 1500, so Telnet in queue 3 gets 3000\/7500 = 40% of the bandwidth, and the other queues get 20% each. <\/div>\n<div class=\"paragraph\">\n<ul>queue-list 1 protocol dlsw 1<br \/>queue-list 1 protocol ip 2 list 101<br \/>queue-list 1 protocol ip 3 tcp 23<br \/>queue-list 1 default 10<\/p>\n<p>queue-list 1 queue 3 limit 40<br \/>queue-list 1 queue 3 byte-count 3000<\/p>\n<p>interface serial 0<br \/>custom-queue-list 1<\/ul>\n<\/div>\n<p><\/p>\n<div class=\"headline\">Weighted Fair Queuing (WFQ)<\/div>\n<div class=\"headline\">About WFQ<\/div>\n<div class=\"paragraph\">Weighted fair queueing provides automatically sorts among individual traffic streams without requiring that you first define access lists. It can manage one way or two way streams of data: traffic between pairs of applications or voice and video. It automatically smooths out bursts to reduce average latency. <\/div>\n<div class=\"paragraph\">In WFQ, packets are sorted in weighted order of arrival of the last bit, to determine transmission order. Using order of arrival of last bit emulates the behavior of Time Division Multiplexing (TDM), hence &#8220;fair&#8221;. In Frame Relay, FECN, BECN, and DE bits will cause the weights to be automatically adjusted, slowing flows if needed. <\/div>\n<div class=\"paragraph\">From one point of view, the effect of this is that WFQ classifies sessions as high- or low-bandwidth. Low-bandwidth traffic gets priority, with high-bandwidth traffic sharing what&#8217;s left over. If the traffic is bursting ahead of the rate at which the interface can transmit, new high-bandwidth traffic gets discarded after the configured or default congestive-messages threshold has been reached. However, low-bandwidth conversations, which include control-message conversations, continue to enqueue data. <\/div>\n<div class=\"paragraph\">Weighted fair queuing uses some parts of the protocol header to determine  flow identity. For IP, WFQ uses the Type of Service (TOS) bits, the IP protocol code, the source and destination IP addresses (if not a fragment), and the source and destination TCP or UDP ports. <\/div>\n<div class=\"paragraph\">Distributed WFQ is available in IOS 12.0 on high-end interfaces and router models. <\/div>\n<p><\/p>\n<div class=\"headline\"> Configuring Fair Queuing (FQ)<\/div>\n<div class=\"paragraph\">\n<ul>fair-queue [<i>congestive-discard-threshold <\/i>[<i>dynamic-queues <\/i>[<i>reservable-queues<\/i>]]]<\/p>\n<p>no fair-queue<\/ul>\n<\/div>\n<div class=\"paragraph\"><b>congestive-discard-threshold:<\/b> Number of messages allowed in each queue in the range 1 to 4096, default 64.<\/div>\n<div class=\"paragraph\"><b>dynamic-queues:<\/b> Number of dynamic queues used for best-effort conversations. Values are 16, 32, 64, 128, 256, 512, 1024, 2048, and 4096. The default is 256. <\/div>\n<div class=\"paragraph\"><b>reservable-queues:<\/b> Number of reservable queues used for reserved (RSVP) conversations, range 0 to 1000. The default is 0. If RSVP is enabled on a WFQ interface with reservable-queues set to 0, the reservable queue size is automatically set to bandwidth divided by 32 Kbps. Specify a reservable-queue size other than 0 if you wish different behavior. <\/div>\n<div class=\"paragraph\">Fair queuing is enabled by default for physical interfaces whose bandwidth is less than or equal to 2.048 Mbps, except for Link Access Procedure, Balanced (LAPB), X.25, or Synchronous Data Link Control (SDLC) encapsulations. Enabling custom queuing or priority queuing on an interface disables fair queueing. Fair queuing is automatically disabled if you enable autonomous or SSE switching on a 7000 model. Fair queueing is now enabled automatically on multilink PPP interfaces. WFQ is not supported on tunnels. <\/div>\n<p><\/p>\n<div class=\"headline\"> Configuring Weighted Fair Queuing (WFQ)<\/div>\n<div class=\"paragraph\">When congestion occurs, the weight for a class or group specifies the percentage of the output bandwidth allocated to that group. A weight of 60 gives 60% of the bandwidth during congestion periods. <\/div>\n<div class=\"paragraph\">Start by specifying what type of fair queuing is in effect on an interface: <\/div>\n<div class=\"paragraph\">\n<ul>[no] fair-queue [ tos | qos-group ]<\/ul>\n<\/div>\n<div class=\"paragraph\">If you omit tos and qos-group, you get flow-based WFQ. Otherwise you get TOS (precedence)-based or QoS-group based WFQ on the interface. You then set the total number of buffered packets on the interface. Below this limit, packets will not be dropped. Default is based on bandwidth and memory space available. <\/div>\n<div class=\"paragraph\">\n<ul>fair-queue aggregate-limit <i>&lt;aggregate-limit&gt;<\/i><\/ul>\n<\/div>\n<div class=\"paragraph\">You also specify the limit for each queue. Default is half the aggregate limit. <\/div>\n<div class=\"paragraph\">\n<ul>fair-queue individual-limit <i>&lt;individual-limit&gt;<\/i><\/ul>\n<\/div>\n<div class=\"paragraph\">The documentation suggests you not alter the queue limits without a good reason. To specify the depth of queue for a class of traffic: <\/div>\n<div class=\"paragraph\">\n<ul>fair-queue {tos <i>&lt;0-7&gt;<\/i> | qos-group <i>&lt;0-99&gt;<\/i>} limit <i>&lt;queue-limit&gt;<\/i><\/ul>\n<\/div>\n<div class=\"paragraph\">Finally, to specify weight (percentage of the link) for a class of traffic: <\/div>\n<div class=\"paragraph\">\n<ul>fair-queue {tos <i>&lt;0-7&gt;<\/i> | qos-group <i>&lt;0-99&gt;<\/i>} weight <i>&lt;weight&gt;<\/i><\/ul>\n<\/div>\n<div class=\"paragraph\">The percentages on an interface must add up to no more than 99 (percent). <\/div>\n<p><\/p>\n<div class=\"headline\"> Relevant EXEC Commands<\/div>\n<div class=\"paragraph\">\n<ul>show interface [<i>interface<\/i>] fair-queue<br \/>show queueing fair<\/ul>\n<\/div>\n<p><\/p>\n<div class=\"headline\"> Sample Configuration<\/div>\n<p><\/p>\n<div class=\"headline\"> Fair Queuing<\/div>\n<div class=\"paragraph\">\n<ul>interface serial 0<br \/>fair-queue 64 256 0<\/ul>\n<\/div>\n<div class=\"paragraph\">This restores the defaults on a T1 serial link. <\/div>\n<p><\/p>\n<div class=\"headline\"> Weighted Fair Queuing &#8211; QoS Group based<\/div>\n<div class=\"paragraph\">The following configuration sets up two QoS groups, 2 and 6, corresponding to precedences 2 and 6. It then specifies WFQ in terms of those two QoS groups. <\/div>\n<div class=\"paragraph\">\n<ul>interface Hssi0\/0\/0<br \/>&nbsp;ip address 89.146.3.162 255.255.255.252<br \/>&nbsp;rate-limit output access-group rate-limit 6 155000000 2000000 8000000 conform-action<br \/>set-qos-transmit 6 exceed-action drop<br \/>&nbsp;rate-limit output access-group rate-limit 2 155000000 2000000 8000000 conform-action<br \/>set-qos-transmit 2 exceed-action drop<br \/>&nbsp; fair-queue qos-group<br \/>&nbsp;fair-queue qos-group 2 weight 10<br \/>&nbsp;fair-queue qos-group 2 limit 27<br \/>&nbsp;fair-queue qos-group 6 weight 30<br \/>fair-queue qos-group 6 limit 27<br \/>access-list rate-limit 2 2<br \/>access-list rate-limit 6 6<\/ul>\n<\/div>\n<p><\/p>\n<div class=\"headline\"> Weighted Fair Queuing &#8211; Precedence (TOS) based<\/div>\n<div class=\"paragraph\">The following configuration directly specifies WFQ based on precedences 1,2, and 3: <\/div>\n<div class=\"paragraph\">\n<ul>interface Hssi0\/0\/0<br \/>&nbsp;ip address 89.146.3.162 255.255.255.252<br \/>&nbsp;fair-queue tos<br \/>&nbsp;fair-queue tos 1 weight 20<br \/>&nbsp;fair-queue tos 1 limit 27<br \/>&nbsp;fair-queue tos 2 weight 30<\/ul>\n<\/div>\n<p><\/p>\n<div class=\"headline\">IP Precedence Bits<\/div>\n<div class=\"paragraph\">Part of the new IP QoS tool kit in routers and switches is the IP Precedence bits. Devices at the edge of the network may classify traffic as deserving a certain Class of Service using these bits. Core devices can then use the bits to provide differing types of service to different flavors of traffic.<\/div>\n<div class=\"paragraph\">The IP Precedence bits are the first 3 bits of the IP header Type of Service (TOS) field. They are followed by 4 TOS bits and an unused bit. The Cisco documentation relating to QoS seems to sometimes be a bit sloppy as to precedence versus TOS bits, sometimes using TOS to refer to the TOS field in a rather general way. The IETF Diff-Serv group is looking at using the Precedence bits for ISP\/carrier purposes, so it is not safe to assume these bits will make it through your service provider unscathed &#8212; they may well change the bits for their own purposes. <\/div>\n<div class=\"paragraph\">Cisco keyword values for precedence: <b>critical, flash, flash-override,  immediate, internet, network, priority, routine<\/b>. One assumes these correspond respectively to numeric values 7 down to 0. The keywords may be found in the descriptions of the IP extended access list variants. <\/div>\n<div class=\"paragraph\">TOS keyword values: <b>max-reliability, max-throughput, min-delay, min-monetary-cost, normal<\/b>. TOS is not in much use today. It is up to an application to ask for the Type of Service it needs. The standing joke is that by default IP traffic is unreliable, slow, and costly, since none of the relevant TOS bits is usually turned on. Even were applications to use these bits, no-one that I know of is using them to provided differentiated service, although the IP extended access lists in the Cisco IOS do allow you to do so if you wish. This is perhaps somewhat of a chicken-and-egg problem: no reason to use TOS to provide better service if there are no customers, and no reason for applications to set the bits if it isn&#8217;t going to make a difference.<\/div>\n<p><\/p>\n<div class=\"headline\">Random Early Detection (RED)<\/div>\n<div class=\"paragraph\">Random Early Detection (RED) is a high-speed congestion <b>avoidance<\/b> mechanism. It is not intended as a congestion <b>management<\/b> mechanism, the way the queuing techniques (PQ, CQ, WFQ) are. It is also more appropriate for long-haul trunks with many traffic flows, e.g. trans-oceanic links, rather than campus networks.  <\/div>\n<div class=\"paragraph\">When enabled, RED responds to congestion by dropping packets at the selected rate. This is recommended only for TCP\/IP networks with mostly TCP traffic. The drops are intended to cause TCP to back off its transmission rate.  <\/div>\n<div class=\"paragraph\">TCP normally adapts its transmission rate to the rate the network can support. Each TCP flow repeats a cycle of ramping up to approximately the available bandwidth, then slowing to either near zero or near half the bandwidth, depending on the implementation. Thus a typical TCP flow may average between 1\/2 and 3\/4 of the available bandwidth, in the absence of any other traffic.<\/div>\n<div class=\"paragraph\">Multiple TCP flows tend to become synchronized, speeding up and slowing down in synchronization. This behavior is sometimes called &#8220;porpoising&#8221;,because the flows surface and dive in unison, like a pod of porpoises. When congestion occurs, all TCP sessions normally get slowed down simultaneously,resulting in periods where link capacity is underutilized. By randomly slowing one TCP session, the others benefit, resulting in better <b>goodput<\/b>.<\/div>\n<div class=\"paragraph\">Note that dropping packets does not work with most other protocols, including AppleTalk and Novell.  <\/div>\n<div class=\"paragraph\">When RSVP is also configured, packets from other flows are dropped before those from RSVP flows, when possible. We&#8217;ll look at RSVP in a later article.<\/div>\n<div class=\"paragraph\">Weighted RED (WRED) allows you to specify a RED policy in combination with IP precedence, so that different types of packets are dropped at different rates and levels of congestion. You can set it so precedence is ignored,or you can set it so that lower precedence packets are more likely to be dropped. WRED is an IOS 11.1 CC or 12.0 feature.  <\/div>\n<div class=\"paragraph\">Distributed Weighted RED (DWRED) is available in IOS 12.0 for hardware that supports it. The Distributed WRED (DWRED) feature uses the VIP rather than the RSP to perform the queuing. It requires a Cisco 7500 series router or Cisco 7200 series router with RSP. <\/div>\n<p><\/p>\n<div class=\"headline\"> Configuring Random Early Detection (RED)<\/div>\n<div class=\"paragraph\">The default is for RED to be disabled on an interface. RED is only useful on interfaces where most of the traffic is TCP. Random early detection cannot be configured on an interface already configured with custom, priority, or fair queueing. To enable RED on an interface, configure:  <\/div>\n<div class=\"paragraph\">\n<ul>random-detect<\/ul>\n<\/div>\n<div class=\"paragraph\">You may also configure  <\/div>\n<div class=\"paragraph\">\n<ul>random-detect exponential-weighting-constant <i>constant<\/i><\/ul>\n<\/div>\n<div class=\"paragraph\">Here <b>constant<\/b> is a number in the range 1 to 16 used to determine the rate that packets are dropped when congestion occurs. The default is 10. The number is an exponent used in the exponential decay rate for the weighted queue size calculation used in RED. It is suggested that you change the default with caution. A big value means the queue size measurement changes slowly, making RED less responsive. The formula used for tracking queue size is: <\/div>\n<div class=\"paragraph\"><b>average = (old_average * (1-1\/2^n)) + (current_queue_size * 1\/2^n)<\/b><\/div>\n<div class=\"paragraph\">Where n is the exponential weighting constant. <\/div>\n<div class=\"paragraph\">To configure WRED on an interface, configure: <\/div>\n<div class=\"paragraph\">\n<ul>random-detect precedence <i>&lt;0..7&gt;<\/i> <i>&lt;min-thresh&gt; &lt;max-thresh&gt; &lt;mark-probability-denom&gt;<\/i><\/ul>\n<\/div>\n<div class=\"paragraph\">In this command, <b>precedence<\/b> refers to<b> <\/b>IP precedence, number 0 to 7. And <b>min-thresh<\/b> is the minimum threshold in number of packets, from 1 to 4096. When the average queue length reaches this number, RED begins to drop packets with the specified IP precedence. The number <b>max-thresh<\/b>  is the maximum threshold in number of packets, from 1 to 4096. When the average queue length exceeds this number, WRED drops all packets with thespecified IP precedence. Finally, <b>mark-prob-denom<\/b> is the denominator for the fraction of packets dropped when the average queue depth is max-threshold, in the range 1 to 65536. If the denominator is 512, one out of every 512 packets is dropped when the average queue is at the max-threshold. The value is from 1 to 65536. The default is 10. <\/div>\n<div class=\"paragraph\">The per-precedence min-threshold defaults are 9\/18, 10\/18, &#8230; 16\/18 of the max-threshold size, for precedences 0 through 7 respectively. The max-threshold is determined based on interface speed and output buffering capacity. <\/div>\n<p><\/p>\n<div class=\"headline\"> Relevant EXEC Commands<\/div>\n<div class=\"paragraph\">\n<ul>show interface<br \/>show interface [interface] random-detect<\/ul>\n<\/div>\n<p><\/p>\n<div class=\"headline\"> Sample Configuration<\/div>\n<div class=\"paragraph\">\n<ul><\/p>\n<div class=\"headline\"> RED configuration<\/div>\n<p>interface Hssi0\/0\/0<br \/>&nbsp;ip address &#8230;<br \/>&nbsp;random-detect<\/p>\n<div class=\"headline\"> WRED configuration<\/div>\n<p>interface Hssi0\/0\/0<br \/>&nbsp;description 45Mbps to R1<br \/>&nbsp;ip address &#8230;<br \/>&nbsp;random-detect exponential-weighting-constant 9<br \/>&nbsp;random-detect precedence 0 540 1080 10<br \/>&nbsp;random-detect precedence 1 607 1080 10<br \/>&nbsp;random-detect precedence 2 674 1080 10<br \/>&nbsp;random-detect precedence 3 741 1080 10<br \/>&nbsp;random-detect precedence 4 808 1080 10<br \/>&nbsp;random-detect precedence 5 875 1080 10<br \/>&nbsp;random-detect precedence 6 942 1080 10<br \/>&nbsp;random-detect precedence 7 1009 1080 10<br \/>&nbsp;random-detect<\/ul>\n<\/div>\n<p><\/p>\n<div class=\"headline\"> Committed Access Rate (CAR)<\/div>\n<div class=\"paragraph\">Committed Access Rate (CAR) has two functions:  <\/div>\n<div class=\"paragraph\">\n<ul>\n<li> Packet Classification, using IP Precedence and QoS group setting<\/li>\n<li> Access Bandwidth Management, through rate limiting<\/li>\n<\/ul>\n<\/div>\n<div class=\"paragraph\">So CAR is basically the input side of Traffic Shaping (which we&#8217;ve talked about somewhat in a prior Frame Relay article).  <\/div>\n<div class=\"paragraph\">Traffic is sequentially classified using pattern matching specifications, just like access lists, on a first-match basis. The pattern matched specifies what action policy rule to use, based on whether the traffic <b>conforms<\/b>. That is, if traffic is within the specified rate, it conforms, and is treated  one way. Non-conforming (excess) traffic can be treated differently, usually  either by giving it lower priority or by dropping it. If no rule is matched,  the default is to transmit the packet. This allows you to use rules to rate limit some traffic, and allow the rest to be transmitted without any rate controls.  <\/div>\n<div class=\"paragraph\">The possible <b>action policy<\/b> rules: <\/div>\n<div class=\"paragraph\">\n<ul>\n<li> transmit<\/li>\n<li> drop<\/li>\n<li> continue (go to next rate-limit rule on the list)<\/li>\n<li> set IP Precedence bits and transmit<\/li>\n<li> set IP Precedence bits and continue<\/li>\n<li> set QoS group and transmit<\/li>\n<li> set QoS group and continue<\/li>\n<\/ul>\n<\/div>\n<div class=\"paragraph\">IP Precedence uses the 3 bit precedence field in the IP header. This gives up to 6 Classes of Service (CoS): 0-5 can be used, but 6 and 7 are reserved per RFC791.  <\/div>\n<div class=\"paragraph\">QoS group is an identifier within the router only. It can be set by CAR or by QPPB (see elsewhere). The QoS group is a number in the range 0 to 99, with 0 the default for unassigned packets (and not usable in assignmentsof QoS group).  <\/div>\n<div class=\"paragraph\">The configurable parameters include: <\/div>\n<div class=\"paragraph\">\n<ul>\n<li> committed rate (bits\/second) &#8212; in increments of 8 Kbps<\/li>\n<li> normal burst size (bytes) &#8212; how many bytes are handled in a burst above the committed rate limit without a penalty<\/li>\n<li> extended burst size (bytes) &#8212; number of bytes in an extended burst &#8212; beyond this, packets are dropped<\/li>\n<\/ul>\n<\/div>\n<div class=\"paragraph\">For traffic falling between normal and extended burst sizes, selected packets are dropped using a RED-like managed drop policy. (See RED, elsewhere).<\/div>\n<p><\/p>\n<div class=\"headline\"> Configuring Committed Access Rate (CAR)<\/div>\n<div class=\"paragraph\">It&#8217;s mostly one long command, repeated over and over with various rule specifications: <\/div>\n<div class=\"paragraph\">\n<ul>\n<pre>[no] rate-limit {input|output}    [access-group [rate-limit] <acl-index> | qos-group <qos-group> ]    <bps> <normal-burst> <extended-burst>    conform-action { drop|        transmit|        continue|        set-prec-transmit <precedence> |        set-prec-continue <precedence>        set-qos-group-transmit <qos-group>        set-qos-group-continue <qos-group>}    exceed-action  { drop|        transmit|        continue|        set-prec-transmit <precedence>|        set-prec-continue <precedence>|        set-qos-group-transmit <qos-group>|        set-qos-group-continue <qos-group>}<\/pre>\n<\/ul>\n<\/div>\n<div class=\"paragraph\">The arguments <b>bps<\/b>, <b>normal-burst<\/b>, <b>extended-burst<\/b> are as noted prior to this section (committed rate in bps and burst sizes in bytes).<\/div>\n<div class=\"paragraph\">Traffic matches can be specified using access-lists: <\/div>\n<div class=\"paragraph\">\n<ul>[no] access-list rate-limit <i>acl-index<\/i> {<i>precedence<\/i> | <i>mac-address <\/i>| mask <i>prec-mask<\/i>}<\/ul>\n<\/div>\n<div class=\"paragraph\">where <b>acl-index<\/b> is the access list number: from 1 to 99 classifies packets by precedence or precedence mask, from 100 to 199 classifies by MAC address. <\/div>\n<div class=\"paragraph\">And <b>mask <i>prec-mask<\/i><\/b> is the IP precedence mask; a two-digit hexadecimal number. This is used to assign multiple precedences to the same rate-limit access list. (Precedences map to bits: precedence 0 is the 1 bit, precedence 1 the 2 bit, etc.). <\/div>\n<p><\/p>\n<div class=\"headline\"> Relevant EXEC Commands<\/div>\n<div class=\"paragraph\">\n<ul>show access-lists rate-limit [<i>acl-index<\/i>]<br \/>show interface [<i>interface<\/i>] rate-limit<\/ul>\n<\/div>\n<p><\/p>\n<div class=\"headline\"> Sample Configuration<\/div>\n<div class=\"paragraph\">Here&#8217;s a simple sample:<\/div>\n<div class=\"paragraph\">\n<ul>interface Hssi0\/0\/0<br \/>&nbsp;description 45Mbps to R1<br \/>&nbsp;rate-limit input 20000000 24000 24000 conform-action transmit exceed-action drop<br \/>&nbsp;ip address 89.146.3.166 255.255.255.252<\/ul>\n<\/div>\n<div class=\"paragraph\">And a more complex one: <\/div>\n<div class=\"paragraph\">\n<ul>interface Hssi0\/0\/0<br \/>&nbsp;&nbsp; description 45Mbps to R2<br \/>&nbsp;&nbsp; rate-limit input access-group 101 20000000 24000 32000 conform-action set-prec-transmit 5 exceed-action set-prec-transmit 0<br \/>&nbsp;&nbsp; rate-limit input access-group 102 10000000 24000 32000 conform-action set-prec-transmit 5 exceed-action drop<br \/>&nbsp;&nbsp; rate-limit input 8000000 16000 24000 conform-action set-prec-transmit 5 exceed-action drop<br \/>&nbsp;&nbsp; ip address 200.200.14.250 255.255.255.252<br \/>&nbsp;&nbsp; (etc.)<\/p>\n<p>access-list 101 permit tcp any any eq www<br \/>access-list 102 permit tcp any any eq ftp<\/p>\n<p>&nbsp;fair-queue tos 2 limit 27<br \/>&nbsp;fair-queue tos 3 weight 40<br \/>&nbsp;fair-queue tos 3 limit 27<\/ul>\n<\/div>\n<p><\/p>\n<div class=\"headline\">Traffic Shaping<\/div>\n<div class=\"paragraph\">Traffic Shaping comes in two forms: Generic Traffic Shaping and Frame Relay Traffic Shaping. These are found in IOS 11.2 and later.  <\/div>\n<div class=\"paragraph\">Traffic Shaping allows you to control how fast packets are sent out an interface, any interface. You might want to do this to avoid congestion either locally or elsewhere in your network, for example if you have a network with different access rates or if you are restricting some traffic to a fraction of the available bandwidth. For example, if one end of the link in a Frame Relay network is 256 Kbps and the other end of the link is only 128 Kbps, sending packets at 256 Kbps at the very least causes congestion. Somewhere.<\/div>\n<div class=\"paragraph\">You can traffic shape all traffic on an interface, or use an access list to specify certain traffic. On Frame Relay interfaces, additional per-virtual-circuit features are available with Frame Relay Traffic Shaping.<\/div>\n<div class=\"paragraph\">Traffic shaping is not supported with optimum, distributed, or flow switching. If you enable traffic shaping, all interfaces will revert to fast switching.<\/div>\n<p><\/p>\n<div class=\"headline\"> Configuring Generic Traffic Shaping<\/div>\n<div class=\"paragraph\">\n<ul>traffic-shape rate <i>bit-rate <\/i>[<i>burst-size <\/i>[<i>excess-burst-size<\/i>]]<br \/>traffic-shape group <i>access-list bit-rate <\/i>[<i>burst-size <\/i> [<i>excess-burst-size<\/i>]]<\/ul>\n<\/div>\n<div class=\"paragraph\">The former command traffic shapes all traffic on an interface. The latter uses an access-list to specify which traffic is to be traffic shaped. <\/div>\n<div class=\"paragraph\"><b>bit-rate: <\/b>Bit rate that traffic is shaped to in bits per second. <\/div>\n<div class=\"paragraph\"><b>burst-size: <\/b>Sustained number of bits that can be transmitted per interval. The default is the bit-rate divided by 8. <\/div>\n<div class=\"paragraph\"><b>excess-burst-size: <\/b>Maximum number of bits that can exceed the burst size in the first interval in a congestion event. The default is equal to the burst-size. <\/div>\n<div class=\"paragraph\">The measurement interval is calculated by dividing the burst-size (if non-zero) by the bit rate. If the burst-size is zero, the excess-burst-size is used (if non-zero). <\/div>\n<div class=\"paragraph\">For Frame Relay, you can use: <\/div>\n<div class=\"paragraph\">\n<ul>traffic-shape adaptive [<i>bit-rate<\/i>]<\/ul>\n<\/div>\n<div class=\"paragraph\">This command uses the configured bit rate as a lower bound, with the bit rate specified by the traffic-shape rate command as the upper bound for bandwidth. The actual rate that the traffic is shaped to lies between those two rates. It should be configured at both ends of the link because it also configures the devices to reflect forward explicit congestion notifications (FECN&#8217;s) as BECN&#8217;s, enabling the faster end of the link to adjust to congestion at the other end. <\/div>\n<p><\/p>\n<div class=\"headline\"> Relevant EXEC Commands<\/div>\n<div class=\"paragraph\">\n<ul>show traffic-shape [<i>interface<\/i>]<br \/>show traffic-shape statistics [<i>interface<\/i>]<\/ul>\n<\/div>\n<p><\/p>\n<div class=\"headline\"> Sample Configuration<\/div>\n<div class=\"paragraph\">\n<ul>access-list 101 permit udp any any<br \/>interface Ethernet0<br \/>traffic-shape group 101 1000000 125000 125000<br \/>interface Ethernet1<br \/>traffic-shape rate 5000000 625000 625000<\/ul>\n<\/div>\n<p><\/p>\n<div class=\"headline\"> Frame Relay Traffic Shaping<\/div>\n<div class=\"paragraph\">The Frame Relay traffic shaping allows  <\/div>\n<div class=\"paragraph\">\n<ul>\n<li> rate enforcement per PVC or SVC<\/li>\n<li> dynamic traffic throttling in response to BECN packets<\/li>\n<li> custom or priority queuing per virtual circuit<\/li>\n<\/ul>\n<\/div>\n<div class=\"paragraph\">The intent is to allow guaranteed bandwidth for each type of traffic. The queuing features let us prioritize per-circuit, and the rate enforcement makes sure that we won&#8217;t have a burst on one virtual circuit denying access line bandwidth to the others.  <\/div>\n<p><\/p>\n<div class=\"headline\">Policy Routing<\/div>\n<div class=\"paragraph\">Policy routing is the name given to use of a route map on packets to influence the routing decision. The routing next hop or output interface can be chosen based on inbound interface, source, or type of traffic. The IP precedence can also be set by the route map.  If you&#8217;re choosing outbound interface or next hop in response to <b>destination<\/b>, then you&#8217;re doing normal routing, subject to some policy perhaps. Policy routing in the Cisco world refers specifically to routing based on source or other traffic characteristics, other than destination. Since this may have performance impact, use it only where needed and appropriate. Policy routing has performance impact: it is process or fast switched. It is therefore suitable for setting precedence at low speed edge routers, but not elsewhere. <\/div>\n<p><\/p>\n<div class=\"headline\"> Configuring Policy Routing<\/div>\n<div class=\"paragraph\">To specify use of a route-map for policy routing on an interface, configure:<\/div>\n<div class=\"paragraph\">\n<ul>ip policy route-map <i>map-tag<\/i><\/ul>\n<\/div>\n<div class=\"paragraph\">The route map blocks then are defined using: <\/div>\n<div class=\"paragraph\">\n<ul>route-map <i>map-tag <\/i>[permit | deny] [<i>sequence-number<\/i>]<\/ul>\n<\/div>\n<div class=\"paragraph\">Route-map match conditions used for policy routing can match either packet length or an IP extended access list. <\/div>\n<div class=\"paragraph\">To match the Layer 3 length of the packet, use: <\/div>\n<div class=\"paragraph\">\n<ul>match length <i>min max<\/i><\/ul>\n<\/div>\n<div class=\"paragraph\">To match IP sources and destinations based on standard or extended access list(s): <\/div>\n<div class=\"paragraph\">\n<ul>match ip address {<i>access-list-number <\/i>| <i>name<\/i>} [&#8230;<i> access-list-number <\/i>| <i>name<\/i>]<\/ul>\n<\/div>\n<div class=\"paragraph\">The route-map block&#8217;s set conditions can specify precedence value, next-hop for IP routing, or output interface. <\/div>\n<div class=\"paragraph\">To set the precedence value in the IP header:  <\/div>\n<div class=\"paragraph\">\n<ul>set ip precedence <i>value<\/i><\/ul>\n<\/div>\n<div class=\"paragraph\">To specify the next hop to which to route the packet (it need not be adjacent):<\/div>\n<div class=\"paragraph\">\n<ul>set ip next-hop <i>ip-address <\/i>[&#8230; <i>ip-address<\/i>]<\/ul>\n<\/div>\n<div class=\"paragraph\">To specify the output interface(s) for the packet: <\/div>\n<div class=\"paragraph\">\n<ul>set interface <i>type number <\/i>[&#8230; <i>type number<\/i>]<\/ul>\n<\/div>\n<div class=\"paragraph\">To specify the default route next hop for use when there is no explicit route: <\/div>\n<div class=\"paragraph\">\n<ul>set ip default next-hop <i>ip-address <\/i>[&#8230; <i>ip-address<\/i>]<\/ul>\n<\/div>\n<div class=\"paragraph\">To specify the default output interface(s) for use when there is no explicit route: <\/div>\n<div class=\"paragraph\">\n<ul>set default interface <i>type number <\/i>[&#8230; <i>type number<\/i>]<\/ul>\n<\/div>\n<div class=\"paragraph\">Fast-switched policy routing supports all of the match commands and most of the set commands, except for the set ip default command and some use of the set interface command. The set interface command is supported only over point-to-point links, unless a route-cache entry exists using the same interface specified in the set interface command in the route map. When process switching policy routing, the routing table is used to check output interface sanity. During fast switching, if the packet matches, the software blindly forwards the packet to the specified interface. To configure fast-switched policy routing on an interface: <\/div>\n<div class=\"paragraph\">\n<ul>ip route-cache policy<\/ul>\n<\/div>\n<div class=\"paragraph\">Packets generated by the router are not normally policy-routed. To enable local policy routing of such packets, specify the route map to use. This is a global configuration mode command. <\/div>\n<div class=\"paragraph\">\n<ul>ip local policy route-map <i>map-tag<\/i><\/ul>\n<\/div>\n<p><\/p>\n<div class=\"headline\"> Related EXEC Commands<\/div>\n<div class=\"paragraph\">\n<ul>show ip cache policy<br \/>show ip local policy<\/ul>\n<\/div>\n<p><\/p>\n<div class=\"headline\"> Sample Configuration<\/div>\n<div class=\"paragraph\">The following example provides two sources with equal access to two different service providers. Packets arriving on serial interface 1 from 1.1.1.1 are sent to the next hop 3.3.3.3 if there is no explicit route for the packet&#8217;s destination. Packets arriving from 2.2.2.2 are sent to the next hop 4.4.4.4 there is no explicit route for the packet&#8217;s destination. All other packets for which the router has no explicit route to the destination are discarded.<\/div>\n<div class=\"paragraph\">\n<ul>access-list 1 permit ip 1.1.1.1<br \/>access-list 2 permit ip 2.2.2.2<br \/>!<br \/>interface serial 1<br \/>&nbsp;ip policy route-map equal-access<br \/>!<br \/>route-map equal-access permit 10<br \/>&nbsp;match ip address 1<br \/>&nbsp;set ip default next-hop 3.3.3.3<br \/>route-map equal-access permit 20<br \/>&nbsp;match ip address 2<br \/>&nbsp;set ip default next-hop 4.4.4.4<br \/>route-map equal-access permit 30<br \/>&nbsp;set default interface null0<\/ul>\n<\/div>\n<p><\/p>\n<div class=\"headline\">QoS Policy Propagation via BGP (QPPB)<\/div>\n<div class=\"paragraph\">QoS Policy Propagation via BGP (QPPB) allows you to classify packets based on access lists, BGP community lists, and BGP AS paths. The classification can then set either IP precedence (a global tagging scheme), or internal QoS group identifier (internal to the router). The BGP community can also contain both AS and IP precedence information &#8212; see the second example below. After classification, other QoS features such as CAR and WRED can then be used to enforce business policy. Note that this allows you to set up a policy at one BGP speaking router, and propagate that to other routers via BGP. Hence the name. This means that at the service provider router connecting to a site, a policy can be set up so that inbound traffic elsewhere is classified into the right class of service (IP Precedence bits). This can then interact with Tag Switching, or MPLS. If you set the QoS group ID, it can then be used for rate-limiting or WFQ based on QoS group ID. This expands on the classes of service provided by the 8 IP precedence values. If you use IP precedence, it can now be set based on source or destination address. <\/div>\n<p><\/p>\n<div class=\"headline\"> Configuring QPPB&#8212;ToS<\/div>\n<div class=\"paragraph\">\n<ul>[no] bgp-policy input ip-prec-map<br \/>[no] bgp-policy output ip-prec-map<\/ul>\n<\/div>\n<p><\/p>\n<div class=\"headline\"> Configuring QPPB&#8212;QoS groups<\/div>\n<div class=\"paragraph\">\n<ul>[no] bgp-policy input ip-qos-map<br \/>[no] bgp-policy output ip-qos-map<\/ul>\n<\/div>\n<p><\/p>\n<div class=\"headline\"> Relevant EXEC Commands<\/div>\n<div class=\"paragraph\">\n<ul>show ip bgp<br \/>show ip bgp <i>community-list community-list-number<\/i><br \/>show ip cef <i>prefix<\/i><br \/>show ip interface<br \/>show ip route <i>prefix<\/i><\/ul>\n<\/div>\n<p><\/p>\n<div class=\"headline\"> Sample Configuration<\/div>\n<div class=\"paragraph\">Configuring QPPB on an interface:  <\/div>\n<div class=\"paragraph\">\n<ul>int hssi0\/0\/0<br \/>&nbsp;ip address 89.146.3.166 255.255.255.252<br \/>&nbsp;bgp-policy input ip-prec-map<\/ul>\n<\/div>\n<div class=\"paragraph\">Configuring BGP to set QoS groups: <\/div>\n<div class=\"paragraph\">\n<ul>router bgp 65534<br \/>&nbsp;neighbor 89.146.3.162 remote-as 28685<br \/>&nbsp;neighbor 89.146.3.162 route-map comm-relay-prec out<br \/>&nbsp;neighbor 89.146.3.162 send-community<br \/>!<br \/>ip bgp-community new-format<br \/>!<br \/>access-list 1 permit 89.146.3.162 0.0.0.255<br \/>!<br \/>route-map comm-relay-prec permit 10<br \/>&nbsp;match ip address 1<br \/>&nbsp;set community 65534:626<br \/>!<br \/>route-map comm-relay-prec permit 20<br \/>set community 65534:626<\/ul>\n<\/div>\n<div class=\"paragraph\">Configuring BGP to set TOS bits (precedence): <\/div>\n<div class=\"paragraph\">\n<ul>router bgp 65534<br \/>&nbsp;table-map precedence-map<br \/>&nbsp;neighbor 89.146.3.162 remote-as 28685<br \/>&nbsp;neighbor 89.146.3.162 update-source Loopback65534<br \/>!<br \/>ip bgp-community new-format<br \/>!<br \/>ip community-list 1 permit 65534:626<br \/>!<br \/>route-map precedence-map permit 10<br \/>&nbsp;match community 1<br \/>&nbsp;set ip precedence 5<br \/>!<br \/>route-map precedence-map permit 20<br \/>&nbsp;set ip precedence 0<\/ul>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Terug naar home QOS (Quality of Service) Introduction QoS stands for Quality of Service. The term is being used by Cisco to refer to IP-based features that allow specification and delivery of services much like the Quality of Service features in ATM. When you get right down to it, there isn&#8217;t all that much a [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"blank","meta":{"footnotes":""},"class_list":["post-78","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/mrnetwork.nl\/index.php\/wp-json\/wp\/v2\/pages\/78","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mrnetwork.nl\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/mrnetwork.nl\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/mrnetwork.nl\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mrnetwork.nl\/index.php\/wp-json\/wp\/v2\/comments?post=78"}],"version-history":[{"count":5,"href":"https:\/\/mrnetwork.nl\/index.php\/wp-json\/wp\/v2\/pages\/78\/revisions"}],"predecessor-version":[{"id":183,"href":"https:\/\/mrnetwork.nl\/index.php\/wp-json\/wp\/v2\/pages\/78\/revisions\/183"}],"wp:attachment":[{"href":"https:\/\/mrnetwork.nl\/index.php\/wp-json\/wp\/v2\/media?parent=78"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}