thảo luận Hội anh em server mini/PC/Homelab chia sẻ kinh nghiệm và thảo luận

Đúng rồi bác, mình không có route gì hết. Modem kéo 2 dây vào proxmox, 2 cổng gộp thành bond. Con proxmox chỉ đơn giản là 1 trong những device của lan tổng modem. Trong proxmox thì sẽ có 1 mạng riêng, dải riêng cho các máy ảo. Câu hỏi trên chủ yếu vì proxmox không có builtin sẵn samba, dhcp server, nên việc tạo mạng riêng cần nhờ 1 con trung gian về s dụ 1 máy ảo pfsense hoặc openwrt này nọ, thêm 1 con máy ảo nào đó hoặc lxc share samba. Có điều nếu chỉ vậy thì còn vướng samba share đấy nó chỉ nằm trong mạng máy ảo, mạng tổng bên ngoài không truy cập đc. Giải quyết vấn đề theo cách đơn giản thì nó đúng là đơn giản, cài thêm samba và dhcp server vào con proxmox là xong. Có điều con proxmox sinh ra chuyên biệt riêng cho quản lí máy ảo, nên bản thân nó mới không tích hợp sẵn, cài thêm vào liệu có nên hay không nên ? Vvv… Tuy nhiên, không có giải pháp khác thì hiện tại mình đang giải quyết vấn đề như vậy. Thêm samba vào proxmox share trên proxmox thì ngoài truy cập đc, và dhcp server cho proxmox cấp phát dải mạng riêng cho máy ảo, giảm đi đc con máy ảo route

via theNEXTvoz for iPhone

Để khi rảnh tôi vọc xem sao, thiết bị chuyên dụng thì quá dễ dàng, tôi đang suy nghĩ là ví dụ ở các client 1.x bạn cộng thêm một route 2.x và trỏ nó về proxmox interface_1.x khi đó ta sẽ có route trên client 1.x là

1.x về modem
0/0 về modem (default)
Và 2.x về con proxmox_1.x_interface

Khi đó chúng ta chỉ cần thằng proxmox biết cách route thôi vì nó coi như là con bridge giữa hai dãi 1.x 2.x

Cách add route thì khá đơn giản cả windows và linux, tôi chưa thử chia mạng như bác nhưng nếu làm thì tôi sẽ thử như thế, đó giờ chưa chạy linux làm gw nên ko biết có phải làm gì thêm ko

setup của tôi khá giống bác nhưng tôi ko có nhu cầu hai lớp mạng nói với nhau và gw của tôi nằm trên hai con routers khác nhau, look up routes thì có như sau

  1. 0.0.0.0 là default chỉ về gw của modem qua interface vmbr0
  2. 192.168.1.0 là dãi 1.x qua cùng interface vmbr0, thường thì mỗi máy với một lớp mạng sẽ có hai routes như vậy
  3. và cuối cùng tôi có dãi 10.0.0.0 (vpn) qua interface vmbr1

root@pxv:~# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.1.254 0.0.0.0 UG 0 0 0 vmbr0
10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 vmbr1

192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 vmbr0

trong trường hợp của bác nếu client 1.x là linux thì có thể add route tạm như sau (ko cần add thêm route trên con proxmox), và nếu client dãi 2.x ko ping đc 1.x thì cũng làm tương tự nhưng ngược lại

ip route add 192.168.2.0/24 via 192.168.1.(ip của con proxmox)

Nếu là windows thì hình như nó nằm trong phần properties của ipv4 thì phải bác search cái là ra, add static route windows hay gì đó

nếu bạn add rồi và route -n nhìn ok nhưng ko chạy có nghĩa là proxmox nó ko chịu route, lúc đó tính tiếp, (để chút tối tối add static route trên con torrent của tôi coi sao, ba cái nầy tôi vọc đc nhưng ở nhà thì vả lắm mới chơi giải pháp toàn diện)
 
Last edited:
Đúng rồi bác, mình không có route gì hết. Modem kéo 2 dây vào proxmox, 2 cổng gộp thành bond. Con proxmox chỉ đơn giản là 1 trong những device của lan tổng modem. Trong proxmox thì sẽ có 1 mạng riêng, dải riêng cho các máy ảo. Câu hỏi trên chủ yếu vì proxmox không có builtin sẵn samba, dhcp server, nên việc tạo mạng riêng cần nhờ 1 con trung gian về s dụ 1 máy ảo pfsense hoặc openwrt này nọ, thêm 1 con máy ảo nào đó hoặc lxc share samba. Có điều nếu chỉ vậy thì còn vướng samba share đấy nó chỉ nằm trong mạng máy ảo, mạng tổng bên ngoài không truy cập đc. Giải quyết vấn đề theo cách đơn giản thì nó đúng là đơn giản, cài thêm samba và dhcp server vào con proxmox là xong. Có điều con proxmox sinh ra chuyên biệt riêng cho quản lí máy ảo, nên bản thân nó mới không tích hợp sẵn, cài thêm vào liệu có nên hay không nên ? Vvv… Tuy nhiên, không có giải pháp khác thì hiện tại mình đang giải quyết vấn đề như vậy. Thêm samba vào proxmox share trên proxmox thì ngoài truy cập đc, và dhcp server cho proxmox cấp phát dải mạng riêng cho máy ảo, giảm đi đc con máy ảo route

via theNEXTvoz for iPhone

//TLDR; Tôi thử ở nhà chạy rồi, bác chỉ cần add hai cái static routes trên client của hai dãi mạng là chạy, bác tự google là ra, còn muốn xem tôi thích khoe khoang kiến thức và làm sau để nó chạy ở nhà của tôi thì tiếp tục bên dưới

Nay rảnh chạy thử ở nhà với setup gần giống như bác nè, khác biết duy nhất là bác chạy GW của dãi mạng thứ hai trên proxmox 192.168.2.x và tôi thì chạy GW dãi thứ hai (10.0.0.0) trên router (mạng nầy dùng khi cần xài internet qua vpn)

1672970039196.png


Như tôi post ở trên, bác bị vấn đề là hai dãi mạng ko thấy đc nhau hoàn toàn lúc đực lúc cái, và dãi thứ hai 2.x ko sử dụng đc tài nguyên trên dãi thứ nhất 1.x. Đây là lỗi routing cơ bản nếu bác biết routing cơ bản thì sẽ rất dễ hiểu.

Nguyên tắc đơn giản nhất của routing thì gọi là default gw và gw, ví dụ ở dãi 1.x tất của các client nó đều biết muốn đi 1.x thì sẽ gởi tính hiệu về con router để con router cho biết cổng con client nó muốn đi đến là cổng nào thông qua ARP, sau khi biết là cổng nào thì hai con tự chơi với nhau.

còn khi 1.x muốn đi internet thì sau? tức nghĩa là tất cả các ip khác nằm ngoài 1.x? đó là khi nó phải sử dụng default gw/route, khi nó muốn đi bất cứ nơi nào khác ngoài 1.x thì nó sẽ chuyển về GW của con 1.x nằm trên router, ví dụ người ta thường lấy ip đầu tiên hoặc cuối cùng trong một dãi mạng để là GW, ở đây có thể bác xài 192.168.1.1, còn tôi thì thích chơi 192.168.1.254, khi nó chuyển yêu cầu về default gw, thì con router vì bản thân nó có nó có kết nối với internet do đó nó sẽ chuyển yêu cầu của bạn tới ISP và ISP sẽ làm đều tương tự cho đến khi nó tìm ra địa chỉ mà bạn muốn đến, đó là cơ bản của routing và traceroute, dùng routing and default routing để tìm các cổng bạn phải đi qua để đi đến địa điểm yêu cầu đến.

Cho nên trường hợp của bạn hai dãi ko kết nối đc là do các con clients ở hai dãi đó nó ko biết địa điểm bạn muốn đến là nằm ở đâu nó ko có routing cho các địa chỉ đó, nó chỉ có 1.x hay 2.x và default chứ ko có hết hai dãi 1.x và 2.x nên nó ko chuyển yêu cầu của bạn đc và chết. Trong sơ đồ mạng của bạn và tôi thì chỉ có một con có/biết hết hai dãi đó là proxmox, nên ta sẽ lấy proxmox làm bridge hay làm GW để đi qua đi lại giữa hai mạng.

Và giải pháp là bạn phải vô từng con client ở hai dãi và chỉ đường cho nó đi, nói chính xác theo mạng là add static route để chỉ đường cho clients biết GW mà chuyển yêu cầu tới.

Nếu bác coi sơ đồ mạng của tôi thì thấy là con torrent vm chỉ có một mạng là 10.0.0.7 và con NAS cũng chỉ có một mạng là 192.168.1.110, tôi cần con torrent vm mount SMB trên NAS để tải phim, thì tôi cần phải add hai cái static route trên torrent vm và NAS để hai đứa nó biết cách tìm về với nhau, NAS tôi là synology, torrent thì chạy debian

Trên NAS thì tôi sẽ cộng route qua GUI như bên dưới, dĩ nhiên nếu bạn ko xài NAS như tôi thì bạn phải tự google làm sau để add route trên con NAS của bạn, nhưng của tôi thì như dưới, sẽ giải thích sau tại sao thông số lại như vậy

1672971142614.png

Và trên con torrent vm của tôi thì tôi sẽ add qua GUI luôn, vì nó dễ và nó ko bị mất nếu reboot (ở reply trước tôi có đề cập lệnh ip route add nhưng cách nầy mỗi khi bạn reboot thì nó sẽ mất, ban phải tìm hiểu cách làm sao để persist cái static trên mỗi OS khác nhau, tôi ko thể chỉ cho bạn đc, google một phát là ra)

1672971325518.png


Okay và sau đây là giải thích từng thông số của hai cái static route trên hai con NAS và torrent vm

NAS:
  • 10.0.0.7 là ip của con torrent vm tức là khi NAS muốn đi tới torrent IP.
  • 255.255.255.255 là phạm vi của dãi 10.0.0.0/24 mà tôi muốn cái route nầy đc cho phép sử dụng, ở đây tôi chỉ mở route cho một IP là 10.0.0.7 nên xài mask 255.255.255.255 nếu bác muốn mở nguyên dãi thì xài 255.255.255.0.
  • 192.168.1.66 là IP của con proxmox interface thứ nhất, ở đây chúng ta chỉ dẫn con NAS muốn đi tới torrent thì chuyền cái yêu cầu đó về cho con proxmox, vì con proxmox nó biết 10.0.0.7 nằm ở đâu (theo sơ đồ thì bạn thấy đó con proxmox của tôi có kết nối với hai dãi mạng nên nó sẽ biết thằng torrent nằm ở đâu). và tại sao là proxmox 192.168.1.66? vì con NAS có nằm trên dãi 1.x nên chúng ta phải sử dụng 1.x cho NAS
  • cái interface thì có nghĩa là route nầy sẽ đc áp dụng cho bond0 trên NAS, cái nầy thì tùy mỗi NAS mỗi OS nó sẽ khác nhau.
TorrentVM (ko khác gì trên chỉ ngược lại thôi)
  • 192.168.1.110 là ip của con NAS tức là khi torrent muốn đi tới NAS
  • 255.255.255.255 là phạm vi của dãi 192.168.1.110 mà tôi muốn cái route nầy đc cho phép sử dụng, ở đây tôi chỉ mở route cho một IP là 192.168.1.110 nên xài mask 255.255.255.255 nếu bác muốn mở nguyên dãi thì xài 255.255.255.0.
  • 10.0.0.2 là IP của con proxmox interface thứ hai, ở đây chúng ta chỉ dẫn con torrent muốn đi tới NAS thì chuyền cái yêu cầu đó về cho con proxmox, vì con proxmox nó biết 192.168.1.110 nằm ở đâu (theo sơ đồ thì bạn thấy đó con proxmox của tôi có kết nối với hai dãi mạng nên nó sẽ biết thằng NAS nằm ở đâu). tại sao là proxmox 10.0.0.2? vì còn torent nó nằm trên 10.0.0.x nên chúng ta phải xài 10.0.0.x cho torrent.
  • metric thì bạn cũng ko cần thiết tùy theo config của từng OS mà có khi nó cần khi nó ko, nếu bạn ko biết thì bỏ đại con số 0 hay 1 cũng đc, thương thì 0 cho chắc ăn.

okay và cuối cùng là cách để check đúng ko? dễ nhất là bạn dùng lệnh coi routing table, trên linux thì là route -n hay là ip route show table all

NAS
netadmin@zstorage:~$ ip route show table all
10.0.0.7 via 192.168.1.66 dev bond0 table static-table
192.168.1.0/24 via 192.168.1.110 dev bond0 table bond0-table
default via 192.168.1.254 dev bond0 src 192.168.1.110
Torrent
root@torrent:~# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.0.0.1 0.0.0.0 UG 100 0 0 ens18
10.0.0.0 0.0.0.0 255.255.255.0 U 100 0 0 ens18
192.168.1.110 10.0.0.2 255.255.255.255 UGH 100 0 0 ens18

traceroute để coi các hop nhảy đúng như tưởng tượng ko, tức là khi hai dãi nói chuyện với nhau con proxmox sẽ là nơi trung chuyển

netadmin@zstorage:~$ traceroute 10.0.0.7
traceroute to 10.0.0.7 (10.0.0.7), 30 hops max, 60 byte packets
1 pxv.zc (192.168.1.66) 0.166 ms 0.133 ms 0.117 ms
2 torrent.zc (10.0.0.7) 0.215 ms 0.200 ms 0.186 ms

root@torrent:~# traceroute 192.168.1.110
traceroute to 192.168.1.110 (192.168.1.110), 30 hops max, 60 byte packets
1 10.0.0.2 (10.0.0.2) 0.136 ms 0.071 ms 0.051 ms
2 192.168.1.110 (192.168.1.110) 0.370 ms 0.350 ms 0.335 ms

và quan trọng là NAS và torrent chỉ có một mạng thôi

1672972598785.png


netadmin@zstorage:~$ ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bond0 state UP group default qlen 1000
link/ether 90:09:d0:21:5f:c1 brd ff:ff:ff:ff:ff:ff
3: sit0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1
link/sit 0.0.0.0 brd 0.0.0.0
4: eth1: <NO-CARRIER,BROADCAST,MULTICAST,SLAVE,UP> mtu 1500 qdisc pfifo_fast master bond0 state DOWN group default qlen 1000
link/ether 90:09:d0:21:5f:c2 brd ff:ff:ff:ff:ff:ff
5: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 90:09:d0:21:5f:c1 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.110/24 brd 192.168.1.255 scope global bond0
valid_lft forever preferred_lft forever
inet6 fe80::9209:d0ff:fe21:5fc1/64 scope link
valid_lft forever preferred_lft forever

Nếu có ai thắc mắc là tại sao tôi lại xài 255.255.255.255 và chỉ cho phép 1 IP trên hai dãi mà ko mở hết, thì cơ bản là nếu ko cần biết thì ko mở vậy thôi, tôi ko thich torrent VM đi lung tung ra bên ngoài.
 
Last edited:
em forward samba ra ngoài internet để tiện truy cập từ xa thì có an toàn không các bác.
Đã setup mật khẩu khá mạnh. Ngày trước có 1 lần mở ssh port ra ngoài mk root/root thì bị connect từ đâu bên Nga ngố vào spam.
 
em forward samba ra ngoài internet để tiện truy cập từ xa thì có an toàn không các bác.
Đã setup mật khẩu khá mạnh. Ngày trước có 1 lần mở ssh port ra ngoài mk root/root thì bị connect từ đâu bên Nga ngố vào spam.
smb ko bảo mật lắm đâu, nhất là v1 nữa thì zz. Tốt nhất làm cái vpn rồi smb trên đó.
 
smb ko bảo mật lắm đâu, nhất là v1 nữa thì zz. Tốt nhất làm cái vpn rồi smb trên đó.
Mình dùng version mới nhất có enable encryt. Nếu dùng vpn vẫn được nhưng sẽ không tiện như smb.
Không biết ngoài phương án smb + vpn thì còn cách nào đơn giản cho việc access file của NAS từ xa qua explorer không ạ?
 
Mình dùng version mới nhất có enable encryt. Nếu dùng vpn vẫn được nhưng sẽ không tiện như smb.
Không biết ngoài phương án smb + vpn thì còn cách nào đơn giản cho việc access file của NAS từ xa qua explorer không ạ?
tailscale/zerotier làm vpn (kiểu split tunnel), đám này khởi động cùng máy nên cứ bật máy có internet là gửi nhận file bthg. Khi đó chỉ traffic về server/nas là đi qua vpn, còn lại internet đi thẳng (có option vpn truyền thống là force toàn bộ traffic về). Lúc này dùng smb thoải mái, map cả thư mục smb thành disk của window luôn.
 
tailscale/zerotier làm vpn (kiểu split tunnel), đám này khởi động cùng máy nên cứ bật máy có internet là gửi nhận file bthg. Khi đó chỉ traffic về server/nas là đi qua vpn, còn lại internet đi thẳng (có option vpn truyền thống là force toàn bộ traffic về). Lúc này dùng smb thoải mái, map cả thư mục smb thành disk của window luôn.
vừa thử tailscale thấy setup dễ dàng, gọn
cái hay là bọn này dùng cơ chế gì đó mà có thể connect k cần dùng PortForwarding.
Tuy nhiên với cấu hình default thì em nó khá là chậm, mình test chỉ dc có ~1mb/s
Mình sẽ thử thêm openvpn xem kết quả có ổn hơn không
 
vừa thử tailscale thấy setup dễ dàng, gọn
cái hay là bọn này dùng cơ chế gì đó mà có thể connect k cần dùng PortForwarding.
Tuy nhiên với cấu hình default thì em nó khá là chậm, mình test chỉ dc có ~1mb/s
Mình sẽ thử thêm openvpn xem kết quả có ổn hơn không
tailscale nó dùng udp hole punching (nat traversal). Đại loại là nó có 1 con server trung gian mà cả 2 đầu sẽ kết nối tới để trao đổi chiêu thức trước, nếu ok thì kết nối trực tiếp luôn, lúc này speed = tốc độ internet. Tốc độ chậm là do 1 trong 2 đầu nó ko nat traversal được, nên traffic bị relay qua server của tailscale, speed tụt thảm hại là đúng rồi. Nếu có 1 trong 2 đầu port forwarding được thì có thể mở port 41641/udp để kết nối dễ hơn, thường là ko cần thiết nhưng 1 số case thì có (https://tailscale.com/kb/1082/firewall-ports/)
Bạn vào cli (cmd/terminal/shell) cả 2 đầu gõ: tailscale status sẽ thấy kiểu kết nối, nếu direct là ok, còn relay/derp là có vấn đề.
tailscale netcheck đoạn MappingVariesByDestIP xem nó true hay false, nếu true thường là đứng sau firewall/cgnat (nếu 2 đầu mà đều true thì khả năng cao sẽ phải đi qua relay).
 
Last edited:
Em mới mua con minipc có 4 cổng Lan, giờ nhu cầu là cài VPN, theo dõi quản lý các thiết bị truy cập web gì, chặn web... thì cài cái gì cho dễ cấu hình ạ :beauty:
Openwrt, pfsense, opnsense ...
Hiện tại em đang cài openwrt nhưng chưa tìm được cách xem lịch sử truy cập web của các thiết bị và chặn web

Sent from Samsung SM-G998B using vozFApp
 
Em mới mua con minipc có 4 cổng Lan, giờ nhu cầu là cài VPN, theo dõi quản lý các thiết bị truy cập web gì, chặn web... thì cài cái gì cho dễ cấu hình ạ :beauty:
Openwrt, pfsense, opnsense ...
Hiện tại em đang cài openwrt nhưng chưa tìm được cách xem lịch sử truy cập web của các thiết bị và chặn web

Sent from Samsung SM-G998B using vozFApp
Mua loại nào thế bác :D
 
tailscale nó dùng udp hole punching (nat traversal). Đại loại là nó có 1 con server trung gian mà cả 2 đầu sẽ kết nối tới để trao đổi chiêu thức trước, nếu ok thì kết nối trực tiếp luôn, lúc này speed = tốc độ internet. Tốc độ chậm là do 1 trong 2 đầu nó ko nat traversal được, nên traffic bị relay qua server của tailscale, speed tụt thảm hại là đúng rồi. Nếu có 1 trong 2 đầu port forwarding được thì có thể mở port 41641/udp để kết nối dễ hơn, thường là ko cần thiết nhưng 1 số case thì có (https://tailscale.com/kb/1082/firewall-ports/)
Bạn vào cli (cmd/terminal/shell) cả 2 đầu gõ: tailscale status sẽ thấy kiểu kết nối, nếu direct là ok, còn relay/derp là có vấn đề.
tailscale netcheck đoạn MappingVariesByDestIP xem nó true hay false, nếu true thường là đứng sau firewall/cgnat (nếu 2 đầu mà đều true thì khả năng cao sẽ phải đi qua relay).

nếu mở port thì có thể dùng openvpn với độ bảo mật tương tự thím nhỉ, e thấy tailsale vẫn phải đi qua 1 trung giang trước, như thế sẽ có phụ thuộc trong 1 số trường hợp. Nếu dùng openvpn thì có thể gen ra file cấu hình để share cho client kết nối trực đến host.
 
nếu mở port thì có thể dùng openvpn với độ bảo mật tương tự thím nhỉ, e thấy tailsale vẫn phải đi qua 1 trung giang trước, như thế sẽ có phụ thuộc trong 1 số trường hợp. Nếu dùng openvpn thì có thể gen ra file cấu hình để share cho client kết nối trực đến host.
openvpn thì đúng là ko đi qua thằng nào hết, hỗ trợ cả tcp lẫn udp. Nhược điểm của ông này là speed sẽ chậm hơn do chuẩn mã hoá của nó.
tailscale bản chất là wireguard, nên tốc độ thường cao hơn openvpn, nhất là trên mấy con máy yếu. tailscale phần trung gian chủ yếu phục vụ trao đổi key và authentication (hỗ trợ google authen nên khá là tiện), nếu thích full bảo mật thì nó có headscale - opensource của tailscale, bạn sẽ control tất cả từ cả server trung gian, phần authen/key exchange. để share vpn thì tailscale share thẳng qua mail luôn, còn ko cần gen file để gửi nữa kia.
Bảo mật thì yên tâm thằng nào cũng bảo mật hết, chọn vpn nào dễ dùng nhất, hỗ trợ cả window/linux/ios/android là ok.
 
openvpn thì đúng là ko đi qua thằng nào hết, hỗ trợ cả tcp lẫn udp. Nhược điểm của ông này là speed sẽ chậm hơn do chuẩn mã hoá của nó.
tailscale bản chất là wireguard, nên tốc độ thường cao hơn openvpn, nhất là trên mấy con máy yếu. tailscale phần trung gian chủ yếu phục vụ trao đổi key và authentication (hỗ trợ google authen nên khá là tiện), nếu thích full bảo mật thì nó có headscale - opensource của tailscale, bạn sẽ control tất cả từ cả server trung gian, phần authen/key exchange. để share vpn thì tailscale share thẳng qua mail luôn, còn ko cần gen file để gửi nữa kia.
Bảo mật thì yên tâm thằng nào cũng bảo mật hết, chọn vpn nào dễ dùng nhất, hỗ trợ cả window/linux/ios/android là ok.

cho em hỏi là tại sao xài tailscale mà ko phải là wireguard? wireguard - cái nầy hình như là nói force all, nếu làm ngược lại thì như split?

https://docs.pi-hole.net/guides/vpn/wireguard/route-everything/
 
cho em hỏi là tại sao xài tailscale mà ko phải là wireguard? wireguard - cái nầy hình như là nói force all, nếu làm ngược lại thì như split?

https://docs.pi-hole.net/guides/vpn/wireguard/route-everything/
Wireguard là kiểu giao thức vpn, full tunnel hay split tunnel bản chất chỉ là 1 cái định tuyến (full tunnel là default route về vpn, split tunnel là chỉ 1 số route mới đi qua vpn). Với wireguard giả sử bạn có nhiều host muốn kết nối với nhau, mà wireguard lại là peer-to-peer thì bạn sẽ phải quản lý rất nhiều key, cứ cho bạn dùng wg-easy thì bạn vẫn phải lưu các file config cho client, nếu mô hình là hub and spoke thì cứ n host bạn sẽ phải quản lý n-1 cái tunnel và n-1 cái config. Ví dụ như 3 host này:
1673435307592.png

Thay vì làm thủ công như thế, đẻ ra ông tailscale sẽ làm hộ bạn phần config cho thằng wireguard. Thay vì phải tạo từng tunnel (private key/public key/allow ip/routing) thì thằng tailscale sẽ chạy trên nên wireguard, tự đẻ ra các config theo hướng peer-to-peer full (tức là so với hình trên nó sẽ có thêm tunnel A-B, hay còn gọi là full mesh). Tất cả việc bạn cần làm chỉ là cài tailscale lên từng cái host là xong. Nếu host nào mà ko cài tailscale (endpoint B), nhưng nó có thể kết nối thông qua 1 host có tailscale gần đó (Host B, kiểu proxy) thì dùng subnet router (Host B sẽ nói với tailscale là tao có thể truy cập đến thằng Endpoint B, từ đó host C và endpoint A có thể reach được đến Endpoint B mà ko cần mở port gì cả). Tailscale hoàn toàn có thể chạy đc trên nền openvpn, nhưng họ chọn wireguard vì nó opensource và nó nhanh.
Nếu có 1-2 host thì dùng cái gì cũng ok, nhưng nếu có tầm chục cái host ở nhiều mạng khác nhau (ví dụ ở nhà, ở cty, ở cloud như oracle free tier hay GCP Free) thì việc setup chúng thông nhau rất mệt nếu làm thủ công. Thêm nữa ví dụ thế này cho dễ hiểu. Bạn host 1 cái file server ở nhà, bây giờ lên cty muốn truy cập thì bạn phải về vpn server gen 1 cái key mới truy cập được, còn với ông tailscale thì bạn cài client của nó, đăng nhập = gmail là xong, tất cả config đã trên cloud rồi. Nếu ko thích tailscale có thể dùng zerotier, chẳng qua vì ông tailscale nó tiện nên recommend thôi.
 
cho em hỏi là tại sao xài tailscale mà ko phải là wireguard? wireguard - cái nầy hình như là nói force all, nếu làm ngược lại thì như split?

https://docs.pi-hole.net/guides/vpn/wireguard/route-everything/
tailscale thì nó chạy qua máy chủ trung gian để không cần mở port và cấu hình server như tự làm server wireguard, wireguard thì có thể cấu hình trên client để bắt tất cả or 1 số kết nối chạy qua vpn hay không. wireguard thì sử dụng cách thức mã hoá/giải mã mềm(dựa trên phần mềm) nó nhanh hơn và tương thích nhiều hơn, openvpn thì dựa vào mã hoá/giải mã phần cứng (cpu) những cpu nào không hỗ trợ bộ mã đó thì vpn rất chậm.

tailscale giúp đơn giản việc cấu hình wireguard cho người sử dụng bt, còn muốn riêng tư hoàn toàn thì tự tạo wireguard server riêng.
 
Đúng rồi bác, mình không có route gì hết. Modem kéo 2 dây vào proxmox, 2 cổng gộp thành bond. Con proxmox chỉ đơn giản là 1 trong những device của lan tổng modem. Trong proxmox thì sẽ có 1 mạng riêng, dải riêng cho các máy ảo. Câu hỏi trên chủ yếu vì proxmox không có builtin sẵn samba, dhcp server, nên việc tạo mạng riêng cần nhờ 1 con trung gian về s dụ 1 máy ảo pfsense hoặc openwrt này nọ, thêm 1 con máy ảo nào đó hoặc lxc share samba. Có điều nếu chỉ vậy thì còn vướng samba share đấy nó chỉ nằm trong mạng máy ảo, mạng tổng bên ngoài không truy cập đc. Giải quyết vấn đề theo cách đơn giản thì nó đúng là đơn giản, cài thêm samba và dhcp server vào con proxmox là xong. Có điều con proxmox sinh ra chuyên biệt riêng cho quản lí máy ảo, nên bản thân nó mới không tích hợp sẵn, cài thêm vào liệu có nên hay không nên ? Vvv… Tuy nhiên, không có giải pháp khác thì hiện tại mình đang giải quyết vấn đề như vậy. Thêm samba vào proxmox share trên proxmox thì ngoài truy cập đc, và dhcp server cho proxmox cấp phát dải mạng riêng cho máy ảo, giảm đi đc con máy ảo route

via theNEXTvoz for iPhone
ôi trời ơi, quá phức tạp :)))~

1. Proxmox đã có 2 card mạng thì:
A: chạy quay ppoe bằng pfsense (routeros, openwrt...) trong proxmox thì bridge 1 cổng rồi cắm vào modem để quay ppoe, thích quay bao nhiêu thì chỉ cần tạo card mạng ảo cho nó. Card mạng còn lại thì dùng làm LAN, cắm vào wifi hay switch ngoài tuỳ thích, để con pfsense nó cấp dhcp và cấp mạng.

B: quay ppoe trên modem nhà mạng thì đặt ip tĩnh hoặc dhcp tuỳ thích, tạo 1 switch ảo rồi add máy ảo vào đó để nó ăn dhcp từ modem. Thích dùng card còn lại làm gì thì làm.

- Khi tạo switch ảo thì nhớ chọn ngõ ra đúng là được, muốn cheat mạng trên đó thì chỉ cần add card mạng cho máy ảo, khác MAC và trỏ ngõ ra đúng là được.

2. Khi đã cấu hình mạng thế kia rồi thì bọn nó sẽ chung 1 mạng LAN hết, không cần phải cấu hình khác lớp với chạy lòng vòng nữa.
 
Last edited:
Mình có cài tailscale, remote các kiểu ok hết mà mở port để gọi api (server app mini) thì chưa được, vozer nào config rồi chỉ mình với

Gửi từ Samsung SM-G998B bằng vozFApp
 
tailscale thì nó chạy qua máy chủ trung gian để không cần mở port và cấu hình server như tự làm server wireguard, wireguard thì có thể cấu hình trên client để bắt tất cả or 1 số kết nối chạy qua vpn hay không. wireguard thì sử dụng cách thức mã hoá/giải mã mềm(dựa trên phần mềm) nó nhanh hơn và tương thích nhiều hơn, openvpn thì dựa vào mã hoá/giải mã phần cứng (cpu) những cpu nào không hỗ trợ bộ mã đó thì vpn rất chậm.

tailscale giúp đơn giản việc cấu hình wireguard cho người sử dụng bt, còn muốn riêng tư hoàn toàn thì tự tạo wireguard server riêng.

À vậy là tailscale có một máy chủ trung gian, cà tất cả đều là clients của máy chủ trung gian, lợi thế là ko cần mở port forwarding như wireguard, dĩ nhiên cách nầy cũng có bất lợi như là cần máy chủ trung gian, và nó biết traffic nầy là gì, ko như wireguard chỉ internet udp routing nên nó khá là khó để phân biệt

mới đọc giải thích chi tiết của bác vip thì phần trung gian chỉ làm một số việc admin thôi, vẫn ko hiểu lắm phần open port vì nếu ko mở port thì làm sao làm tunnel directly?
 
Last edited:
Wireguard là kiểu giao thức vpn, full tunnel hay split tunnel bản chất chỉ là 1 cái định tuyến (full tunnel là default route về vpn, split tunnel là chỉ 1 số route mới đi qua vpn). Với wireguard giả sử bạn có nhiều host muốn kết nối với nhau, mà wireguard lại là peer-to-peer thì bạn sẽ phải quản lý rất nhiều key, cứ cho bạn dùng wg-easy thì bạn vẫn phải lưu các file config cho client, nếu mô hình là hub and spoke thì cứ n host bạn sẽ phải quản lý n-1 cái tunnel và n-1 cái config. Ví dụ như 3 host này:
View attachment 1609088
Thay vì làm thủ công như thế, đẻ ra ông tailscale sẽ làm hộ bạn phần config cho thằng wireguard. Thay vì phải tạo từng tunnel (private key/public key/allow ip/routing) thì thằng tailscale sẽ chạy trên nên wireguard, tự đẻ ra các config theo hướng peer-to-peer full (tức là so với hình trên nó sẽ có thêm tunnel A-B, hay còn gọi là full mesh). Tất cả việc bạn cần làm chỉ là cài tailscale lên từng cái host là xong. Nếu host nào mà ko cài tailscale (endpoint B), nhưng nó có thể kết nối thông qua 1 host có tailscale gần đó (Host B, kiểu proxy) thì dùng subnet router (Host B sẽ nói với tailscale là tao có thể truy cập đến thằng Endpoint B, từ đó host C và endpoint A có thể reach được đến Endpoint B mà ko cần mở port gì cả). Tailscale hoàn toàn có thể chạy đc trên nền openvpn, nhưng họ chọn wireguard vì nó opensource và nó nhanh.
Nếu có 1-2 host thì dùng cái gì cũng ok, nhưng nếu có tầm chục cái host ở nhiều mạng khác nhau (ví dụ ở nhà, ở cty, ở cloud như oracle free tier hay GCP Free) thì việc setup chúng thông nhau rất mệt nếu làm thủ công. Thêm nữa ví dụ thế này cho dễ hiểu. Bạn host 1 cái file server ở nhà, bây giờ lên cty muốn truy cập thì bạn phải về vpn server gen 1 cái key mới truy cập được, còn với ông tailscale thì bạn cài client của nó, đăng nhập = gmail là xong, tất cả config đã trên cloud rồi. Nếu ko thích tailscale có thể dùng zerotier, chẳng qua vì ông tailscale nó tiện nên recommend thôi.

Cám ơn bác hiểu sơ sơ rồi, em còn một thắc mắc là ở ví dụ của bác endpointB ko cài tailscale nhưng có route đên hostB và vì thế hostA và endpointB có thể nói với nhau.

Cái nầy tailscale là kiểu cho phép advertise routing kiểu dynamic routing đó hả? Coi như 3 cái nodes hostABC nó sẽ tự advertise routes nó có như là router để mấy thằng sau lưng nó biết đg đi, so với wireguard thì ví dụ như trên hostA muốn đi endpointB cũng đc nhưng phải cấu hình định tuyến tay chứ ko tự động đc

Còn phần config management effort thì em có thể hiểu đc, thằng tailscale có vẻ như là một giao thức định tuyến nằm trên một lớp mạng và đó là lý do tại sao bác nói chơi openvpn cũng đc nhưng openvpn thì resource intensive và nó tự động hoá một số các bước như keypair hay là initiation point và ko cần mở port vì có một số dịch vụ trung gian

Chơi kiểu mesh nầy khó mà áp dụng đc cho wfh các kiểu vì nó open quá, nhưng như bác nói đây là giải pháp fullmesh free, chứ công ty lớn thì người ta tự tạo wan rồi triển thôi
 
Last edited:
Back
Top