용어
AS, ASN
AS ( Autonomous System ) : 한 회사나 단체에서 관리하는 라우터 집단
ASN ( AS Number ) : 인터넷 표준화기구 에 의해 AS 에 할당된 번호
AS Name : AS 이름
(Google Bards) 2023년 9월 8일 기준, 전 세계의 자율 시스템 번호 (ASN)는 약 70만 개입니다. 이는 2007년까지 사용되던 2바이트 ASN 대역(0 ~ 65,535)이 소진됨에 따라 2008년부터 사용되기 시작한 4바이트 ASN 대역(0 ~ 4,294,967,295)의 할당이 진행되고 있기 때문입니다.
참고
- https://krnic.or.kr/jsp/resources/asInfo.jsp
- https://www.iana.org/assignments/as-numbers/as-numbers.xhtml
AS 1237, AS17579
KISTI 가 관리중인 AS
|
| |||||||||||||
Prefix, IP ranges | ||||||||||||||
Peers |
IP Perfix, IP range, IP Block
(설명) http://www.ktword.co.kr/test/view/view.php?m_temp1=5246
(예) 134.75.0.0/16 = 134.75.0.0 - 134.75.255.255
https://ipinfo.io/AS1237/134.75.0.0/16
Peer
우리 기관의 라우터 포트에 꼽혀있는 이웃 기관의 라우터의 AS
(예) AS1237의 peer = KISTI와 KREONET을 통해 연결된 다른 (국내) 기관, https://bgp.he.net/AS1237#_peers
(예) AS17579의 peer = KISTI와 KREONET2을 통해 연결된 다른 (국외) 기관, https://bgp.he.net/AS17579#_peers
⭐ AS path
38229 9885 11537 17579 1237
38229 에서 1237까지 도달하려면 순차적으로 9885, 11537, 17579 을 거쳐야 한다는 뜻
해저케이블 단선 등으로 경로가 변하면 AS Path 가 변함
AS path with prefix
MRT 파일
MRT 표준
RFC6396 Multi-Threaded Routing Toolkit (MRT) Routing Information Export Format
https://datatracker.ietf.org/doc/html/rfc6396
MRT 파일
RIB | RIB Updates | |
---|---|---|
Routing Information Base | ||
https://bgp.cgtf.net/ribs | https://bgp.cgtf.net/updates | |
https://bgp.cgtf.net/ribs/2023/08/rib.20230831.2200.mrt.bz2 | https://bgp.cgtf.net/updates/2023/08/updates.20230831.2355.mrt.bz2 | |
생성주기 | 2시간 | 5분 |
라우터가 알고 있는 전세계 모든 AS Path 정보 | 주변 라우터와 협상하면서 업데이트된 AS Path 정보 | |
용량 | 27M (압축)
| 100KB ~ 4MB 다양함 |
2022.01. ~ 2023.08월까지 RIB 파일 개수는 7300여개로 모두 다운로드 받으면 140GB가 필요하고, 430시간이 소요될 것으로 예상됨
MRT handling tools
https://github.com/t2mune/mrtparse
- examples/mrt2bgpdump.py
- examples/mrt2json.py
# iMac Pro 2017 에서 수행함 # Intel Xeon W 3.2GHz 8 core, RAM 32GB, NVMe SSD $ time wget https://bgp.cgtf.net/ribs/2023/08/rib.20230831.2200.mrt.bz2 3:34 total $ time python3 mrt2bgpdump.py rib.20230831.2200.mrt.bz2 > dump.txt 4:54 total $ time python3 mrt2json.py rib.20230831.2200.mrt.bz2 > dump.json 12:43.59 total $ wc -l dump.txt 6534434 $ head -n 10 dump.txt TABLE_DUMP2|08/31/23 22:00:01|B|192.248.3.218|38229|0.0.0.0/0|38229 45489|IGP TABLE_DUMP2|08/31/23 22:00:01|B|167.205.62.245|4796|0.0.0.0/0|4796 4761|IGP TABLE_DUMP2|08/31/23 22:00:01|B|203.188.118.253|3662|0.0.0.0/0|3662 17824 3491|IGP TABLE_DUMP2|08/31/23 22:00:01|B|67.199.131.66|24514|0.0.0.0/0|24514|IGP TABLE_DUMP2|08/31/23 22:00:01|B|202.112.4.60|4538|1.0.0.0/24|4538 174 13335|IGP TABLE_DUMP2|08/31/23 22:00:01|B|67.199.131.66|24514|1.0.0.0/24|24514 3257 13335|IGP TABLE_DUMP2|08/31/23 22:00:01|B|210.7.33.15|38022|1.0.0.0/24|38022 4826 13335|IGP TABLE_DUMP2|08/31/23 22:00:01|B|203.188.118.254|3662|1.0.0.0/24|3662 4635 13335|IGP TABLE_DUMP2|08/31/23 22:00:01|B|203.188.118.253|3662|1.0.0.0/24|3662 17824 3491 13335|IGP TABLE_DUMP2|08/31/23 22:00:01|B|121.52.144.237|45773|1.0.0.0/24|45773 17557 8529 13335|IGP
정의
⭐ 정상 AS Path의 정의
❗임의의 aaa → xxx 까지 경로에 대한 정상 AS Path는
2022년도 RIB 1년치 데이터 기준으로 했을 때, 가장 많이 보이는 경로로 정한다 (RIB Update 아님)
2022년도 한해 발생한 aaa → xxx 까지의 경로가 다음과 같으면 첫번재의 것을 정상으로 한다
AS path | 빈도 | ||
---|---|---|---|
(prefix) aaa → bbb → xxx | 4000 | 정상 | |
(prefix) aaa → ccc → ddd → xxx | 2000 | ||
(prefix) aaa > eee → xxx | 1300 |
❗(유의) 20230831.2200 파일 기준 AS 38229(스리랑카 연구망) → AS 1237 (KREONET) 까지,
서로 다른 Prefix 에 대해 194개의 entry 가 보이지만, Prefix 를 제외하면 1개이다. 이 경우, 194개가 아니라, prefix를 제외하고 1개로 count 한다.
$ grep '|38229|' dump.txt | grep '1237|' | wc -l 194 $ grep '|38229|' dump.txt | grep '1237|' TABLE_DUMP2|08/31/23 22:00:01|B|192.248.3.218|38229|1.18.127.0/24|38229 9885 23855 134148 17579 1237 23596|IGP TABLE_DUMP2|08/31/23 22:00:02|B|192.248.3.218|38229|103.8.230.0/24|38229 9885 11537 17579 1237 9275|IGP TABLE_DUMP2|08/31/23 22:00:02|B|192.248.3.218|38229|103.43.64.0/24|38229 9885 11537 17579 1237 9275|IGP TABLE_DUMP2|08/31/23 22:00:02|B|192.248.3.218|38229|103.125.108.0/22|38229 9885 11537 17579 1237 10187|IGP TABLE_DUMP2|08/31/23 22:00:02|B|192.248.3.218|38229|114.70.166.0/24|38229 9885 11537 17579 1237 9949|IGP TABLE_DUMP2|08/31/23 22:00:02|B|192.248.3.218|38229|114.70.167.0/24|38229 9885 11537 17579 1237 9949|IGP TABLE_DUMP2|08/31/23 22:00:02|B|192.248.3.218|38229|114.70.168.0/25|38229 9885 11537 17579 1237 9949|IGP ...
❗(유의) 같은 AS 가 반복되어 나타나는 경우가 있다. 이 경우 하나로 치환하여 학습하던지
3836 7660 17579 17579 17579 17579 17579 1237 45379
3836 7660 17579 17579 17579 17579 17579 1237 45379
20230831.2200 파일 기준 AS 38229(스리랑카 연구망) → AS 1237 (KREONET) 까지,
서로 다른 Prefix 에 대해 194개의 entry 가 보이지만, Prefix 를 제외하면 1개이다. 이 경우, 194개가 아니라, prefix를 제외하고 1개로 count 한다.
$ grep '17579 17579' dump.txt TABLE_DUMP2|08/31/23 22:00:02|B|203.185.103.1|3836|114.70.0.0/20|3836 7660 17579 17579 17579 17579 17579 1237 45379|IGP TABLE_DUMP2|08/31/23 22:00:02|B|203.185.103.1|3836|114.70.2.0/24|3836 7660 17579 17579 17579 17579 17579 1237 45379|IGP TABLE_DUMP2|08/31/23 22:00:02|B|203.185.103.1|3836|114.70.8.0/24|3836 7660 17579 17579 17579 17579 17579 1237 45379|IGP
문제
IPv4 의 AS 경로에 대하여
스페이스로 구분된 임의의 AS Path 에 대하여
정상인지 비정상인지 확인
38229 9885 11537 17579 1237