LDP Neighbor Session Establishment
• LDP는 mpls 도메인에서 서로 label을 교환 하기 위해 사용 되는 프로토콜이다.
• mpls ip 명령어를 인터페이스에서 활성화 시키면 LDP hello mesage 를 224.0.0.2 (모든라우터)멀티캐스트로 , 세션 성립을 위해 udp 646 포트로 hello meseage 를 보낸다.
이떄, udp 를 통해서 라우터를 찾게 되면 tcp 646 으로 tcp세션을 요청게 된다.
LDP Link Hello Message
• hello message 는 224.0.0.2 멀티캐스트로 모든 라우터에 전달이 된다.
•ldp 는 hello messge 를 보내기 위해 udp 646 포트를 사용 한다.
• 6바이트 ldp 실별자는 라우터 아이디(4바이트) :레이블 공간(2바이트) 로 식별 된다. => 여기서 per interface 방식과 플랫폼 방식 두가지인데 플렛폼 방식은 항상 0 이며
• 인터페이스 별로 설정시, 인터페이스 마다 label 이 틀리기 때문에 구분 하기 위해 사용 (Per interface 는 atm 에서 사용 )
=> LDP를 udp 646 멀티 캐스트로 검색 후 라우터아이디를 서로 비교 하여 높은 아이디(아이피)를 갖은 장비가 tcp로 세션을 맺을려고 시도 하며, 세션 성립 되면 네이버를 맺는다.
Label Space: Per-Platform
• Per-Platform은 한 장비 에서 label 에 대한 프로세스를 1개를 갖게 되지만 Per-interface는 각 인터페이스 별로 label의 프로세스가 동작하게 된다.
•단, per platforrm 은 per interface에 비하여 보안이 약하다.(=>label만 알면 forwarding되기 때문에)
Negotiating Label Space
– LSR들 레이블 공간당 하나의 LDP세션을 설정 한다.
– pre-platform 은 여러 링크를 연결 하더라도 1개의 label space 를 사용 한다.
– Per-platform방식은 label space 공간이 1개이기 때문에 0으로 세팅 해서 ldp id 를 설정 한다.(0이 아닌 경우에는 per interface 방식 으로 동작 )
– ex) routeid:1.0.0.1 => LDP ID = 1.0.0.1:0
- 아래 그림은 서로 ldp 네이버를 맺는 과정을 나타낸것이며, 라우터 아이디가 높은 장비가 tcp세션을 맺을려고 요청 한다.
LDP Session Negotiation
- TCP로 세션을 맺을때 아래와 같이 3way handshake 과정을 통하여 네이버 성립후 label을 주고 받는다.
세션 성립후 tcp이기 때문에 60초에 한번씩 keepalive 를 던지며,180초가 지나면 상대가 죽었다고 생각 한다.
즉, tcp세션이 끊어지기 전까지 180 초 동안 label을 보관 하게 된다.
## 아래 명령어로 lsp discovery 의 자세한 정보를 확인 할 수 있다.
R1#show mpls ldp discovery detail
Local LDP Identifier:
1.1.1.1:0 <---- 로컬에서 광고한 자신의 라우터 아이디
Discovery Sources:
Interfaces:
Ethernet1/0 (ldp): xmit/recv <------------xmit/recv 를 통해서 보내고 받았는지를 알 수 있다.
Enabled: Interface config
Hello interval: 5000 ms; Transport IP addr: 1.1.1.1 <-------------- hello interval 5초
LDP Id: 2.2.2.2:0 <---------------------네이버의 아이피
Src IP addr: 10.10.12.2; Transport IP addr: 2.2.2.2 <---------해당 네이버가 보낸 소스 아이피와 라우터 아이디
Hold time: 15 sec; Proposed local/peer: 15/15 sec <---자신과 상대방의 hold time
Reachable via 2.2.2.2/32
## 아래 명령어를 통해서 binding 되어 있는 ldp 정보를 확인 할 수 있다.
R1#show mpls ldp bindings
tib entry: 1.1.1.1/32, rev 2
local binding: tag: imp-null
remote binding: tsr: 2.2.2.2:0, tag: 16
tib entry: 2.2.2.2/32, rev 4
local binding: tag: 16
remote binding: tsr: 2.2.2.2:0, tag: imp-null
tib entry: 3.3.3.3/32, rev 6
local binding: tag: 17
remote binding: tsr: 2.2.2.2:0, tag: 17
tib entry: 10.10.12.0/24, rev 8
local binding: tag: imp-null
remote binding: tsr: 2.2.2.2:0, tag: imp-null
tib entry: 10.10.14.0/24, rev 10
local binding: tag: imp-null
tib entry: 10.10.23.0/24, rev 12
local binding: tag: 18
remote binding: tsr: 2.2.2.2:0, tag: imp-null
## 아래 명령어로 LFIB 정보를 확인 할 수 있다.
R1#show mpls forwarding-table
Local Outgoing Prefix Bytes tag Outgoing Next Hop
tag tag or VC or Tunnel Id switched interface
16 Pop tag 2.2.2.2/32 0 Et1/0 10.10.12.2
17 17 3.3.3.3/32 0 Et1/0 10.10.12.2
18 Pop tag 10.10.23.0/24 0 Et1/0 10.10.12.2
## 아래 명령어를 통해서 라우터 아이디를 변경 할 수 있다.(force 명령어가 없을 경우 강제로 변경 되지 않는다)
R1(config)#mpls ldp router-id loopback 1 force
반응형
'Network > ccie-mpls' 카테고리의 다른 글
Introducing MPLS Label Allocation, Distribution, and Retention Modes (0) | 2016.03.20 |
---|---|
Introducing Convergence in Frame-Mode MPLS (0) | 2016.03.20 |
Introducing Typical Label Distribution in Frame-Mode MPLS (0) | 2016.03.20 |
Introducing MPLS Labels and Label Stacks (0) | 2016.03.15 |
Introducing Basic MPLS Concepts (0) | 2016.03.15 |