최근 집에 자작인터넷공유기를 설치해서 쓰는데 괜찮은 거 같아서 글을 한번 써볼까 합니다
자작공유기??? 이게 과연 필요한가?? 보통은 필요없습니다 ㅎㅎ
하지만 NAS구축이나 IOT구축 같이 공유기에 접속을 하는 기기가 늘어나면.. 점점 고성능 공유기가 필요하게 되고
어떤 기기가 우리집 인터넷대역폭을 얼마나 먹는지, 외부에서 스트리밍을하면 대역폭은 얼마나 쓰는지
쓸때없는 트래픽이 많은 기기는 없는지 같은 관리적인 기능이 필요하게 되죠
하지만 아무리 좋은 공유기라도 기능은 한정되어 있습니다
이럴때 자작공유기를 사용하면 이런 관리에 특화된 소프트웨어를 올려서 사용할수 있습니다
그것도 무료로~
저는 Untangle을 사용해서 만들었고
일단 대쉬보드화면부터 보시면..
일반공유기와는 비교도 안되죠.. 하드웨어 모니터링정보부터 시작해서 접속된 기기들의 네트웍사용량,세션수,접속한 사이트의 국가정보
도메인비율, 어플리케이션종류(이것만 유료기능ㅠ)을 다 볼수 있습니다 다른 필요한 정보가 있다면 추가도 가능하고
Apps 라는 메뉴를 사용해서 무료,유료 기능추가도 가능합니다 무료기능만으로도 이정도는 만들수 있죠
대쉬보드에 없는 정보들은 Reports로 가시면 다 조회 가능합니다 딱 L7 스위치 수준으로 기능이 제공됩니다
Untangle은 모든 트래픽을 L7 레이어까지 다 분석해서 text 로그로 남기는게 아니고 PostgreSQL DB에 다 저장합니다
이렇게 DB에 저장된 정보를 조회가능하고 기본으로 제공하는 화면을 커스터마이징해서 새로운 report를 만드는것도 가능합니다
개발자이고 SQL에 능하시다면 아예 Untangle의 DB에 접속해서 그냥 쿼리를 날려서 볼수도 있죠
음.. 하루트래픽이 50GB 정도군..
내아들이 다 컸구만 허허....
그밖에 장점은
- 가성비 좋은 고성능 공유기
헤비유저가 쓰는 공유기의 가격은 꽤비쌉니다. 10Gbps 급으로 넘어가면 가정용은 없고 기업용장비는 수백합니다
자작공유기는 10Gbps 랜카드만 달면 됩니다 이론적으로는요;
- 관리기능이 구린 무선공유기 사용가능
대표적으로 TP-link, Netgear 같이 관리자 기능이 안좋기로 유명하지만 무선성능은 빵빵한 공유기를 부담없이 쓸수 있습니다
그냥 AP모드로 켜놓고 붙이고 신경 안쓰면 됩니다
모든 기능은 Untangle 에서 관리
- VPN 성능
AES-NI 명령어를 지원하는 x86 CPU를 사용해서 자작을 하면
가정용공유기와는 비교불가능한 VPN 속도를 얻을수 있습니다
지원 CPU는 링크참조
https://ko.wikipedia.org/wiki/AES-NI#AES-NI%EB%A5%BC_%EC%A7%80%EC%9B%90%ED%95%98%EB%8A%94_CPU
단점이 있는데
- 가성비..
요즘 유무선공유기 2만원이면 사죠 성능도 일반가정에서 쓰기엔 부족하지 않습니다
안쓰는 PC를 활용하면 그나마 나은데 아니라면 비용이 좀 들어갑니다
- 주렁주렁 달리는 기기들;
자작공유기본체, AP로 쓸 무선공유기등 연결선이 늘어나죠 전기세가 좀 나오겠네요
그럼 자작공유기 구성을 단계별로 설명해 보도록 하겠습니다
1. 라우팅 and 방화벽 소프트웨어 선정
시중에 훌륭한 오픈소스 소프트웨어가 많이 있습니다
pfSense,여기에 WebUI를 강화한 OPNSense ,위에서 언급한 Untangle, 각종 오픈소스공유기에 쓰이는 OpenWRT 등등..
https://en.wikipedia.org/wiki/List_of_router_and_firewall_distributions
여기 참조하시면 각 소프트웨어별 비교 및 상세스펙이 있습니다
대중적??으로 가장 많이 사용되는 것은 pfSense와 Untangle이 있습니다
- pfSense vs Untangle
두개를 비교하자면 일단 사용목적이 좀 다릅니다 pfSense는 L2~L4 쪽에 중점을 뒀고 Untangle은 L7에 중점을 두고 있죠
여기서 말하는 L2~L7은 네트워크 OSI 계층을 말하고 자세한 설명은 힘들지만(전공책1권정도 분량이죠;)
간단한개요는 여기 참조.. https://namu.wiki/w/OSI%20%EB%AA%A8%ED%98%95
기본적으로 인터넷공유기는 L2~L4의 기능을 조금씩 가지고있는 스위치허브라고 보면 됩니다
NAT,Port Forwarding에 특화된 장비죠
pfSense가 좀더 안정적이고 기능이 디테일하긴 하지만 가정에서 사용하기에는 오버스펙입니다
네트워크에 PC가 수백대가 있어서 그룹으로 나누고 VLAN쓰고 이럴일이 없죠..
가정에서 그정도의 L2~L4 기능을 쓸일은 없습니다
오히려 Untangle이 가정에서 사용하기에 적합하고 사용자친화적인 UI와 특히 L7패킷 분석기능이 있습니다
그리고 Debian Linux 위에서 돌아가기 때문에 apt 명령어로 사용자가 원하는 다양한 패키지 설치가 가능합니다
이것도 엄청난 장점이죠
Untangle이 가정에서 사용하기에 딱하나 부족한 기능이 있다면 IGMP 쪽 설정이 전무합니다
가정용공유기에서 제공하는 IPTV 사용 설정 기능이 없다고 보시면 쉽습니다
근데 IGMP 기능이 있는 스위치허브를 사서 자작공유기윗단에 달아 IPTV셋탑을 따로 빼서 연결하면
해결이 되기 때문에 큰 문제는 아닙니다
단지 tvheadend를 사용해서 IPTV데이터를 NAS나 특정서버에서 사용을 해야한다면 pfSense를 선택해야합니다
IGMP 설정을 아주 디테일하게 할수 있습니다
2. 공유기 하드웨어 선정
집에 안쓰는 PC가 있다면 그걸 사용하는게 가장 좋습니다 비용절약이죠 ㅎㅎ
Untangle에서 요구하는 스펙은 대략 2 Core CPU 정도에 램 2G 정도, LAN포트 최소2개 입니다
일반공유기들의 스펙과 비교해보면 이정도만해도 넘치죠
https://wiki.untangle.com/index.php/Hardware_Requirements
Untangle 공식 wiki의 하드웨어 사양표 입니다
만약 하드웨어를 구매해야한다면 중국 타오바오에서 아주 저렴하고 괜찮은 라우터용 pc를 구할수 있습니다
https://s.taobao.com/search?q=j1900+4+port&imgfile=&js=1&stats_click=search_radio_all%3A1
J1900(4Core,2.42GHz), Intel 1Gbps 급 4 Port 짜리 PC가 560위안(9.5만원)정도면 구할수 있습니다 여기에 RAM,SSD 정도만 달면됩니다
댓글로 더 괜찮은 하드웨어 추천을 해주셨네요 집단지성이 이래서 좋습니다
이런공유기를 사용하는 큰이유중 하나가 VPN사용도 있습니다 만약 VPN서버를 올리신다면
이게 AES가속이 되어서 VPN 성능이 더 잘나옵니다
https://item.taobao.com/item.htm?spm=a230r.1.14.34.55953fb7PSA23U&id=600182717458
J3455 이고 좀더 최신 CPU입니다 J1900은 출시된지 좀 되었죠 100위안정도 더 비싸지만 VPN을 쓰신다면 이걸 더 추천드립니다
간혹 나는 LAN port가 많이 필요해서 4 Port가 부족할거 같은데.. 라는 생각을 하시는분이 계실수 있는데
스위치허브를 붙여서 확장을 하는것이 맞습니다
이유는 PC에 있는 LAN Port를 공유기의 Port 처럼 쓰려면 소프트웨어 방식 Bridge로 연결을 해야하는데 엄청난 CPU자원낭비입니다
단돈 2만원이면 스위치허브를 살수 있고 이런기능에 특화된 훌륭한 ASIC칩이 달려있습니다
CPU같이 고급자원을 여기다 쓰는건낭비죠
3. 설치
설치는 크게 어려울게 없습니다 구글검색을하면 상세하게 나온사이트들도 많고요;;
https://wiki.untangle.com/index.php/NG_Firewall_Downloads
여기서 일단 이미지를 다운로드 받아서(보통 USB용 IMG파일)
USB부팅을 하면 됩니다
인터페이스 설정에서 External, Internal 각각 eth0,eth1 하나씩 잡아주면 되고
Router 모드로 선택하고 Internal Address를 192.168.1.1 , Netmask를 /24 - 255.255.255.0
이렇게 하면 됩니다
4. 홈 네트워크 구성
일반가정에서 IPTV를 신청해서 보고있다는 가정하에 간략하게 그려본 구성도입니다
만약 통신사 모뎀에서 인터넷,IPTV Port를 따로 뺄수 있다면 제일 윗단 스위치허브는 필요없습니다
그리고 스위치허브가 IGMP기능을 지원하지 않으면
IPTV신호를 모든 포트로 보내게 되어서 성능저하가 일어나게됩니다
아까 Untangle 인터페이스 설정에서 했던 External Port를 인터넷(WAN)에 연결하고 Internal Port를
기존에사용하던 WiFi 공유기의 WAN에 꼽아 AP모드로 설정해서 연결 하면 끝.. 간단합니다
이러면 무선처리는 기존공유기에서 다 하고 NAT,Port Forwading,DHCP 서버등의 기능을 Untangle에서
담당하게 됩니다
5. 몇가지 팁
- DB접속
처음부터 DB에 접속을 할수는 없습니다 막혀 있죠
https://forums.untangle.com/hacks/37688-direct-access-postgres-db.html
여기에 나와있는대로 설정을 하시면 DB client로 접속 가능합니다
- Debian 패키지 설치
Untangle에 ssh 접속을 한후 apt update 명령을 내려보면 아시겠지만 기본 debian repository가 삭제되어 있고
Untangle repository 만 등록되어 있어서 원하는 패키지 설치는 기본적으로 막혀 있습니다
아마 안정적인 Untangle과 관련된 패키지 관리를 위해서 인것 같고
vi /etc/apt/sources.list 명령으로
deb http://ftp.harukasan.org/debian/ stretch main contrib non-free
기본 데비안 레파지토리를 추가해야합니다(저는 harukasan mirror 서버를 선호합니다)
그리고 apt update 후 원하는 패키지를 설치하면되고
꼭!! 위에 추가해준 레파지토리를 주석처리한후
#deb http://ftp.harukasan.org/debian/ stretch main contrib non-free
apt clean 명령을 내려줘야합니다 안그러면 매일 자동으로 Untangle에서 upgrade를 시도할때
필수 패키지들이 upgrade가 되어 Untangle이 벽돌이 된다는군요;;
이상으로 인터넷공유기 자작글을 써봤습니다
제가 컴공전공이긴한데 네트워크쪽은 담을 쌓고 살아서 용어나 설명이 틀릴수도 있습니다
틀린점이 있다면 댓글로 지적해주시면 수정하도록 하겠습니다
감사합니다~~
와.. 이글이 클리앙 대문에 걸렸네요... 생각지도 못했는데;;
이 영광을 hitomi.la에게 돌립니다...
저도 컴공인데 언젠간 님과 같이 능력과 열정을 둘 다 갖춘 사람이 되고 싶네요
라즈베리파이로 iot 허브 한번 만들어봐야지 생각만 어언 2년째..
ㅎㅎ 생각만하고 실천하는게 좀 어렵죠 ㅋ
감사합니다
저도 아수스 쓰다가 이번에 바꿨네요 ㅋ
이론상으로는 되겠죠 하지만 추천은 안드립니다
가상머신이 은근 사양을 많이 잡아먹어서 공유기 성능에 영향을 미칠겁니다
중국에서 공부중인 가족들 VPN도 있고 하단에 우분투서버로 웹서버를 구축하다보니
말씀하신대로 pf가 최고인데 많이 어려워요 ㅠㅠ
ㅎㅎ 역시 중국은 검열때문에 VPN 사용자들이 많군요
pfSense는 네트워크 전공지식이 많이 필요합니다 ㅎㅎ
당연하긴 했는데, nas는 자작할 생각을 했어도 공유기를 할 생각을 못했네요.. 워낙 iptime이 선점해서 생각도 굳어진건가...?
언젠가 미니피시 구입해서 구축해보고 싶긴 하네요.. ^^;;
2만원대에 그정도 속도/기능을 뽑는데 iptime 가성비가 사기적인거죠
감사합니다 전기세는 생각보다 많이 나오진 않습니다 ㅎㅎㅎㅎㅎㅎㅎ
엇 debian OS 자체적으로 IGMP proxy 기능을 구현하는건가요?
전 Untangle이랑 충돌날까봐 포기했는데
댓글로 팁좀 주세요 ㅎㅎㅎ
마침 노는 노트북이 있는데 이 게시물에 도전해 봐야겠습니다.
음.. 질문을 잘 못 알아 듣겠네요
보통 공유기가 AP모드로 들어가면 IP할당을 다른 공유기로부터 받게되고 예를들면 192.168.1.3 이런식이요
해당 ip주소로 접속하면 AP 컨트롤이 가능 합니다
네트워크 현업이시군요 ㅎㅎ
제가 그정도로 대규모 네트워크를 관리를 해본적이 없어서 컨트롤러가 있다는것도 오늘처음 알았네요 ㅎㅎ
답변을 못드려서 죄송합니다 ㅠ
미니 PC는 랜카드 꼽는게 불가능해서 힘들긴해도
그외에는 랜카드 하나 사면 되긴합니다 ㅎㅎㅎ
이런 수준이라뇨!!
openwrt나 pfense 같은 특정 하드웨어용도가 아닌 소프트웨어도 나왓군요
근데 보드에 랜카드를 여러개 달아서 브릿지?로 쓰는게 자원낭비라고 하셧는데
랜포트 1개에 스위치허브를 달아서 여러 pc를 연결하는건
반대로 성능 저하가 생기는거 아닌가요?
물론 이미 들어오는 네트워크 라인의 성능 한계가 존재해서 무의미 할수도 있겟네요
어차피 WAN으로 나가는 트래픽은 인터넷 대역폭에 한계 때문에 성능이슈는 거의 없다고 보면 됩니다
오히려 보통 내부망에 붙은 장비끼리 나오는 트래픽이 상당하죠 스위치허브가 가장 효율적인 답입니다
흥미롭네요. 정보 감사합니다 ㅎ
대쉬보드에 나오는 캡쳐 화면에도 나오긴 하는데 3865u에 8G RAM, 256G SSD, 6 LAN Port PC입니다
완전 오버스펙이죠 CPU 사용율 5% 넘는걸 본적이 없습니다
참고로 저글에 LAN Port많으면 좋을거 같다고 생각 하는사람은 저였습니다;; 만들면서 이것저것 자료조사를 해보니
완전 삽질임을 알았죠 다시 만든다면 J1900 으로 할거 같습니다
손씨 아니십니까? ㅎㅎㅎ
소모전류가 일반공유기랑 비교시 차이가 좀 있지않나요?
일반공유기가 사용하는 CPU는 ARM 계열이고 이건 x86이라 전력차이가 있긴 할겁니다
그래도 TDP10w 짜리라 저전력입니다 ㅎㅎ
남는 데탑장비로 방화벽 만드신거자나여... 언탱글 모르는 사람들이 보면 오해합니다. ㅋㅋㅋㅋㅋ
ㅎㅎ 맞습니다 정말 정확한 용도는 L7 방화벽이죠
근데 항상이런글은 비전공자 일반인을 위해 쓰는게 맞는거 같아서 그냥 공유기라고 퉁친겁니다 ㅋㅋ
혹시 요즘 무선 공유기에는 모니터링용으로 따로 트래픽 빼주는 포트는 안 달여 있으려나요...
ps. 아드님의 프라이버시를 보장하라! 보장하라!
이제 아드님은 스마트폰에서 사용하는 vpn 강좌를 올리는데...
포트미러링 지원되는 스위치허브를 WAN 쪽으로 달면 간단하게 트래픽을 뺄수 있긴 할겁니다 ㅎㅎ
왠 방화벽이 ㄷㄷㄷㄷㄷㄷ
ㅎㅎㅎ 방화벽으로 공유기 기능과 Web Monitoring 기능을 활용하는거라 생각해주세요
그리고 가정용 인터넷 공유기도 외부 포트를 다 막기 때문에
기본적으로 방화벽 기능을 합니다 ㅎㅎㅎ
하지만 과연 할수있을까? 하는....걱정이 앞섭니다. 편한것도 좋지만 가끔 이런거 해보느라 머리아픈것도 있어야죠.
시작이 반입니다 하드웨어부터 지르세요 ㅎㅎ
이건 저도 궁금하네요 ㅋ
Untangle은 x86만 지원합니다
router+방화벽(NAT,필터링 등)+IDS 등을 비롯한
구글링+유투브 검색을 고려 할때는
pfsense + snort 조합이 오픈소스에서는 보편적인 공식입니다. ^^;
해놀로지 셋팅하는 느낌이군요?
좋은 정보 감사합니다 ㅎㅎ
감사합니다.
내아들이 다 컸구만 허허.... 포인트네요..
노련하시네요;;
전 20년전에 하나로 ADSL쓰고 윈도우에wingate 설치해서 인터넷공유 하던 기억이 나네요
오 이건 모델명이 먼가요?? 궁금하네요
옛날 생각나네요... 하나로통신 ADSL을 예약가입으로 신청해서 쓸 때 PC에 랜카드 하나 더 달아 slackware 리눅스를 설치해 ADSL 모뎀 다음단에 설치하고 유선공유기 처럼 썼었는데.. ^^
좋은 정보 고맙습니다~
pfsense 나 untangle 다룰줄만 알면 좋은 툴이죠..
snort 도 좋은 툴인건 맞지만.. UI 관리가 어려워서 저라면 untangle 사용할거 같네요.ㅋㅋㅋㅋ