Hướng dẫn này giúp các bạn cấu hình FTTH - PPPoE load balancing / failover giữa 2 kết nối WAN trên 1 thiết bị router Cisco. Ngoài ra, hướng dẫn này cũng giúp bạn biết cách public 1 dịch vụ từ mạng LAN ra ngoài Internet trên cả 2 kết nối WAN này.

Để cấu hình FTTH - PPPoE trên các thiết bị router Cisco, chúng ta cần chuẩn bị các thông tin sau:

- Username nhà mạng cung cấp, ví dụ: ftth_myUsername_ISPX
- Password nhà mạng cung cấp, ví dụ: ftth_myPassowrd_ISPX
(X là biến với giá trị 1 hoặc 2. Tương ứng với thông tin PPPoE của 2 nhà cung cấp đường truyền)

Ngoài ra, để public dịch vụ ra Internet, thông thường chúng ta phải có IP WAN tĩnh. Trong ví dụ này IP WAN tĩnh của 2 nhà mạng cấp cho chúng ta là:

- ISP1: 118.69.53.32
- ISP2: 112.213.89.79

Chú ý, đối với nhà mạng FTP, ngoài username, password của PPPoE, nhà mạng FPT còn chứng thực thêm MAC address của Khách hàng. Do đó, sau khi cấu hình xong, bạn phải điện thoại nhờ FPT cập nhật địa chỉ MAC trên hệ thống của họ.

Các bước thực hiện:

- Định nghĩa Interface LAN
- Định nghĩa Interface WAN
- Định nghĩa Dialer Interface, dùng để kết nối PPPoE đến nhà mạng 2 nhà mạng.
- Định nghĩa NAT để người dùng trong mạng LAN có thể truy cập Internet trên 2 kết nối WAN
- Định nghĩa các track của 2 WAN trạng thái up và down của 2 WAN để định tuyến dữ liệu từ LAN ra WAN.
- Định nghĩa IP routing
- Định nghĩa static NAT để public dịch vụ Web trong mạng LAN ra ngoài Internet thông qua 2 kết nối WAN

Sau đây là các bước thực hiện tuần tự:

CISCO(config)# interface GigabitEthernet0/0
CISCO(config-if)#description #LAN Interface#
CISCO(config-if)#ip address 192.168.1.1
CISCO(config-if)#no shutdown
CISCO(config-if)#ip nat inside

CISCO(config)# interface GigabitEthernet0/1
CISCO(config-if)#description #WAN 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 #WAN 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

CISCO(config)# interface dialer 1
CISCO(config-if)#description #Dialer interface to ISP 1#
CISCO(config-if)#ip mtu 1492
CISCO(config-if)# dialer pool 1
CISCO(config-if)# encapsulation ppp
CISCO(config-if)# ip address negotiated
CISCO(config-if)#ip nat outside
CISCO(config-if)#ppp pap sent-username ftth_myUsername_ISP1 password 0 ftth_myPassword_ISP1

CISCO(config)# interface dialer 2
CISCO(config-if)#description #Dialer interface to ISP 2#
CISCO(config-if)#ip mtu 1492
CISCO(config-if)# dialer pool 2
CISCO(config-if)# encapsulation ppp
CISCO(config-if)# ip address negotiated
CISCO(config-if)#ip nat outside
CISCO(config-if)#ppp pap sent-username ftth_myUsername_ISP2 password 0 ftth_myPassword_ISP2


CISCO(config)#access-list 100 permit ip 192.168.1.0 0.0.0.255 any


CISCO(config)#route-map isp1 permit 10
CISCO(config-route-map)#match ip address 100
CISCO(config-router-map)#match interface Dialer 1


CISCO(config)#route-map isp2 permit 20
CISCO(config-route-map)#match ip address 100
CISCO(config-router-map)#match interface Dialer 2


CISCO(config)#ip nat inside source route-map isp1 interface Dialer 1 overload
CISCO(config)#ip nat inside source route-map isp2 interface Dialer 2 overload

//Tạo Tracking-Object cho Dialer 1
CISCO(config)#ip sla monitor 100
CISCO(config-sla-monitor)#type echo protocol ipIcmpEcho 8.8.8.8 source-interface Dialer 1
CISCO(config-sla-monitor)#timeout 500
CISCO(config-sla-monitor)#frequency 3
//Tracking-Object ping Google dns 8.8.8.8 qua interface Dialer 1 mỗi 3 giây và timeout sau 500ms không nhận được response.

//Lâp lịch cho Tracking-Object thực thi tức thì và liên tục
CISCO(config)#ip sla monitor schedule 100 life forever start-time now

//Track đối tượng Tracking-Object ở trên
CISCO(config)#track 100 rtr 100 reachability
CISCO(config-track)#delay down 10 up 20

//Tạo Tracking-Object cho Dialer 2
CISCO(config)#ip sla monitor 200
CISCO(config-sla-monitor)#type echo protocol ipIcmpEcho 8.8.8.8 source-interface Dialer 2
CISCO(config-sla-monitor)#timeout 500
CISCO(config-sla-monitor)#frequency 3
//Tracking-Object ping Google dns 8.8.8.8 qua interface Dialer 2 mỗi 3 giây và timeout sau 500ms không nhận được response.

//Lâp lịch cho Tracking-Object thực thi tức thì và liên tục
CISCO(config)#ip sla monitor schedule 200 life forever start-time now

//Track đối tượng Tracking-Object ở trên
CISCO(config)#track 200 rtr 200 reachability
CISCO(config-track)#delay down 10 up 20


CISCO(config)#ip route 0.0.0.0 0.0.0.0 Dialer 1 track 100
CISCO(config)#ip route 0.0.0.0 0.0.0.0 Dialer 2 track 200

//Publish dịch vụ web ra Internet qua 2 WAN IP.
CISCO(config)#route-map isp1static permit 10
CISCO(config-route-map)#match interface Dialer 1

CISCO(config)#route-map isp2static permit 10
CISCO(config-route-map)#match interface Dialer 2

CISCO(config)#ip nat inside source static tcp 192.168.1.100 80 118.69.53.32 80 route-map isp1static
CISCO(config)#ip nat inside source static tcp 192.168.1.100 80 112.213.89.79 80 route-map isp2static

Bên dưới là các lệnh dùng để troubleshooting cấu hinh PPPoE, NAT và tài liệu tham khảo:

CISCO(config)#show ip interface brief
CISCO(config)#show ip nat translation
CISCO(config)#debug ppp authentication

Ngoài ra, để load balancing trên 2 đường truyền WAN cho WEB server, các bạn cần cấu hình record www và A cho cả 2 IP WAN của mình.

Tài liệu tham khảo:
- NAT failover with DUAL ISP on a router Configuration Example.
- Configuring WAN Interface Failover in Cisco IOS
- Cấu hình FTTH - PPPoE trên thiết bị router Cisco

Các bạn cần hỗ trợ dịch vụ, thiết bị mạng Cisco, liên hệ với chung tôi tại http://switch-router.com/contact/