다수의 지인들과 NAS 서버를 운영하는 와중에, 현재 KT 가정용 회선의 일일 1Gbps 할당량 150GB 만으론 충분치 않아
여러 회선을 개통해, 동시에 사용하여 1Gbps 할당량을 최대한 많이 확보하고자 했습니다.
따로 사업자 등록을 하진 않은데다 QoS가 없는 SK 기가인터넷이 개통이 불가능한 지역이라,
현재는 개인 명의로 가입 가능하고, 일일 1Gbps 할당량이 회선당 300GB인 KT오피스IP넷 서비스를 2회선 정도 개통해 묶으려 했습니다.
인터넷과 서버 간 트래픽 발생 시 각 회선을 고르게 사용하여 회선별 일일 트래픽 할당량이 고르게 소모되게 하고자 하고,
L2 스위치 하단의 서버 포함 단말들은 사설 대역에 묶여, 서로 단말간 파일 이동이 발생하더라도
외부 트래픽 및 할당량 소모는 일어나지 않게 하는 것이 목표입니;다.
자격증과 함께 네트워크 장비를 조금이나마 다뤄본 지인이 있어 작업은 그 분이 전담할 예정이지만,
아무래도 저리 공인 회선을 묶어서 사용할 수가 있을 지 확신이 서지 않아 그동안 여러 차례 도움을 구했습니다.
그 결과, 아래 글들과 같이 2 WAN 이상 지원되는 라우터 단에서 PBR 내지 BGP을 이용해 설정을 해주면 가능하다는 의견을 들을 수 있게 되었습니다.
https://www.2cpu.co.kr/QnA/745666#c_745668
https://www.2cpu.co.kr/network/8262#c_8285
BGP 지원 라우터나 Cisco의 PBR,
또는 두 가지 기술을 모두 지원하는 운영체제 OPNsense를 이용한 자작 라우터면 구현이 가능할 것으로 보입니다만
정작 기성 라우터를 택할 경우 어떤 제품을 택하는 것이 좋은 지 모르겠습니다.
Cisco RV 라우터 시리즈의 경우 2WAN 모델인 RV320은 PBR을 지원 안 하기에 4WAN 제품 RV340을 해외 직구해야 할 것 같은데,
이미 다른 부분에 많은 비용을 소모한 만큼 RV340도 많이 부담스럽더군요...
자작 라우터의 경우 적장한 하드웨어 스펙이 어떤 지를 잘 모르겠습니다.
https://docs.opnsense.org/manual/hardware.html
위 OPNsense 메뉴얼의 Hardware Requirement에선 SSD, 램 4GB, 멀티코어(4코어 이상) CPU를 요하는 것으로 나오긴 합니다만,
1.5GHz 이상의 멀티코어로 기준이 되어 있더군요.
과거엔 E3-1231 V3 제온을 제작해 만들었다고 하는데,
해당 CPU가 이제 연식이 오래된 제품인 만큼 그러한 CPU로 맞추는 것이 적합할 지도 잘 모르겠습니다.
상황이 이러한데, 현재 제 용도와 상황에 적합한 기성 라우터가 따로 있을 지,
자작을 하게 된다면 CPU와 메인보드의 경우 어떠한 스펙으로 맞추는 것이 옳을 지 한 번 조언을 구하고 싶습니다.
+ OPNsense 요구 스펙 링크를 달지 않아 추가 하였습니다.
대부분의 답은 미크로틱에서 찾을 수 있다는 것을
많은 사람들의 체험기를 통해 배웠습니다.
전문가에게 비용을 지불하고,
실제 시스템의 구현을 맏기는 것이 가장 좋지만
그것이 아니라면 정말 좋은
하드웨어를 구매하신 후
여러번의 시행착오를 거쳐
네트워크를 구성하는 방법도 있다고
말씀드릴 수 있습니다.
물론 제 개인적인 의견입니다.
저는 미크로틱과는 관계 없는 사람입니다.
다만 미크로틱의 경이로운 공학자들을
존경하고 있을 뿐입니다.
2WAN이라는 표식이 드러나지 않지만
이런 모델도 있고,
https://systemzone.net/mikrotik-load-balancing-over-multiple-gateway-2-wan/
이런 구현 방법도 있지만
저는 기술적 소양이 없어서
판단을 내리기 어렵고요.
미크로틱이 꼭 아니더라도
여러 회사에 견적 넣어보시고
괜찮은 것으로 결정하셔요.
조언 감사합니다 :)
bgp 전용회선 비용이 가정인터넷 몇만원 수준이 아닙니다. 회선으로 이중화는 일찍포기하시기 바랍니다.
그냥 어디 싼 idc 알아보시는게 수월하실수도 있습니다.
PBR은 어떻겠습니까?
IDC에는 주로 랙마운트 서버를 입주시키는 것으로 알고 있습니다만, DS1618+ 같은 시놀로지 NAS로 이용할 수 있을 진 모르겠습니다.
여러 사용자가 접근한다면 PBR을 통해 로드밸런싱은 가능합니다.
스펙은.. 전 N3700에 OpenWrt올려쓰는데 1Gbps NAT는 거뜬히 나옵니다. (cpu 30% 이내)
데이터 업로드 또는 다운로드 등 여러 사용자가 서버(NAS)에 요청을 하는 경우, PBR을 통해 이러한 요청들이 서버에 연결된 여러 회선를 거칠 수 있게 하는게 말씀하신 로드 밸런싱이 될는지요?
N3700이면 4C/4T짜리 초저전력형 펜티엄 N 시리즈 제품일텐데, 그 제품으로도 1Gbps NAT가 문제 없이 나오는군요.
굳이 데스크탑이나 서버 수준 CPU까지 갈 필요는 없는 모양인가 보네요.
회선이 2개면 IP도 2개를 받게 됩니다.
도메인을 사용하실테니 DNS A레코드에 2개의 IP를 넣으면 DNS레벨에서 로드밸런싱이 되어 DNS 요청마다 IP를 다르게 가져옵니다.
이렇게 두 회선으로 들어온 패킷이 어디서 온건지를 확인해서 다시 그 회선(인터페이스)로 돌려보내는 라우팅 설정을 해야 합니다.
일반적인 2WAN설정입니다.
클라이언트 입장에서 특정 회선으로 접근하려면 특정 IP로 접근하는 방법밖에 없기 때문에 자동적으로 로드밸런싱이 되려면 dns밖엔 없습니다.
라우터에서 설정을 해야할 것으로 아는데, DNS 라운드 로빈과 상관 없이 그냥 DNS A레코드에 회선별 IP 총 2개를 등록해, VLAN으로 묶은 하위 단말들에 NAT로 쏴주게하기만 하면 되는 건가요?
말씀하신대로 사용하시는 DNS서버에서 회선별 IP 2개를 등록해 놓으시면 됩니다.
라우터에서는 단순 NAT만 하면 되는진 잘 모르겠습니다.
리눅스에서는 iptables + iproute2를 통해 인바운드패킷과 그 카넥션에 mark를 한 뒤 라우팅 테이블을 선택하는 식으로 조금 복잡합니다.
이거를 DNS 서버 없이 라우터 장비 하나로 처리가 불가능한지요?
별도로 전용 서버를 증설하면 그만큼 전력 소모와 비용이 늘어나다 보니 그리 탐탁치 않긴 합니다.
DNS서버는 필요치 않습니다.
Bit / Byte 의 구분이 맞는 것인지요..
초당 900기가 바이트를 전송하는 것이 지구상에 있나요 ??
꿈의 시스템들이며...... 실현 불가능한 시스템 기획 같습니다..
각각 300 및 900 Giga Byte 용량의 파일을 이동 및 (서버로) 다운로드하는 경우를 가정해서 적은 것입니다.
아무렴 300Gbps와 900Gbps의 속도가 현 시점에서 가능할 리가 없지요.
NIC나 회선이나 모두 1Gbps에 맞추어진 만큼, 속도는 1Gbps 한계까지만 나오겠지요.
구냥 쿨라이언트간 랜덤으로 세션 분산은 가능하나 한사람의 클라이언트가 대역폭을 나누지 못합니다. 너무 복잡하게 생각하네요. 단순하게 2wan 을 동일한 nat하위로 전달하고 외부에서 1번 wan을 붙을제 2번 wan을 붙을지는 dns 에 아이피 두개 넣으면 랜덤으로 둘다 사용합니다.
미크로틱으로 PBR거시거나
아니면 KT기가오피스같은 회선을 사용하는게 더 쉬을듯 한데요.
일일 1Gbps 할당량이 LG U+ 기가 오피스넷 쪽이 더 많기에 (회선당 500GB) 그 쪽도 고려하고 있습니다.
2WAN을 동일한 NAT 하위에 전달하도록 설정하는 것 자체를 PBR을 통해 설정하는 것인지도 여쭤보고 싶습니다.
HTTP / HTTPS 트래픽이라면 dns 2개 IP물리고, GSLB 까지 등장시키면 가중치 분배까지 깔끔하게 되겠지만, 일반 소호환경에서 GSLB 를 넣기엔 너무 오버스펙이 될거 같네요.
그렇다면 이렇게 단순히 도메인 하나에 IP주소를 2개 물리게 될 경우, 세션 단위로 랜덤 분배가 되기에 트래픽양 자체를 완전히 분배하는 것까진 힘들는지요?
완벽한 제어는 GSLB 를 등장시키지 않는 한 불가하다 보셔야 할 것으로 보입니다.
장비기반으로 GSLB 구성을 안하더라도 Route 53 등을 사용하여 GSLB 구현은 가능하지만, 언제나 "비용" 이 문제입니다.
트래픽양에 비례하게 요금을 지불해야 하기에 사용료가 어마무시하게 들 수 밖에 없다는 말씀이시군요...
그렇다면 말씀하신 하드웨어나 클라우드 서비스를 이용해 GSLB를 도입하는 것이 아니라면,
한 도메인에 회선별 IP주소를 모두 등록시킨다 하더라도 회선별로 균등한 트래픽 분배는 어렵고, 따라서 상황에 따라 일부 회선만 트래픽이 과하게 몰릴 가능성도 있다... 정도로 이해하면 옳겠습니까?
GSLB 에 요청되는 건당 비용으로 계산되기 때문에, 계산가능 합니다. (https://calculator.s3.amazonaws.com/index.html )
어느정도의 비용이 "비싸다" 로 판단하실련지 모르겠지만, 저희쪽에서 계산했었을 땐 해볼만한 비용으로 나오긴 했습니다.
(AWS 가 좀 비싸긴 했습니다)
DNS Round Robin 으로 트래픽 분산은, 가장 Best 한 경우에 1/n 이고 많은 경우 한쪽으로 쏠리는 경향이 있습니다.
(말씀하신 데로 입니다)
http://bitly.kr/MDPNL3p7
제가 GSLB의 개념을 제대로 이해하고 있는 것인지 대해서부터 확신이 없어 이 질문 자체가 성립이 될 수 있는지를 모르겠습니다만...
GSLB의 경우 L4/L7 스위치를 이용하여 구성한다 이리 나와있는 것 같습니다. 그렇다면 혹시 미크로틱 제품이나 OS 라이선스를 이용하여 구현이 가능할는지요?
기본적으로 미크로틱 제품은 모두 L7 스위치인 것으로 알고 있고, 자체 API도 지원하는 것으로 알고 있습니다만, 미크로틱 자체 제품의 경우 하드웨어 스펙이 높다고 할 수 있는지부터가 좀 걱정입니다.
https://mikrotik.com/products/group/ethernet-routers
저렴한 hEX 시리즈의 경우 880Mhz 2C/4T ARM 및 RAM 256MB에, RB3011UiAS-RM 및 RB4011iGS+RM의 경우 각각 1.4Ghz 듀얼, 쿼드코어에 램1GB 정도인 것으로 알고 있습니다.
혹시 이러한 스펙으로 안 되어 자작 라우터에 이와 같은 미크로틱 Router OS를 사용하여 GSLB 장비 겸 2WAN 라우터의 구현이 가능할 지도 궁금합니다.
http://www.mikrotik.co.kr/
가격이 장난아니겠죠? 이걸 원하시는건 아닌거같고..
회선상으로 묶는 방법을 물어보시는거 같긴합니다만..
결론적으로 접속자 입장에서 최대속도록 업/다운을 하려고하시는게 맞죠?
이게 맞다면 제가 봤을때는 장비만가지고는 해결이 어렵고 서버프로그램(웹프로그램)으로 해결해야하지 않을까합니다.
A회선에서 업다운 합이 150GB 이면 B회선으로 넘기고 B회선도 150GB에 도달하면 C회선으로 넘기는거죠..
이렇게하면 물리적인 회선이 들어오는대로 확장이 가능하지 않을까싶습니다.
외부사용자가 웹방식으로 접속하는거라면 이 방법이 어떠실런지요..(그외 접속방법은... ^^;; 모 DDNS를 쓸 수도있겠습니다만..)
일단, 접속 프로그램(웹프로그램)에서 데이터 업다운을 위한 외부IP를 접속자에게 던져주기만하면됩니다.
IP던 도메인이던..(con1.yourDomain.com,con2.yourDomain.com,con3.yourDomain.com)
DNS 라운로빈은... 이 목적에서는 사용불가라고 보시는게 좋을 듯합니다.
기본적인 회선별(외부 IP)로 1일 누적 업다운 합계를 내는 프로그램이 필요하겠네요..
이 합계는 HTTP의 로그에서 합을 뽑아내거나 장비의 통계를 이용하는 방법니다.
Mikrotik의 경우 API를 이용하면 포트별 누적합계를 가져올 수 있습니다.()
간단하게 웹서버 구축하셔서 사용하실 수 있지않을까 싶습니다. ^^
(인증절차는 제외하고..)
"접속자 입장에서 최대 속도로 업/다운을 한다"는 말씀이 2개 회선을 묶어 두 배의 속도를 내게 하려는 것인지, 아니면 트래픽이 두 회선에 고르게 분배되게 하는 걸 말씀하시는 것인지... 어느 쪽인지는 잘 모르겠습니다만, 후자를 말씀하신다면 제가 의도한 바가 맞습니다.
"A회선에서 업다운 합이 150GB 이면 B회선으로 넘기고 B회선도 150GB에 도달하면 C회선으로 넘기는거죠..
이렇게하면 물리적인 회선이 들어오는대로 확장이 가능하지 않을까싶습니다."
http://www.2cpu.co.kr/QnA/745666#c_745668
http://www.2cpu.co.kr/network/8262
이것이 제가 처음에 의도한 방법이긴 합니다만, 위 링크들과 같이 다들 트래픽을 고르게 사용하는 방식을 추천해주셔서 당장은 그러한 방식에 좀 더 무게를 두고 있었습니다.
사용하는 서버가 시놀로지 NAS 입니다만, 시놀로지 NAS에서 그와 같이 트래픽 사용량에 따라 회선을 전환시키는 설정이 가능할는지요?
예전부터 찾아보고는 있었으나, 시놀로지 NAS 쪽에선 찾지 못하여 라우터 등 장비 단에서 해결해야 할 문제로 생각하고 있었습니다.
말씀해주신 내용 중 마지막 문단을 제가 잘 이해를 못하여서 그렇습니다만...
요컨대 미크로틱 라우터에서 API를 이용해, 라우터 단에서 회선별 트래픽 사용량에 따라 사용회선을 전환시키는 것을 말씀하시는 것인지요?
아니면 시놀로지 NAS 내에서 웹서버를 별도로 구축해, 어떠한 설정을 해야하는 경우를 말씀하신 건지요?
접속 요청자에게 접속할 회선으로 redirect : con1.yourDomain.com, con2.yourDomain.com, con3.yourDomain.com ....
2. 접속 회선 결정은 회선별 누적 송수신트래픽을 참고하여 선택
(현재 회선 포트의 트래픽도 참고해서 유휴 회선을 접속자에게 던져주면 더 좋겠네요..)
3. 요 접속 페이지를 시놀에 간단하게 Web Station에 올리면 되지 않을까한겁니다.
4. File Station을 업/다운용으로 사용하면 가능한 해결방법이 아닐까합니다.
5. 어차피 최종 목적지 NAS는 동일하니까 별도의 세팅은 필요하지않고요..
6. 누적트래픽, 현재트래픽 모니터링은 Mikrotik 이 제공하는 API(PHP 등..)를 사용하면 편할 것 같아서 언급했습니다.(다른건 잘~ 몰라요.. ^^;;)
** 다음회선.. 다음회선.. 넘기는거는 동시접속자가 있으면 속도가 떨어질 수 있으니 1차로 라운드로빈(RR)으로 회선 분배를 하고, 2차로 트랙제한이 걸리면 누적트래픽 기준으로 여유있는 회선으로 분배하면 좀더 효율적이지 않을까싶습니다. ^^;;
일단 많은 분들이 미크로틱을 권해주시는 것도 있고, 실제로 NTH 등 미르로틱에서 구현 가능한 방법이 이와 유사한 것 같아, 문외한이긴 하지만 미크로틱 API를 이용하는 방향으로 나아가야 겠습니다. 조언 감사합니다.
이것만 이용해도 가능 할 수도 있습니다. 제가 해보질않아서 확답은 못드리지만..
거의 모든 기능을 script로 손댈 수 있습니다.
예를 들면.. 회선별 누적통계를 웹서버에서 API를 이용해 가져오는 방법도 있지만 미크로틱에서 웹서버의 DB로 밀어 넣는 것도 가능합니다.