Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

OpenConfig QoS 명령을 Junos 구성에 매핑

메모:

지원되는 데이터 모델 버전 및 해당 Junos OS 또는 Junos Evolved OS 릴리스는 OpenConfig 데이터 모델 버전을 참조하십시오.

포워딩 클래스 구성

다음 OpenConfig 경로의 구성 매핑은 표 1 을 참조하십시오.

  • /qos/포워딩 그룹/포워딩 그룹/이름
  • /qos/forwarding-groups/forwarding-group/config/name
  • /qos/forwarding-groups/forwarding-group/config/fabric-priority
  • /qos/forwarding-groups/forwarding-group/config/출력 대기열
표 1: 포워딩 클래스 구성

OpenConfig 구성

Junos 구성

openconfig-qos:qos {
       forwarding-groups {
              forwarding-group {
                    name af1;
                    config {
                          name <>;
                          fabric-priority 0;
                          output-queue <>;
                    }
              }
              forwarding-group {
                    name nc;
                    config {
                          name <>;
                          fabric-priority 1;
                          output-queue <>;
                    }
              }
       }
}
class-of-service {
    forwarding-classes {
        class <name> queue-num <num> priority low;
        class <name> queue-num <num> priority high;
   }
}

OpenConfig fabric-priority 값 0은 낮은 우선 순위를 나타냅니다. 0이 아닌 값은 높은 우선 순위를 나타냅니다. 이 fabric-priority 값은 PTX 플랫폼에서 지원되지 않습니다.

BA 분류자 구성

다음 OpenConfig 경로의 구성 매핑에 대해서는 을(를) 참조하십시오.

  • /QoS/분류자/분류자/이름
  • /QoS/분류기/분류기/용어/용어/ID
  • /qos/분류기/분류기/구성/이름
  • /qos/분류기/분류기/구성/유형
  • /QoS/분류기/분류기/용어/용어/ID
  • /qos/분류기/분류기/용어/용어/구성
  • /qos/분류기/분류기/용어/용어/구성/id
  • /qos/classifiers/classifier/terms/term/conditions/ipv4/config/dscp-set
  • /QoS/분류기/분류기/약관/용어/조건/IPv6/구성/DSCP 집합
  • /qos/classifiers/classifier/terms/term/actions/config/target-group
메모:

아래의 OpenConfig 예제를 보다 쉽게 따를 수 있도록 위의 OpenConfig 구성 트리에서 변수를 사용합니다.

표 2: BA 분류자 구성

OpenConfig 구성

Junos 구성

Open-Config-QoS:QoS:classifiers:classifier {
   name DSCP;
   terms {
      term {
         id 0;
         conditions {
            ipv6 {
               config {
                  dscp-set [ 2 3 ];                                                       }
         }
         actions {
            config {
               target-group best-effort;
            }
         }
      }
   }
}
[edit class-of-service]
classifiers {
   dscp DSCP {
term-id {
term-id 0;
   forwarding-class best-effort {
      loss-priority low code-points [ 000100 000010 ];
   }
}

Junos OS는 가치를 기대합니다 loss-priority . 그러나 OpenConfig 구성에서는 이를 제공하지 않습니다. 기본적으로 이 loss-priority 값은 로 low간주됩니다.

OpenConfig code-point 값은 비트 형식을 옥텟으로, 10진수 값을 10진수로 사용하여 제공됩니다. 혼동을 피하기 위해 10진수 형식으로 값을 제공할 code-point 수 있으며 스크립트는 이를 6비트 패턴으로 변환하여 관리 데몬으로 보냅니다. 예를 들어:

set openconfig-qos:qos classifiers classifier DSCP terms term 0 conditions ipv4 config dscp-set [2 3]

MPLS 분류자 구성

다음 OpenConfig 경로의 구성 매핑은 표 3 을 참조하십시오.

  • /QoS/분류기/분류기/약관/용어/조건/MPLS
  • /QoS/분류기/분류기/약관/용어/조건/MPLS/구성
  • /qos/classifiers/classifier/terms/term/conditions/mpls/config/traffic-class
  • /qos/classifiers/classifier/terms/term/actions/config/target-group
표 3: MPLS 분류자 구성

OpenConfig 구성

Junos 구성

openconfig-qos:qos {
    classifiers {
        classifier <> {
            config {
                name <>;
                type <>;
            }
            terms {
                term {
                    id <>;
                    conditions {
                        mpls {
                            config {
                                traffic-class <>;
                            }
                        }
                    }
                    actions {
                        config {
                            target-group <>;
                            }
                        }
                    }
                 }
                term {
                    id <>;
                    conditions {
                        mpls {
                            config {
                                traffic-class <>;
                            }
                        }
                    }
                    actions {
                        config {
                            target-group <>;
                            }
                        }
                    }
                 }
             }
         }
    }
}
class-of-service {
    classifiers {
        exp <> {
            forwarding-class <> {
                loss-priority low code-points <>;
            }
            forwarding-class <> {
                loss-priority low code-points <>;
            }
        }
    }
}

Junos OS는 가치를 기대합니다 loss-priority . OpenConfig 구성에서는 이를 제공하지 않습니다. 기본적으로 loss-priority 값은 low입니다.

OpenConfig code-point 값은 비트 형식을 옥텟으로, 10진수 값을 10진수로 사용하여 제공됩니다. 혼동을 피하려면 10진수 형식으로 값을 제공합니다 code-point .

규칙 구성 다시 쓰기

다음 OpenConfig 경로의 구성 매핑은 표 4 를 참조하십시오.

  • /qos/분류기/분류기/용어/용어/작업/비고
  • /qos/classifiers/classifier/terms/term/actions/remark/config
  • /qos/classifiers/classifier/terms/term/actions/remark/config/set-dscp
  • /qos/classifiers/classifier/terms/term/actions/remark/config/set-dot1p
  • /qos/classifiers/classifier/terms/term/actions/remark/config/set-mpls-tc
표 4: 규칙 구성 재작성

OpenConfig 구성

Junos 구성

openconfig-qos:qos {
    classifiers {
        classifier <> {
            config {
                name <>;
                type IPV4;
            }
            terms {
                term 0 {
                    actions {
                        config {
                            target-group <>;
                        }
                        remark {
                            config {
                                set-dscp 5;
                            }
                        }
                    }
                }
                term 1 {
                    actions {
                        config {
                            target-group <>;
                        }
                        remark {
                            config {
                                set-dscp 6;
                            }
                        }
                    }
                }
            }
        }
    }
}
class-of-service {
    rewrite-rules {
        dscp <> {
            forwarding-class <> {
                loss-priority low code-point 000101 term-id 0;
            }
            forwarding-class <> {
                loss-priority low code-point 000110 term-id 1;
            }
        }
    }
}
openconfig-qos:qos {
    classifiers {
        classifier <> {
            config {
                name <>;
                type IPV6;
            }
            terms {
                term 0 {
                    actions {
                        config {
                            target-group <>;
                        }
                        remark {
                            config {
                                set-dscp 7;
                            }
                        }
                    }
                }
                term 1 {
                    actions {
                        config {
                            target-group <>;
                        }
                        remark {
                            config {
                                set-dscp 8;
                            }
                        }
                    }
                }
            }
        }
    }
}
class-of-service {
    rewrite-rules {
        dscp-ipv6 <> {
            forwarding-class <> {
                loss-priority low code-point 000111 term-id 0;
            }
            forwarding-class <> {
                loss-priority low code-point 001000 term-id 1;
            }
        }
    }
}
openconfig-qos:qos {
    classifiers {
        classifier <> {
            config {
                name <>;
                type MPLS;
            }
            terms {
                term 0 {
                    actions {
                        config {
                            target-group <>;
                        }
                        remark {
                            config {
                                set-mpls-tc 5;
                            }
                        }
                    }
                }
                term 1 {
                    actions {
                        config {
                            target-group <>;
                        }
                        remark {
                            config {
                                set-mpls-tc 6;
                            }
                        }
                    }
                }
            }
        }
    }
}
class-of-service {
    rewrite-rules {
        exp <> {
            forwarding-class <> {
                loss-priority low code-point 101 term-id 0;
            }
            forwarding-class <> {
                loss-priority low code-point 110 term-id 1;
            }
        }
    }
}

재작성 규칙 구성에 사용되는 전달 그룹은 다음과 같습니다.

openconfig-qos:qos {
    forwarding-groups {
        forwarding-group <> {
            config {
                name <>;
                output-queue 0;
            }
        }
        forwarding-group <> {
              config {
                  name <>;
                  output-queue 1;
             }
        }
    }
}
class-of-service {
    forwarding-classes {
        class <> queue-num 0;
        class <> queue-num 1;
    }
}

분류자 바인딩 구성

다음 OpenConfig 경로의 구성 매핑은 표 5 를 참조하십시오.

  • /qos/interfaces/interface/interface-id
  • /qos/interfaces/interface/interface-ref/config/interface
  • /qos/interfaces/interface/interface-ref/config/subinterface
  • /qos/interfaces/interface/input/classifiers/classifier/type
  • /qos/interfaces/interface/input/classifiers/classifier/config/name
  • /qos/interfaces/interface/input/classifiers/classifier/config/type
메모:

아래의 OpenConfig 예제를 보다 쉽게 따를 수 있도록 OpenConfig 구성 트리에서 변수를 사용합니다.

표 5: 분류자 바인딩 구성

OpenConfig 구성

Junos 구성

openconfig-qos:qos {
    interfaces {
        interface {
            interface-id et-0/0/1.0;
                input {
                    classifiers {
                        classifier {
                            type <>;  
                            config {
                                name <>;
                                type <>;
                            }
                        }
                    }
                }
            }
        }
        interface {  
               interface-id ae0;  
            interface-ref { 
                config { 
                    subinterface <>; 
                } 
            } 
                 input {  
                        classifiers {  
                                classifier {  
                                    type <>;    
                                        config {  
                                            name <>;  
                                                type <>;
                                    }  
                              }
                        } 
            }
        }
    }
}
class-of-service {
    et-0/0/1 {
        unit 0 {
            classifiers {
                dscp <>;
             }
        }
    }
    ae0 { 
        unit <> { 
            classifiers { 
                exp <>;  
            } 
        } 
    }  
}

분류자 바인딩은 분류자와 인터페이스를 매핑하여 인터페이스 테이블로부터 형성될 수 있습니다.

이 구성은 와일드카드(*)도 지원합니다. 예를 들어:

set openconfig-qos:qos interfaces interface et-*/*/*.0 interface-ref config interface et-*/*/*

set openconfig-qos:qos interfaces interface et-*/*/*.0 interface-ref config subinterface 0

set openconfig-qos:qos interfaces interface et-*/*/*.0 input classifiers classifier IPV4 config name DSCP

openconfig-qos:qos {
   interfaces interface <> {
       interface-ref {
           config interface <>;
       }
       output scheduler-policy {
            config name <>;
       }
   }
}
class-of-service {
    interfaces <> {
        output-traffic-control-profile <>;
    }
}

스케줄러 구성

다음 OpenConfig 경로의 구성 매핑은 표 6 을 참조하십시오.

  • /qos/스케줄러 정책/스케줄러 정책/이름
  • /qos/scheduler-policies/scheduler-policy/schedulers/scheduler/sequence
  • /qos/scheduler-policies/scheduler-policy/schedulers/scheduler/config/priority
  • /qos/scheduler-policies/scheduler-policy/schedulers/scheduler/output/config/output-fwd-group
  • /qos/scheduler-policies/scheduler-policy/schedulers/scheduler/config/sequence
  • /qos/scheduler-policies/scheduler-policy/schedulers/scheduler/two-rate-three-color/config/bc
  • /qos/scheduler-policies/scheduler-policy/schedulers/scheduler/two-rate-three-color/config/cir
  • /qos/scheduler-policies/scheduler-policy/schedulers/scheduler/two-rate-three-color/config/cir-pct
  • /qos/scheduler-policies/scheduler-policy/schedulers/scheduler/two-rate-three-color/config/pir
  • /qos/scheduler-policies/scheduler-policy/schedulers/scheduler/two-rate-three-color/config/pir-pct
  • /qos/scheduler-policies/scheduler-policy/schedulers/scheduler/inputs/input/id
  • /qos/scheduler-policies/scheduler-policy/schedulers/scheduler/inputs/input/config/id
  • /qos/scheduler-policies/scheduler-policy/schedulers/scheduler/inputs/input/config/input-type
  • /qos/scheduler-policies/scheduler-policy/schedulers/scheduler/inputs/input/config/queue
  • /qos/scheduler-policies/scheduler-policy/schedulers/scheduler/inputs/input/config/weight
  • /qos/scheduler-policies/scheduler-policy/schedulers/scheduler/config/priority
메모:

아래의 OpenConfig 예제를 보다 쉽게 따를 수 있도록 아래의 OpenConfig 구성 트리에서 변수를 사용합니다.

표 6: 스케줄러 구성

OpenConfig 구성

Junos 구성

openconfig-qos:qos { 
    scheduler-policies { 
        scheduler-policy { 
             name smap; 
             schedulers {
                 scheduler { 
                     sequence:4 
                     two-rate-three-color { 
                       config {
                          cir-pct:10
                       } 
                     } 
                 } 
                 scheduler { 
                     sequence:1 
                     two-rate-three-color { 
                      config {
                         cir-pct:1 
                      }
                     } 
                 }
                 scheduler { 
                     sequence:5  
                     two-rate-three-color { 
                       config {
                         cir-pct:1 
                       }
                     } 
                 }
                 scheduler { 
                     sequence:2 
                     priority: STRICT
                     two-rate-three-color { 
                      config {
                         cir-pct:1 
                       }
                     } 
                 }
                 scheduler { 
                     sequence:0 
                     two-rate-three-color { 
                       config {
                          cir-pct:1 
                      }
                     } 
                 }
                 scheduler { 
                     sequence:3 
                     two-rate-three-color { 
                       config {
                        cir-pct:1 
                      }
                     }
                 } 
           } 
       } 
    } 
} 
class-of-service {
 scheduler-maps { 
    smap { 
        forwarding-class af1 scheduler sched_af1; 
        forwarding-class af2 scheduler sched_af2; 
        forwarding-class af3 scheduler sched_af3; 
        forwarding-class af4 scheduler sched_af4; 
        forwarding-class be1 scheduler sched_be1; 
        forwarding-class nc1 scheduler sched_nc1; 
    } 
 } 
 schedulers { 
    sched_af1 { 
        transmit-rate percent 10; 
        buffer-size shared; 
        priority low; 
    } 
    sched_af2 { 
        transmit-rate percent 1; 
        buffer-size shared; 
        priority low; 
    } 
    sched_af3 { 
        transmit-rate percent 1; 
        buffer-size shared; 
        priority low; 
    } 
    sched_af4 { 
    transmit-rate percent 1; 
        buffer-size shared; 
        priority strict-high; 
    } 
    sched_be1 { 
        transmit-rate percent 1; 
        buffer-size shared; 
        priority low; 
    } 
    sched_nc1 { 
   transmit-rate percent 1; 
        buffer-size shared; 
        priority low; 
    } 
 } 
}

명령에서 scheduler 지원되지 않는 OpenConfig 매개 변수에는 , excess-rates, 및 excess priorities가 포함됩니다buffer-size. 우선 순위만 STRICT-HIGH 지원됩니다. 우선 순위를 구성하면 로 처리됩니다STRICT-HIGH. 그렇지 않으면 우선 순위가 기본값입니다LOW.

명령 아래에서 scheduler 지원되지 않는 필드인 OpenConfig 필드는 , pir-pct-remaining, ( be 초과 버스트 크기) 및 (커밋된 버스트 크기)입니다 cir-pct-remainingbc . 이러한 필드는 PTX 플랫폼에서는 지원되지 않지만 MX 플랫폼에서는 지원됩니다.

OpenConfig에서 스케줄러 이름을 구성하기 위한 매개 변수가 없습니다. 대신 Junos scheduler-map 이름과 를 결합하여 이름을 추론합니다 forwarding group. 예를 들어, 아래 매개 변수는 스케줄러 이름을 sched_smap_assured-forwarding만듭니다 .

<schedulers> {
       <name> “sched” _ “_” _$smap_name _ "_" _ $out_fwd_group;
   }
메모:

스케줄러 이름의 길이는 64자일 수 있습니다. 스케줄러 맵과 포워딩 클래스 이름은 OpenConfig 구성에 연결되어 있으므로 제공 시 주의해야 합니다.

OpenConfig sequence 번호는 전달 그룹이 나타내는 값과 동일 queuenum 해야 합니다. 예를 들어, 이(가) 큐 2에 연결된 경우 assured-forwarding sequence number는 2여야 합니다. 상태를 내보내는 동안 이target-group(가) 첨부된 을queuenum(를) sequence 번호로 내보냅니다.

set openconfig-qos:qos scheduler-policies scheduler-policy smap schedulers scheduler 2 output config output-fwd-group assured-forwarding

openconfig-qos:qos { 
   scheduler-policies scheduler-policy sp1 {
       schedulers scheduler 0 {
	   inputs {
	       input AF4 {
                 config id AF4;
	          input-type QUEUE;
	          queue 2;
	          weight 60;
	       }
	   }
       }
   }
}
class-of-service {
    scheduler-maps sp1{
        forwarding-class AF4 scheduler sched_scheduler_AF4;
    }
    traffic-control-profiles {
        tcp_sp1
             schedule-map sp1;
        }
    }
}
// If STRICT priority is configured:
class-of-service {
    schedulers {
        scheduler_AF4{
            transmit-rate percent 100;
            excess-rate percent 60;
            priority high;
        }
    }
}
// If *not* STRICT priority, use Weighted Round Robin (WRR)mode:
class-of-service {
    schedulers {
        scheduler_AF4{
            transmit-rate percent 0;
            excess-rate percent 60;
            priority low;
        }
    }
}

메모: 매핑을 더 잘 이해할 수 있도록 위의 구성에 값이 추가됩니다.

대기열 리프 값은 스케줄러 맵에서 동등한 포워딩 클래스 값으로 변환됩니다.

엄격한 스케줄러 우선 순위를 구성하는 경우:

  • 각 포워딩 클래스에 대해 값을 100%로 구성합니다 transmit-rate .

  • 포워딩 클래스는 priority 오름차순으로 OpenConfig 포워딩 클래스 가중치를 기반으로 합니다.

  • 포워딩 클래스는 priority "strict-high:high:medium-high:medium-low:low:low:low:low"의 순서로 할당됩니다.

엄격한 스케줄러 우선 순위가 구성되지 않은 경우(WRR 모드):

  • 각 포워딩 클래스에 대해 값을 0%로 구성합니다 transmit-rate .

  • 각 OpenConfig 포워딩 클래스의 가중치와 동일한 값으로 값을 구성합니다 excess-rate . 100을 초과하는 중량 값은 허용되지 않습니다.

에 대한 값은 Junos OS에 매핑할 QUEUE 수 있는 유일한 열거형 값이므로 QUEUE OpenConfig 경로 /qos/scheduler-policies/scheduler/schedulers/scheduler/input/config/input-type에서만 값을 사용할 수 있습니다. 마찬가지로 리소스 경로 /qos/scheduler-policies/scheduler-policy/schedulers/scheduler/state/input-type을 구독하면 항상 열거형 QUEUE 리프가 수집기로 스트리밍됩니다.input-type

Junos OS에서 스케줄러 맵 구성을 위한 트래픽 제어 프로필(TCP)을 생성하고 TCP를 사용하여 구성을 인터페이스에 바인딩합니다. 위의 Junos OS 구성은 TCP tcp_sp1 및 스케줄러 맵을 sp1사용합니다.

스케줄러 맵 구성

다음 OpenConfig 경로의 구성 매핑은 표 7 을 참조하십시오.

  • /qos/interfaces/interface/interface-id
  • /qos/interfaces/interface/output/scheduler-policy/config/name
메모:

아래의 OpenConfig 예제를 보다 쉽게 따를 수 있도록 아래의 OpenConfig 구성 트리에서 변수를 사용합니다.

표 7: 스케줄러 맵 구성

OpenConfig 구성

Junos 구성

openconfig-qos:qos {
   interfaces {
      interface {
         interface-id et-0/0/1;
            output {
               scheduler-policy {
                  config {
                     name <>;
                  }
               }
            }
         }
      }
   }
}
class-of-service {
   interfaces et-0/0/1{
      output-traffic-control-profile tcp_sp1;
   }
}

스케줄러 맵은 물리적(IFD) 인터페이스에만 바인딩할 수 있습니다.

와일드카드도 지원됩니다. 예를 들어:

set openconfig-qos:qos interfaces interface et-*/*/* interface-ref config interface et-*/*/*

set openconfig-qos:qos interfaces interface et-*/*/* output scheduler-policy config name smap

드롭 프로파일 구성

다음 OpenConfig 경로의 구성 매핑은 표 8 을 참조하십시오.

  • /qos/queue-management-profiles/queue-management-profile/config/name
  • /qos/queue-management-profiles/queue-management-profile/wred/uniform/config/min-threshold
  • /qos/queue-management-profiles/queue-management-profile/wred/uniform/config/max-threshold
  • /qos/queue-management-profiles/queue-management-profile/wred/uniform/config/max-drop-probability-percent
  • /qos/queue-management-profiles/queue-management-profile/wred/uniform/config/enable-ecn
  • /qos/queue-management-profiles/queue-management-profile/wred/
  • /qos/interfaces/interface/output/queues/queue/config/name

  • /qos/interfaces/interface/output/queues/queue/config/queue-management-profile

표 8: 드롭 프로파일 구성

OpenConfig 구성

Junos 구성

openconfig-qos:qos {
   queue-management-profiles {
      queue-management-profile <> {
         wred {
            uniform {
               config {
                  min-threshold; (not for MX Series)
                  max-threshold; (not for MX Series)
                  enable-ecn <true | false>; (not for MX Series)
                  max-drop-probability-percent <>;
               }
            }
         }
      }
   }
}
class-of-service {
   drop-profiles {
       <profile-name> {
           fill-level <> drop-probability <>;
       }
   schedulers {
      <scheduler-name> {
         explicit-congestion-notification;
      }
   }
}

OpenConfig에서 최소 및 최대 임계값 수준(바이트)을 구성합니다. Junos에서는 각 임계값을 대기열 채우기 수준의 백분율로 구성합니다. 명령문과 fill-level drop-probability 결합된 명령문을 반복하여 최소 및 최대 임계값을 구성할 수 있습니다.

openconfig-qos:qos { 
   queue-management-profile {
      config {
         name <>; 
   }
   wred {
      uniform {
         config {
           min-threshold-percent <>;
	    max-threshold-percent <>;
	    max-drop-probability-percent <>;
	 }
      }
   }
}
class-of-service {
    drop-profiles {
        <profile-name> {
        interpolate {
            fill-level [ <> <> ];
            drop-probability <>;
        }
    }
}
openconfig-qos:qos {
    interfaces interface <> {
        interface-ref {
            config interface <>;
        }
        output queues <> {
            config {
                name <>;
                queue-management-profile <>;
            }
        }
    }
}
interfaces {
    <interface-name>{
        scheduler-map <>;
    }
}
scheduler-maps {
    <scheduler-map-name> {
        forwarding-class best-effort scheduler <>;
    }
}
schedulers {
    <scheduler-name> {
        drop-profile-map loss-priority any protocol any drop-profile <>;
    }
} 
openconfig-qos:qos {
    scheduler-policies scheduler-policy <> {
        schedulers scheduler <> { 
    }
}
class-of-service {
    schedulers {
        <scheduler> {
            priority strict-high;
        }
    }
}

인터페이스 구성 하에서 queue-management 프로필을 대기열에 바인딩할 때, Junos OS 서비스 등급 모델은 동일한 인터페이스 출력 아래에 이미 존재하는 스케줄러 맵에 프로필을 연결합니다drop. 인터페이스에 프로필을 연결하려면 drop /qos/interfaces/interface/output/scheduler-policy/ 아래의 출력에서 인터페이스에 프로필이 scheduler-policy 연결되어 있어야 합니다.