
ISP(Internet Service Provider
)는 인터넷 서비스 제공 업체 예를 들어 KT, SKT, LGU+가 있고
하나의 ISP는 여러 AS를 가질 수 있다.
AS(Autonomous System)
AS4766: 국내 인터넷 트래픽
AS9848: KT 글로벌 회선
하나의 AS 내에서는 내부 라우팅 정책을 철저히 통제하고 있고
iBGP를 통해 연결된다. 외부 AS는 eBGP를 통해 연결되고 이는 AS가 정한대로 간다.

no! AS의 권한을 가진 사람만 직접 외부 AS를 설정할 수 있다.
그러니까 토스 이놈들은 직접 AS를 구성하고 외부 AS 연결을 컨트롤하고 있다.

토스는 위와 같은 체계로 구성되어 있다.
사내망과 외부를 분리하는 역할을 수행한다.
VPN과 함께 보안 정책을 설정할 수 있다.
또한 SNAT, DNAT을 통해 ip를 설정한다.
데이터 센터의 내부망 연결을 위해 백본 역할을 수행하는 친구들이 있다. 내부 ip들끼리는 연결을 설정하는 일은 굉장히 낭비가 심하기 때문에 고속도로 역할을 하는 백본을 설계하고 그 주변 장비들을 연결한다.
늘 먹던 그거.
로드밸런서의 역할이긴 한데 이제 글로벌적으로 사용하는 로드밸런서이다. 보통 로드밸런서는 하나의 지역 내에서 트래픽 분산을 담당한다면 GSLB 다른 지역에 있는 서버들까지 트래픽 분산을 담당한다.
기존 토스 방식은 백본이 외부 아이피까지 라우팅 해야돼서 문제가 많았다고 한다. 이를 해결하기 위해서는 백본 대신 라우팅을 전담할 친구가 필요했고 내부에서 라우팅할 방법이 필요했다.

이를 위해 SNAT, DNAT을 이용해 방화벽에서 IP를 변경하도록 하여 백본의 유지보수를 용이하게 했다. 하지만 아직 장애 발생시 이를 대처하는 방법이 부족했다. 이중화되어 있지만 하나의 전용선이 망가질 경우 DC2는 고통을 받아야 했다.

이를 위해 프록시 서버를 도입하기로 결정했다.
프록시 서버는 리버스 프록시 솔루션으로 많이 사용하기도 했지만 health check를 이용할 수 있는 점을 착안했다. Proxy에서 가능한 솔루션 중에서 TCP Half를 이용해 서버의 부하도 줄이고 L4 Layer에서만 작동하도록 구현했다.

오케이 그래서 이제 Health 체크를 통해 대외계의 상태를 확인할 수 있게 되었다. 그럼 이제 트래픽 분산만 시켜주면 된다.

이때 필요한게 GSLB이다. 대외계 도메인을 LDNS에 질의하면 이를 GSLB가 위임받아 프록시 서버의 HEALTH를 확인하고 건강한 대외계의 IP만 제공하도록 하였다. 이를 통해 대외기관에 문제가 발생하면 다른 지역의 프록시를 통해 대외계와 연결이 가능하게 되었다.
어때요? 나쁘지(NA(T), P(roxy), G(SLB)) 않죠?