Discovering
* IS-IS의 hello packet
- ESH : end system이 던지는 것
- ISH : router가 end system에 던지는 것
- IIH : Router 간에 던지는 것
+ IIH의 Hello packet type
장비가 두 대가 있는데 두 장비 간에 point-to-point, ethernet으로 연결될 수 있음
L1은 L1끼리 네이버, L2는 L2끼리 네이버를 맺음.
- Level 1 Lan Hello packet
- Level 2 Lan Hello packet
- point-to-point hello packet : level 1, 2 모두 가지고 있는 애끼리 네이버를 맺을 때, 1,2 각각 hello packet을 던지지 않고 ptp packet 던짐. 네이버는 한 번에 맺을 수 있지만 level 1,2의 데이터베이스 등등은 모두 구분되어있음.
+ 내가 Level 1 인지 2인지 1,2인지는 circuit id로 구분을 함
+ level 1,2 각각 네이버를 맺기 때문에 리소스 낭비가 생김 : 그래서 level 1만 네이버를 맺을건지 level 2만 네이버를 맺을 건지 등등 설정이 필요할 듯 함
TLV : 1, 129, 132, 232
IS-IS는 TLV 매개변수를 사용하여 LSP(Link State Packets)의 정보를 전달
- 한 장비에서 기본적으로 하나의 장비는 하나의 area 정보만 가지게 됨
- 주소를 장비에 주기 때문에
- NET 명령어를 여러 개 줘서 여러 Area에 속할 수 있음.
- Level2 기능은 하나만 가능함
- IPv4 TLV, IPv6 TLV, MPLS TLV, MPLS-TE TLV 각각 다 다름(각 기술마다 TLV가 다 다름)
- TLV 129 : integrate IS-IS가 나오면서 IP로 통합이 되면서 사용하게 됨
- OSI 7 layer를 만들때, TLV 형식으로 데이터를 전송하라고 만들어서 최대한 맞춰서 만듦
- 내가 최신 버전인데, 상대방 장비가 구식 장비여서 TLV 정보를 모른다면?
- 그냥 자기가 필요한게 있으면 그냥 보내고, 내가 받았는데 모르는 TLV 정보이면 나는 사용하지 않고, 다른 장비로는 포워딩 시켜줌
- 무조건 그러는 것은 아님
- main TLV에 연결된 Sub TLV 정보가 있음.
- main은 그냥 몰라도 무조건 포워딩을 시켜주는데, sub는 삭제해버림
- 모든 데이터는 TLV 형식으로 전달이 된다.
padding(6)
- Is-IS는 MTU size를 꽉 채워서 보냄. detect 되는 MTU 사이즈가 있고 남는 부분이 있으면 채워서 보냄
hostname
- dynamic hostname(137) ?? system id로는 누가누군지 알기 어렵기 때문에, hostname으로 대체해서 보여주기 위해서
* 참고 TLV 설명 잘되어있는 블로그 : https://sahngoh.tistory.com/43 *
point to point hello packet
- circuit type이 11로 설정되어 있음.
Level 2 hello packet
- circuit type이 10/로 설정되어 있음.
CLNS(Connectionless Network Service)
CLNP(Connectionless Network Protocol)
CONS(Connection Oriented Network Service)
- 있었는데 없어짐...
- TCP.IP가 나오면서..
NCAP
- L3에서 IS-IS의 Address
- 여러 가지 주소체계를 하나로 통합하기 위해서 가변적인 주소 크기를 가짐(8-20byte)
- 어느 주소 체계 + Heirarchy 한 주소 체계
- SEL : 어떤 기능을 하는 장비인지 정의하는 애들, 같은 SEL 값을 가진 애들끼리 통신을 함
우리가 쓰는 IS-IS 는 모두 00 - ID : system id 또는 hostname(아까 위에서 설명한 hostname)
네트워크 type
- point to point : level 1, 2를 한 번에 hello packet을 보낸다
- broadcast(lan)
- DIS(Designated Intermediate System)를 선출을 함.
pseudo Node : SFP에서 tree 구조를 만들기 위한 용도밖에 없음.
내가 누구랑 연결되어있다는 정보를 DIS에서 선출된 애도 전달을 하기도 함
근데 네트웤 정보를 가지고 있거나 그러지는 않음
DIS는 아무 장비여도 상관 없음 --> 더 좋은 priority의 애가 있다면 바로 뺏겨버림. tree 구조만 만들 수 있으면 되기 때문에 네트웤 정보를 전달하지도 않고, 모두 각각 네트웤 정보를 가지고 있기 때문에
그래서 BDR같은 애는 필요 없음
DIS는 죽었는지 살았는지 빠르게 체크해야 해서 3.3초마다 hello packet을 보냄 - broadcast는 네이버가 100개가 연결되도 broadcast로 정보를 전달함. 그래서 adjacencies 수가 적음
- DIS(Designated Intermediate System)를 선출을 함.
** 네이버가 3대 이상이면 broadcast로 DIS를 선출하는 방식으로 하고, 만약 multi access라도 둘이 연결되는 거라면 point to point로 만드는게 좋을 듯
IIH로 ipv4 정보 전달할거나, area는 49번이다 정보 전달을 함
IIH 맺은 후에 LSP로 각각의 TLV 정보들을 전달을 함
hello packet 부터 정보 전달까지 TLV 형식으로 전달을 한다.
DIS
- pseudo Node 역할을 수행
- 우리 망에 있는 데이터베이스들이 모두 싱크가 맺어졌는지 체크함
- 현재 우리 망에 대한 LSP의 summary 정보로 체크를 함 - Level 1, Level 2 의 DIS가 따로 선출이 됨
- priority로 선출(default 64)
- 이게 같으면 SNPA(mac address가 높은 애)로 선출 - preemptive : 뺏길 수 있음. 네트웤을 광고하거나 그러지는 않기 때문에
CSNP
LSP(link state packet)s(== LSU(LSAs)) : 자신의 MTU size 만큼 LSP를 계속 붙여서 전달을 함
CSNP(compute sequence number packets) : DBD
- 10초에 한번씩 정보를 전달을 함
- 이러한 LSP가 있고, 해당 LSP의 sequence number가 뭐야 라고 전달을 함
- 이걸 받은 애들이 나는 어떤게 없는지 확인할 수 있음. 또는 나는 해당 LSP가 있는데 sequence number가 달라. 를 알 수 있음.
- 그러면 PSNP를 전달해야 함. 이걸 전달해달라고 요청을 함.
- DIS가 LSP로 전달을 해주고, 잘 받았다고 PSNP(Ack)정보를 던져줌
--> 이런식으로 동기화를 해줌.
- point to point는 DIS 없이 모든 네트워크 정보가 동기화 되어있음
- 변경이 됐을 때만 업데이트 해주면 됨
- 그래서 네트웤 변경이 되면, 업데이트 정보를 전달해주고, PSNP로 정보를 전달하고 잘 받았다고 Ack을 전달해줌.
PSNP(partial sequence number packets)(==LSR, LSAck) : 뭘 요청 했고, 뭘 받았고
LSP ID : system-id.peasudo-id.fregment id
- 각 DIS로 선정된 애가 system-id를 사용
- R3 입장에서 처음 DIS가 된 애는 01, 2번째는 02...
- fregment : R2가 수천 개의 네트웤이 있다면, 1497 byte에 모두 전달할 수 없기 때문에, 전달하는 내용이 fregment가 된것임.
- R2의 00의 01, R2의 00의 02...이 됨
IS-IS LSP
- 나는 어떤 네이버가 있고, 어떤 네트웤이 있는지 정보를 전달하는 것이 LSP임
LAN은 DIS가 먼저 선정이 됨
- DIS가 먼저 선출 되고, DIS가 CSNP를 던져주고 자기가 더 가지고 있으면 PSNP를 던짐
- 쟤가 뭐가 부족한지 아니까, 내가 알고있는 정보를 던져버리면 동기화가 더 빠르게 됨
'네트워크' 카테고리의 다른 글
IS-IS 5차 (0) | 2022.04.24 |
---|---|
Is-Is 4차 (0) | 2022.04.24 |
IS-IS 2차 (0) | 2022.04.18 |
[IS-IS 1차] (0) | 2022.04.18 |
MPLS VPN 연동방식 - ASBR (0) | 2022.04.04 |