이 페이지의 이전 버전을 보고 있습니다. 현재 버전 보기.

현재와 비교 페이지 이력 보기

« 이전 버전 4 현재 »


용어

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)의 할당이 진행되고 있기 때문입니다.

참고

AS 1237, AS17579

KISTI 가 관리중인 AS

 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 가 변함


데이터

MRT 표준

RFC6396 Multi-Threaded Routing Toolkit (MRT) Routing Information Export Format

https://datatracker.ietf.org/doc/html/rfc6396

MRT 파일


RIBRIB Updates

Routing Information Base

https://bgp.cgtf.net/ribshttps://bgp.cgtf.net/updates

https://bgp.cgtf.net/ribs/2023/08/rib.20230831.2200.mrt.bz2https://bgp.cgtf.net/updates/2023/08/updates.20230831.2355.mrt.bz2
생성주기2시간5분

라우터가 알고 있는 전세계 모든 AS Path 정보주변 라우터와 협상하면서 업데이트된 AS Path 정보
용량

27M (압축)

  • TXT 변환시 700MB (6,534,434 lines)
  • JSON 변환시 8GB
100KB ~ 4MB 다양함



❗학습 데이터

기존에 연구망에서 준 데이터가 양이 부족할 것으로 예상된다.

학습은 2022.01. ~ 2023.08월까지 RIB 파일 https://bgp.cgtf.net/ribs 으로 진행한다.

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 with prefix빈도
(prefix) aaa → bbb → xxx4000정상
(prefix) aaa → ccc → ddd → xxx2000
(prefix) aaa > eee → xxx1300


❗(유의) 20230831.2200 파일 기준 AS 38229(스리랑카 연구망) → AS 9949 (호서대학교) 까지,
서로 다른 Prefix 에 대해 25개의 entry 가 보인다. 각각의 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 '9949|' | wc -l
25

$ grep '|38229|' dump.txt | grep '9949|'
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 가 반복되어 나타나는 경우가 있다. 그대로 학습할 것을 권한다.
(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도 들어 있으므로 제외하고 학습한다.

문제

IPaddr/mask|스페이스로 구분된 ASN(AS Path)가 정상인지 비정상인지 판단

(예) 114.70.166.0/24|38229 9885 11537 17579 1237 9949 정상인가? 비정상인가?





  • 레이블 없음