# Border Gateway Protocol (BGP)

BGP är ett protokoll som används för att byta ut rötter. Routrar konfigureras med tillhörighet i ett autonomt system (AS). Grannskap mellan AS konfigureras statiskt (minst 1 sida, andra kan vara konfigurerad att lyssna efter grannskapsförsök inom ett IP-spann) och kommunikation sker över TCP 179.

## Konfiguration

### Konfigurationsexempel

```
router bgp 65337
  router-id 10.10.10.10
  log-neighbor-changes
  address-family ipv4 unicast
    network 10.20.30.0/25
    aggregate-address 10.20.0.0/16 summary-only
  address-family ipv6 unicast
    network 2001:db8::/64
    aggregate-address 2001:db8::/48 summary-only
  neighbor 10.60.60.1
    bfd
    remote-as 65999
    description *** eBGP ***
    password 3 asdfasdfasdasfasd
    update-source loopback1
    ttl-security hops 1
    timers 5 20
    address-family ipv6 unicast
      next-hop-self
      route-map BGP_ROUTE_MAP in
      route-map BGP_ROUTE_MAP out
      unsuppress-map UNSUPPRESS_MAP
      maximum-prefix 10000 75 restart 1
```

### Unsuppress map

En unsuppress map används för att kunna annonsera specifika prefix när man annonserar en summering med **aggregate-address**. Det är en vanlig route-map som förmodligen pekar på en prefix-lista.

```
route-map UNSUPPRESS_MAP permit 10
  match ip address prefix-list UNSUPPRESS_IPV4 

ip prefix-list UNSUPPRESS_IPV4 seq 5 permit 10.0.0.0/8 le 32 
```

### TTL-Security

TTL-Security är en säkerhetsfunktion för att skydda mot spoofade BGP-attacker. TTL security konfigureras med antal hops till grannen. Vid ett hop blir TTL 255, allting lägre än det droppas. 2 blir 254 und so weiter.

### AS-Path Filter

Filter kan användas för att verifiera as-path innan installation av rötter sker. AS-path acces-listor med regex används.

Exempel:

<table border="1" id="bkmrk-konf-f%C3%B6rklaring-ip-a" style="border-collapse: collapse; width: 100%; height: 119.2px;"><colgroup><col style="width: 50%;"></col><col style="width: 50%;"></col></colgroup><tbody><tr style="height: 29.8px;"><td style="height: 29.8px;">Konf  
</td><td style="height: 29.8px;">Förklaring  
</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">ip as-path access-list 10 seq 5 permit "^$"</td><td style="height: 29.8px;">Matha enbart prefix som annonseras från lokala routern  
</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">ip as-path access-list 20 seq 5 permit "^1337\_"</td><td style="height: 29.8px;">Senaste AS måste vara 1337  
</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">ip as-path access-list 30 seq 5 permit "^1257$"</td><td style="height: 29.8px;">Annonserande AS måste vara 1337</td></tr></tbody></table>