Пример настройки Soft-Router (FRR) для BRAS L2-Connected

Функция Soft-Router используется для анонсирования подсетей NAT Pool и IP адресов авторизированных абонентов для BRAS L2-connected с помощью протоколов динамической маршрутизации (BGP, OSPF, IS-IS). Принцип работы и настройка описана в разделе Роутер

Описание сценария:

СКАТ (2x10G in порта, 2х10G out порта) включен в разрыв 2х10G линков, которые объединены в LAG. СКАТ настроен в режиме BRAS L2 PPPoE и созданы NAT Pool 100.0.0.0/24.

В этом сценарии будем исходить из того, что стыковочная сеть - 192.168.123.64/30, ip со стороны СКАТ - 192.168.123.65, ip со стороны вышестоящего маршрутизатора - 192.168.123.66, ASN 65501 и 65502 соответственно. В качестве роутера приведем настройку frr как роутера с CLI, наиболее похожим на обычный и знакомый операторам cisco-like. В качестве интерфейса, с которого будет отводиться трафик, указан out-интерфейс СКАТ, в данном случае 13-00.0.

Настройка СКАТ (FastDPI):

/etc/dpi/fastdpi.conf:

router=1
router_kernel_table=254
router_subs_announce=6
router_netns=router
router_device {

device=13-00.0
tap=dpi
peer=rib
subnet=192.168.123.65/30
subnet=224.0.0.5/32
subnet=224.0.0.6/32
}  

Настройка netns:

ip netns add router
ip link add dpi type veth peer name rib netns router
ip netns exec router ip address add 192.168.123.65/30 dev rib
ip netns exec router ip link set dev rib arp on
ip netns exec router ethtool -K rib tx off
ip link set dev dpi arp off
echo 1>/proc/sys/net/ipv6/conf/dpi/disable_ipv6
ip link set dpi up
ip netns exec router ip link set lo up
ip netns exec router ip link set rib up
firewall-cmd --zone=internal --add-source=192.168.123.65/24
firewall-cmd --zone=internal --add-rich-rule='rule family=ipv4 source address=192.168.123.65/24 accept

Рекомендуем добавить данные команды в скрипт, после чего добавить скрипт в автозапуск.

Настройка демонов FRR:

/etc/frr/daemons:

bgpd=yes
ospfd=yes
ospf6d=yes
ripd=no
ripngd=no
isisd=no
pimd=no
nhrpd=no
eigrpd=no
sharpd=no
pbrd=no
bfdd=no
fabricd=no
vrrpd=no

vtysh_enable=yes
zebra_options="  -A 127.0.0.1 -s 90000000 --vrfwnetns"
bgpd_options="   -A 127.0.0.1"
ospfd_options="  -A 127.0.0.1"
ospf6d_options=" -A ::1"
ripd_options="   -A 127.0.0.1"
ripngd_options=" -A ::1"
isisd_options="  -A 127.0.0.1"
pimd_options="   -A 127.0.0.1"
nhrpd_options="  -A 127.0.0.1"
eigrpd_options=" -A 127.0.0.1"
sharpd_options=" -A 127.0.0.1"
pbrd_options="   -A 127.0.0.1"
staticd_options="-A 127.0.0.1"
bfdd_options="   -A 127.0.0.1"
fabricd_options="-A 127.0.0.1"
vrrpd_options="  -A 127.0.0.1"

Настройка FRR (OSPF):

/etc/frr/frr.conf:

frr version 7.5
frr defaults traditional
hostname bras-demo-01
no ip forwarding
no ipv6 forwarding
no service integrated-vtysh-config
!
vrf router
 netns /run/netns/router
 exit-vrf
!
router ospf vrf router
 network 192.168.123.0/24 area 0
!
line vty
!

Настройка FRR (BGP):

/etc/frr/frr.conf

frr version 7.5
frr defaults traditional
hostname bras-demo-01
log file /var/log/frr/debug.log
log syslog
no ip forwarding
no ipv6 forwarding
service integrated-vtysh-config
!
router bgp 65501 vrf router
 bgp router-id 192.168.123.65
 neighbor 192.168.123.66 remote-as 65502
 !
 address-family ipv4 unicast
  redistribute kernel
  neighbor 192.168.123.66 route-map PERMIT_ALL in
  neighbor 192.168.123.66 route-map PERMIT_ALL out
  neighbor 192.168.123.66 soft-reconfiguration inbound
 exit address-family
!
route-map PERMIT_ALL permit 10
!
line vty
!