The Soft-Router feature is used to announce NAT Pool subnets and authorized subscriber IP addresses for BNG L2-connected using dynamic routing protocols (BGP, OSPF, IS-IS). The principle of operation and configuration is described in the Soft-Router section.
The SSG (2x10G in port, 2x10G out port) is implemented in-line of 2x10G links, which are aggregated in LAG. The SSG is configured in BRAS L2 PPPoE mode, NAT Pool 100.0.0.0/24 is created.
In this scenario we will assume that the docking network is 192.168.123.64/30, the IP on the SSG side is 192.168.123.65, the IP on the upstream router side is 192.168.123.66, ASN are 65501 and 65502 respectively. Let's configure FRR as a router with a CLI most similar to the usual and familiar to cisco-like operators. The out-interface of the SSG, in this case 13-00.0, is specified as the interface from which traffic will be diverted.
/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 }
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
We recommend adding these commands to the script and then adding the script to autorun.
/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"
/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 !
/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 !