Existem várias maneiras de realizar o que você deseja e, sim, adicionar o seu próprio AS às rotas (prefixos) que você anuncia para o ISP, além de definir um LOCAL_PREF para os que você (irá) anunciar novamente internamente é um bom ponto.
Basicamente, você precisa:
- Faça os prefixos (rotas) que você anuncia através do R1 preferido para ISPA ( influenciando o caminho de entrada ).
- Faça todos os prefixos recebidos do ISPA em R1 (incluindo a rota padrão - supondo que você não use rotas estáticas) preferidos para a sua rede interna ( influenciando o caminho de saída ). Uma pequena nota aqui: como os hosts finais usam o gateway padrão e não executam o roteamento, cabe ao VRRP direcionar pacotes de hosts finais para R1 , mas de qualquer maneira você pode obter isso mesmo se os pacotes chegarem em R2, R2 encaminhará esses pacotes para R1 em vez de ISPB.
Para o ponto 1, MED, AS prepending, communities, etc. são métricas possíveis (isto é, atributos BGP) para ajustar, mas o que funcionará sem modificação do lado remoto é o PRE mais provável (ex. MED pode Exigir uma declaração como "bgp always-compare-med" no roteador ISP talvez, dependendo da configuração deles.
Para o ponto 2, LOCAL_PREF e WEIGHT podem ser usados (também comunidades e outras técnicas com as quais não nos importamos neste caso). O WEIGHT é de propriedade da Cisco (mas o Quagga o utiliza), e também não está incluído nas atualizações do BGP (localmente significativas), então eu prefiro o LOCAL_PREF (que funciona com o iBGP que você ainda não possui).
Tendo dito isso, para alcançar o netdc.com como você deseja, uma opção é:
#
# R1
#
router bgp 65007
bgp router-id 10.1.1.2
network 192.168.1.0/25
neighbor 10.1.1.1 remote-as 558
neighbor 10.1.1.1 description Net
neighbor 10.1.1.1 soft-reconfiguration inbound
neighbor 10.1.1.1 route-map Net:In in
neighbor 10.1.1.1 route-map Net:Out out
neighbor iBGP_peers peer-group
neighbor iBGP_peers remote-as 65007
neighbor iBGP_peers password $whatyouwant
neighbor iBGP_peers update-source $IP #The interface in the common subnet 192.168.1.0/25, otherwise you need an internal routing protocol (IGP) also
neighbor iBGP_peers next-hop-self # Otherwise you need to advertise the p2p network between you and ISP
neighbor $IP_R2_in_192.168.1.0 peer-group iBGP_peers
neighbor $IP_R2_in_192.168.1.0 description R2
ip prefix-list local-allocations seq 10 permit 192.168.1.0/25
route-map Net:In
description allow everything
route-map Net:Out
description announce allocated routes sourced from our AS only (avoid to become a transit AS)
match ip address prefix-list local-allocations
#
# R2
#
router bgp 65007
bgp router-id 10.1.1.6
network 192.168.1.0/25
neighbor 10.1.1.5 remote-as 558
neighbor 10.1.1.5 description Net
neighbor 10.1.1.5 soft-reconfiguration inbound
neighbor 10.1.1.5 route-map Net:In_backup in
neighbor 10.1.1.5 route-map Net:Out_backup out
neighbor iBGP_peers peer-group
neighbor iBGP_peers remote-as 65007
neighbor iBGP_peers password $whatyouwant
neighbor iBGP_peers update-source $IP #The interface in the common subnet 192.168.1.0/25, otherwise you need an internal routing protocol (IGP) also
neighbor iBGP_peers next-hop-self # Otherwise you need to advertise the p2p network between you and ISP
neighbor $IP_R1_in_192.168.1.0 peer-group iBGP_peers
neighbor $IP_R1_in_192.168.1.0 description R1
ip prefix-list local-allocations seq 10 permit 192.168.1.0/25
route-map Net:In_backup
description iBGP will de-prefer all the prefixes
set local-preference 10
route-map Net:Out_backup
description announce allocated routes sourced from our AS only
match ip address prefix-list local-allocations
set as-path prepend 65007 65007 65007
Em uma nota lateral, a redistribuição é ruim se você puder evitá-la. Use o comando 'network' para anunciar seu prefixo (no Quagga você não precisa da sub-rede no seu RIB ao contrário da Cisco, melhor ainda que).