Interdomain Routing
- AS는 단일기술 관리자 집단 안에 있는 네트워크 영역
- 나가는 트래픽은 어느정도 컨트롤 가능하지만 나간 후 와 들어오는 트래픽을 컨트롤 할수 없다.(RFC문서에 기재됨)
- EGP 서로 다른 AS끼리 통신하는 것(EGP는 사라짐)
- 다른 네트워크와 연결되기 때문에 보안을 강화해야한다.
- 네트워크에 대한 최소한의 정보만 주고 받는다.
- Best-Path를 찾을때 bandwidth를 고려하지 않는다.
- 정책기반의 Routing Protocol
- 2024년 현재 대략 700,000개 이상의 네트워크가 존재한다.
- 서로 다른 네트워크로 연결되어 있기때문에 모든 정보를 신뢰할순없다.
- 항상 Optimum Path(최적의 경로)로 가는것은 아니다.
BGP
- Path vector Prtotocol
- reliable updates(네트워크 변경시 정확하게 전달가능)
-> ACK는 존재하지않는다. 프로세스 자체가 TCP(179) 세션을 맺는 방식을 사용한다.
- triggered updates only(주기적인 업데이트는 없다)
- Rich Metrics(called path attributes) 하나의 네트워크가 전송될때 경로요소를 추가하여 사용한다.
- 하나의 식으로 계산되기 보다 우선순위에 따라 계산방법이 달라진다.
- Designed to scale to huge internetworks
- TCP를 사용하는 protocol은 keepalive
- IDLE Time 때문에 Keepalive를 사용한다.
- IDEL time이 끝나면 세션이 종료되기 때문에 주기적으로 리셋시켜준다.
-> 네트워크가 단절되도 시간이 끝나기 전까지 세션을 가지고 있기때문에 주기적으로 리셋시킴
- Triggerd ipdates Batched and rate-limited
- 첫번째 업데이트 후 IBGP(5초) / EBGP(30초)가 지나야 업데이트정보를 광고한다.
- convergence time을 고려하지 않는다.
- Routing protocol or routing apllications이라고 한다.
BGP uses(BGP를 사용하는 경우)
- 두개 이상의 ISP와 연결되어 있을 경우에 필수로 BGP를 사용한다.
- exchange point
Single-Homed
-> BPG 사용은 Option으로 선택한다.
-> ISP와 통신상태를 Detect하기 위해서 사용한다.용어 메트로이더넷
- 사설 AS 번호(Private AS number) : 임시사용
용어 Smaller ISP
-
Use static Routering 사용하라고 권고함
Dual-Homed
-> RFC에는 공식기재되어 있진 않지만 CISCO에서 사용하는 용어
-> Multihomed
Provider-independent
BGP Limitations (한계점)
-
AS로 들어오는 트래픽에 대해서 트래픽컨트롤을 할수없다.
(RFC 1771)
NAT(PAT)로 경로를 변경할수 있는 방법이 있긴하다.
BGP Path Attributes
Path attributes 두가지
TLV : time , langth, value
1. Well-Known Attributes
- Transitive 가 1로 셋팅되어 전달된다.
- 모든 장비가 인식을 해야한다.
- 지금 사용하는 모든 장비가 아는 것
- Version 도중에 추가하는 기능은 없다.
1-1 Mandatory
-> 모든 업데이트 패킷에 반드시 들어가야 하는 패킷
- Origin
자신의 RIB에 존재하면 network로 광고 할수 있다.
-> the origin of a BGP Route (처음 데이터베이스에 들어오게 된 경로)
I : Route originated in an IGP(ex RIB, EIGRP, Static)
-> Network로 광고
E : Route originated in EGP(현재 사라짐)
? : Route was redistributed into BGP
Best-path를 찾는 순서 I>E>?.
Code Number I<E<.?
AS-path : 어떤 경로로 들어오게 되었는지
-> AS를 통할때 마다 AS-Path에 기입된다.
Next-Hop : 어디로 누구에게 보낼지를 결정
1-2 Discretionary
-> 업데이트 패킷에 선택적으로 넣을수 있는 패킷
- Local AS prefernece
-> default(100) // 로컬에서 어디를 선호할지 결정
-> EBGP로 보낼때는 사라질수 있다.
- Atomic aggregate
->
2. Optional Attributes
- 일부 장비는 인지 하지 못할수도 있다.
2-1 Transitive
- Aggregator
- Community
-> BGP에서의 Tag(자체적으로 기능을 가지고 있지는 않다)
-> 인지하지 못해도 다른 네이버에게 Partial bit를 전달 한다.
-> Partial bit(1)
2-2 NonTransitive
- MED(Multi-exit discriminator)
-> 알지 못하면 그 필드만 드랍시킨다.
-> Transitive(0)
- BGP는 version 호환이 되어야 한다.
AS-Path Attribute
- 처음에는 Empty 상태이다.
- Sender 의 AS 넘버가 추가된다
- AS-path 안에 자신의 AS 넘버가 있으면 드랍한다.
- 처음광고시 Null 상태 (데이터는 없지만 필드는 존재한다.)
-> 내부에서 전달할때까지 Null{}상태를 유지한다.
- 다른 AS로 이동할때 {AS Number}를 붙여 패킷을 전달한다.
(자신의 AS를 추가)
- IBGP로 받은 자신의 AS 번호를 필터링 하지 않는다.
- EBGP로 받을 때만 자신의 AS 번호를 필터링 한다.(드랍)
Next-Hop Attribute
- EBPG로 보낼때 자신의 IP로 셋팅한다.
- 최적의 경로 보내기위해 제3의 IP로 보낼수도 있다.
- Next-Hop을 설정
- MA(멀티액세스)로 되어 있을땐 Next-hop IP를 변경하지 않고 전달한다.
- Connect은 Next-hop 존재하지 않아 0.0.0.0 으로 가져온다.
- IBGP로 전달 시 설정된 Next-hop은 그대로 존재하지 않는 next-hop은 전달하는 장치의 IP로 설정한다.
- IBGP -> EBGP로 전달할때 전달하는 인터페이스의 IP로 전달한다.
- IBGP로 전달할때는 Next-hop이 변경되지 않기 때문에 Next-hop을 찾아갈수 있도록 IGP로 광고를 해주어야한다.
IBGP로는 어떠한 Attribute도 변경되지 않는다.
ISP 내부에서 EBGP로 들어오는 경로의 값도 계산을 하기 위해서
ishare2 ??
BGP Neighbor Discovery
- BGP는 수동으로 Neighbor를 지정해서 맺어야 한다.
- 세션이 만들어지면 만들어진 세션을 사용하게 된다.
- 두개의 세션이 동시에 만들어진 경우 한 세션을 끊는다.
- TCP 179
- 들어온 연결이 네이버로 셋팅이 되어 있지 않으면 세션이 끊어진다.
- 멀리 떨어져 있어도 TCP를 통해 네이버를 맺을수 있다.
- 동일한 IP가 아니라면 세션은 추가 구성할수 있다.
- loopback을 통해서 TCP 세션을 통해 네이버를 맺는다.
-> neighbor () update-source lo 0
-> 세션이 하나만 만들어져도 통신은 가능하지만 관리의 목적 상 두 세션을 유지한다.
-> show ip bgp summary
Establishing a BGP Session
-> debug ip tcp transactions
-> debug ip bgp events
용어 Established
Open Message Contains the following
- BGP version number(BGP version 번호)
- AS number of the local router(자신의 AS 번호)
-> TCP 179을 사용하기 때문에 프로세스가 두개이상 올라가지 않는다.
- Holdtime
-> 서로간에 맞출필요가 없다. 서로 네고하는 방식을 쓴다.
- BGP router identifier
-> router-ID가 겹치면 네이버가 맺어지지 않는다.
- Optional parameters
-> 내가 어떠한 기능이 있는지에 대한 정보
- TblVer :
- PfxRcvd : 받은네트워크
Keepalives
- CISCO는 Keepalive-time 60초 / Hold-Time 180초
타 벤더 및 Keepalive-time RFC 30초 Hold-Time 90초
- 가장 작은 Time으로 동기화 한다.
- Hold-Time을 3으로 나누어 Keppalive-time을 계산하여 값을 구한다.
- Keepalive-Time과 Config값을 비교 후 더 작은값을 우선시 하므로 작은값을 적용한다.
- Holde-time은 Keepalive-time x 3 의 값과 같거나 높아야 한다.
- MD5 세션이 맺어진 후 에는 인증이 사용이 안되므로 세션을 재실행하거나 세션이 맺어지긴 인증을 적용해야한다.
Receiving Routing Update
route installing : RIB 학습되었다는 뜻
-> 자신의 RIB에 학습이 되어지지 않아도 Best-path를 update한다.
BGP <-> IGP 사이는 Redistribute 하지 않는것을 권장한다.
Show ip bgp
-> network 뒤에 subnet 정보가 없으면 Majar네트워크이다.
-> next hop 이 0.0.0.0인경우
1. 자신의 주소
2. 다이렉트커넥팅
3. 내가 만들 어그리게이트
- MED(Metric) : 정보가없으면 정보가 없는것
- LocPrf : 정보가 없으면 Default 값
- Path+orizination Code : 뒤에서 부터 읽는다.
BGP Table 공부할 것(읽는방법 및 내용)
BGP Route Selection Criteria(우선순위 선정 순서)
필수 1.Next-hop이 나의 RIB에 학습이 되어 있어야 한다.
-> Next-hop까지 찾아갈수 있어야 한다.
2.Router의 정책 :Highest weight (해당 정보는 업데이트하지 않는다.)
3.AS의 정책 : LocPrf_Local Preference(선호도)가 높은 것이 우선시 된다.
IBGP로만 정보를 업데이트를 할수 있다.
4. 자기 자신이 광고한 경우
-> CISCO의 경우 weigth값을 32768으로 설정하여 자신이 광고한 경우를 최우선시 하게 한다.
5.외부정보 : AS path(AS를 거친 값)가 가장 짧은 것을 우선시 한다.
-> 아무 정책이 없을시 우선시 되는 값
6. 낮은 Origin code를 우선시한다.(Code번호가 더 크다)
-> IGP(i) < EGP(e) < Incomplete(?)
7. MED값이 낮으쪽을 우선시 한다.
-> BGP와 IBGP를 동시에 받으면 EBGP를 더 우선시 한다.
8 둘다 IBGP로 동시에 받으면 next-hop을 비교하여 더 가까운쪽을 우선시 한다.
9 둘다 EBGP로 동시에 받으면 먼저 받은 정보를 우선시
한다.
10. Neighobr의 router-ID를 비교하여 낮은 값을 우선시 한다.
11. Neighbor IP-Addr
-> 해당값을 조정해서 Best-path를 조정한다.
SDN을 하게 되면 클라우드와 같은 연동형프로세서와 정책을 공용으로 사용할수 있다. // SDN에 대해서 알아볼것
정책기반에 대해서 공부할것