인터넷 속도와 홈서버 삽질기. by chatmate

참... 이런 초심자스러운 뻘글을 써야 하는지 말아야 하는지 망설였으나, 어차피 아무도 안 볼거 일기라고 생각하고 적어본다.
누군가에겐 도움이 될 지도 모르고.

요즘 인터넷이 느려진 것 같아 인터넷 속도 측정을 해 보았다.


결과를 보면 확실히 몇 년 전보다 수치상 100Mbps 정도는 느려진 것 같은데, 문제는 이정도면 충분히 빠른 것 같다는 것.
(하긴, 4,5년 전에는 측정 사이트 결과로는 900Mbps 대였지)

그래, 캐시 서버를 만들자!  어차피 집에서 인터넷 접속하는 디바이스가 좀 여러개야?
게다가 일본 국내에서만 빠르지 한국 연결하면 시 -_- 망 이라, 캐시 서버가 있는게 좋아! 프린터 서버로도 쓰고! (조만간 네트워크 프린터 기능 없는 저렴한 LED 프린터를 살 예정이라라고 자기최면을 걸었다. 

참고로, 일본에서 한국쪽 연결은 NTT 회선보다 KDDI 회선이 압도적으로 빠르다. 나카노구와 토시마구에 각각 두 회선을 다 신청해서 동시에 비교해본 결과, 같은 프로바이더(ISP)를 쓰는데도 26배 정도 차이가 나더라. 

이야기는 계속 삼천포로 흐르는데...

사실 일전에 컴퓨터가 고장난걸로 오판하여 CPU와 메인보드를 주문했는데, 알고 보니 SATA 슬롯 하나가 말썽이었던 것 뿐, 다른 슬롯을 이용하니 멀쩡하게 부활한 일이 있었다.

고장난줄 알았던 컴퓨터가 고쳐지는 바람에(?) 쓸모 없게 된 메인보드는, 택배 박스를 뜯지도 않았음에도 절대 환불 불가라고 하여, 눈물을 머금고 메인보드 대신 SSD로 교환하게 되었고. (도스파라를 내가 몇년을 이용했는데!  이젠 절대로 아마존에서만 산다. 묻지도 따지지도 않고 교환해 주는 건 역시 아마존과 코스트코.)

여차저차 하여, 이제까지 쓰던 SSD가 놀게 되었는지라, 어떻게 컴퓨터를 한 대 더 만들어서 SSD를 달고 캐시용 홈서버를 꾸미기로 했다.

그런데, 집에 남는 부품은 많은데 (메인보드 세장, CPU하나, 램이 DDR2 2*4, DDR2 1*4, 그 외 하드 다수, 마우스, 남는 윈도우즈 7 라이센스  등등), 이게 다 더해서 완제품이 만들어지지는 않는 조합인거라.

대충 옥션에서 중고 컴퓨터나 한 대 사자 하고 보니, 구닥다리 코어2듀오 E7500에 램 2GB, 300GB 하드 달린 슬림PC가 5,800엔.
사진 출처 : 제조사 홈페이지 http://www.jp.onkyo.com/

인기가 없어서 아무도 안 사는걸 사다가 추가로 집에서 놀던 램 2GB를 더 박고, SSD 달고 해서 초기 세팅 완료.


그리고 충동적으로 홈서버용과 클라이언트 PC용으로 하나씩 INTEL PRO 1000/PT DUAL PORT를 두짝 구매. 네트워크 어댑터가 홈서버보다 비싸다는게 오늘의 개그 포인트.
사진출처 : 아마존 



원래 대로라면 CentOS나, 최소한 우분투라도 꾸며야 선택지가 넓어지는데, 윈도우즈가 워낙 손에 착착 감기는지라 윈도우즈로 가게 되었다.
다만, 서버 버전은 당연히 -_- 라이센스가 없어서, 요즘 한참 덤핑이 뜨고 있는, 갖고있던 Windows 7으로 설치.

그리고 캐싱 용 Proxy는, 좀 릴리즈 된지 오래 되었지만 Windows 에서 어쩔 수 없는 선택으로 Squid 2.7을 설치하게 되었다.
그리고 DNS 캐시용으로는 Unbound. 그나마 국내에 사용자가 좀 있는 듯한 BIND로 갈까도 싶었지만, Unbound 쪽이 더 가볍고 심플해보여 Unbound로 결정.
이쪽이 본래 목적(캐시 서버)에 맞기도 하고.

그리고 잘 쓰진 않겠지만 어쨌든 봉사하는 기분으로 Relay 번들판 Tor도 설치하고, 혹시 내가 쓸 때를 대비해 여러 디바이스에서 캐시서버측 Tor를 이용할 수 있도록 중계용으로 Privoxy 설치. (Proxy 만 여러개를;;; )

클라이언트 측에는 PC의 경우 FoxyProxy로 그때그때, 혹은 접근 사이트에 따라 Proxy를 선택하게 하고, iOS 기기의 경우에는 5GHz대 접속은 Squid, 2.4GHz대 접속은 다이렉트 라는 식으로 설정해 놓았다.

그리고 Squid에는, 이런걸 옳지 않은 일이라고 싫어하는 친구도 있지만, 광고 차단 필터를 설치하였다.
처음엔 일일이 ACL에 블랙리스트를 정의해서 블럭만 했었는데, 광고 대신 '접근 불가'에러가 표시되는지라, Perl 스크립트로 빈 페이지를 출력하는 필터를 정의하였다.
물론 내가 Perl을 짠건 아니고, 남이 짠(bannerfilter)걸 가져다 쓴 것. 이것 때문에 ActivePerl(Perl64)과 IIS도 깔았다. 다른 스크립트(AdZap)를  쓰면 따로 IIS 같은 웹서버가 없어도 되는 것 같기는 한데, 개인적으로 이게 더 편하길래; 

이로서 iOS 기기 등 모바일 기기에서도 광고 차단 완료.

써보니... 음...

잘 모르겠다;;;  빨라 진 것 같기도 하지만 기분탓인듯.

노하우를 설명하려고 글을 쓰기 시작했는데, 노하우는 하나도 없네 -_-;;;

그냥 대충 하면 된다.

Windows의 경우, Squid 는 알아서 DNS를 레지스트리에서 찾아다 쓰는데, 이걸 Unbound로 지정해 놓는거라든가, 광고차단용 펄스크립트 설정하는 법이라든가, Squid 캐시 리프레쉬 설정이라든가, 찾아보면 다 나와있다. 

단지 돌아다니다 보면 눈에 띄는 Squid 설정 샘플은 3.x대를 기준으로 한 것이 대부분이던데, Windows 용은 2.7 뿐이고, 옵션 파라메터가 호환이 안 되는게 몇가지 있다.

Squid 버전의 경우 2.x대는 C로 개발되었고 3.x대는 C++로 개발되었다는 차이가 있기는 것 뿐, 원래는 3.x가 상위버전은 아니었던 것 같다. 오히려 C++로 재개발하면서 3.0, 3.1까지만 해도 2.x대의 기능을 다 구현하지 못해서, 2.7이 성능면에서나 기능면에서 더 나았다고. 다만 3.3까지 오면서 기능면에서는 이제 3.x대 버전이 나아진 것 같은데, 트래픽이 집중되는 사이트의 경우 Reverse Proxy로서의 성능은 2.7이 아직 조금 더 나은 모양.

깔아놓고 보니, 속도가 빨라진 것 보다는 역시 중간에 적절히 걸러준 결과만 받아볼 수 있다는 게 당장 체감할 수 있는 장점인 것 같다.

암튼 이젠 슬슬 Cisco 스위치나 라우터 중고를 옥션에서 보게 되는데... 아 그냥 CentOS로 깔걸... -_-;
왜 내 분야도 아닌 쪽에 흥미가 쏠리냐.


덧글

  • 우분투 정보 2013/10/18 03:54 # 삭제 답글

    우분투 관련해서 좋은 정보네요.
    우분투에 대해서 상세하게 알고 싶은 정보가 있으면,
    참고로 여기 사이트도 더 좋은 정보가 많네요. ^^
    아주 상세하게 관리자님이 기술해 주셨네요. 기술적 & 공학적 측면으로 아주 상세하게 보여줍니다.
    http://tech.ecostbay.net
    저도 여기서 가끔 좋은 정보 얻어가곤 합니다.
댓글 입력 영역