...
해저케이블 단선 등으로 경로가 변하면 AS Path 가 변함
AS path with prefix
...
데이터
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/collector1/ribs | https://bgp.cgtf.net/collector1/updates | |
https://bgp.cgtf.net/collector1/ribs/2023/08/rib.20230831.2200.mrt.bz2 | https://bgp.cgtf.net/collector1/updates/2023/08/updates.20230831.2355.mrt.bz2 | |
생성주기 | 2시간 | 5분 |
라우터가 알고 있는 전세계 모든 AS Path 정보 | 주변 라우터와 협상하면서 업데이트된 AS Path 정보 | |
용량 | 27M (압축)
| 100KB ~ 4MB 다양함 |
❗학습 데이터
기존에 연구망에서 준 데이터가 양이 부족할 것으로 예상된다.
학습은 2022.01. ~ 2023.08월까지 RIB 파일 https://bgp.cgtf.net/ribs 으로 진행한다.
2022.01. ~ 2023.08월까지 RIB 파일 개수는 7300여개로 모두 다운로드 받으면 140GB가 필요하고, 430시간이 430시간이 소요될 것으로 예상됨예상된다.
MRT handling tools
https://github.com/t2mune/mrtparse
...
코드 블럭 |
---|
# iMac Pro 2017 에서 수행함
# Intel Xeon W 3.2GHz 8 core, RAM 32GB, NVMe SSD
$ time wget https://bgp.cgtf.net/collector1/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 |
...
2022년도 한해 발생한 aaa → xxx 까지의 경로가 다음과 같으면 첫번재의 것을 정상으로 한다
AS path with prefix | 빈도 | |
---|---|---|
(prefix) aaa → bbb → xxx | 4000 | 정상 |
(prefix) aaa → ccc → ddd → xxx | 2000 | |
(prefix) aaa > eee → xxx | 1300 |
❗(유의) 20230831.2200 파일 기준 AS 38229(스리랑카 연구망) → AS 1237 9949 (KREONET호서대학교) 까지,
서로 다른 Prefix 에 대해 194개의 25개의 entry 가 보이지만, Prefix 를 제외하면 1개이다. 이 경우, 194개가 아니라, prefix를 제외하고 1개로 count 한다보인다. 각각의 prefix와 AS path를 함께 학습시켜야 한다.
참고로 114.70.166.0/24, 114.70.167.0/24, 114.70.168.0/24 은 AS 9949에 속한 prefix 이다.
코드 블럭 |
---|
$ grep '|38229|' dump.txt | grep '12379949|' | wc -l 19425 $ 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|IGP9949|' 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 한다.그대로 학습할 것을 권한다.
(ChatGPT) 특정 ASN이 반복적으로 나타나는 이유는 BGP 경로에서 AS 경로(prepend) 조작을 나타내고 있을 가능성이 높습니다. AS 경로(prepend) 조작은 BGP 경로의 길이를 인위적으로 늘리거나 조작하여 트래픽을 특정 경로로 유도하거나 특정 AS로의 트래픽을 제어하는 데 사용될 수 있습니다.
코드 블럭 |
---|
$ 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 |
❗IPv6 경로는 학습하지 않는다.
상기 파일에는 IPv6도 들어 있으므로 제외하고 학습한다.
문제
IPv4 의 AS 경로에 대하여
IPaddr/mask|스페이스로 구분된 임의의 ASN(AS Path 에 대하여)가 정상인지 비정상인지 확인판단
(예) 114.70.166.0/24|38229 9885 11537 17579 1237 9949 정상인가? 비정상인가?