> ## Documentation Index
> Fetch the complete documentation index at: https://docs.digitalfyre.com/llms.txt
> Use this file to discover all available pages before exploring further.

# BGP Daemon Configuration

> [!WARNING]
>
> These are reference examples only. Replace all placeholder values (ASN, IPs, prefixes) with your actual information provided during session setup. Review and test thoroughly before deploying in production.

Below are example configurations for establishing a BGP session with DigitalFyre using common BGP daemons. These examples export your prefixes and import nothing — DigitalFyre announces a default route only and your VPS already has default connectivity.

## Placeholder Values

Replace all placeholders below with the actual values provided during your session setup.

| Placeholder | Description |
| - | - |
| `64512` | Your ASN |
| `192.168.66.42` | Your server's IPv4 address |
| `10.100.42.66` | DigitalFyre BGP neighbor IPv4 |
| `192.168.254.0/24` | Your IPv4 prefix |
| `bdee:f261:1c43:0486:feb7:b7d1:62e5:22a6` | Your server's IPv6 address |
| `2361:f2e9:eae4:6022:d372:f7e0:7a4e:acbe` | DigitalFyre BGP neighbor IPv6 |
| `4675:505d:3940::/48` | Your IPv6 prefix |

***

## BIRD

For full reference and advanced options, consult the official [BIRD documentation](https://bird.network.cz/?get_doc).

**IPv4**

```text title="/etc/bird.conf" theme={"theme":{"light":"light-plus","dark":"ayu-dark"}}
router id 192.168.66.42;                                        # Server IPv4

protocol bgp digitalfyre_ipv4
{
    local as 64512;                                             # Your ASN
    source address 192.168.66.42;                               # Server IPv4
    ipv4 {
        import none;
        export where net ~ [192.168.254.0/24];                  # Your IPv4 Prefix
    };
    graceful restart on;
    multihop 2;
    neighbor 10.100.42.66 as 64245;                             # BGP Neighbor IPv4
}
```

**IPv6**

```text title="/etc/bird.conf" theme={"theme":{"light":"light-plus","dark":"ayu-dark"}}
router id 192.168.66.42;                                        # Server IPv4 (router ID is always IPv4)

protocol bgp digitalfyre_ipv6
{
    local as 64512;                                             # Your ASN
    source address bdee:f261:1c43:0486:feb7:b7d1:62e5:22a6;    # Server IPv6
    ipv6 {
        import none;
        export where net ~ [4675:505d:3940::/48];               # Your IPv6 Prefix
    };
    graceful restart on;
    multihop 2;
    neighbor 2361:f2e9:eae4:6022:d372:f7e0:7a4e:acbe as 64245; # BGP Neighbor IPv6
}
```

***

## FRRouting

For full reference and advanced options, consult the official [FRRouting documentation](https://docs.frrouting.org/).

**IPv4**

```text title="/etc/frr/frr.conf" theme={"theme":{"light":"light-plus","dark":"ayu-dark"}}
frr defaults traditional
hostname your-hostname
!
router bgp 64512                                                ! Your ASN
 bgp router-id 192.168.66.42                                   ! Server IPv4
 no bgp ebgp-requires-policy
 !
 neighbor 10.100.42.66 remote-as 64245                         ! BGP Neighbor IPv4
 neighbor 10.100.42.66 ebgp-multihop 2
 neighbor 10.100.42.66 update-source 192.168.66.42             ! Server IPv4
 !
 address-family ipv4 unicast
  network 192.168.254.0/24                                     ! Your IPv4 Prefix
  neighbor 10.100.42.66 activate
  neighbor 10.100.42.66 route-map DF-IMPORT in
  neighbor 10.100.42.66 route-map DF-EXPORT out
 exit-address-family
!
ip prefix-list ANNOUNCE-V4 seq 10 permit 192.168.254.0/24      ! Your IPv4 Prefix
!
route-map DF-IMPORT deny 10
!
route-map DF-EXPORT permit 10
 match ip address prefix-list ANNOUNCE-V4
route-map DF-EXPORT deny 20
!
```

**IPv6**

```text title="/etc/frr/frr.conf" theme={"theme":{"light":"light-plus","dark":"ayu-dark"}}
frr defaults traditional
hostname your-hostname
!
router bgp 64512                                                ! Your ASN
 bgp router-id 192.168.66.42                                   ! Server IPv4 (router ID is always IPv4)
 no bgp ebgp-requires-policy
 !
 neighbor 2361:f2e9:eae4:6022:d372:f7e0:7a4e:acbe remote-as 64245
 neighbor 2361:f2e9:eae4:6022:d372:f7e0:7a4e:acbe ebgp-multihop 2
 neighbor 2361:f2e9:eae4:6022:d372:f7e0:7a4e:acbe update-source bdee:f261:1c43:0486:feb7:b7d1:62e5:22a6
 !
 address-family ipv6 unicast
  network 4675:505d:3940::/48                                   ! Your IPv6 Prefix
  neighbor 2361:f2e9:eae4:6022:d372:f7e0:7a4e:acbe activate
  neighbor 2361:f2e9:eae4:6022:d372:f7e0:7a4e:acbe route-map DF-IMPORT-V6 in
  neighbor 2361:f2e9:eae4:6022:d372:f7e0:7a4e:acbe route-map DF-EXPORT-V6 out
 exit-address-family
!
ipv6 prefix-list ANNOUNCE-V6 seq 10 permit 4675:505d:3940::/48 ! Your IPv6 Prefix
!
route-map DF-IMPORT-V6 deny 10
!
route-map DF-EXPORT-V6 permit 10
 match ipv6 address prefix-list ANNOUNCE-V6
route-map DF-EXPORT-V6 deny 20
!
```

***

## OpenBGPD

For full reference and advanced options, consult the official [OpenBGPD documentation](https://man.openbsd.org/bgpd.conf).

**IPv4**

```text title="/etc/bgpd.conf" theme={"theme":{"light":"light-plus","dark":"ayu-dark"}}
AS 64512                                                        # Your ASN
router-id 192.168.66.42                                         # Server IPv4

network 192.168.254.0/24                                        # Your IPv4 Prefix

neighbor 10.100.42.66 {                                         # BGP Neighbor IPv4
    descr "DigitalFyre IPv4"
    remote-as 64245
    multihop 2
    local-address 192.168.66.42                                 # Server IPv4
}

deny from any                                                   # Import nothing
deny to any                                                     # Deny all exports by default
allow to 10.100.42.66 prefix 192.168.254.0/24                   # Allow your prefix
```

**IPv6**

```text title="/etc/bgpd.conf" theme={"theme":{"light":"light-plus","dark":"ayu-dark"}}
AS 64512                                                        # Your ASN
router-id 192.168.66.42                                         # Server IPv4 (router ID is always IPv4)

network 4675:505d:3940::/48                                     # Your IPv6 Prefix

neighbor 2361:f2e9:eae4:6022:d372:f7e0:7a4e:acbe {             # BGP Neighbor IPv6
    descr "DigitalFyre IPv6"
    remote-as 64245
    multihop 2
    local-address bdee:f261:1c43:0486:feb7:b7d1:62e5:22a6      # Server IPv6
}

deny from any                                                   # Import nothing
deny to any                                                     # Deny all exports by default
allow to 2361:f2e9:eae4:6022:d372:f7e0:7a4e:acbe prefix 4675:505d:3940::/48
```

***

## Verifying Your Session

After configuring your BGP daemon and starting the service, verify the session is established and your prefixes are being announced.

| Daemon | Command |
| - | - |
| BIRD | `birdc show protocols all digitalfyre_ipv4` |
| FRRouting | `vtysh -c "show bgp summary"` |
| OpenBGPD | `bgpctl show neighbor` |

You can also verify your prefix announcements externally using [bgp.tools](https://bgp.tools/) or [ASN.tools](https://asn.tools/).

> [!NOTE]
>
> DigitalFyre's BGP service is fully self-managed. If you encounter session issues, verify your configuration locally before contacting support. Common issues include incorrect neighbor addresses, missing RPKI ROAs, and firewall rules blocking TCP port 179.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.