Sử dụng Internet với tốc ghi trên Modem bằng Ubuntu.

Sơ lược về ý tưởng

Cách đây vài hôm mình gặp rắc rối lúc config Port Forwarding cái zoom X4 và quản lý cái Host của mình bằng cái D-Link. Vì vậy mình chuyển qua sử dụng Bridge mode để kết nối Internet. Lúc đầu tìm hiểu về Bridge mode mình cũng gặp khá nhiều trục trặc và vô tình mình phát hiện ra là có thể tạo ra nhiều PPP interfaces với 1 account. Mình thử Ping các IP của các Interface đó ttl trả về đều là 64 đều từ máy Linux mà ra hết. Tiếp theo mình thử sử dụng 2 máy để kết nối PPP tới ISP cả 2 máy đều có thể download được Full đường truyền. Từ đó mình có ý định sử dụng Load Balancing để chia tải cho các kết nối PPP và tăng tốc kết nối Internet. Thật ra ngay lúc đó mình cũng chỉ biết Load Balancing là chia tải chứ chưa thật sự biết nó là gì. Sau nửa ngày trời lục lọi trên Internet xem xét nhiều Software mình thấy Load Balancing chỉ hiệu quả khi tạo nhiều kết nối dùng để download hoặc upload thôi nếu cũng sử dụng 1 kết nối thì tốc độc vẫn bình thường và ứng dụng thích hợp nhất cho nó là Torrent. Mình cũng phát hiện rằng trong chính Ubuntu đã có chức năng này.

Các bạn có thể tìm hiểu nhiều hơn về định tuyến (route) trên Linux tại http://lartc.org nếu các bạn quan tâm về định tuyến thì tài liệu này có thể rất có ích.

Nhận xét của mình

Mình chỉ mới thử cái này trên Viettel và Ubuntu còn Fedora có hướng dẫn thử cho một người nhưng làm không thành công. Nếu tốc độ kết nối của bạn cũng bằng với tốc độ Downstream và Upstream trong Modem ghi thì không nên thử vì cũng không cải thiện thêm. Còn nếu muốn dùng Home N và tận hưởng tốc độ Home C thì bài viết này sẽ giúp bạn. Mình hi vọng Viettel sẽ cho chạy thả giàn trong mấy ngày tết qua tết sẽ Fix lỗi này lại vì lỗi này rất dễ Fix. Nếu nhiều người sử dụng cách này có thể sẽ gây lỗi tràn DSLAM, IP của Viettel vì vậy mình mong các cao thủ không nên làm quá tay.

Các bước tiến hành

Đọc hết bài viết rồi mới thử nhé coi chừng chết giữa đường không vào Net được đâu.

Đầu tiên các bạn phải cài đặt kết nối theo kiểu PPP ở chế độ Bridge.

Ở chế độ Bridge thì chính Ubuntu sẽ làm nhiệm vụ kết nối với ISP. Trên Windows thì không thể tạo nhiều kết nối WAN được nhưng Linux thì có thể.

Sau khi đã dùng lệnh pppoeconf để cài đặt Internet bạn có thể xài lệnh

pon dsl-provider

để tạo thêm kết nối

(Để disconnect thì xài lệnh poff dsl-provider)

Bạn tạo chừng 5 kết nối thêm. Sau đó phải xoá bản default rote đang chạy. Bằng lệnh

sudo ip route del default

Chạy 6-7 lần gì cho chắc ăn để có thể xoá hết.

Lúc này xài lệnh ifconfig để xem xem bạn đang có bao nhiêu ppp connect. Nếu có tới ppp5 thì bạn đang có 6 connect.

Sau đó sử dụng lệnh ip route để tạo một bảng định tuyến mới.

gateway=$(ifconfig ppp0 | grep 'inet addr:' | cut -d: -f3 | awk '{ print $1}')

sudo ip route add default scope global nexthop via $gateway dev ppp0 weight 1 nexthop via $gateway dev ppp1 weight 1 nexthop via $gateway dev ppp2 weight 1 nexthop via $gateway dev ppp3 weight 1 nexthop via $gateway dev ppp4 weight 1 nexthop via $gateway dev ppp5 weight 1

lúc này xài lệnh ip route để xem bản định tuyến của bạn ra sao.
Nếu có dạng giống giống

117.5.128.1 dev ppp0 proto kernel scope link src 117.5.130.181
117.5.128.1 dev ppp1 proto kernel scope link src 117.5.134.51
117.5.128.1 dev ppp2 proto kernel scope link src 117.5.134.52
117.5.128.1 dev ppp3 proto kernel scope link src 117.5.134.54
117.5.128.1 dev ppp4 proto kernel scope link src 117.5.134.55
117.5.128.1 dev ppp5 proto kernel scope link src 117.5.134.57
117.5.128.1 dev ppp6 proto kernel scope link src 117.5.134.58
117.5.128.1 dev ppp7 proto kernel scope link src 117.5.134.59
117.5.128.1 dev ppp8 proto kernel scope link src 117.5.134.60
117.5.128.1 dev ppp9 proto kernel scope link src 117.5.134.62
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.2
169.254.0.0/16 dev eth0 scope link metric 1000
default
nexthop via 117.5.128.1 dev ppp0 weight 1
nexthop via 117.5.128.1 dev ppp1 weight 1
nexthop via 117.5.128.1 dev ppp2 weight 1
nexthop via 117.5.128.1 dev ppp3 weight 1
nexthop via 117.5.128.1 dev ppp4 weight 1
nexthop via 117.5.128.1 dev ppp5 weight 1
nexthop via 117.5.128.1 dev ppp6 weight 1
nexthop via 117.5.128.1 dev ppp7 weight 1

Thì bạn đã thành công rồi. Bây giờ chỉ việc download nhiều file 1 lúc thử xem.

Mình có thử làm một Script dùng để Load Balancing luôn bạn phải chạy nó. Điều kiện là phải tạo bridge mode ở bài viết trước nhé. (Open -> Run In Terminal -> nhập password vào)

Download script

Đây là đoạn Script Loadbalancing

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

sudo pon dsl-provider
sleep 1
sudo pon dsl-provider
sleep 1
sudo pon dsl-provider
sleep 1
sudo pon dsl-provider
sleep 1
sudo pon dsl-provider
sleep 1
sudo pon dsl-provider
sleep 1
sudo pon dsl-provider
sleep 3

sudo ip route del default
sudo ip route del default
sudo ip route del default
sudo ip route del default
sudo ip route del default
sudo ip route del default
sudo ip route del default
sleep 0.5
sudo ip route del default
sleep 0.5
sudo ip route del default
sleep 0.5
sudo ip route del default
sleep 0.5
sudo ip route del default
sleep 0.5
sudo ip route del default
sleep 0.5
sudo ip route del default
sleep 0.5
sudo ip route del default
sleep 3
gateway=$(ifconfig ppp0 | grep ‘inet addr:’ | cut -d: -f3 | awk ‘{ print $1}’)
sudo ip route add default scope global nexthop via $gateway dev ppp0 weight 1 nexthop via $gateway dev ppp1 weight 1 nexthop via $gateway dev ppp2 weight 1 nexthop via $gateway dev ppp3 weight 1 nexthop via $gateway dev ppp4 weight 1 nexthop via $gateway dev ppp5 weight 1

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

Chú ýở dòng gateway là dấu ‘ ở dưới dấu ” thẳng đứng không phải dấu ` đâu nhé. Post lên đây nó bị đổi.

40 bình luận về “Sử dụng Internet với tốc ghi trên Modem bằng Ubuntu.

  1. ko phải viettel sơ hở đâu bro, mà đó là thế mạnh của linux đó,họ chỉ chặn được những người quẹo phải (dùng win) còn làm seo ngờ được có những người quẹo trái (dùng linux) như afterlastangel đâu 😀

  2. anh ơi cho em xin cái script loadbalancing ạh. Trang web Lê Hoàng Gia bảo trì rùi.

    Àh, anh triển khai server linux áp dụng cách này để làm route cho mạng LAN chưa vậy?

  3. Chạy script trên nó báo thế này:

    :~$ gateway=$(ifconfig ppp0 | grep ‘inet addr:’ | cut -d: -f3 | awk ‘{ print $1}’)
    grep: addr:’: No such file or directory
    awk: 1: unexpected character 0xe2

  4. mình đã làm giống bài chỉ dẫn này, nhưng khi pon dsl-provider thì có lúc tạo ra connect pppoe mới đuợc, lúc thì không, và khi khởi động lại thì các kết nối này biến mất, có cách nào khắc phục không? và tốc độ đuờng truyền rất chậm và không ổn định so với window, có cách nào khắc phục không? mình dùng dsl của viettel, cài đặt bridge, dùng ubuntu 7.10. cảm ơn.

  5. mình đã thử rồi , nhưng sau khi ip route thi nó ra giống vầy

    117.5.128.1 dev ppp0 proto kernel scope link src 117.5.130.181
    117.5.128.1 dev ppp1 proto kernel scope link src 117.5.134.51
    117.5.128.1 dev ppp2 proto kernel scope link src 117.5.134.52
    192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.2
    169.254.0.0/16 dev eth0 scope link metric 1000

    với lại cũng không vào web đc , ko biết tại sao , mình setup bridge với lại chạy cái load script rồi , giúp với 😦

  6. Bạn chưa làm bước
    Nhớ chỉnh sửa thành dấu nháy đứng nhé ‘
    gateway=$(ifconfig ppp0 | grep ‘inet addr:’ | cut -d: -f3 | awk ‘{ print $1}’)

    sudo ip route add default scope global nexthop via $gateway dev ppp0 weight 1 nexthop via $gateway dev ppp1 weight 1 nexthop via $gateway dev ppp2 weight 1 nexthop via $gateway dev ppp3 weight 1 nexthop via $gateway dev ppp4 weight 1 nexthop via $gateway dev ppp5 weight 1

Gửi phản hồi cho takeme Hủy trả lời