BGP tunnel configuration
There are two options to proceed with tunnel setup:
Static route setup
Debian like client side configuration:
[Static tunnel configuration] # tunnel to RR2 iface tun0 inet static address 192.168.21.3 netmask 255.255.255.248 pointopoint 192.168.21.2 pre-up iptunnel add tun0 mode gre local EXT_TENDO_IP remote EXT_CLIENT_IP ttl 255 mtu 1500 # add default route via tunnel ip route add 0.0.0.0/0 dev tun0
Where EXT_CLIENT_IP is client's external IP and EXT_TENDO_IP is our tunnelling server external IP. 192.168.21.3 is an IP from point-to-point subnet assinged by Tendo upon service request.
Dynamic (BGP) setup
This option lets you configure a redundant gateway. This way you announce given subnet from your own BGP router. It is recommended when client needs very high service uptime guarantees.
Debian and quagga bgp daemon configuration:
[Tunnels for dynamic BGP configuration] # tunnel to RR1 iface tun0 inet static address 192.168.21.3 netmask 255.255.255.248 pointopoint 192.168.21.1 pre-up iptunnel add tun0 mode gre local EXT_TENDO_IP remote EXT_CLIENT_IP ttl 255 mtu 1500 # tunnel to RR2 iface tun1 inet static address 192.168.21.3 netmask 255.255.255.248 pointopoint 192.168.21.2 pre-up iptunnel add tun1 mode gre local EXT_TENDO_IP remote EXT_CLIENT_IP ttl 255 mtu 1500 [BGP router configuration] router bgp 65110 bgp router-id 88.216.164.2 bgp network import-check network 88.216.164.0/22 neighbor 192.168.21.1 remote-as 65006 neighbor 192.168.21.1 description RR1 neighbor 192.168.21.1 soft-reconfiguration inbound neighbor 192.168.21.2 remote-as 65006 neighbor 192.168.21.2 description RR2 neighbor 192.168.21.2 soft-reconfiguration inbound !
Diagram depicting dynamic (BGP) setup .