Bird2 BGP как объявить подсети из того же ASN, но с другого маршрутизатора
Я пытаюсь узнать больше о BGP/IPv6, это моя цель:
В настоящее время для тестирования у меня есть виртуальная машина от провайдера, который предоставляет мне/44
сеть
Это текущая конфигурация этой виртуальной машины:
router id <IP of VM>;
define OWNASN = 1234;
protocol device {
scan time 10;
}
protocol direct {
ipv6;
interface "dummy*";
}
# templates
template bgp AS1234v6 {
local as OWNASN;
ipv6 {
import all;
export filter {
if net = 2a0e:87c0:620::/44 then accept;
reject;
};
};
graceful restart on;
}
protocol bgp VM1 from AS1234v6 {
neighbor <ipv6 of provider> as 1111;
source address <ipv6 of VM>;
}
protocol bgp VM2 from AS1234v6 {
description "test delegation";
neighbor <public IP ov VM2> as OWNASN;
source address <ipv6 of VM>;
}
Если в этой виртуальной машине я добавляю псевдоним к основному интерфейсу, что-то вроде:
ip -6 addr add 2a0e:87c0:620::1/64 dev eth0
Затем я могу пропинговать этот адрес с любого хоста, пока все хорошо, но теперь я хотел бы иметь 3 подсети:
- 2a0e:87c0:620:1::/64
- 2a0e:87c0:620:2::/64
- 2a0e:87c0:620:3::/64
Для тестирования и упрощения работы я заменяю туннель и pfsense с картинки выше на другую виртуальную машину.
В этой виртуальной машине я также установил Bird2 и использую следующую конфигурацию:
router id <public IP of VM>;
protocol device {
scan time 10;
}
protocol direct {
disabled;
}
protocol static my_routes {
ipv6;
route 2a0e:87c0:620:1::/64 reject;
}
filter export_my_routes {
if proto = "my_routes" then {
accept;
}
reject;
}
protocol bgp uplink0 {
local as 1234;
neighbor <public IP of VM1> as 1234;
source address <public IPv6>;
ipv6 {
import all;
export filter export_my_routes;
};
graceful restart on;
}
Благодаря этому мне удается установить сеанс:
$ birdc s p
BIRD 2.0.8 ready.
Name Proto Table State Since Info
device1 Device --- up 19:13:19.082
direct1 Direct --- down 19:13:19.082
my_routes Static master6 up 19:13:19.082
uplink0 BGP --- up 19:13:22.095 Established
Но если я добавлю псевдоним на эту новую виртуальную машину, я не смогу выполнить ping-запрос и получу эту ошибку:
From 2001:1900:5:4::189 icmp_seq=356 Time exceeded: Hop limit
А на основной ВМ (той, что от провайдера) я вижу теперь в логах:
Invalid NEXT_HOP attribute
Поэтому вам нужна помощь в том, как рекламировать сети от внутреннего маршрутизатора к внешнему, а также как затем настроить подсети на каждом устройстве, чтобы их можно было маршрутизировать? интересно, какой шлюз использовать? вероятноfe80::1%vtnet0
?