Hướng dẫn cấu hình Filter Based Forwarding trên Firewall SRX cho mô hình có 2 kết nối ISP

Danh sách nội dung [Ẩn]

Hướng dẫn cấu hình Filter Based Forwarding trên Firewall SRX cho mô hình có 2 kết nối ISP

Mô tả

Để định tuyến các loại lưu lượng khác nhau ra khỏi các giao diện khác nhau, trên Junos có một tính năng gọi là Filter Based Forwarding (FBF). Bài viết này trình bày ví dụ về cấu hình FBF trong trường hợp ISP kép . Ví dụ sau đây cho thấy cách cấu hình FBF cho một kịch bản phổ biến. Trong kịch bản này, các máy chủ trên mạng LAN nội bộ kết nối với internet bằng hai ISP khác nhau. FBF có thể được sử dụng để chọn lưu lượng nào sẽ được gửi đến ISP nào. Điều này có thể được sử dụng để cung cấp cân bằng tải và dự phòng.

Để triển khai kịch bản này, một bộ lọc tường lửa đầu vào sẽ được cấu hình trên giao diện LAN nội bộ (ge-0/0/0.0 trong trường hợp này). Bộ lọc này sẽ được sử dụng để chuyển tiếp lưu lượng đến một trong hai trường hợp định tuyến khác nhau (bảng định tuyến). Một bảng định tuyến có tuyến mặc định tốt nhất đến ISP1 và tuyến tốt thứ hai đến ISP2. Trong trường hợp định tuyến khác, các tùy chọn tuyến bị đảo ngược.

Khi một trong các giao diện ngừng hoạt động, tất cả các phiên mới sẽ đi qua giao diện vẫn đang hoạt động. Trong ví dụ này, lưu lượng được NAT nguồn đến địa chỉ IP của giao diện đi. Điều này sẽ đảm bảo rằng phản hồi từ máy chủ trên Internet sẽ quay trở lại cùng một giao diện một lần nữa và không có lưu lượng bất đối xứng nào tồn tại (điều này không được hỗ trợ trong cấu hình dựa trên luồng).

Bộ lọc ví dụ được sử dụng ở đây được sử dụng để gửi các gói có cổng đích là 22, 3389 hoặc 8080 đến ISP2 và các cổng còn lại đến ISP1. Cũng có thể chọn theo các tiêu chí khác nhau, chẳng hạn như địa chỉ IP nguồn hoặc đích. 

Cấu hình

interfaces {                           
    ge-0/0/0 {
        unit 0 {
            description Internal_LAN;
            family inet {
                filter {
                    input FILTER1;
                }
                address 172.30.72.253/23;
            }
        }
    }
    fe-0/0/2 {
        unit 0 {
            description ISP1;
            family inet {
                address 10.1.1.1/24;
            }
        }
    }
    fe-0/0/3 {
        unit 0 {
            description ISP2;
            family inet {
                address 10.2.2.1/24;   
            }
        }
    }
}




routing-options {
    interface-routes {
        rib-group inet IMPORT-PHY;
    }
    static {
        route 0.0.0.0/0 next-hop [ 10.1.1.2 10.2.2.2 ];
    }
    rib-groups {
        IMPORT-PHY {
            import-rib [ inet.0 routing-table-ISP1.inet.0 routing-table-ISP2.inet.0 ];
        }
    }
}




firewall {
    filter FILTER1 { 
       term mgmtallow { #This term is necessary for allowing managment traffic/host-inbound traffic.
            from {
                   destination-address 172.30.72.253/23;
               }
            then {
                   accept;
                }
           }                  
       term TERM1 {
            from {
                destination-port [ 22 3389 8080 ];
            }
            then {
                routing-instance routing-table-ISP2;
            }
        }
        term default {
            then {
                routing-instance routing-table-ISP1;
            }
        }
    }
}

routing-instances {
    routing-table-ISP1 {
        instance-type forwarding;
        routing-options {
            static {
                route 0.0.0.0/0 {
                    next-hop 10.1.1.2;
                    qualified-next-hop 10.2.2.2 {
                        preference 100;
                    }
                }
            }
        }
    }
    routing-table-ISP2 {
        instance-type forwarding;
        routing-options {
            static {
                route 0.0.0.0/0 {
                    next-hop 10.2.2.2;
                    qualified-next-hop 10.1.1.2 {
                        preference 100;
                    }                  
                }
            }
        }
    }
}




security {
    nat {
        source {
            rule-set OUTGOING {
                from zone trust;
                to zone untrust;
                rule rule1 {
                    match {
                        source-address 0.0.0.0/0;
                    }
                    then {
                        source-nat {
                            interface;
                        }
                    }
                }
            }
        }
    }

    zones {
        security-zone trust {
            tcp-rst;
            host-inbound-traffic {
                system-services {      
                    all;
                }
            }
            interfaces {
                ge-0/0/0.0;
            }
        }
        security-zone untrust {
            screen untrust-screen;
            interfaces {
                fe-0/0/2.0;
                fe-0/0/3.0;
            }
        }


    policies {
        from-zone trust to-zone untrust {
            policy default-permit {
                match {
                    source-address any;
                    destination-address any;
                    application any;
                }
                then {
                    permit;
                }
            }
        }

 

Chúc các bạn thực hiện thành công. Hi vọng bài viết này sẽ giúp ích cho các bạn trong công việc. Nếu bạn có vấn đề gì thắc mắc đừng ngần ngại liên hệ với chúng tôi theo thông tin dưới đây để được hỗ trợ thêm.

Hẹn gặp lại các bạn trong các bài viết tiếp theo !

 

CÔNG TY CỔ PHẦN DỊCH VỤ CÔNG NGHỆ DATECH

• Địa chỉ: Số 23E4 KĐT Cầu Diễn, Tổ 7, Phú Diễn, Bắc Từ Liêm, Hà Nội

• Điện thoại: 02432012368

• Hotline: 098 115 6699

• Email: info@datech.vn

• Website: https://datech.vn