Danh mục sản phẩm
Cấu hình cân bằng tải 2 line Internet trên Router Cisco
Bài này hướng dẫn cấu hình cân bằng tải (load balancing) và dự phòng (failover) cho 2 line Internet FTTH của 2 nhà mạng (ISP) trên router Cisco. Hai line quay PPPoE, cùng chia tải cho người dùng trong LAN, tự động loại line bị mất kết nối bằng IP SLA + track, và có thể public dịch vụ web ra ngoài qua cả 2 WAN.
⚡ Tóm tắt nhanh
- Mô hình: 1 router Cisco, 3 cổng: Gi0/0 (LAN), Gi0/1 (ISP1), Gi0/2 (ISP2).
- Kết nối WAN: PPPoE qua
Dialer 1vàDialer 2. - Chia tải: 2 default route cùng metric (ECMP). Router chia tải theo từng đích đến (per-destination), không chia theo từng gói tin.
- NAT: dùng
route-mapđể mỗi gói tin ra đường nào thì được NAT bằng IP của đường đó. - Phát hiện đứt line: IP SLA ping ra Internet,
tracktự gỡ default route khi line mất kết nối. - Điểm hay sai nhất: thiếu host route cố định cho địa chỉ IP SLA, làm probe đi nhầm line và báo down giả (xem bước 4).
Chọn mô hình nào? Bài này dùng cho nhu cầu chia tải đều và dự phòng 2 line cùng loại. Nếu bạn muốn chỉ định ứng dụng đi đường nào (ví dụ Zoom, Teams đi Leased Line, YouTube, Facebook đi FTTH), xem bài Multi-WAN theo ứng dụng với NBAR2 + PBR + IP SLA. Hai mô hình này là hai cách thiết kế khác nhau, không cấu hình chung trên cùng một luồng traffic.
1. Chuẩn bị
- Router Cisco có 3 interface:
GigabitEthernet0/0cho LAN,GigabitEthernet0/1cho ISP1,GigabitEthernet0/2cho ISP2. - Username và password PPPoE của 2 nhà mạng.
- Địa chỉ IP tĩnh từ 2 nhà mạng (nếu cần public dịch vụ ra ngoài).

2. Các bước cấu hình
Bước 1: Cấu hình LAN
CISCO(config)# interface GigabitEthernet0/0 CISCO(config-if)# description LAN Interface CISCO(config-if)# ip address 192.168.0.1 255.255.255.0 CISCO(config-if)# ip nat inside CISCO(config-if)# ip virtual-reassembly in CISCO(config-if)# ip tcp adjust-mss 1452 CISCO(config-if)# no shutdown
ip tcp adjust-mss 1452bù cho MTU 1492 của PPPoE (1492 trừ 40 byte header IP/TCP), tránh lỗi một số website mở chậm hoặc không vào được.
Bước 2: Cấu hình quay PPPoE cho 2 ISP
Cổng vật lý:
CISCO(config)# interface GigabitEthernet0/1 CISCO(config-if)# description Interface to ISP1 CISCO(config-if)# no ip address CISCO(config-if)# pppoe enable group global CISCO(config-if)# pppoe-client dial-pool-number 1 CISCO(config-if)# no shutdown CISCO(config)# interface GigabitEthernet0/2 CISCO(config-if)# description Interface to ISP2 CISCO(config-if)# no ip address CISCO(config-if)# pppoe enable group global CISCO(config-if)# pppoe-client dial-pool-number 2 CISCO(config-if)# no shutdown
Interface Dialer:
CISCO(config)# interface Dialer1 CISCO(config-if)# description Dialer interface to ISP1 CISCO(config-if)# ip mtu 1492 CISCO(config-if)# encapsulation ppp CISCO(config-if)# dialer pool 1 CISCO(config-if)# dialer-group 1 CISCO(config-if)# ip address negotiated CISCO(config-if)# ip nat outside CISCO(config-if)# ip virtual-reassembly in CISCO(config-if)# ppp authentication pap callin CISCO(config-if)# ppp pap sent-username Username_ISP1 password 0 Password_ISP1 CISCO(config)# interface Dialer2 CISCO(config-if)# description Dialer interface to ISP2 CISCO(config-if)# ip mtu 1492 CISCO(config-if)# encapsulation ppp CISCO(config-if)# dialer pool 2 CISCO(config-if)# dialer-group 2 CISCO(config-if)# ip address negotiated CISCO(config-if)# ip nat outside CISCO(config-if)# ip virtual-reassembly in CISCO(config-if)# ppp authentication pap callin CISCO(config-if)# ppp pap sent-username Username_ISP2 password 0 Password_ISP2
Nhà mạng nào dùng CHAP thì thay 2 dòng xác thực bằng
ppp authentication chap callinvàppp chap hostname <user>/ppp chap password 0 <pass>. Hỏi ISP để biết đúng phương thức.
Bước 3: ACL và NAT bằng route-map
Cho phép toàn bộ máy trong LAN ra Internet:
CISCO(config)# access-list 100 permit ip 192.168.0.0 0.0.0.255 any
Tạo route-map để gói tin ra đường nào thì NAT bằng IP đúng đường đó:
CISCO(config)# route-map isp1 permit 10 CISCO(config-route-map)# match ip address 100 CISCO(config-route-map)# match interface Dialer1 CISCO(config)# route-map isp2 permit 10 CISCO(config-route-map)# match ip address 100 CISCO(config-route-map)# match interface Dialer2 CISCO(config)# ip nat inside source route-map isp1 interface Dialer1 overload CISCO(config)# ip nat inside source route-map isp2 interface Dialer2 overload
Đây là phần quan trọng nhất của mô hình 2 WAN: nếu chỉ dùng một lệnh NAT chung, gói tin ra ISP2 có thể mang IP nguồn của ISP1 và bị ISP chặn.
Bước 4: IP SLA và Track để phát hiện line bị mất kết nối
Trạng thái up/up của Dialer chỉ cho biết phiên PPPoE còn sống, không đảm bảo Internet còn thông. Vì vậy ta dùng IP SLA ping ra Internet qua từng line:
! Probe qua ISP1: ping 8.8.8.8 (Google DNS), mỗi 5 giây CISCO(config)# ip sla 100 CISCO(config-ip-sla)# icmp-echo 8.8.8.8 source-interface Dialer1 CISCO(config-ip-sla-echo)# timeout 1000 CISCO(config-ip-sla-echo)# frequency 5 CISCO(config)# ip sla schedule 100 life forever start-time now CISCO(config)# track 100 ip sla 100 reachability CISCO(config-track)# delay down 15 up 15 ! Probe qua ISP2: ping 1.1.1.1 (Cloudflare DNS), mỗi 5 giây CISCO(config)# ip sla 200 CISCO(config-ip-sla)# icmp-echo 1.1.1.1 source-interface Dialer2 CISCO(config-ip-sla-echo)# timeout 1000 CISCO(config-ip-sla-echo)# frequency 5 CISCO(config)# ip sla schedule 200 life forever start-time now CISCO(config)# track 200 ip sla 200 reachability CISCO(config-track)# delay down 15 up 15
Ý nghĩa: mỗi 5 giây ping 1 lần, quá 1 giây không có phản hồi thì tính là mất. delay down 15 up 15 nghĩa là line phải mất liên tục 15 giây mới bị gỡ, và phải ổn định 15 giây mới được đưa trở lại, tránh hiện tượng chập chờn (flapping). Nên chọn 2 địa chỉ đích khác nhau cho 2 line để một sự cố ở đích không làm cả hai cùng báo down.
⚠️ Bắt buộc: thêm host route cố định cho 2 địa chỉ probe. Tham số
source-interfacechỉ chọn IP nguồn, không ép gói tin đi ra đúng line. Khi có 2 default route cùng metric, probe của ISP1 có thể bị chia ra đi qua ISP2 và ngược lại, dẫn đến báo down giả hoặc line đứt mà vẫn báo up. Cách xử lý là gắn mỗi địa chỉ probe vào đúng một line bằng route /32 không gắn track:
CISCO(config)# ip route 8.8.8.8 255.255.255.255 Dialer1 CISCO(config)# ip route 1.1.1.1 255.255.255.255 Dialer2
Route /32 này không được gắn track, để khi default route của line bị gỡ thì probe vẫn đi ra đúng line đó và router biết khi nào line hoạt động trở lại.
Bước 5: Default route theo track
Cân bằng tải (cả 2 line cùng chạy, mất line nào thì tự bỏ line đó):
CISCO(config)# ip route 0.0.0.0 0.0.0.0 Dialer1 track 100 CISCO(config)# ip route 0.0.0.0 0.0.0.0 Dialer2 track 200
Chỉ dự phòng (ISP1 chạy chính, ISP2 chỉ dùng khi ISP1 mất), đặt AD cao hơn cho đường dự phòng:
CISCO(config)# ip route 0.0.0.0 0.0.0.0 Dialer1 track 100 CISCO(config)# ip route 0.0.0.0 0.0.0.0 Dialer2 10 track 200
Lưu ý về cách chia tải: ECMP trên router Cisco chia theo từng đích đến. Một kết nối hay một lượt tải file lớn vẫn chỉ đi trên một line, nên băng thông 2 line không cộng gộp cho một luồng đơn lẻ. Mô hình này hiệu quả khi có nhiều người dùng và nhiều kết nối song song. Nếu hai line chênh lệch băng thông nhiều hoặc cần chia theo chính sách (ví dụ VLAN kế toán đi ISP1, VLAN khách đi ISP2), nên dùng Policy-Based Routing (xem Multi-WAN theo ứng dụng với NBAR2 + PBR + IP SLA) hoặc thiết bị chuyên dụng như Peplink.
Bước 6: Public dịch vụ web ra Internet qua 2 WAN
Tạo route-map xác định gói tin vào từ line nào:
CISCO(config)# route-map isp1static permit 10 CISCO(config-route-map)# match interface Dialer1 CISCO(config)# route-map isp2static permit 10 CISCO(config-route-map)# match interface Dialer2
NAT tĩnh cổng 80 của web server (192.168.0.250) ra 2 địa chỉ IP public của 2 ISP:
CISCO(config)# ip nat inside source static tcp 192.168.0.250 80 203.0.113.10 80 route-map isp1static CISCO(config)# ip nat inside source static tcp 192.168.0.250 80 198.51.100.20 80 route-map isp2static
Thay
203.0.113.10và198.51.100.20bằng IP public tĩnh thật mà mỗi ISP cấp, và 2 địa chỉ này phải là IP mà Dialer tương ứng nhận được. Dùng route-map như trên để phản hồi của server luôn đi ngược ra đúng line mà yêu cầu đã đi vào.
🔒 Bảo mật: mở thẳng cổng 80 từ Internet vào server nội bộ. Nên giới hạn bằng ACL hoặc zone-based firewall trên cổng WAN, nên dùng HTTPS (443) thay vì HTTP, và đặt server trong VLAN riêng (DMZ), không để chung VLAN với máy người dùng.
3. Kiểm tra cấu hình
| Mục đích | Lệnh |
|---|---|
| Phiên PPPoE và địa chỉ IP nhận được | show ip interface brief, show pppoe session |
| Kết quả IP SLA | show ip sla statistics |
| Trạng thái track (Up/Down) | show track |
| Bảng định tuyến (thấy 2 default route) | show ip route 0.0.0.0 |
| Bảng NAT | show ip nat translations |
| Xem một đích đi ra line nào | show ip cef 8.8.4.4 internal |
Dấu hiệu cấu hình đúng: show track cho cả 2 track ở Up, show ip route có 2 default route qua Dialer1 và Dialer2, và show ip nat translations có entry NAT ở cả 2 IP của 2 line.
Thử failover: rút cáp (hoặc shutdown) cổng ISP1, sau khoảng 15 giây track 100 chuyển Down, default route qua Dialer1 biến mất và toàn bộ lưu lượng đi qua ISP2. Cắm lại cáp, sau khoảng 15 giây line quay trở lại.
4. Lỗi thường gặp
| Triệu chứng | Nguyên nhân thường gặp | Cách xử lý |
|---|---|---|
| Track báo Down dù line vẫn vào mạng được | Probe bị chia ra line còn lại, hoặc thiếu host route | Thêm route /32 cho 8.8.8.8 và 1.1.1.1 như bước 4 |
| Line đứt nhưng router vẫn gửi traffic vào | Chỉ dựa vào trạng thái interface, chưa gắn track | Gắn track vào default route |
| Một số website chậm hoặc không mở | MTU/MSS chưa chỉnh cho PPPoE | ip mtu 1492 trên Dialer, ip tcp adjust-mss 1452 trên LAN |
| Máy trong LAN ra Internet bị chập chờn | NAT chung, IP nguồn không khớp line đi ra | Dùng route-map NAT như bước 3 |
| Truy cập web server từ ngoài chỉ vào được qua 1 IP | Thiếu NAT tĩnh hoặc route-map cho line còn lại | Kiểm tra bước 6 cho cả 2 ISP |
| PPPoE không lên | Sai username/password hoặc sai phương thức PAP/CHAP | Xác nhận với ISP, xem debug ppp authentication |
5. Phương án track nhẹ hơn (tham khảo)
Nếu không cần kiểm tra ping ra Internet, có thể chỉ track trạng thái định tuyến của interface:
CISCO(config)# track 300 interface Dialer1 ip routing CISCO(config-track)# delay down 15 up 15
Cách này đơn giản nhưng chỉ phát hiện được khi interface down, không phát hiện được trường hợp phiên PPPoE vẫn sống nhưng Internet đã mất. Vì vậy trong triển khai thực tế nên dùng IP SLA như ở bước 4.
6. Câu hỏi thường gặp (FAQ)
Cân bằng tải 2 line có làm tốc độ tải file tăng gấp đôi không? Không với một luồng đơn lẻ. Router chia tải theo đích đến nên một kết nối chỉ đi trên một line. Băng thông được tận dụng khi có nhiều người dùng và nhiều kết nối đồng thời.
Mất một line thì người dùng có bị gián đoạn không? Các kết nối đang đi qua line bị mất sẽ đứt, nhưng sau khoảng 15 giây (theo delay down) router gỡ line đó và các kết nối mới sẽ đi qua line còn lại. Người dùng chỉ cần tải lại trang.
Dùng router nào cho mô hình này? Các dòng Cisco có hỗ trợ PPPoE client, IP SLA và NAT route-map, ví dụ Router Cisco ISR4000. Cần chọn model có thông lượng NAT đủ cho tổng băng thông 2 line.
Khi nào nên dùng thiết bị chuyên dụng thay vì router? Khi cần chia tải theo tỷ lệ băng thông, gộp nhiều line cho một luồng, hoặc quản lý tập trung nhiều chi nhánh. Xem giải pháp cân bằng tải Peplink.
Xem thêm
Comments
![]()
![]()
![]()
![]()
![]()
