Функция 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.
/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
Рекомендуем добавить данные команды в скрипт, после чего добавить скрипт в автозапуск.
/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 !