tl;dr
- IPv4 주소 고갈로 운영비가 계속 증가할 것임
- 듀얼스택과 IPv6 변환은 엔지니어링 난이도가 높은 것이 현실임
- (내용추가) IPv4 주소 문제는 내가 관리하고 있는 인프라만 잘 구현한다고 끝나는게 아니라, ISP의 협조가 필요한 부분임
- 하지만 우리는 그런 유토피아에 살고 있지 않다
- 그러니 IPv4 주소를 보유하고 있는 것이 현명한 경영 방향이 될 수 있음
Relatable quote: Everyone will not “just”
If your solution to some problem relies on “If everyone would just…” then you do not have a solution. Everyone is not going to just. At no time in the history of the universe has everyone just, and they’re not going to start now.
본문
나는 2021년부터 개인 메일서버를 운영해 쓰고 있음.
몇년에 걸처서 많은 시행착오를 겪으면서 내 메일이 스팸으로 떨어지는 문제를 하나하나 잡았지만, 여전히 내 이메일 서버는 야후 메일 계정으로 발송하기 힘들다(여전히 내용과 관계없이 모두 스팸함으로 취급됨. 계정까지 전달은 된다). 대기업들이 자기내들 이메일 서비스 품질 향상을 위해 극단적인 스팸차단 방식을 취하는데, 그 방식이 너무 극단적인 나머지 웹 생태계에 그리 좋은 영향을 끼치지 못 함(버너스리씨가 싫어합니다). 대기업 메일 서비스를 위해 해야하는 더러운 일에 대한 내용을 알고 싶으면 내 노트들을 참고.
gmail 계정하고 메일을 주고 받는게 성공한 방식은 참 그리 마음에 들지는 않음. 내 이메일 서버를 듀얼스택으로 운영한 뒤부터 gmail이 내가 보내는 메일을 스팸으로 보내지 않는 것을 발견했음. 그 뒤로 대기업들이 메일 서버의 IP 주소를 기반으로 이메일을 평가한다는 것을 알아냈다(“IP reputation”). 당연한것 같음. 이메일 발송 비용이 너무 낮다보니, 대기업 입장에서는 스팸차단하는 일이 그리 쉬운일이 아님. 이메일 뿐만 아니라 소셜미디어 서비스 같은 곳에서도 클라우드 서비스 ASN을 다 차단하는 등의 일은 이미 업계 표준으로 보임. 아마존 ASN의 IPv6 주소가 reputation list에 포함되어 있지 않은 것은 자연스러워 보임. 구글, M$(야후 인수함) 모두 postmaster를 위한 서비스를 제공하고, 지원 채널도 운영하기는 하지만, 당연하게도 그리 유용하지는 않음. 어쩔 수 없는게, 그렇게 1:1 상담으로 뭐가 잘못됫는지 하나하나 트러블슈팅 해주면 스패머들이 그 정보를 악용해서 필터 시스템을 뚫기 시작하겠지. 그래서 스팸필터링 정책은 철저하게 블랙박스로 남겨두는 것이 내가봐도 슬기롭다고 보임. 나같은 개인은 그저 sysadmin들이 시스템을 그렇게 구축했겠구나 유추할 수 밖에. 쨋든, 이 계기로 IPv6 기술에 관심을 갖고 연구를 하기 시작했음.
https://github.com/dxdxdt/gists/tree/master/mx-aaaa
얼마나 많은 메일서버가 듀얼스택으로 운영되는지 궁금해서 만들어 본 스크립이다.
M가MTA서버들다듀얼스택으로만들때까지기다리는방법이있기는함..한내가50정도되야그날이올려나.M는 당연히 야후, 아웃룩 인프라를 다 Microsoft Exchange Server로 돌릴 것이고, 최근에 마소의 병맛크리 때문에 그리 쉽게 듀얼스택으로 만들지 않을 것으로 보임.
Fucking Microsoft. 야후, 아웃룩 스팸 문제만 해결하면 전 세계 인구의 90%는 다 커버가 됨. 이걸 현실화하려면 뭘 해야 할까 고민하면서 인터넷을 별 자료를 다 찾아봤지만, 정말 ASN 하나 사서 운영하는 답밖에는 없어보임. 이유는 관리자들이 블랙리스트 만들 때, 차단을 각 주소 낱개단위로 안하고 IP 주소 블록 단위로 차단해버림. 논리적으로 이게 말이 됨: 차단되면 계속 블록에 있는 다른 주소로 다시 시도하면 되니까. 클라우드 같은 경우는 더 답이 없어서 그냥 서비스 시작할 때부터 그냥 유명한 클라우드 서비스 ASN에 등록된 IP 블록들 다 차단해버림. 99.9퍼 사용자는다 ISP 주소 블록에서 접근할 태니까. VPN 상황도 마찬가지. 그래서 답은 ASN을 하나 사서, M$에 내가 주소 블록 소유권하고 있다고 증명하고 잘 통제하겠다고 어필하는 수 밖에는 없음. 어차피 IPv4 주소는 요즘 다 경매로 거래되고, 주로 폐업한 회사에서 오래 쓰이지 않다가 나온 블록이 많아서 애초에 기록이 깨끗한 경우가 대부분일 것임. 지금은 클라우드 회사들이 계속 사들이는 케이스지, 그 반대의 경우는 거의 없으니까.
AS 구매까지는 그리 큰 문제가 아님. ASN을 받는 방법은 크게 2가지가 있는데: 거주지역 NIC에 직접 신청하는 방법, 이미 AS 운영하고 있는 기업에 스폰서 받는 방법(LIR). 전자 가격은 연간 $3,000 정고고 일반 개인도 비용만 내면 할 수 있음. 후자 방법은 아무나 몇만원 대로 할 수 있음. 하지만 애초에 ASN이 필요한 이유는 BGP 네트워크를 쓰기 위함임. 그래서 ASN만 있으면 안되고 IP 주소 블록도 사야 하는데, “경매” 인 것에 주의해야 함. v4는 주소 고갈 상황이 심각해서 가격이 좀 되고, 하나 얻는데 시간도 많이 걸림. (이럴줄 좀 어렸을 때 알았으면 비트코인처럼 몇개 사제기 해둘텐데 그랬음.) 참고로 IPv6의 가장 작은 블록이 64비트라면, IPv4는 24비트임. 살 수 있는 가장 작은 단위가 255개 주소라는 의미.
// 찟어지게 가난한 북한에서 24블록 몇개만 가지고 인프라 돌리는거 볼 수 있음
IPv6 주소는 저렴해서, BGP 공부하고 싶으면 ASN+IPv6 번들 하나 사서 가지고 놀 수 있음.
- https://bgp.services/
- https://www.reddit.com/r/networking/comments/l5gf4l/looking_for_alternative_hosting_that_allows_bgp/
- https://www.reddit.com/r/networking/comments/15i61hf/acquiring_asn_and_ip_block_for_person_use/
왠만한 클라우드는 다 “BYO IP”(AWS) 기능으로 BGP를 쓸 수 있게 해 줌. 그래서 아이디어가 하나 떠올라서 이 메일을 적게 되었다. 나는 이미 월간 AWS 비용을 개인치고는 꽤 많이 내고 있어서, 내 메일서버 돌릴려고 IPv4 주소블록 하나 살 생각은 없음. 그런데 내가 노드 수천개 돌리는 기업이었다면 어떻게 최적화를 했을까?
클라우드로 서비스하던 코로케이션으로 서비스하던 IP 주소는 필요할거임. 코로케이션이면 제공 업체에서 그렇게 주소 많이 쓰면 좀 자제하라고 해서 해결책을 찾기 시작할 거임. 제일 쉬운 방법은 로드벨런싱이고, 대부분의 케이스는 로드벨런서를 때려 붙이는 것에서 끝날 것임. 로드벨런서를 쓸 수 없는 서비스를 하고 있으면 문제가 커짐. 여러 물리적인 위치에서 서비스를 해야 하는 CDN이 겪는 문제임. Cloudflare 같은 서비스들은 “Globally routed” IPv4 주소 블록 몇개로 http 케시를 운영함. 쉽게 풀어쓰면, 같은 주소를 가진 서버를 세계 여러 곳에서 돌리면서 BGP로 클라이언트하고 가장 가까운 서버로 백본망이 라우팅하도록 유도하는 식으로 서비스 함. 한국에도 Cloudflare로 CDN 하는 사이트들 꽤 많이 보이는데, 그 사이트도 모두 global routing으로 접속되는 것을 확인할 수 있음.
// 최근에 페북이 이 BGP 설정 잘못해서 만 하루동안 다운된 일이 있었음
BGP로 소유하고 있는 주소 블록을 여러 데이터센터에서 홍보하면 백본망 테이블엔 같은 prefix가 여러개 생김. 이 때는 Dijkstra의 마법으로 라우터들끼리 거리비용 계산해서 metric이 높은거 하나, 낮은거 하나 나타나는 식으로 됨. 거리 계산을 라우터가 해주니까 위치기반 DNS 로드벨런싱보다 더 효율적인 로드벨런싱임.
근데 내가 이 글은 쓴건 로드벨런싱 얘기하려고 쓴건 아니고, ASN 운영하면 이런식으로 IP 주소에 나가는 비용 줄일 수 있다는 걸 알려주고 싶었음. 회사 경영진 분이시라면 지금이라도 늦지 않았으니까 24비트 블록 하나라도 얻어 두라고 제안하는 걸 추천해 드림. 기존 인프라 듀얼스택으로 변환하는거 쉬운일 아님. 날이 가면 갈수록 서비스 운영자 입장에서 IPv4 주소 고갈 문제는 더 심해질거임. 인디 게임 스튜디오들 마저 24 블록 하나 사서 게임서버 서비스하는 가까운 미래를 예측해봄.
한국 인터넷 망에서 BGP 설정이 어떻게 돌아갈지는 안해봐서 잘 모르겠음. 북미같이 큰 대륙에서는 한 국가 내에서 BGP 라우팅하는게 의미가 있지만, 한국같이 사방 팔도전국을 10ms내에 도달할 수 있는 환경에서는 어떻게 될지 모르겠다. 수도권, 춘천, 대전, 부산, 울산에 리전 있는 BGP 쉽게 쓸 수 있는 클라우드 서비스 얼마나 될지도 모르겠음. 한국에선 그래서 그런지 ASN 신경 잘 안쓰는 듯. 그래서 왠만한 사이트들 whois 검색해보면 다 성남시 KT 지국 ASN으로 찍히는건가?
COLOPHON
Signed-off-by: David Timber
Acked-by: 0
| DATE | COMMIT | MSG |
|---|---|---|
| 2024-08-20 | 0e070a36dd82 | byo-ip-addr: initial commit |
| 2026-09-06 | 893a33a3f541 | byo-ip-addr: add tldr and relatable quote |