본문 바로가기
network/ccie-isis

IS-IS(Intermediate System-to-Intermediate System Protocol)


IS-IS(Intermediate System-to-Intermediate System Protocol)

. 안정된 프로토콜로, ISP에서 사용이 많이 된다.
. US정부에서 처음 만든뒤, OSI 7 에 match  시켜 변형 시켰다.->OSPF,IP지원
. IS-IS에서 OSPF로 상업 목적으로 사용 되었다. 
OSPF가 불안정한 이유는 IS-IS 개발 도중  변형 되어 불안정한 link state protocol 이다.
. Connectionless Network Service (CLNS) 지원 , LSDB를 이용한다. 

connection oriented vs connectionless
->connection oriented 상대와 연결이 되어 있는 뒤 보내며,connectionless는 연결 무시하고 보낸다.
TCP ,UDP차이와 동일함

. clns address 이용한다. -> mac 라우팅 진행
. Link-State protocol . vlsm 지원
Uses its own PDUs to transport IP routing information;
updates not sent in IP packets
Requires CLNS addresses, even if only routing for IP->CLNS addresses를 통해서 pdu 전달 
. hello packet 를 이용한 adjancenies 유지

 . level 1 : local 에서 system id 를 보고 topology를 그려 가장 loswet cost path 를 그린다.
.  level 2 : different area -> area 와 area 간 lowest -cost path 를 그린다. 
. Level 1-2 routers: ospf abr과 유사.levle 1과 2를 연결 해준다. 연결되어 있는 구간은 level 2로 동작 한다.
(abr과 다르게 중간에 있지 않고, 한쪽에 속해서 연결 된다.)


. 백본 area가 필요로 하지 않는다.-> ospf 디자인 이슈 해결 

. metric 기본 10으로 설정되어 계산된다.
. 처음은 6bit에서 10bit만 되었지만 24bit 에서 32bit까지 사용 하기 위해서 metric-style wide설정을 통해서 
metric bit를 올려서 높은 metric 을 설정 할 수 있다.






EI-IS(End System-to-Intermediate System)

. 상위레벨로 헬로를 전송할 때 사용 ESH 라고 한다.
. 하위레벨로 헬로를 전송할 때 사용  보내는 것을 ISH 라고 한다.
is-is 라우터에서 is-is 라우터 간 보내는 hello packet 을 IIH 하고 한다.




IS-IS level 별 동작 

. host 와 is-is 간 통신을 level 0으로 동작
. is-is 와 is-is 간 같은 area 로 통신을 level 1으로 동작
. is-is 와 is-is 간 다른 area 로 통신을 level 2으로 동작
. 서로 다른 도메인 간 level 3으로 동작(cisco 미 지원)



Similarities Between IS-IS and OSPF

Link-state representation, aging timers, and LSDB  synchronization 
– SPF algorithms
– Update, decision, and flooding processes
– VLSM support
- They both converge quickly after changes.


ospf
is-is
LSDB update 
30분
10초 
LSDB aging time
1시간
20분 


. OSPF 는 backbone area 가 있어야 통신이 되지만 IS-IS 는 bakcbone area 가 필요 없으므로 
확장성에 유연하게 대처 가능 해서 ISP에서 많이 사용 된다.



Advantages of Integrated IS-IS

. OSPF는 종류별 LSA를 통해서 광고 되지만 IS-IS 는 CLNP와 IP를 이용한  레벨별 LSP를 통해 광고가 이루어 진다.
. TLV(type length value) design이 가능 하다. -> 추가적인 해더 삽입 변형이 가능 하기 때문에 IPv6 가 가능 하다.
*ospf는 tlv 가 안되고 고정 되어 있는 해더로 ipv6 미지원



NSAP Addresses

IS-IS 는 라우터 자체에 clnp address 를 nsap 형식에 따라 설정
보통 10byte 로 구성 되어 있다.

afi : 1byte로 해더의 폼을 선언  (49: 사설 47: 북반구 )
high order DSP : 1byte로 area 아이디를 구분 한다.
*variable -length area address 는 cisco 는 3byte 이지만 벤더 마다 차이가 있다.

system id: cisco 는 6byte로 지정 되어 있으며, 전체 네트워크에서 유일해야 한다.
-> 유일하게 하기 위해 mac주소 혹은 아이피로 mapping 에서 system id 로 갖는다.

selector 
 - nsel : 1byte 로 서비스 구분자 

ex )NET: 49.0001.1922.2300.1001.00

AREA ID : 49.0001
system id  1922.2300.1001
nsel : 00




IS-IS Routing Levels

Level 1 (like OSPF internal nonbackbone routers)
. area 내부에서 라우팅 정보 처리 
. If not equal, pass to nearest Level 1-2 router.
-> 같은 area 가 아니면 가장 가까운 level 1-2 로 포워딩 해서 외부로 보낸다.
. If equal, use Level 1 database to route by system ID.
-> 같은 area 면 system id 를 보고 포워딩 한다.

Level 1-2 (like OSPF ABR)
.  area와 area 간의 라우팅  정보(level2) , level 1의 라우팅 정보 모두 처리 한다.
. 많은 라우팅 정보를 처리 하기 때문데 장비에 부하가 많이 생긴다.
. stub area처럼 level 1에 대한 정보를 0.0.0.0 으로 default route 정보를 준다.
. If not equal, use Level 2 database to route by area address.
-> 같지 않으면 level 2 db를 알 고 있기 때문에 사용 해서 해당 area add로 보낸다.
.  If equal, use Level 1 database to route by system ID.
-> 같으면 시스템 id를 보고 포워딩 한다.

Level 2 (like OSPF backbone routers)
. backbone 의 역할을 겸하고 있다
. area와 area 간 노드의 라우팅 정보를 처리 한다.

. area address 는 area간에 사용 되며 system id  는 고려 되지 않는다.
. system id 는 area 안에서 사용 되며 area address 는 고려 되지 않는다.


Route Leaking

. 아래 그림 처럼 Y에서 X로 가는 경로가 X에서 Y로 가는 경우 처럼 경로가 틀려 질 수 있다=>비대칭 경로 
-> Y에서는 area가 틀리기 때문에 가장 가까운 level1-2 로 보내기 때문에 경로가 다르다.
-> 그렇기 때문에 장애 포인트를 해결 하기 힘든 경우가 있어 경로를 맞춰주는 것 이 좋다.
-> 이러한 topology 에서는 Route Leaking을 사용 한다.
Route Leaking를 사용 할 경우 아래 Y의 L1에서 인접한 L1-2 의 정보를 수신하여 best path 를 찾아 줄 수 있다.

. IOS Sofware Release 12.0 부터 사용 가능 하다.
. tlv fiiled 에 up/down bit를 setting 하여 재분배 하거나재분배 하지 않은 정보를 구분 할 수 있다.



OSI PDUs

. ospf 는 l3다음에 해더가 왔지만 isis 는 l3전에 나온다.-> ospf는 l3 까지 확인 하지만 l3까지 안가기 때문에 좀더 빠르다.
Network PDU = datagram, packet
. Data-link PDU = frame


IS-IS PDUs
. l3가기전에 오기때문에 frame 에 encapsulation 된다.
. is-is pdu 패킷 종류

  - hello (esh,ish,iih) -> neigbor 를 발견하기 위해서, 살아있음을 서로 확인 하기 위해서 주기적으로 발생

  - lsp : lsu 와 같은 역할 -> 라우팅 정보를 실어 나르는 pdu

  - csnp : dbd 와 같은 역할-> 각 라우터가 가지고 있는 lsp 들의 목록을 담고 있는 pdu
 -> 목록에는 구체적인 라우팅 정보는 들어 있지 않고 lsp를 식별 할 수 있는 정보만 들어 있다.

  - psnp : lsr 와 lsack 같은 역할 -> csnp 와 동일하게 lsp의 요약된 정보만 담고 있으며  다른 라우터에게 lsp를 요청 할 때 ,
원하는 lsp의 목록만 담아 보내기 위해 사용됨,  lsp 의 ack용도로도 사용됨 

 
. lsp 는 sequenced 를 이용 해서 동기화를 진행한다.
. lsp sequence  number 는 1부터 시작하며 1씩 증가 한다.
. lsdb안의 lsp는 는 timer동안 저장 된다. (20분 저장 10초마다 업데이트 )


IS-IS in Broadcast Networks
 
. NBMA미지원이며 ,Broadcast Point-to-Point타입만 있다.
. ospf dr 같은 개념으로 dis 가 존재 한다.
. level 1에대한 dis,level 2에 대한 dis 가 존재 하며, level 1,2 마다 dis 가 틀릴 수 있다.
. 높은 우선순위로 선정 되며, 우선순위가 같은 경우 mac address 로 선정 된다. (기본 우선순위 64, 0~127까지 설정 가능 )
. bdr 이 존재 하지 않으며 dr(dis )만 존재 한다. 


Designated Intermediate System (DIS)
 Designated Router : 하나의LAN에연결되어있는Router 중, 해당LAN을대표해선정되는하나의Router 
(선출방식은Priority 및System-ID 값비교)

Pseudo-node
Link-state 정보에LAN을표현하기위해, DIS에의해만들어지는, LAN을나타내는가상의Node.


. dis 선출시 psudonode -> logical 연결 구성이 된다.
. 모든 라우터는 dis 선출 시 dis 와 adjacency 관계를 유지 한다.
. 백업 dis 가 없기 때문에 우선순위 조절 시 dis를 재 선점 할 수 있다.
. dis 에서 hello 10초 dead 30초 dis쪽으로 가는 hello 는 3.3 초 dead 10 초
-> dis 가 1개이기 때문에 경쟁을 하기 위해서 dis쪽으로 가는 hello,dead interval 이 더 짧다.

*psudonode : 가상의 노드 생성


. broadcast 에서는 multicast로 lsp를 전송 한다.
(level 1 01-80-c2-00-00-14,level 2 01-80-c2-00-00-15)
. point-to-point 에서는 unicast 로 lsp를 전송 .


. ospf와 다르게 2way 상태가 없다. 모두 adjacencies 관계를 유지 한다.


. Level 1 LSPs are flooded within an area.
. Level 2 LSPs are flooded throughout the Level 2 backbone.
. Each PDU is assigned an LSP fragment number, starting  at 0 and incrementing by 1.

LSDB Synchronization

• PSNP is used for the following:
– For acknowledgment of LSPs on point-to-point links
– To request missing pieces of LSDB
• CSNP is used for the following:
– Periodically by DIS on LAN to ensure LSDB accuracy
– On point-to-point link when the link comes up


LSDB Synchronization: LAN


LSDB Synchronization: Point-to-Point


Adjacencies are established based on the area address
announced in the incoming IIHs and the type of the router





Configuring Basic Integrated  IS-IS
• When databases are synchronized, Dijkstra’s algorithm (SPF)
is run on the LSDB to calculate the SPF tree.
• The shortest path to the destination is the lowest total sum of
metrics.
• Separate route calculations are made for Level 1 and Level 2
routes in Level 1-2 routers.
• Best paths are placed in the OSI forwarding database (CLNS
routing table).


// area-tag 삽입 생략 가능 하며 추가시 process 를 분산 한다. 단 XR장비는 반드시 넣어야 함
router(config)#router isis [option: area-tag]

//  net은 clns 로 대표하는 값을 설정
Router(config-router)# net network-entity-title

// 해당 인터페이스에 설정 
Router(config-router)# ip router isis [area-tag]

Simple Integrated IS-IS Example

interface FastEthernet0/0
ip address 10.1.1.2 255.255.255.0
ip router isis
!
interface Serial 0/0/1
ip address 10.2.2.2 255.255.255.0
ip router isis
!
<output omitted>
router isis
net 49.0001.0000.0000.0002.00

Change IS-IS Router Level

기본 설정시 기본 설정이 level1-2 이기 때문에 미설정시 level 1,2 정보를 모두 처리 한다.

// 기본 설정은 level 1-2 이며 아래와 같이 변경 가능 하다.
Router(config-router)#is-type {level-1 | level-1-2 | level-2-only}

// 인터페이스 별로 노드에 level 변경시 아래와 같이 변경 가능 하다.
Router(config-if)# isis circuit-type {level-1 | level-1-2 | level-2-only}

Change IS-IS metric 


// 인터페이스 별 라우터 프로세스 별 metric 변경 가능 하며 기본 10에 1부터 63까지 설정 가능 하다.
Router(config-if)# isis metric metric [delay-metric [expense-metric [errormetric]]]
{level-1 | level-2}
// default 설정시 자신이 가진 모든 인터페이스에 대하여 메트릭을 설정 한다.

Router(config-router)#metric default-value {level-1 | level-2}

IS-IS IP Summarization

Router(config-router)#summary-address address mask [level-1 | level-2 | level-1-2]
[tag tag-number] [metric metric-value]

ex)
P3R1(config-router)# summary-address 10.3.2.0 255.255.254.0 level-1-2

IS-IS 설정 확인 

. AD값은 115
. L1정보는 L1 , L2정보는 L2로 표기 됨
*summary시 SU 로 표시


Troubleshooting Commands: CLNS



// 아래 isis 환경을 구성뒤 lab test를 진행 한다.

// 1. metric-style wide 테스트
// R1에서 2,3이 네이버로 level2 node로 구성 되어 있는 것을 확인 한다

R1(config-router)# do show isis nei

System Id      Type Interface IP Address      State Holdtime Circuit Id
R2             L2   Fa1/1     10.10.12.2      UP    7        R2.03             
R3             L2   Fa0/0     10.10.13.3      UP    7        R3.02            

// 기본적으로 메트릭은 63까지 설정 가능 하지만 , 대형 망에서는 best path를 설정 하기 위해서 
// metric를 높게 설정 하여 세팅 한다.
R1(config-router)#metric ?
  <1-63>  Default metric

// 아래와 같이 설정을 한다.
R1(config-router)#metric-style wide  
  
// 설정후 네이버는 끊어 지지 않는다.
R1(config-router)# do show isis nei 

System Id      Type Interface IP Address      State Holdtime Circuit Id
R2             L2   Fa1/1     10.10.12.2      UP    8        R2.03             
R3             L2   Fa0/0     10.10.13.3      UP    9        R3.02             

// 하지만 RIB에서 올라오지 않는다.
R1(config-router)#do show ip route

     1.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C       1.1.1.1/32 is directly connected, Loopback0
i su    1.0.0.0/8 [115/10] via 0.0.0.0, Null0
     10.0.0.0/24 is subnetted, 2 subnets
C       10.10.12.0 is directly connected, FastEthernet1/1
C       10.10.13.0 is directly connected, FastEthernet0/0

// 네이버로 연결된 장비에도 동일한 세팅을 진행 해야 정상적으로 RIB에 올라 간다.
R2(config-router)# metric-style wide   

R1(config-router)#do show ip route
     1.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C       1.1.1.1/32 is directly connected, Loopback0
i su    1.0.0.0/8 [115/10] via 0.0.0.0, Null0
     2.0.0.0/32 is subnetted, 1 subnets
i L2    2.2.2.2 [115/20] via 10.10.12.2, FastEthernet1/1
     10.0.0.0/24 is subnetted, 3 subnets
C       10.10.12.0 is directly connected, FastEthernet1/1
C       10.10.13.0 is directly connected, FastEthernet0/0
i L2    10.10.24.0 [115/20] via 10.10.12.2, FastEthernet1/1


// 수정 후 메트릭은 16777214 까지 변경 되는 것을 확인 할 수 있다.

R1(config-router)#metric ?
  <1-16777214>  Default metric

// 2.IS-IS Route Leaking 테스트 lab
 //r3 과 r5 노드는 Level 1로 r5에서는 외부 area경로에 대하여 0.0.0.0 default route 를 통해 나가게 된다.
// 하지만 비대칭 경로가 발생 할 수 있는 경우 특별할 경로에 대하여 route leaking 을 통해서 해결 한다.
// 해당 테스트는 R5에서 2.2.2.2/32 와 4.4.4.4 /32에 대한 경로를 R5에서 보이도록 한다.


// 재분배를 통해 라우팅 정보를 주기 위해 해당 아이피 대역을 acl을 통해서 지정 한다.
R3(config)#access-list 100 permit ip host 2.2.2.2 any
R3(config)#access-list 100 permit ip host 4.4.4.4 any


// isis 프로세스에스 재분배를 통해 level2 에서 level 1으로 재분배를 시키는데, distribute list 100을 이용한
// 2.2.2.2 4.4.4.4 아이피를 재분배 진행 한다.

R3(config)#router isis
R3(config-router)#$ redistribute  isis ip level-2 into level-1 distribute-list 100       

//설정 전에는 아래와 같이 0.0.0.0 에대한 경로가 i* 로 default 설정 만 되어 있다.
R5#show ip route   
    3.0.0.0/32 is subnetted, 1 subnets
i L1    3.3.3.3 [115/20] via 10.10.35.3, FastEthernet1/0
     5.0.0.0/32 is subnetted, 1 subnets
C       5.5.5.5 is directly connected, Loopback0
     10.0.0.0/24 is subnetted, 3 subnets
i L1    10.10.13.0 [115/20] via 10.10.35.3, FastEthernet1/0
i L1    10.10.34.0 [115/20] via 10.10.35.3, FastEthernet1/0
C       10.10.35.0 is directly connected, FastEthernet1/0
i*L1 0.0.0.0/0 [115/10] via 10.10.35.3, FastEthernet1/0

// 설정 후에는 ia 로 4.4.4.4,2,2.2.2 에 대한 경로를  확인 할 수 있다.
R5#show ip route     

Gateway of last resort is 10.10.35.3 to network 0.0.0.0

     2.0.0.0/32 is subnetted, 1 subnets
i ia    2.2.2.2 [115/40] via 10.10.35.3, FastEthernet1/0
     3.0.0.0/32 is subnetted, 1 subnets
i L1    3.3.3.3 [115/20] via 10.10.35.3, FastEthernet1/0
     4.0.0.0/32 is subnetted, 1 subnets
i ia    4.4.4.4 [115/30] via 10.10.35.3, FastEthernet1/0
     5.0.0.0/32 is subnetted, 1 subnets
C       5.5.5.5 is directly connected, Loopback0
     10.0.0.0/24 is subnetted, 3 subnets
i L1    10.10.13.0 [115/20] via 10.10.35.3, FastEthernet1/0
i L1    10.10.34.0 [115/20] via 10.10.35.3, FastEthernet1/0
C       10.10.35.0 is directly connected, FastEthernet1/0
i*L1 0.0.0.0/0 [115/10] via 10.10.35.3, FastEthernet1/0




isis multi topology

single topology - ipv4,ipv6 가 하나의 tree로 알고리즘을 구현 한다.
multi topology - ipv4,ipv6 가 따로  tree로 알고리즘을 구현 한다.
* ios 에서는 single topology 가 기본 이며 ,xor에서는 multi topology 가 기본 이다.

->single topology 로 했을 경우 문제정
->중간에 ipv6를 사용 하지 않는 장비 에서는 ipv6로 들어 올 경우 해당 패킷을 drop할 수 있다.
-> multi 로 구성 해야만 drop 을 방지 할 수 있다.


// ipv6 활성화
R5(config)#ipv6 unicast-routing

 // 아래와 같이 구성 시 multi-topology 로 구성 가능
R5(config)#router isis
R5(config-router)#address-family ipv6
R5(config-router-af)#multi-topology
 


반응형