EdgeMAX - roteamento de porta de destino baseado em políticas

Visão geral


Os leitores aprenderão a configurar a política de roteamento baseado no porto de destino / endereço. 

 

O exemplo de roteamento de política-baseado em borda OS política de roteamento demonstra uma política de fonte com base onde a tabela de roteamento foi escolhida com base no endereço fonte do pacote. Para esta página wiki nós usaremos PBR para tomar uma decisão de roteamento baseada na porta de destino.

 

PBR2.png
Diagrama de rede de exemplo para configurar PBR de acordo com o destino.

 

No diagrama acima, existem 2 conexões WAN rotuladas, ISP-1 e 2-ISP:

  1. ISP-1 na eth0 192.0.2.0/24
  2. ISP-2 na eth1 203.0.113.0/24


Do lado de LAN:

  1. ETH2 172.16.0.0/24

Para este exemplo, nós queremos o tráfego do porto de destino 80 e 443 para ISP-1 e todos os outros tráfegos usam ISP-2.

  

Tabelas de roteamento

Estamos usando as mesmas tabelas de roteamento a partir de borda OS política baseado roteamento onde a tabela de roteamento "principal" tem uma rota padrão para ambos do ISP, tabela 1 tem apenas uma rota para ISP1 e tabela 2 tem apenas um caminho para o ISP2:

ubnt@PBR# show protocols static 
 route 0.0.0.0/0 {
     next-hop 192.0.2.1 {
     }
     next-hop 203.0.113.1 {
     }
 }
 table 1 {
     route 0.0.0.0/0 {
         next-hop 192.0.2.1 {
         }
     }
 }
 table 2 {
     route 0.0.0.0/0 {
         next-hop 203.0.113.1 {
         }
     }
 }

 

Destino, com base em política

firewall {
    modify DEST_PORT_ROUTE {
        rule 1 {
            action modify
            description "use table 1 to route for ports 80 & 443"
            destination {
                port 80,443
            }
            modify {
                table 1
            }
            protocol tcp
        }
        rule 2 {
            action modify
            description "use table 2 to route for everything else"
            modify {
                table 2
            }
        }
    }
}

 

Aplicar a Interface

ubnt@PBR# show interfaces ethernet eth2
 address 172.16.0.1/24
 duplex auto
 firewall {
     in {
         modify DEST_PORT_ROUTE
     }
 }
 speed auto
[edit]

 

Exemplo de configuração

 
 firewall {
     modify DEST_PORT_ROUTE {
         rule 1 {
            action modify
            description "use table 1 to route for ports 80 & 443"
            destination {
                port 80,443
            }
            modify {
                table 1
            }
            protocol tcp
        }
        rule 2 {
            action modify
            description "use table 2 to route for everything else"
            modify {
                table 2
            }
        }
    }
 }
 interfaces {
    ethernet eth0 {
        address 192.0.2.2/24
        duplex auto
        speed auto
    }
    ethernet eth1 {
        address 203.0.113.2/24
        duplex auto
        speed auto
    }
    ethernet eth2 {
        address 172.16.0.1/24
        duplex auto
        firewall {
            in {
                modify DEST_PORT_ROUTE
            }
        }
        speed auto
    }
    loopback lo {
    }
 }
 protocols {
    static {
        route 0.0.0.0/0 {
            next-hop 192.0.2.1 {
            }
            next-hop 203.0.113.1 {
            }
        }
        table 1 {
            route 0.0.0.0/0 {
                next-hop 192.0.2.1 {
                }
            }
        }
        table 2 {
            route 0.0.0.0/0 {
                next-hop 203.0.113.1 {
                }
            }
        }
    }
 }
 service {
    dhcp-server {
        shared-network-name LAN {
            subnet 172.16.0.0/24 {
                default-router 172.16.0.1
                dns-server 8.8.8.8
                lease 86400
                start 172.16.0.10 {
                    stop 172.16.0.100
                }
            }
        }
    }
    gui {
        https-port 443
    }
    nat {
        rule 5000 {
            outbound-interface eth0
            type masquerade
        }
        rule 6000 {
            outbound-interface eth1
            type masquerade
        }
    }
    ssh {
        port 22
        protocol-version v2
    }
 }
 system {
    host-name PBR
    login {
        user ubnt {
            authentication {
                encrypted-password $1$zKNoUbAo$gomzUbYvgyUMcD436Wo66.
            }
            level admin
        }
    }
    name-server 8.8.8.8
    ntp {
        server 0.ubnt.pool.ntp.org {
        }
        server 1.ubnt.pool.ntp.org {
        }
        server 2.ubnt.pool.ntp.org {
        }
        server 3.ubnt.pool.ntp.org {
        }
    }
    syslog {
        global {
            facility all {
                level notice
            }
            facility protocols {
                level debug
            }
        }
    }
    time-zone UTC
 }


 /* Warning: Do not remove the following line. */
 /* === vyatta-config-version: "config-management@1:dhcp-relay@1:dhcp-server@4:firewall@4:ipsec@3:nat@3:qos@1:quagga@2:system@4:ubnt- pptp@1:vrrp@1:webgui@1:webproxy@1:zone-policy@1" === */
 /* Release version: v1.1.0beta3.4539683.130226.1056 */
Powered by Zendesk