Tuesday, April 2, 2013

Nói về router và các hệ điều hành cho nó


(Bài viết này dành cho người có kiến thức cơ bản với máy tính, nếu bạn đã có kiến thức rồi thì đọc nó mất hơi nhiều thời gian)

Mặc định, hệ điều hành (os - operating system) gốc của nhà sản xuất cho router bị hạn chế nhiều tính năng, hoặc nếu là router của china thì có khả năng bị cài gián điệp, vì vậy ta cần cài os khác cho router.

Hiện nay có nhiều os cho router dựa trên linux, unix. Nhưng linux thì phổ biến hơn, ví dụ như (openwrt, dd-wrt, tomato, Gargoyle) và có nhiều os khác dựa trên openwrt như là Gargoyle.

Nếu bạn rành về linux mà muốn nhiều tính năng, thì openwrt là lựa chọn phù hợp. Openwrt là dùng license GNU GPL nên nó dc phát triển mạnh, tuy nhiên nếu dùng nó thì cũng khá phức tạp vì cần có kiến thức nhất định, muốn dùng nó thì chịu khó đọc hướng dẫn cài đặt openwrt trên web của họ. Cài xong và khi boot vào openwrt sẽ ra giao điện dòng lệnh, bạn sẽ cần cài  LuCi (giao diện web) vào cho dễ sài hơn

Lựa chọn dd-wrt, tomato, Gargoyle vì nó dùng đơn giản, cài đặt đơn giản hơn, chức năng thì đủ dùng. Cá nhân mình thì thích sài dd-wrt hơn. Nếu có thời gian thì bạn nên thử hết cho biết xem cái nào phù hợp với bản thân hơn.

link wiki, tự search trang homepage của mỗi os trên google để đọc documents của họ
http://en.wikipedia.org/wiki/DD-WRT
http://en.wikipedia.org/wiki/Openwrt
http://en.wikipedia.org/wiki/Tomato_(firmware)
http://en.wikipedia.org/wiki/Gargoyle_(router_firmware)


Lựa chọn router

###################

Update: danh sach router supported http://www.dd-wrt.com/wiki/index.php/Supported_Devices
Trước khi quyết định mua router, bạn sẽ cần có kế hoạch xem mình cần tính năng gì, sẽ cài os nào cho nó. Bạn cần xem thông số kỹ thuật của các router ở các website bán hàng, hay wiki... xem mức giá nào phù hợp với túi tiền (nhu cầu) sau đó đi tìm tiếp ở website của os mà bạn muốn cài xem nó có được hỗ trợ tốt không.

Mình dự định mua 1 con router để bắt sóng wifi nhà hàng xóm. Sau đó mình sẽ phát wifi lại cho căn nhà 4 tầng của mình. Với nhu cầu đó mình sẽ dự định mua router với số tiền khoảng $50-$60

Mỗi loại router có thông số kỹ thuật khác nhau (cpu,ram, Flash). Bộ nhớ Flash là nơi chứa os, nó có các mức dung lượng như là 2MB, 4MB, 8MB, dung lượng càng cao thì mình càng cài được nhiều chức năng. Vì vậy mình dự định mua router với Flash có từ 8MB trở lên

http://en.wikipedia.org/wiki/DD-WRT#Features Với 8MB Flash mình sẽ cài bản dd-wrt mega

http://wikidevi.com/wiki/TP-LINK_TL-WR1043ND_v1.x
Trang này cho phép bạn xem các thông số kỹ thuật của router, chúng ta cần tìm các thông số của router mà chúng ta sẽ mua để biết nó sẽ hỗ trợ những tính năng gì. Ví dụ TP-LINK_TL-WR1043ND ở đây mình sẽ xem về cpu, ram, router version, flash, có thấy cổng usb như vậy ta có thể cắm máy in, thẻ nhớ, ổ cứng gắn ngoài để làm file server. Chú ý xem router version mới nhất bây giờ là bao nhiêu, và khi mua phải đảm bảo bạn sẽ mua được router có version mới nhất thì sẽ ko bị các lỗi đáng tiếc

http://wiki.openwrt.org/toh/tp-link/tl-wr1043nd#supported.versions
Trang này mình thấy rằng con router này đang có phiên bản mới nhất là v1.10 (cái này là phiên bản phần cứng chứ không phải phần mềm nhé, tức nhà sx sản xuất ra lần đầu và họ phát hiện ra lỗi, họ sản xuất đợt hàng thứ 2 và được sửa lỗi, cứ thế cứ thế cho tới v1.10 mua version mới nhất là tốt nhất)

Lý do mình chọn TP-LINK_TL-WR1043ND
Tại vì ở trang forum của dd-wrt, cpu Atheros & Broadcom là 2 loại cpu phổ biến nhất (có nhiều post/reply) http://www.dd-wrt.com/phpBB2/

Tại vì Tp-link có giá rẻ hơn router của usa, tại vì router tp-link dùng cpu phổ biến (Atheros) Cái gì phổ biến thì sẽ được hỗ trợt tốt hơn, cái gì của độc (ít người sài) thì sẽ có ít tài liệu hướng dẫn hơn. Tại vì con router này có các tiêu chuẩn phù hợp với mình (giá ~50$, flash 8mb, có usb port, phổ biến và dc dd-wrt hỗ trợ tốt) Mỗi người đều có các tiêu chuẩn để lựa chọn riêng, ở trên là ví dụ về sự lựa chọn của mình. Tiền nhiều thì mua router của usa, tiền ít thì mua hàng china.

Mình vào http://www.dd-wrt.com/site/support/router-database và gõ tp-link rồi tìm xem có con router WR1043ND không, ah có

Mình search google "WR1043ND dd-wrt" và ra trang này:
http://joeyiodice.com/converting-tp-link-tl-wr1043nd-to-dd-wrt
Như vậy là WR1043ND được hỗ trợ tốt bởi dd-wrt và đã có người khác cài thành công cho nó. Như vậy là nếu mình mua con router này thì sẽ sài tốt. Bạn có thể đọc và làm theo cách của joeyiodice.com hoặc đọc tiếp bài của mình, chả sao cả.

Chú ý: đừng download firmware ở trang này (http://www.dd-wrt.com/site/support/router-database ) vì nó không được thường xuyên cập nhật (wiki & forum của họ nói vậy)

Download firmware 

###################

Sài firmware mới nhất không có nghĩa là tốt nhất, vì version mới nhất chính là các bản thử nghiệm (wiki & forum dd-wrt nói vậy) Bạn có thể sài bản thử nghiệm hoặc là bản stable. Với bản stable thì bạn tìm Recommendations  của họ

Với cpu Broadcom thì version khuyên dùng của nó ở đây: http://www.dd-wrt.com/phpBB2/viewtopic.php?t=52043 (Still 14929 - 02/24/13)
Với cpu Atheros thì ở joeyiodice.com họ sài build 19419 từ năm 2010
Mình ko tìm dc chinh xác bản stable của Atheros là bao nhiêu nên mình sẽ sài bản thử nghiệm năm 2013 (chả sao cả nhưng nếu gặp lỗi thì phải đổi bản khác)

Tại thời điểm viết bài thì r20675 là phiên bản mới nhất, mình sẽ download nó tại
(đây là ftp server chứa tất cả firmware của họ):
ftp://dd-wrt.com/others/eko/BrainSlayer-V24-preSP2/2013/
và tìm tới folder 02-11-2013-r20675/
rồi tìm tới folder tplink_tl-wr1043nd/
và download cả 2 file trong đó:
- ftp://dd-wrt.com/others/eko/BrainSlayer-V24-preSP2/2013/02-11-2013-r20675/tplink_tl-wr1043nd/factory-to-ddwrt.bin
- ftp://dd-wrt.com/others/eko/BrainSlayer-V24-preSP2/2013/02-11-2013-r20675/tplink_tl-wr1043nd/tl-wr1043nd-webflash.bin

file factory-to-ddwrt.bin sẽ sử dụng cho router lần đầu tiên được flash firmware (bắt buộc phải làm vậy, forum & wiki của họ nói vậy) nếu không làm vậy, router của bạn thành cục gạch thì ráng chịu.
file tl-wr1043nd-webflash.bin là file cuối cùng mà chúng ta cần

Đối với con router wr1043nd thì họ khuyên:
If you have a router that has a serial number starting with 12, then you will need to download THIS german firmware file, otherwise you can skip this step.
http://joeyiodice.com/files/TL-WR1043ND-German.zip
Cái này theo mình tìm hiểu thì nó dùng để sửa lỗi cổng wan, nếu ko flash cái file TL-WR1043ND-German.zip trước thì router của bạn sẽ bị chết cổng WAN.
Ko hiểu bọn china làm trò gì nữa, các router linksys trước đây không bị vấn đề này.
Cái router wr1043nd của mình có số serial bắt đầu bằng số 12, vậy mình sẽ download TL-WR1043ND-German.zip

Cài đặt (flash firmware)

###################

Sau khi mua router về, mình lấy cái dây mạng kèm theo máy (dây đấu thẳng A-A hoặc B-B) cắm vào cổng số 1 của router và đầu kia cắm vào máy tính

Đầu tiên ta phải hard reset router đã, ở page này họ nói về hard-reset 30/30/30
http://www.dd-wrt.com/wiki/index.php/Hard_reset_or_30/30/30
Cái này là bắt buộc, nó dùng để clear hết bộ nhớ trong ram... Sau đây là hướng dẫn hard reset 30/30/30

Khi router đang chạy bình thường, ta lấy bút bi, bấm vào cái lỗ reset đằng sau máy, bấm giữ trong 30 giây rồi tắt nguồn router (tay vẫn giứ chặt nút reset), chờ tiếp 30 giây nữa, ta lại bật nguồn router (tay vẫn giứ chặt nút reset) chờ tiếp 30 giây nữa rồi ta mới thả tay ra

Chú ý: Hard-reset 30/30/30 phải thực hiện trước khi và sau khi flash bất kỳ firmware nào. Chú ý đừng bỏ quên bước này, nếu ko có vấn đề gì thì ráng chịu nhé.

mở Google Chrome (web browser) lên, gõ 192.168.1.1 user name/pass mặc định của nó được ghi ở dưới router là user name: admin password:admin

Mình tìm tới menu Firmware Upgrade, click "Choose file" tìm tới file TL-WR1043ND-German.zip rồi bấm "Upgrade"

Sau khi flash firmware xong, ta tắt router đi, bật lại, sau đó lại làm bước hard reset 30/30/30 ở trên

Ta lại mở google chrome lên vào 192.168.1.1 username: admin pass: admin

Mình tìm tới menu Firmware Upgrade, click "Choose file" tìm tới file  factory-to-ddwrt.bin rồi bấm "Upgrade"

Sau đó ta lại hard-reset 30/30/30
rồi vào 192.168.1.1 chọn Administration, chọn Firmware Upgrade, rồi tìm tới file tl-wr1043nd-webflash.bin

Sau đó ta lại hard-reset 30/30/30

ok, lần này vào 192.168.1.1 ta đã thành công, chúng ta phải đổi username/password không có thằng nào nó hack thì chết
Sau đó bạn vào http://192.168.1.1/Management.asp và tắt hết telnet, ssh đi đề phòng bị hack, Info Site Password Protection cũng bật on luôn

Config router

###################
Bạn làm theo hình

1/ basic config

- Ở đây mình thiết lập lại ip của router thành 10.0.0.1 vì nó ngắn gõ cho nhanh
- Mình chỉ cho phép tối đa 10 thiết bị connect vào router: Maximum DHCP Users = 10



2/ wifi config
Mình đã đổi ip của router từ 192.168.1.1 thành 10.0.0.1 rồi, nên bây giờ mình sẽ vào http://10.0.0.1/Site_Survey.asp để xem xung quanh có mạng wifi nào không, nếu có thì connect vào sài internet chùa thôi, nếu bị khóa thì tìm hiểu họ là ai, rồi xin chia xẻ internet với họ, tiền internet chia đôi chẳng hạn, cả 2 bên cùng win-win

Hình dưới là cách config ví dụ, tên wifi nhà hàng xóm sẽ thay đổi theo thực tế của bạn


Chỗ này ta cần đặt mật khẩu cho mạng hàng xóm và mạng nhà mình


Xong, như vậy là mình đã thiết lập router để bắt wifi nhà hàng xóm rồi phát lại thành mạng wifi khác để sài riêng. Bây giờ ta có thể nối dây mạng từ router tới switch, và từ switch ta nối vào máy tính, hoặc dùng wifi của router

Các tính năng khác của dd-wrt bạn tự khám phá nhé, ví dụ như cổng usb của router, có thể làm dc nhiều thư s nữa đấy. Ví dụ như cắm flash usb hoặc ổ cứng gắn ngoài vào để làm nơi chứa file trung gian (tài liệu, phim, nhạc...) share trong mạng nội bộ, khá tiện.

Kiến thức thì nên chia xẻ, ko nên giữ 1 mình làm gì. Vì vậy mình mới viết bài này.

update:
12 dec 2014: Ví dụ: Nếu bạn đang dùng dd-wrt mà muốn chuyển sang openwrt thì bạn phải quay lại firmware nhà xản suất trước rồi mới dc flash openwrt. Còn nếu bạn nâng cấp từ dd-wrt lên version mới hơn thì chỉ cần thực hiện Hard-reset 30/30/30.

Kết luận: khi đang dùng firmware từ brand name này chuyển sang brand name khác thì phải quay lại factory firmware trước. Cùng brand name thì chỉ cần hardreset 30/30/30.. Nếu ko làm theo hướng dẫn này thì router của bạn sẽ brick (thành cục gạch)


4 comments:

  1. BẠN CÓ KINH NGHIỆM VỀ OPENWRT K?

    ReplyDelete
  2. mình đã từng dùng openwrt, nhưng nhu cầu của mình cần đơn giản nên mình dùng dd-wrt

    ReplyDelete
  3. up qua lại bt giữa các os mở, về fimware gốc nhiều cái ko hỗ trợ

    ReplyDelete
  4. up qua lại bt giữa các os mở, về fimware gốc nhiều cái ko hỗ trợ

    ReplyDelete