QoS(Quality of Service)
Delay
1. Serialization Delay
- Packet이 bit화 되는데 걸리는 시간
- Packet의 크기에 비례, Bandwidth의 크기에 반비례
- Packet(bit) ÷ Bandwidth(bps)
2. 전달지연
- 출발지에서 목적지까지 1bit가 가는데 걸리는 시간
- Packet의 크기 및 Bandwidth의 영향을 받지 않음
- 출발지와 목적지간의 거리에 따라 결정
- 빛의속도의 70%(2.1×10^8) ÷ 거리(m)
3. Forwarding Delay
- 특정 Interface로 Packet이 들어오면 Routing Process에 의해서 목적지로 가기 위한 출구 Interface로 가는데까지 걸리는 시간
- 일반적으로 CEF에 의해서 Router보다는 Switch가 더 빠르다
4. Shaping Delay
- Shaping(FRTS) : Bandwidth를 초과한 Data를 Buffer에 저장하기 때문에 속도가 느리다.
- Policing(CAR) : Bandwidth를 초과한 Data를 무조건 Drop하기 때문에 속도가 빠르다
- 이 때 Shaping을 할 경우 Buffer에 저장했다가 나가므로 Delay가 생긴다
5. Queuing Delay
- Queue에 입력되서 나갈때까지 걸리는 시간
- Input Queue에는 일반적으로 Delay가 걸리지 않는다
- Output Queue
ㄴ Serialization Delay × Queue의 길이
6. Network Delay
- ISP 업체를 통해서 갈 때 걸리는 Delay
- ISP 업체의 Network망을 모르기 때문에 Delay 계산을 할 수 없다
- SLA 협약 : ISP 업체가 최소로 보장해주는 Delay
7. Jitter
- 지연값의 편차
- De-Jitter에 저장한 후 지연 값의 편차를 똑같이 만들어서 보낸다(Buffering의 개념)
8. Packet loss
- 물리적인 하드웨어 불량 / 공격 및 looping, Slow start 등에 의한 혼잡으로 인해 발생
QoS Model
1. Interserv Model
- QoS를 할 Packet의 Bandwidth를 예약
- Drop이나 Delay가 없다
- Message 종류 : PATH, RESV, ERROR
2. Differserv Model
- Protocol이나 출발지/목적지 IP, Access-list, Route-map, MQC 등으로 분류하여 설정
- Packet을 Flow별로 분류 -> Shaping 또는 Policing 확인 -> Marking -> Queue 저장 -> 혼잡제어 -> Scheduler 동작
ⓐ 분류 : Flow 별로 Packet을 구분
Protocol / 출발지나 목적지의 IP, MAC주소, Port번호 등을 통해 구별함
Access-list, Route-map, MQC를 사용하여 분류한다
ⓑ Policing/Shaping : 버킷 알고리즘으로 동작
ⓒ Marking : Layer2는 COS, Layer3는 IP precedence 또는 DSCP로 계산
ㄴ COS : 3bit로 표현, 0~7까지 있고, 숫자가 높을수록 우선순위가 높다, Default는 0(BE)
L2에서 동작하고, Access Port로 Data가 들어오면 COS에 대한 설정값이 없고, Trunk에서 표현이 가능
단 L3 Switch라면 DSCP 정보를 IP Packet에 표시해서 보내주면 된다
Switch에는 기본적으로 QOS가 Off 되어있고 Qos 활성이 되어있지 않으면 COS 값이 들어오면 그냥 보내주고,
QOS 활성이 되어있으면 COS값을 초기화
ㄴ IP Precedence : 3bit로 표현, 0~7까지 있고, 숫자가 높을수록 우선순위가 높다.
0 : Default
5 : VoIP / 동영상
6-7 : 예약
ㄴ DSCP : 6bit를 사용하지만 맨 마지막 1bit는 실험용, 2^5개로 32개로 표현
BE : Default로 COS의 0과, IP Precedence의 0
CS : 호환용, IP Precedence 값을 DSCP로 또는 DSCP를 IP Precedence 값을 바꿀때
AF : 기본적으로 사용하는 PHB, 숫자가 높을수록 우선순위가 높다
AF 1 - 001ZZ0 (ZZ = Drop률, 마지막 0은 실험용, 앞 3자리는 AF숫자)
AF 2 - 010ZZ0
AF 3 - 011ZZ0
AF 4 - 100ZZ0
Drop률은 01=low, 10=medium, 11=high
이것을 10진수로 바꾸면 DSCP 값으로 표현가능하고 AFXY에서 X는 AF1,2,3,4중 하나이고 Y는 Drop률의 1,2,3 중의 하나이다.
EF : 가장 중요한 Packet, COS의 5나 IP Precedence의 5와 같다
MQC
1. Class-Map : Packet을 정의
(config)# class-map match-all {name} -> OR의 개념
(config)# class-map match-any {name} -> AND의 개념, default값
(config-class-map)# match access-group {number} -> Access-list로 정의된 Access-group을 정의
(config-class-map)# match protocol {tcp/udp/telnet ...} -> 지정할 Protocol 정의
(config-class-map)# match input-int {interface} -> 들어오는 Interface 정의
2. Policy-Map : 정책 설정
(config)# policy-map {name} -> Policy-map 정의
(config-policy-map)# class {Class-map 이름} -> 정의한 Class-map을 가져옴
(config-policy-map)# set ip dscp {num} -> DSCP 설정
(config-policy-map)# trust {cos|ip precedence|dscp} -> 우선순위 지정
(config-policy-map)# policy _________ -> Bandwidth 제한
(config-policy-map)# shaping ____________ -> Buffer에 저장
3. Service-Policy : 적용
(config)# int {interface} -> 적용할 인터페이스 진입
(config-if)# service-poilcy {output|input} {Policy-map 이름} -> 적용
Configure Command
(config)# mls qos -> QOS 활성화,
[COS 설정]
(config)# int {interface}
(config-if)# mpls qos trust {cos|dscp|IP precedence}
(config-if)# mpls qos cos 1 -> cos가 설정되어 있지 않은 Packet에 1을 설정
- 2012/04/19 11:43
- bubukgi.egloos.com/3831192
- 덧글수 : 0
- 2012/04/12 10:07
- bubukgi.egloos.com/3828477
- 덧글수 : 0
Traffic Engineering
사용하지 않는 경로까지 사용, Network 분할
아래 Topology에서 일반적으로 R2-R3 구간에 혼잡이 생기면 R1-R4로 갈때 정해진 최적경로를 통해가지만
MPLS의 Traffic Engineering을 통해 사용하지 않는 경로를 통해 우회할 수 있다
[참고 Topology]

LABEL 구성
| L2 | Label | L3 |
------- 4byte로 표시
* 20bit : Label 값 (0~1,040,000)
* 3bit : QOS
* 1bit : BOS Bit : 1 - Label이 하나 존재
0 - Label이 2개 이상 존재
* 8bit : TTL
MPLS 구성
* 고객은 현재 사용하는 Network망의 설정이 없다.
* 고객 A와 고객 B는 서로간에 통신이 되지 않는다. 따라서 같은 Network를 사용해도 상관 없다
* MPLS의 개념과 Metro Ethernet의 개념이 비슷하다
* MPLS는 다음 2가지 Table을 가진다
- LIB : 모든 Label 정보
- LFIB : 최적 경로의 Label 정보
* MPLS에서 사용하는 Label을 주고 받기 위한 Protocol로 다음 2가지가 있다
- TDP : Cisco 전용
- LDP : 표준
* MPLS의 라벨 바인딩 분배방식 : IGP Table에 있는 경로들에 Label값을 붙이는 것
- DoD : 5.5.5.0/24에 대해 Label 값을 R4에게 요청
- UD : R3에서 경로에 대한 Label 값 설정
* 라벨 저장 모드
- LLR : LIB에 저장, 즉 모든 Label 정보 저장
- CLR : LFIB에 저장, 즉 최정경로 Label 정보만 저장
* FEC : 동일한 Label 값을 붙여서 Forwarding하는 Packet의 집합
1. 목적지 주소가 같은 경우
2. 같은 Multicast Group에 Join 했을 때
3. BGP에서 Next-hop의 IP가 같을 때
[참고 Topology]

MPLS VPN
* PE : 특정 경로에 Label을 할당(Push)
* 출발지 P : 특정 경로의 Label을 Switching(Swap)
* 목적지 P : 특정 경로의 Label 값을 떼어버린다(Pop)
* MPLS VPN의 Table
- vrf table(PE)의 특징
1. Routing table과 같다
2. 고객마다 vrf table을 가지고 있다
3. 이름을 가지고 여러개의 vrf 구분(대/소문자 구별)
4. PE Router의 하나의 interface는 하나의 vrf에만 속한다
* RD : 고객 식별자
ㄴ IP주소가 172.16.1.0/24, RD가 1:100이라면 VPN Prefix는 1:100:172.16.10.24
* RT : BGP의 Extended Community
ㄴ Export : CE->PE로 들어올 때 붙이는 Community 값
ㄴ Import : PE->CE로 나갈 때 붙이는 Community 값
[참고 Topology]

SHAM-LINK
MPLS로 들어오는 OSPF의 경로의 Code 값을 O IA에서 O로 변경시켜주는 명령어
1. MPLS PE Router에서 설정
2. Loopback interface를 생성하여야 한다(단, 32bit로 설정)
3. Loopback 주소는 OSPF로 광고되면 안되고 반드시 MPLS MBGP내로 광고되어야 한다
4. Loopback 주소는 해당 vrf에 속한다
MPLS Config
PE Router(R3)
1. 고객의 vrf table 생성
2. 고객와 연결된 interface에 vrf를 설정
3. IGP 설정
4. MBGP 설정
5. MPLS VPN 설정
[기본설정]
(config)# ip cef -> Routing Table Cache를 만들어서 보내주겠다
(config)# mpls label protocol {LDP|TDP} -> MPLS Label Protocol 종류 설정
(config)# mpls label range 100 200 -> MPLS 범위 지정
(config)# mpls {LDP|TDP} router-id {loopback interface} (force) -> 반드시 loopback 0는 IGP Table로 광고되어야한다, force는 강제로 받을 경우(optional)
[PE vtf 생성]
(config)# ip vrf {name}
(config- vrf)# rd 1:100
(config-vrf)# route-target both 200:200 -> export/import 모두 200:200으로 route-target 설정
(config-vrf)# route-target export 200:200
(config-vrf)# route-target import 100:100
(config)# int fa0/0
(config-if)# ip vrf forwarding {name} -> 해당 인터페이스로 vrf를 보냄
(config-if)# ip address {ip} {subnet}
[고객과 PE간 Static]
PE Router에서
(config)# ip route vrf {name} {고객의 주소} {Subnet} {interface}
[고객과 PE간 RIP]
PE Router에서
(config)# router rip
(config-rtr)# version 2
(config-rtr)# no auto-summary
(config-rtr)# address-family ipv4 vrf AAA
(config-rtr-af)# version 2
(config-rtr-af)# no auto-summary
(config-rtr-af)# network {network 주소}
(config-rtr-af)# redistrbitue bgp 1 metric 3
[고객과 PE간 EIGRP]
(config)# router eigrp 1
(config-rtr)# no auto
(config-rtr)# address-family ipv4 vrf {name}
(config-rtr-af)# no auto
(config-rtr-af)# network {IP} {W/M}
(config-rtr-af)# redistribute
(config-rtr-af)# autonomous-system {neighbor의 AS번호}
[고객과 PE간 OSPF]
(config)# router ospf 1 vrf {name}
(config-rtr)# 기존의 설정과 동일
[고객과 PE간 BGP]
(config)# router bgp 1
(config-rtr)# no syn
(config-rtr)# no auto
(config-rtr)# neighbor {고객 ip}
(config-rtr)# address-family ipv4 vrf {name}
(config-rtr-af)# neighbor {고객 ip} activate
(config-rtr-af)# redistribute {RIP|EIGRP|OSPF|STATIC} ___
* 단 OSPF를 BGP로 재분배 시 OSPF 내부 정보만 재분배된다(O E1/E2/N1/N2는 재분배 X)
[PE와 PE간 VPN 설정]
(config)# router bgp 1
(config-rtr)# address-family VPNV4 unicast
(config-rtr-af)# neighbor {ip주소} activate
(config-rtr-af)# neighbor {ip주소} send-community extended
[Route Target 값 임의로 바꾸기]
(config)# ip vrf {name}
(config-vrf)# export map {name}
(config)# route-map {name}
(config-route-map)# match ip address {num}
(config-route-map)# set extcommunity rt {route target값} >> 해당 route-target 값으로 바꿈
(config-route-map)# set extcommunity rt {route target값} addtive >> community 값을 더함
(config)# access-list 10 {network} {wildcard mask}
[Sham-link]
(config)# int loopback 100
(config-if)# ip vrf forwarding {name}
(config-if)# ip address {자신의 ip address} 255.255.255.255
!
(config)# router bgp {process ID}
(config-rtr)# address-family ipv4 vrf {name}
(config-rtr)# network {자신의 ip address} mask 255.255.255.255
!
(config)# router ospf {process ID} vrf {name}
(config)# area {num} sham-link {자신 ip address} {상대 ip address} cost 1
[확인 명령어]
# show ip route vrf {name}
# ping vrf {name} {ip 주소}
[MPLS 구성 순서도]
공유하기 버튼
- 2012/04/02 10:07
- bubukgi.egloos.com/3824670
- 덧글수 : 0
IS-IS의 특징 - Link-State 방식
1. SPF 알고리즘 사용
2. Classless Routing(VLSM/CIDR 사용 가능)
3. Looping이 없다
4. Triggered Update
5. Neighbor(인접성)
6. 계층적 구조
- OSPF : area 0 와 다른 area
- IS-IS : 여러 area 단위
OSPF와 IS-IS의 장단점 비교
1. OSPF - 관련된 내용이 많다(Troubleshooting 용이)
- 하나의 Area 안에 50~100개
2. IS-IS - 관련된 내용이 적다(troubleshooting 불리)
- 하나의 Area 안에 1000개의 Router 적용 가능
IS-IS 용어
1. CLNS(IGP) -> CLNP(Routed Protocol) 라는 Protocol을 Forwarding 하기 나옴
IS-IS Packet
1. CLNP
| | IP |
2. Net(주소) 체계
ex) 49.0001.1111.1111.1111.00
49 - Doman(사설 : 49)
0001 - Area-ID
1111.1111.1111 - System-ID(Router-ID)
00 - Selector(상위 Protocol 정보표현, IP : 00)
3. LSP : 서로간의 Router DB를 동기화(OSPF의 LSA와 같은 개념)
4. ISH : IS-IS Router가 End-system으로 보내는 Hello Packet
5. ESH : End-stytem이 IS-IS Router로 보내는 Hello Packet
Router의 종류
1. Level 1 Router : 같은 Area 안에 있는 Router(OSPF의 Intra Router와 같은 개념)
Totally Stub 처럼 동작
가장 가까운 Level 1/2 Router를 Default로 설정(Level 1/2 Router가 여러개이면 Cost 값이 가장 적은 Router를 선출)
LSP 1을 가짐
2. Level 2 Router : 서로 다른 Area 안의 Router(OSPF의 Extra Router와 같은 개념)
Backbone Area로 동작
Level 1 Router에게 Default를 보내줌
LSP 2를 가짐
3. Level 1/2 Router(Default) : Level 1의 정보와 Level 2의 정보를 교환(OSPF의 ABR과 같은 개념)
LSP 1 / LSP 2를 가짐
* 통신은 같은 Level 끼리 이루어진다. Router간 Level이 틀리면 통신 불가

Routing 종류
1. Level 0 Routing : End-Sytem(PC, Printer 등)과 IS-IS Router간 정보 교환
2. Level 1 Routing : Level 1 Router와 Level 1 Router 또는 Level 1/2 Router 간 정보 교환
3. Level 2 Routing : Level 2 Router와 Level 2 Router 또는 Level 1/2 Router 간 정보 교환
4. Level 3 Routing : 서로 다른 Domain / 서로 다른 Protocol 간 정보교환
[참고 Topology]
IS-IS Network Type
1. Broadcast : 3.3초(Hello) / 9.9초(Dead-Interval)
2. Point-to-Point : 10초(Hello) / 30초(Dead-Interval)
IS-IS Configure
[기본설정]
R1.
(config)# router isis
(config-rtr)# net 49.0001.1111.1111.1111.00
(config-rtr)# is-type level 1(default=1/2)
R2.
(config)# router isis
(config-rtr)# net 49.0001.2222.2222.2222.00
[광고]
R1.
(config)#int s0/0.12 p
(config-if)# ip router isis -> 해당 interface를 isis로 광고
(config-if)# isis circuit-type level 1 -> s0/0.12 구간에 isis 광고 type을 Level 1만 보냄(default=1/2)
(config-if)# clns router isis -> CLNS packet을 주고 받음
R2.
(config)#int s0/0.23 p
(config-if)#ip router isis
(config-if)#isis circuit-type level 2
[재분배]
(config-rtr)# redistribute connected
[Wide Metric]
(config)# router isis
(config-rtr)#metric-style wide -> IS-IS에서 Metric 값이 한정되므로 많은 Router를 동작할 때 Wide Metric 설정
[NBMA 환경에서 IS-IS설정]
(config-if)# frame map clns {DLCI} br -> 주고받는 패킷이 CLNS이므로 Mapping을 해주어야함
Routing table Sample
1. ← 3.3.3.0/24 광고
2. ← i L2 3.3.3.0/24 Area 1로 전달'
3. 0.0.0.0/0 Default로 넘어온다(Level 1은 Totally Stub 처럼 동작하므로)
공유하기 버튼
- 2012/03/19 12:47
- bubukgi.egloos.com/3819455
- 덧글수 : 0
[Switch에서 ip v6 사용 선언]
(config)# sdm prefer dual-ipv4-and-ipv6 default
(config)# wr
(config)# reload
[Router에서 ip v6 사용 선언]
(config)# ipv6 unicast-routing
[기본 설정]
(config)# int {interface}
(config-if)# ipv6 enable
(config-if)# ipv6 address {ipv6 address/prefix} -> IPv6를 수동으로 설정
(config-if)# ipv6 address dhcp -> DHCP를 통해서 받아옴
(config-if)# ipv6 address {ipv6 address/prefix} EUI-64 -> Host 부분을 자동으로 생성
(config-if)# ipv6 address {ipv6 address/prefix} autoconfig -> 자신과 연결된 Router에게 Router의 Network 정보를 요청
이때 Network 정보를 준 Router로 Default를 설정
[글로벌 주소]
(config)#int {interface}
(config-if)# ipv6 enable
(config-if)# ipv6 address {2001:1:1:12::1/64}
[사설 주소]
(config)# int {interface}
(config-if)# ipv6 enable
(config-if)# ipv6 address {FEC0:1:1:12:1/64}
[링크로컬 주소]
(config)# int {interface}
(config-if)# ipv6 enable
(config-if)# ipv6 address FE80:11 link-local
[확인]
# show ipv6 int {interface}
* 기본적으로 ipv4에서 ip라고 썻던 부분을 ipv6로 명령어를 쓴다
EUI-64
Network부분을 알려주면 64bit의 Host 부분을 자신의 MAC-Address를 가지고 자동으로 만들어 냄
MAC = 1234:5678:9ABC -> IPv6 = 1111::1234:56FF:FE78:9ABC
RIPng, OSPFv3, EIGRP의 IPv6 재분배
(config)#ipv6 router ospf {process_ID}
(config-router)# redistribute rip {process_ID} -> RIP으로 광고된 network를 광고
(config-router)# redistribute connected -> 광고하지 않은 자신의 connected interface 광고
(config-router)#redistribute rip {process_ID} include-connect -> RIP을 ospf로 광고할 때 connected 를 포함해서 광고
Frame Relay 구간 문제
(config-if)#ipv6 address {FE80::1} link-local
(config-if)#frame map ipv6 {상대 Router의 IPv6 address} {DLCI}
(config-if)#frame map ipv6 {상대 Router의 link-local 주소} {DLCI} broadcast -> ipv6는 routing protocol이 link-local로 통신하므로 넣어야함
공유하기 버튼
- 2012/03/13 12:10
- bubukgi.egloos.com/3817159
- 덧글수 : 0
연산자, 기호 등을 가지고 AS-PATH에 대한 Filtering
서버에서도 많이 사용
연산자/기호의 종류
1. ^ : 시작을 의미
예) ^1 : 나의 neighbor의 AS가 준 정보, AS-PATH가 1로 시작하는 모든 정보
2. $ : 끝을 의미
예) 3$ : AS 3번이 만든 정보, AS-PATH가 3으로 끝나는 모든 정보
3. | : or을 의미
예) ^1|2 : 1로 시작하거나 2로 시작하는 정보
4. [] : 포함
예) [12345] 또는 [1-5] : 1 또는 2 또는 3 또는 4 또는 5를 포함하는 정보
5. _ : 시작(^), 끝($), 공백을 의미하지만 문자는 올 수 없음
예) _2_ : 2로 시작하거나 2로 끝나거나 2를 포함하는 정보
6. () : 분배
예) ^(2|3)_100 = ^2_100|^3_100 : 2로 시작하고 100을 포함하는 정보
7. . : 어떠한 문자가와도 상관이 없다
예) [1-5]. : 1부터 5를 포함하고 1~5에서 표기되는 모든 AS-PATH(11,22,33 등)를 포함
8. \ : 특수문자를 표시하기 위한 기호
예) \/24 : /24
9. * : AS뒤에 쓰여서 AS가 하나도 없거나 또는 무수히 많은 경우
예) ^[0-9]+_([0-9])+$ : AS번호가 2개 달린 경로의 일반화
10. + : AS뒤에 쓰여서 AS가 하나 있거나 또는 무수히 많은 경우
11. ? : AS뒤에 쓰여서 AS가 하나도 없거나 또는 하나인 경우
일반적 표현
예) ^$ : AS가 하나도 없는 경로, IBGP로 받은 정보
예) .* : 모든 경로
정규표현식 Configure
(config)# router bgp {AS번호}
(config-router)# neighbor {Next-hop IP} filter-list {ACL num}
(config)# ip as-path access-list {num} {permit|deny} {정규표현식}
또는
(config-router)#neighbor {next-hop IP} route-map {name} in
(config)# route-map {name}
(config-route-map)# match as-path {num}
(config-route-map)# set ________________
(config)#ip as-path access-list {num} {permit|deny} {정규표현식}
예제

1. R1에서 R2로 들어올때 AS3 정보만 permit : 3$ or ^2_3$
2. R1에서 R4로 들어올때 AS6 정보만 permit : 6$ or ^4_5_6$ or ^[0-9]+[0-9]+[0-9]?$\



최근 덧글