EN ESTA PÁGINA
Ejemplo: Configuración de DiffServ para IPv6
Configuración
El ejemplo asigna el reenvío acelerado al primer trimestre y un subconjunto de las clases de reenvío garantizado (af1x) al segundo trimestre, y distribuye los recursos entre las cuatro clases de reenvío.
La Figura 1 muestra la topología de los tres enrutadores y vínculos que se utilizan como estudio de caso en este capítulo.
diffServ IPv6 básica
En este estudio de caso, el proveedor de servicios ha acordado proporcionar una entrega de paquetes de alta prioridad para dos aplicaciones entre los servidores del cliente en dos sitios. La primera aplicación genera flujos de flujos de paquetes audiovisuales (televisión) de alta definición y la segunda genera grandes cantidades de información financiera sensible al tiempo. En todos los casos, el flujo de paquetes es de un servidor a otro. El proveedor de servicios marca los paquetes de manera adecuada a medida que ingresan a la red desde cualquiera de los sitios, configura colas especiales y clases de reenvío para este tráfico en los tres enrutadores, y utiliza DiffServ para IPv6 para este propósito.
Los enrutadores 1 y 3 utilizan clasificadores multicampo (MF) en las interfaces orientadas al cliente para detectar paquetes de alta prioridad y reescribir los puntos de código de servicios diferenciados (DSCP) de manera adecuada. Los paquetes de control de red y los datos del mejor esfuerzo no se ven afectados. Los tres enrutadores están configurados con programadores y recursos coherentes para manejar correctamente los paquetes de alta prioridad.
DiffServ de IPv6
La Figura 2 muestra la topología completa para IPv6 DiffServ, completa con interfaces y direcciones IPv6. Se utiliza el formato de dirección IPv6 asignado a IPv4 descrito en RFC 5952.
Comience su configuración en el enrutador 2, el enrutador de núcleo. Esto garantiza que cuando DiffServ está habilitado en los enrutadores de borde, la clase de servicio (CoS) se habilita de extremo a extremo en la red. La configuración del enrutador de núcleo es un poco más simple, ya que no se configura ninguna clasificación mf en el núcleo.
Enrutador 2
[edit]
class-of-service {
classifiers { # Router 2 classifiers.
dscp-ipv6 IPv6-classifier {
import default; # Uses the DSCP default map.
forwarding-class be-DATA-class {
loss-priority high code-points 000001;
}
forwarding-class ef-FIN-class {
loss-priority high code-points 101111;
}
forwarding-class af-AV-class {
loss-priority high code-points 001100;
}
forwarding-class nc-CONTROL-class {
loss-priority high code-points 110001;
}
}
}
drop-profiles { # Router 2 drop profiles.
af-AV-normal {
interpolate {
fill-level [95 100];
drop-probability [0 100];
}
}
af-AV-with-PLP {
interpolate {
fill-level [60 70 80 90 95];
drop-probability [80 90 95 97 100];
}
}
}
forwarding-classes { # Router 2 forwarding classes.
queue 0 be-DATA-class;
queue 1 ef-FIN-class;
queue 2 af-AV-class;
queue 3 nc-CONTROL-class;
}
interfaces { # Router 2 class-of-service interfaces.
so-1/0/1 { # Connected to R1.
scheduler-map diffserv-cos-map;
unit 0 {
classifiers {
dscp-ipv6 IPv6-classifier;
}
rewrite-rules {
dscp-ipv6 rewrite-IPv6-dscp;
}
}
}
so-1/0/2 { # Connected to R3.
scheduler-map diffserv-cos-map;
unit 0 {
classifiers {
dscp-ipv6 IPv6-classifier;
}
rewrite-rules {
dscp-ipv6 rewrite-IPv6-dscp;
}
}
}
}
rewrite-rules rewrite-IPv6-dscps { # Router 2 rewrite rules.
forwarding-class be-DATA-class {
loss-priority low code points 000000;
loss-priority high code points 000001;
}
forwarding-class ef-FIN-class {
loss-priority low code points 101110;
loss-priority high code points 101111;
}
forwarding-class af-AV-class {
loss-priority low code points 001010;
loss-priority high code points 001100;
}
forwarding-class nc-CONTROL-class {
loss-priority low code points 110000;
loss-priority high code points 110001;
}
}
scheduler-maps { # Router 2 scheduler maps.
diffserv-cos-map {
forwarding-class be-DATA-class scheduler be-DATA-scheduler;
forwarding-class ef-FIN-class scheduler ef-FIN-scheduler;
forwarding-class af-AV-class scheduler af-AV-scheduler;
forwarding-class nc-CONTROL-class scheduler nc-CONTROL-scheduler;
}
}
schedulers { # Router 2 schedulers.
be-DATA-scheduler {
transmit-rate percent 40;
buffer-size percent 40;
priority low;
}
ef-FIN-scheduler {
transmit-rate percent 10;
buffer-size percent 10;
priority high;
}
af-AV-scheduler {
transmit-rate percent 45;
buffer-size percent 45;
priority high;
drop-profile-map loss-priority low protocol any drop-profile af-AV-normal;
drop-profile-map loss-priority high protocol any drop-profile af-AV-with-PLP;
}
nc-CONTROL-scheduler {
transmit-rate percent 5;
buffer-size percent 5;
priority low;
}
}
}
interfaces { # R2 interfaces.
so-1/0/1 { # Connected to R1.
unit 0 {
family inet {
address 10.0.0.1/24;
}
family inet6 {
address 0:0:FFFF:10.0.0.1/120;
}
}
}
so-1/0/2 { # Connected to R3.
unit 0 {
family inet {
address 10.0.1.1/24;
}
family inet6 {
address 0:0:FFFF:10.0.1.1/120;
}
}
}
}
Continúe su configuración en los enrutadores 1 y 3, los enrutadores de borde. Estos enrutadores obtienen clasificadores de MF basados en filtros de firewall y reescritura de reglas para marcadores, así como programadores y perfiles de caída en las interfaces principales.
Enrutador 1
[edit]
class-of-service {
classifiers { # Router 1 classifiers.
dscp-ipv6 IPv6-classifier {
import default; # Uses the DSCP default map.
forwarding-class be-DATA-class {
loss-priority high code-points 000001;
}
forwarding-class ef-FIN-class {
loss-priority high code-points 101111;
}
forwarding-class af-AV-class {
loss-priority high code-points 001100;
}
forwarding-class nc-CONTROL-class {
loss-priority high code-points 110001;
}
}
}
drop-profiles { # Router 1 drop profiles.
af-AV-normal {
interpolate {
fill-level [95 100];
drop-probability [0 100];
}
}
af-AV-with-PLP {
interpolate {
fill-level [60 70 80 90 95];
drop-probability [80 90 95 97 100];
}
}
}
forwarding-classes { # Router 1 forwarding classes.
queue 0 be-DATA-class;
queue 1 ef-FIN-class;
queue 2 af-AV-class;
queue 3 nc-CONTROL-class;
}
interfaces { # Router 1 class-of-service interfaces.
so-0/1/1 { # To servers.
scheduler-map diffserv-cos-map;
unit 0 {
classifiers {
dscp-ipv6 IPv6-classifier;
}
rewrite-rules {
dscp-ipv6 rewrite-IPv6-dscp;
}
}
}
rewrite-rules rewrite-IPv6-dscps { # Router 1 rewrite rules.
forwarding-class be-DATA-class {
loss-priority low code points 000000;
loss-priority high code points 000001;
}
forwarding-class ef-FIN-class {
loss-priority low code points 101110;
loss-priority high code points 101111;
}
forwarding-class af-AV-class {
loss-priority low code points 001010;
loss-priority high code points 001100;
}
forwarding-class nc-CONTROL-class {
loss-priority low code points 110000;
loss-priority high code points 110001;
}
}
scheduler-maps { # Router 1 scheduler map.
diffserv-cos-map {
forwarding-class be-DATA-class scheduler be-DATA-scheduler;
forwarding-class ef-FIN-class scheduler ef-FIN-scheduler;
forwarding-class af-AV-class scheduler af-AV-scheduler;
forwarding-class nc-CONTROL-class scheduler nc-CONTROL-scheduler;
}
}
schedulers { # Router 1 schedulers.
be-DATA-scheduler {
transmit-rate percent 40;
buffer-size percent 40;
priority low;
}
ef-FIN-scheduler {
transmit-rate percent 10;
buffer-size percent 10;
priority high;
}
af-AV-scheduler {
transmit-rate percent 45;
buffer-size percent 45;
priority high;
drop-profile-map loss-priority low protocol any drop-profile af-AV-normal;
drop-profile-map loss-priority high protocol any drop-profile af-AV-with-PLP;
}
nc-CONTROL-scheduler {
transmit-rate percent 5;
buffer-size percent 5;
priority low;
}
}
}
firewall { # Router 1 firewall policer and filter.
policer ef-FIN-Policer-Profile {
if-exceeding {
bandwidth-percent 10;
burst-size-limit 2k;
}
then loss-priority high;
}
family inet6 {
filter mf-classifier {
filter-specific;
term AV {
from {
destination-address {
0:0:FFFF:172.16.79.11;
}
}
then {
loss-priority low;
forwarding-class af-AV-class;
}
}
term Finance {
from {
destination-address {
O:0:FFFF:172.16.79.63;
}
}
then {
policer ef-FIN-Policer-Profile;
forwarding-class ef-FIN-class;
}
}
term Network-Control {
from {
traffic-class 192; # 192 is the 110000 traffic class.
}
then {
forwarding-class nc-CONTROL-class; # This is network control traffic.
}
}
term Data {
then forwarding-class be-DATA-class; # The rest is data.
}
}
}
}
interfaces { # Router 1 interfaces.
so-0/0/1 { # To servers.
unit 0 {
family inet {
address 192.168.54.1/24;
}
family inet6 {
filter {
input mf-classifier;
}
address 0:0:FFFF:192.168.54.1/120;
}
}
}
so-0/1/1 { # Connected to R2.
unit 0 {
family inet {
address 10.0.0.2/24;
}
family inet6 {
address 0:0:FFFF:10.0.0.2/120;
}
}
}
}
}
Enrutador 3
[edit]
class-of-service {
classifiers { # Router 3 classifiers.
dscp-ipv6 IPv6-classifier {
import default; # Uses the DSCP default map.
forwarding-class be-DATA-class {
loss-priority high code-points 000001;
}
forwarding-class ef-FIN-class {
loss-priority high code-points 101111;
}
forwarding-class af-AV-class {
loss-priority high code-points 001100;
}
forwarding-class nc-CONTROL-class {
loss-priority high code-points 110001;
}
}
}
drop-profiles { # Router 3 drop profiles.
af-AV-normal {
interpolate {
fill-level [95 100];
drop-probability [0 100];
}
}
af-AV-with-PLP {
interpolate {
fill-level [60 70 80 90 95];
drop-probability [80 90 95 97 100];
}
}
}
forwarding-classes { # Router 3 forwarding classes.
queue 0 be-DATA-class;
queue 1 ef-FIN-class;
queue 2 af-AV-class;
queue 3 nc-CONTROL-class;
}
interfaces { # Router 3 class-of-service interfaces.
so-2/0/1 { # To servers.
scheduler-map diffserv-cos-map;
unit 0 {
classifiers {
dscp-ipv6 IPv6-classifier;
}
rewrite-rules {
dscp-ipv6 rewrite-IPv6-dscp;
}
}
}
rewrite-rules rewrite-IPv6-dscps { # Router 3 rewrite rules.
forwarding-class be-DATA-class {
loss-priority low code points 000000;
loss-priority high code points 000001;
}
forwarding-class ef-FIN-class {
loss-priority low code points 101110;
loss-priority high code points 101111;
}
forwarding-class af-AV-class {
loss-priority low code points 001010;
loss-priority high code points 001100;
}
forwarding-class nc-CONTROL-class {
loss-priority low code points 110000;
loss-priority high code points 110001;
}
}
scheduler-maps { # Router 3 scheduler map.
diffserv-cos-map {
forwarding-class be-DATA-class scheduler be-DATA-scheduler;
forwarding-class ef-FIN-class scheduler ef-FIN-scheduler;
forwarding-class af-AV-class scheduler af-AV-scheduler;
forwarding-class nc-CONTROL-class scheduler nc-CONTROL-scheduler;
}
}
schedulers { # Router 3 schedulers.
be-DATA-scheduler {
transmit-rate percent 40;
buffer-size percent 40;
priority low;
}
ef-FIN-scheduler {
transmit-rate percent 10;
buffer-size percent 10;
priority high;
}
af-AV-scheduler {
transmit-rate percent 45;
buffer-size percent 45;
priority high;
drop-profile-map loss-priority low protocol any drop-profile af-AV-normal;
drop-profile-map loss-priority high protocol any drop-profile af-AV-with-PLP;
}
nc-CONTROL-scheduler {
transmit-rate percent 5;
buffer-size percent 5;
priority low;
}
}
firewall { # Router 3 firewall policer and filter.
policer ef-FIN-Policer-Profile {
if-exceeding {
bandwidth-percent 10;
burst-size-limit 2k;
}
then loss-priority high;
}
family inet6 {
filter mf-classifier {
filter-specific;
term AV {
from {
destination-address {
0:0:FFFF:172.16.79.11;
}
}
then {
loss-priority low;
forwarding-class af-AV-class;
}
}
term Finance {
from {
destination-address {
O:0:FFFF:172.16.79.63;
}
}
then {
policer ef-FIN-Policer-Profile;
forwarding-class ef-FIN-class;
}
}
term Network-Control {
from {
traffic-class 192; # 192 is the 110000 traffic class.
}
then {
forwarding-class nc-CONTROL-class; # This is network control traffic.
}
}
term Data {
then forwarding-class be-DATA-class; # The rest is data.
}
}
}
}
interfaces { # Router 3 interfaces.
so-2/0/0 { # To servers.
unit 0 {
family inet {
address 1172.16.79.1/24;
}
family inet6 {
filter {
input mf-classifier;
}
address 0:0:FFFF:172.16.79.1/120;
}
}
}
so-2/0/1 { # to R2
unit 0 {
family inet {
address 10.0.1.2/24;
}
family inet6 {
address 0:0:FFFF:10.0.1.2/120;
}
}
}
}
}
}
Verificación
Para comprobar que su CoS con la configuración de DiffServ de IPv6 es correcta, utilice los siguientes comandos:
show class-of-service classifier type dscp-ipv6show class-of-service rewrite-rule type dscp-ipv6show class-of-service interfaceshow class-of-service forwarding-table classifier mappingshow class-of-service forwarding-table rewrite-rule mappingshow class-of-service scheduler-mapscheduler-map-nameshow class-of-service forwarding-table scheduler-map
En la siguiente sección se muestra el resultado de estos comandos utilizados con el ejemplo de configuración.
Clasificadores DiffServ
user@R1> show class-of-service classifier type dscp-ipv6 Classifier: dscp-ipv6-default, Code point type: dscp-ipv6, Index: 4 Code point Forwarding class Loss priority 000000 be-DATA-class low 000001 be-DATA-class low 000010 be-DATA-class low 000011 be-DATA-class low 000100 be-DATA-class low 000101 be-DATA-class low 000110 be-DATA-class low 000111 be-DATA-class low 001000 be-DATA-class low 001001 be-DATA-class low 001010 af-AV-class low 001011 be-DATA-class low 001100 af-AV-class high 001101 be-DATA-class low 001110 af-AV-class high 001111 be-DATA-class low 010000 be-DATA-class low 010001 be-DATA-class low 010010 be-DATA-class low 010011 be-DATA-class low 010100 be-DATA-class low 010101 be-DATA-class low 010110 be-DATA-class low 010111 be-DATA-class low 011000 be-DATA-class low 011001 be-DATA-class low 011010 be-DATA-class low 011011 be-DATA-class low 011100 be-DATA-class low 011101 be-DATA-class low 011110 be-DATA-class low 011111 be-DATA-class low 100000 be-DATA-class low 100001 be-DATA-class low 100010 be-DATA-class low 100011 be-DATA-class low 100100 be-DATA-class low 100101 be-DATA-class low 100110 be-DATA-class low 100111 be-DATA-class low 101000 be-DATA-class low 101001 be-DATA-class low 101010 be-DATA-class low 101011 be-DATA-class low 101100 be-DATA-class low 101101 be-DATA-class low 101110 ef-FIN-class low 101111 be-DATA-class low 110000 nc-CONTROL-class low 110001 be-DATA-class low 110010 be-DATA-class low 110011 be-DATA-class low 110100 be-DATA-class low 110101 be-DATA-class low 110110 be-DATA-class low 110111 be-DATA-class low 111000 nc-CONTROL-class low 111001 be-DATA-class low 111010 be-DATA-class low 111011 be-DATA-class low 111100 be-DATA-class low 111101 be-DATA-class low 111110 be-DATA-class low 111111 be-DATA-class low Classifier: IPv6-classifier, Code point type: dscp-ipv6, Index: 18301 Code point Forwarding class Loss priority 000000 be-DATA-class low 000001 be-DATA-class high 000010 be-DATA-class low 000011 be-DATA-class low 000100 be-DATA-class low 000101 be-DATA-class low 000110 be-DATA-class low 000111 be-DATA-class low 001000 be-DATA-class low 001001 be-DATA-class low 001010 af-AV-class low 001011 be-DATA-class low 001100 af-AV-class high 001101 be-DATA-class low 001110 af-AV-class high 001111 be-DATA-class low 010000 be-DATA-class low 010001 be-DATA-class low 010010 be-DATA-class low 010011 be-DATA-class low 010100 be-DATA-class low 010101 be-DATA-class low 010110 be-DATA-class low 010111 be-DATA-class low 011000 be-DATA-class low 011001 be-DATA-class low 011010 be-DATA-class low 011011 be-DATA-class low 011100 be-DATA-class low 011101 be-DATA-class low 011110 be-DATA-class low 011111 be-DATA-class low 100000 be-DATA-class low 100001 be-DATA-class low 100010 be-DATA-class low 100011 be-DATA-class low 100100 be-DATA-class low 100101 be-DATA-class low 100110 be-DATA-class low 100111 be-DATA-class low 101000 be-DATA-class low 101001 be-DATA-class low 101010 be-DATA-class low 101011 be-DATA-class low 101100 be-DATA-class low 101101 be-DATA-class low 101110 ef-FIN-class low 101111 ef-FIN-class high 110000 nc-CONTROL-class low 110001 nc-CONTROL-class high 110010 be-DATA-class low 110011 be-DATA-class low 110100 be-DATA-class low 110101 be-DATA-class low 110110 be-DATA-class low 110111 be-DATA-class low 111000 nc-CONTROL-class low 111001 be-DATA-class low 111010 be-DATA-class low 111011 be-DATA-class low 111100 be-DATA-class low 111101 be-DATA-class low 111110 be-DATA-class low 111111 be-DATA-class low
Reglas de reescritura
user@R1> show class-of-service rewrite-rule type dscp-ipv6 Rewrite rule: dscp-ipv6-default, Code point type: dscp-ipv6, Index: 20 Forwarding class Loss priority Code point be-DATA-class low 000000 be-DATA-class high 000000 ef-FIN-class low 101110 ef-FIN-class high 101110 af-AV-class low 001010 af-AV-class high 001100 nc-CONTROL-class low 110000 nc-CONTROL-class high 111000 Rewrite rule: rewrite-IPv6-dscp, Code point type: dscp-ipv6, Index: 58077 Forwarding class Loss priority Code point be-DATA-class low 000000 be-DATA-class high 000001 ef-FIN-class low 101110 ef-FIN-class high 101111 af-AV-class low 001010 af-AV-class high 001100 nc-CONTROL-class low 110000 nc-CONTROL-class high 110001
Interfaces de clase de servicio
user@R1> show class-of-service interface
...
Physical interface: so-0/0/1, Index: 141
Queues supported: 4, Queues in use: 4
Scheduler map: diffserv-cos-map, Index: -543019056
Logical interface: so-0/0/1.0, Index: 68
Object Name Type Index
Rewrite rewrite-IPv6-dscp dscp-ipv6 58077
Rewrite exp-default exp 21
Classifier IPv6-classifier dscp-ipv6 18301
Classifier exp-default exp 5
...
Physical interface: so-0/1/1, Index: 144
Queues supported: 4, Queues in use: 4
Scheduler map: <default>, Index: -113795564
Logical interface: so-0/1/1.0, Index: 69
Object Name Type Index
Rewrite exp-default exp 21
Classifier exp-default exp 5
Classifier ipprec-compatibility ip 8
Asignación de clasificador
user@R1> show class-of-service forwarding-table classifier mapping
Table Index/
Interface Index Q num Table type
so-0/0/1.0 68 18301 IPv6 DSCP
so-0/1/1.0 69 8 IPv4 precedence
Reescritura de asignación de reglas
user@R1> show class-of-service forwarding-table rewrite-rule mapping Interface Index Table index Type so-0/1/1.0 68 58077 IPv6 DSCP
Mapa del programador
user@R1> show class-of-service scheduler-map diffserv-cos-map
Scheduler map: diffserv-cos-map, Index: 1094596010
Scheduler: be-DATA-scheduler, Forwarding class: be-DATA-class, Index: 14343
Transmit rate: 40 percent, Rate Limit: none, Buffer size: 40 percent,
Priority: low
Drop profiles:
Loss priority Protocol Index Name
Low non-TCP 1 <default-drop-profile>
Low TCP 1 <default-drop-profile>
High non-TCP 1 <default-drop-profile>
High TCP 1 <default-drop-profile>
Scheduler: ef-FIN-scheduler, Forwarding class: ef-FIN-class, Index: 21707
Transmit rate: 10 percent, Rate Limit: none, Buffer size: 10 percent,
Priority: high
Drop profiles:
Loss priority Protocol Index Name
Low non-TCP 1 <default-drop-profile>
Low TCP 1 <default-drop-profile>
High non-TCP 1 <default-drop-profile>
High TCP 1 <default-drop-profile>
Scheduler: af-AV-scheduler, Forwarding class: af-AV-class, Index: 51704
Transmit rate: 45 percent, Rate Limit: none, Buffer size: 45 percent,
Priority: high
Drop profiles:
Loss priority Protocol Index Name
Low non-TCP 61474 af-AV-normal
Low TCP 61474 af-AV-normal
High non-TCP 65199 af-AV-with-PLP
High TCP 65199 af-AV-with-PLP
Scheduler: nc-CONTROL-scheduler, Forwarding class: nc-CONTROL-class, Index: 50404
Transmit rate: 5 percent, Rate Limit: none, Buffer size: 5 percent,
Priority: low
Drop profiles:
Loss priority Protocol Index Name
Low non-TCP 1 <default-drop-profile>
Low TCP 1 <default-drop-profile>
High non-TCP 1 <default-drop-profile>
High TCP 1 <default-drop-profile>
user@R1> show class-of-service forwarding-table scheduler-map
...
Interface: so-0/0/1 (Index: 141, Map index: -543019056, Map type: FINAL,
Num of queues: 4):
Entry 0 (Scheduler index: 14343, Queue #: 0):
Tx rate: 0 Kb (40%), Buffer size: 40 percent
Priority low
PLP high: 1, PLP low: 1, TCP PLP high: 1, TCP PLP low: 1
Entry 1 (Scheduler index: 21707, Queue #: 1):
Tx rate: 0 Kb (10%), Buffer size: 10 percent
Priority high
PLP high: 1, PLP low: 1, TCP PLP high: 1, TCP PLP low: 1
Entry 2 (Scheduler index: 51704, Queue #: 2):
Tx rate: 0 Kb (45%), Buffer size: 45 percent
Priority high
PLP high: 65199, PLP low: 61474, TCP PLP high: 65199, TCP PLP low: 61474
Entry 3 (Scheduler index: 50404, Queue #: 3):
Tx rate: 0 Kb (5%), Buffer size: 5 percent
Priority low
PLP high: 1, PLP low: 1, TCP PLP high: 1, TCP PLP low: 1
...