thảo luận Setup Home network mình đang có

SoulEvilX

Senior Member
Context

Thật ra bài này mình đã có share trước đây bên TT. Nhưng giờ buồn buồn qua đây viết bài mới ( dĩ nhiên là đã upgraded thêm devices ).
1 phần là để tự mình list những thứ mình đang có, cần nên có. Cũng như tiếp nhận các thảo luận nên upgrade thêm gì để hoàn thiện.

Devices
- 1 con server Xeon E5 Dual 2680v4: 256GB RAM & 1TB x2 SSD & ~ 10TB x 6 HDDs ( 192.168.1.10 )
Mục đích con này lúc mua về để làm server chính. Vì có 1 vài database ~ 100-200GB, nên mấy con server 64GB RAM có vẻ không ổn. Với cũng không phủ nhận là muốn trải nghiệm server dual Xeon nó ra sao . Vui thôi.
Em nó sử dụng Ubuntu 20.04 Desktop và chứa vài chục em VirtualBox bên trong. Lý do không xài ESXi vì ... ! Bản chất 10TB x 6 HDDs kia là chứa JAV. Và mình muốn coi trực tiếp : Coi qua LAN ít nhiều bị chậm ( dù có / không có cảm nhận ). Mà JAV có ai coi kiểu hết film đâu :v toàn jump :D.
Cũng đã thử ESXi nhưng cứ bị stuck vài thứ, không thật sự quá ưng ý.
Em nó cũng có 1 con card Intel 520 hay 540 gì đó 2 SFP+. Bản thân mainboard thì có 2 RJ45 1GB. Nhưng sau khi có SFP+ thì vô nghĩa.
- 1 con X300 5700G - 64GB RAM & 1TB x 2 SSD ( 192.168.1.11 )
Em này hiện tại đang dùng cài Windows ... chỉ để nghịch Windows. Chứ cũng chưa biết xài gì.
- 1 con Prodesk 32GB RAM / 256 hay 512GB SSD gì đó. ( 192.168.1.4 ). Em này là "gatekeeper". Mọi traffic từ Internet vào server sẽ đi qua em nó. Ubuntu 20.04 server .
Em nó dùng HAProxy để forward 80/443 về các VM.
Cũng như em nó cũng setup Grafana / Prometheus / Loki để các máy VM / physical đổ data về
Syslog-ng để nhận data từ router / hoặc các thiết bị khác đổ về
- 1 em router 3910 Draytek : Em này nhận 4 WANs ( 1 IP tĩnh Viettel / 1 IP động Viettel / 1 IP động VNPT / 1 IP động FPT )
Mình đang cân nhắc mua thêm CCR2116-12G-4S+ thay thế. Tuy nhiên Mikrotik là cái gì đó quá tầm kiến thức :(
  • 1 em Core switch : cnMatrix Switch EX2028-P
  • 1 em Asus AX86U . Em này làm "Access Point" chính. Và chỉ 1 mình mình xài. Nằm trên VLAN0
  • 4 con Deco E4R & 3 con Deco S7 làm Mesh cho nhà. Và cái này thì đúng nghĩa là dành cho nhà. Nằm trên VLAN1

Operate
Như nói trên
- Prodesk sẽ nhận 2 port 80/443 để từ đó HAProxy sẽ forward qua các máy khác. Khúc này mình tận dụng Cloudflare để làm SSL. Nên phía dưới k cần SSL nữa.
Khúc này có 1 điều đang suy nghĩ nhưng chưa làm ( vì chưa biết đủ, và suy nghĩ nên không ) : SSH. Hiện tại mỗi máy có thể SSH sẽ map 1 port theo nguyên tắc xx22. Ví dụ máy 192.168.10 thì port SSH sẽ là 1022. Tuy nhiên đang suy nghĩ tận dụng HAProxy để SSH qua domain. Ví dụ abc.domain.com thì sẽ SSH về máy abc phía sau.
Ah em nó cũng có chạy PiHole. Router trỏ DNS về 192.168.1.4 . Nhưng cái này nó sao sao ah. Nó k work as epxected
- Em server hiện tại chỉ dùng cho : Chạy n con github runners / 5 con cho project riêng. v..v.
Và torrent :) . Plex cũng nằm trên đây.
Tuy nhiên mình chưa nghĩ ra cách nào có 100% monitor mọi thứ trên server: Bandwidth / Storage v..v. Thật ra nói đúng hơn là có thể dùng Grafana nhưng tự tâm cảm giác nó ... thiếu thiếu gì ah. Mà chưa thật sự hình dung ra ... thiếu gì :censored:
Các máy VM trong server này sẽ được schedule backup về 1 HDD độc lập TRONG máy, và 1 HDD gắn ngoài.
Tuy nhiên database thì chưa setup replicate. ( Nhiều database lắt nhắt quá nên cũng ... rối không biết làm sao để hoàn hảo )
  • Em X300 chắc chỉ để nghịch Windows xài xí. Ah ah quên ! Còn để cài MS SQL . Uh ha ! Quên !
  • Router Draytek 3910 thật ra ... thiếu quá nhiều thứ so với mong đợi. Nhưng được cái ... dễ xài.
  • Chưa thể webhook để báo Slack / Telegram khi có bất kì thiết bị nào được cấp DHCP ( Đồng nghĩa vừa vào LAN )
  • Chưa thể webhook để báo khi 1 WAN down / IP changed
  • Mình có setup 5 con VM . 4 con routing vào từng WAN; 1 con thì cho LB. Mục đích chu kì 30m / 60m sẽ chạy Speedtest CLI. Store vào DB. Để biết tình trạng mang xuyên suốt thời gian. Và cũng báo khi WAN nào đó chậm dưới ngưỡng. Tuy nhiên vẫn cảm giác nó k quá smooth.
  • Vẫn chưa thể monitor chính xác bandwidth / throughput TỪNG devices sau router. Lý do: Nếu thấy, hoặc được alert máy nào đó đang xài BW / TP cao thì cân nhắc set limit bandwidth lại. Hoặc tương tự monitor việc các máy vào web nào. Nếu vào những thứ mình không mong muốn thì block hoặc show notice message.
- Em cnMatrix mới được thêm vào ... Và chính xác !!! KHÔNG ĐÚNG
  • Em nó không có port RJ45 2.5. Mà con Asus AX86U đang xài port này. Do đó Asus AX86U phải cắm vào router thay vì Switch ! Sai logic !
  • Chưa setup được DHCP trên em nó :(( Nên DHCP vẫn để chạy trên Router. Sai quá sai :(
  • Cảm giác chưa thật sự tận dụng hết em nó :(

Cơ bản là vậy. Nhất thời chưa nghĩ ra thêm được gì.
Bài viết này mong bà con góp ý ( chi tiết càng tốt :D ) nên optimize thế nào hơn. Tận dụng các thiết bị làm thêm gì để chúng nó chạy hết sức.

Update 1
Ah mình đang cân nhắc thêm ít nhất 1 con mini PC ( hoặc Pi 4 8GB ) để làm private DNS. Vừa để filter ads luôn.
Với 1 con nữa để chạy thuần "Backup" server. Mọi backup đổ về đây ( tách nhiệm vụ này ra khỏi server ).

Thanks :)
 
Last edited:
Ah mình đang cân nhắc thêm ít nhất 1 con mini PC ( hoặc Pi 4 8GB ) để làm private DNS. Vừa để filter ads luôn.
Với 1 con nữa để chạy thuần "Backup" server. Mọi backup đổ về đây ( tách nhiệm vụ này ra khỏi server ).
Pihole thì chạy trên docker là ổn và nhẹ nhất, cứ lập 1 VM Linux rồi host docker lên thôi.
Thuần backup thì nên là 1 NAS, đang dùng hàng real synology có cái active backup không cần phí license mà thấy chạy cũng khá là ngon
 
  • Chỗ ssh có thể nghiên cứu jump-host, chỉ forward 1 port ssh trên 1 con vm ra internet, trên con này cố tạo firewall rule (hoặc có thể tạo firewall rule trên con gatekeeper của bạn để chỉ để permit traffic ssh từ con jumphost này ra toàn mạng của bạn). Khi đó bạn chỉ cần hardening con vm đấy thôi. SSH nên chỉ dùng key, ko dùng acc/pass.
  • Chỗ VPN để quản trị có thể tham khảo 1 số giải pháp như netmaker, zerotier, tailscale. Nó sẽ tạo mạng lan ảo, có mã hoá. Thích truyền thống thì wireguard/openvpn.
  • Pi-hole nên chạy dự phòng (2 docker trên 2 máy chẳng hạn), sync cấu hình = gravity-sync. Chưa chạy có thể vì dns của client ko nhận từ dhcp mà set tĩnh, cái này thì tự set lại thôi.
  • Những cái liên quan đến phần edge/internet nên tác riêng box cứng (router, cân bằng tải, dns có thể cân nhắc).
  • 1. Chưa thể webhook để báo Slack / Telegram khi có bất kì thiết bị nào được cấp DHCP ( Đồng nghĩa vừa vào LAN )
  • 2. Chưa thể webhook để báo khi 1 WAN down / IP changed
  • 3. Mình có setup 5 con VM . 4 con routing vào từng WAN; 1 con thì cho LB. Mục đích chu kì 30m / 60m sẽ chạy Speedtest CLI. Store vào DB. Để biết tình trạng mang xuyên suốt thời gian. Và cũng báo khi WAN nào đó chậm dưới ngưỡng. Tuy nhiên vẫn cảm giác nó k quá smooth.
  • 4. Vẫn chưa thể monitor chính xác bandwidth / throughput TỪNG devices sau router. Lý do: Nếu thấy, hoặc được alert máy nào đó đang xài BW / TP cao thì cân nhắc set limit bandwidth lại. Hoặc tương tự monitor việc các máy vào web nào. Nếu vào những thứ mình không mong muốn thì block hoặc show notice message.
nếu router là openwrt/routeros (mikrotik)/opnsense/pfsense (hỗ trợ luôn cái 4) thì hỗ trợ policy-based routing hay source base routing, kết hợp với dùng docker network trên client thì có thể 1 container đi ra 1 mạng khác nhau (mỗi container 1 ip public), khi đó bạn tha hồ monitor mà ko cần đến mức tạo vm. container có thể là uptime-kuma hay speedtest tracker.
Nếu bạn giàu có thể mua con firewall fortigate cũng đc, chắc cỡ chục tr.
 
  • Chỗ ssh có thể nghiên cứu jump-host, chỉ forward 1 port ssh trên 1 con vm ra internet, trên con này cố tạo firewall rule (hoặc có thể tạo firewall rule trên con gatekeeper của bạn để chỉ để permit traffic ssh từ con jumphost này ra toàn mạng của bạn). Khi đó bạn chỉ cần hardening con vm đấy thôi. SSH nên chỉ dùng key, ko dùng acc/pass.
  • Chỗ VPN để quản trị có thể tham khảo 1 số giải pháp như netmaker, zerotier, tailscale. Nó sẽ tạo mạng lan ảo, có mã hoá. Thích truyền thống thì wireguard/openvpn.
  • Pi-hole nên chạy dự phòng (2 docker trên 2 máy chẳng hạn), sync cấu hình = gravity-sync. Chưa chạy có thể vì dns của client ko nhận từ dhcp mà set tĩnh, cái này thì tự set lại thôi.
  • Những cái liên quan đến phần edge/internet nên tác riêng box cứng (router, cân bằng tải, dns có thể cân nhắc).

nếu router là openwrt/routeros (mikrotik)/opnsense/pfsense (hỗ trợ luôn cái 4) thì hỗ trợ policy-based routing hay source base routing, kết hợp với dùng docker network trên client thì có thể 1 container đi ra 1 mạng khác nhau (mỗi container 1 ip public), khi đó bạn tha hồ monitor mà ko cần đến mức tạo vm. container có thể là uptime-kuma hay speedtest tracker.
Nếu bạn giàu có thể mua con firewall fortigate cũng đc, chắc cỡ chục tr.
Mình làm trai bao nghèo lắm :(
 
Pihole thì chạy trên docker là ổn và nhẹ nhất, cứ lập 1 VM Linux rồi host docker lên thôi.
Thuần backup thì nên là 1 NAS, đang dùng hàng real synology có cái active backup không cần phí license mà thấy chạy cũng khá là ngon
PiHole mình có thể cho ra hẳn 1 con mini PC hoặc 1 con Pi 4 8GB.
Nhưng vấn đề là cảm giác nó không hiệu quả. Thậm chí ... không work luôn ?
- Router thì set LAN DNS = 192.168.1.4 ( máy chứa PiHole )
Khúc này thì không hiểu. Vậy mọi request ở các máy sau router nó sẽ gọi DNS từ router hay từ mỗi máy. Vì check log PiHole chỉ có request từ 192.168.1.1 là router thôi. Còn các máy khác không có ?
 
  • Chỗ ssh có thể nghiên cứu jump-host, chỉ forward 1 port ssh trên 1 con vm ra internet, trên con này cố tạo firewall rule (hoặc có thể tạo firewall rule trên con gatekeeper của bạn để chỉ để permit traffic ssh từ con jumphost này ra toàn mạng của bạn). Khi đó bạn chỉ cần hardening con vm đấy thôi. SSH nên chỉ dùng key, ko dùng acc/pass.
  • Mình đang dùng key k xài pass.
  • Chưa hiểu ý lắm khúc này về vụ jump-host.
Thật ra nếu
Internet -> SSH -> 192.168.1.10 -> rồi từ đây SSH tới các máy khác trong LAN. OK. So easy.
Nhưng ... mất công. Mình muốn SSH từ Internet vào luôn từng máy trong LAN ah.
 
  • Mình đang dùng key k xài pass.
  • Chưa hiểu ý lắm khúc này về vụ jump-host.
Thật ra nếu
Internet -> SSH -> 192.168.1.10 -> rồi từ đây SSH tới các máy khác trong LAN. OK. So easy.
Nhưng ... mất công. Mình muốn SSH từ Internet vào luôn từng máy trong LAN ah.
Ah vừa google. Oki đã hiểu. Thanks bạn
 
PiHole mình có thể cho ra hẳn 1 con mini PC hoặc 1 con Pi 4 8GB.
Nhưng vấn đề là cảm giác nó không hiệu quả. Thậm chí ... không work luôn ?
- Router thì set LAN DNS = 192.168.1.4 ( máy chứa PiHole )
Khúc này thì không hiểu. Vậy mọi request ở các máy sau router nó sẽ gọi DNS từ router hay từ mỗi máy. Vì check log PiHole chỉ có request từ 192.168.1.1 là router thôi. Còn các máy khác không có ?
bản tin dns nó sẽ từ các máy client -> router -> dns server, nên thằng dns server nó sẽ chỉ thấy có request từ thằng router thôi. nếu thím set thẳng dns ip .1.4 trên mỗi client thì nó sẽ phi thẳng đến con dns server chứ ko qua thằng router nữa.
Nhưng phải chú ý con router mà nó force dns về nó (kiểu bắt tất cả bản tin dns forward qua router đi vòng lại về chính con router) thì con dns server nó cũng chỉ nhìn thấy mỗi con router thôi.
 
bản tin dns nó sẽ từ các máy client -> router -> dns server, nên thằng dns server nó sẽ chỉ thấy có request từ thằng router thôi. nếu thím set thẳng dns ip .1.4 trên mỗi client thì nó sẽ phi thẳng đến con dns server chứ ko qua thằng router nữa.
Nhưng phải chú ý con router mà nó force dns về nó (kiểu bắt tất cả bản tin dns forward qua router đi vòng lại về chính con router) thì con dns server nó cũng chỉ nhìn thấy mỗi con router thôi.
Cho e hỏi xíu. Nếu con Router 3910 mà set Application - DNS Forwarding thì ... con Pi báo error ngay.
Đại khái là báo request quá nhiều / 60s ah.
Tăng từ hình như 1.000 lên 10.000 cũng không đủ.

Nên chỉ set DNS trong LAN config của 3910 thôi.

Vậy là sao ta
 
Có vẻ okay hơn. Nhưng vẫn thấy k hiệu quả mấy
Screenshot 2023-03-23 at 4.02.56 PM.png
 
bản tin dns nó sẽ từ các máy client -> router -> dns server, nên thằng dns server nó sẽ chỉ thấy có request từ thằng router thôi. nếu thím set thẳng dns ip .1.4 trên mỗi client thì nó sẽ phi thẳng đến con dns server chứ ko qua thằng router nữa.
Nhưng phải chú ý con router mà nó force dns về nó (kiểu bắt tất cả bản tin dns forward qua router đi vòng lại về chính con router) thì con dns server nó cũng chỉ nhìn thấy mỗi con router thôi.
Nếu như cách
Client -> router -> DNS Server
Và DNS Server chỉ thấy request từ Router. Vậy
- Mình không "monitor" được users. Kiểu như biết user đang có request DNS nào từ đó biết họ đang vô web nào ?
 
Cho e hỏi xíu. Nếu con Router 3910 mà set Application - DNS Forwarding thì ... con Pi báo error ngay.
Đại khái là báo request quá nhiều / 60s ah.
Tăng từ hình như 1.000 lên 10.000 cũng không đủ.

Nên chỉ set DNS trong LAN config của 3910 thôi.

Vậy là sao ta
Khéo thím bị infinite loop rồi. Trên mik thím phải bỏ cho phép bản tin dns từ con dns server đi ra internet.
 
Khéo thím bị infinite loop rồi. Trên mik thím phải bỏ cho phép bản tin dns từ con dns server đi ra internet.
Mình xài Draytek 3910 . Cách này thì work. K bị gì
Screenshot 2023-03-23 at 4.12.30 PM.png

Screenshot 2023-03-23 at 4.13.11 PM.png

Nhưng cách này mà bật lên ( Profile Cloudflare ( chỉ là cái name thôi k liên quan CF ) ) thì bị error như nói trên
 
AdG vs PiHole cho mình xin chút đánh giá cái nào ngon hơn?
Có nên xài cả 2 hem ta ?
Với người dùng bthg như nhau cả, vì nếu bộ lọc giống nhau thì cả 2 chả khác gì nhau.
1 số cái nổi bật:
  • Adg hỗ trợ tốt hơn mấy cái encrypt DNS (DOT, DNS over HTTPS, ..)
  • Adg ship sẵn với bộ lọc mặc định theo kiểu porn, phising, phù hợp với mì ăn liền.
  • pihole có vẻ cộng đồng nhiều hơn.
 
Nếu như cách
Client -> router -> DNS Server
Và DNS Server chỉ thấy request từ Router. Vậy
- Mình không "monitor" được users. Kiểu như biết user đang có request DNS nào từ đó biết họ đang vô web nào ?
E cài adguard home chỉ để lọc quảng cáo thôi nên ko để ý vụ này
Mình xài Draytek 3910 . Cách này thì work. K bị gìView attachment 1735212
View attachment 1735216
Nhưng cách này mà bật lên ( Profile Cloudflare ( chỉ là cái name thôi k liên quan CF ) ) thì bị error như nói trên
em ko dùng con draytek bao giờ nên ko rõ thím ạ. mới kiếm đc con mik vọc đc mấy hôm thôi.
 
mình xài adguardhome mà cũng thấy hiệu suất cũng thấp. xài 3 bộ lọc abpvn,fms2, bigdragon
View attachment 1735226
thím vào mấy trang mà ko có quảng cáo, vào thử mấy trang test adblock xem. quan trọng là ko còn quảng cáo nữa là đc thím ạ. con số nó chỉ là thống kê thôi à. Em dùng cái list oisd full với small thấy ko khác nhau lắm mà chênh nhau những mấy trăm k url.
 
Nếu như cách
Client -> router -> DNS Server
Và DNS Server chỉ thấy request từ Router. Vậy
- Mình không "monitor" được users. Kiểu như biết user đang có request DNS nào từ đó biết họ đang vô web nào ?
mà ở nhà thím làm món gì mà đầu tư toàn hàng khủng vậy? homelab của e có mỗi mấy con pi3 pi4 để vọc vạch linh tinh thôi.
 
Back
Top