FRRouting / frr

The FRRouting Protocol Suite
https://frrouting.org/
Other
3.28k stars 1.24k forks source link

FRR 5.0.2 bgp config lines in frr.conf not accepted after system boot #5536

Closed edvinaskairys closed 4 years ago

edvinaskairys commented 4 years ago

Hello,

After systemboot i'm getting bgp error (see it below):

systemctl status frr line 91: Failure to communicate[13] to bgpd, line: neighbor 10.130.13.10 shutdown

and as a consequence FRR turns UP the neighbor, even it was shutted down.

i'm using quite old FRR version (5.0.2) with Centos 7.6. Is there're anything i can do to avoid this type of behaviour ?

Thanks

qlyoung commented 4 years ago

Can you post the config snippet for that peer?

edvinaskairys commented 4 years ago

Can you post the config snippet for that peer?

router bgp 198xxx
 neighbor 10.130.13.10 remote-as 198xxx
 neighbor 10.130.13.10 description HK2RTR01
 neighbor 10.130.13.10 timers 10 30
 address-family ipv4 unicast
  neighbor 10.130.13.10 route-reflector-client
  neighbor 10.130.13.10 next-hop-self
  neighbor 10.130.13.10 soft-reconfiguration inbound
  neighbor 10.130.13.10 route-map ROUTEMAP_FROM_HK2 in
  neighbor 10.130.13.10 route-map ROUTEMAP_TO_HK2 out
  neighbor 10.130.13.10 weight 10
ton31337 commented 4 years ago

@from88 I just used such a config:

router bgp 100
 neighbor 10.0.0.3 remote-as 200
 neighbor 10.0.0.3 shutdown
!

Restarted frr, rebooted the VM, nothing I could see in error log:

[root@leaf1-centos-76 ~]# systemctl status frr
● frr.service - FRRouting (FRR)
   Loaded: loaded (/usr/lib/systemd/system/frr.service; enabled; vendor preset: disabled)
   Active: active (running) since Mon 2019-12-16 19:38:58 UTC; 1s ago
  Process: 2332 ExecStop=/usr/lib/frr/frr stop (code=exited, status=0/SUCCESS)
  Process: 2415 ExecStart=/usr/lib/frr/frr start (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/frr.service
           ├─2432 /usr/lib/frr/zebra -d -A 127.0.0.1
           ├─2441 /usr/lib/frr/bgpd -d -A 127.0.0.1
           └─2454 /usr/lib/frr/watchfrr -d -b_ -r/usr/lib/frr/frr_restart_%s -s/usr/lib/frr/frr_start_%s -k/usr/l...

Dec 16 19:38:57 leaf1-centos-76.vagrantup.com frr[2415]: zebra 2019/12/16 19:38:57 warnings: ZEBRA: Disabling ...rt)
Dec 16 19:38:57 leaf1-centos-76.vagrantup.com frr[2415]: [  OK  ]
Dec 16 19:38:57 leaf1-centos-76.vagrantup.com frr[2415]: bgpd [  OK  ]
Dec 16 19:38:57 leaf1-centos-76.vagrantup.com frr[2415]: Starting FRRouting monitor daemon:
Dec 16 19:38:57 leaf1-centos-76.vagrantup.com watchfrr[2454]: watchfrr 5.0.2 watching [zebra bgpd]
Dec 16 19:38:58 leaf1-centos-76.vagrantup.com watchfrr[2454]: bgpd state -> up : connect succeeded
Dec 16 19:38:58 leaf1-centos-76.vagrantup.com watchfrr[2454]: zebra state -> up : connect succeeded
Dec 16 19:38:58 leaf1-centos-76.vagrantup.com watchfrr[2454]: Watchfrr: Notifying Systemd we are up and running
Dec 16 19:38:58 leaf1-centos-76.vagrantup.com frr[2415]: watchfrr[  OK  ]
Dec 16 19:38:58 leaf1-centos-76.vagrantup.com systemd[1]: Started FRRouting (FRR).

Could you copy your show running-config? Or any other stuff configured around this case.

This won't be backported probably to 5.x, but I'm curious if that happens in new releases. I still can't replicate this with 5.0.2 and CentOS 7.6.

ton31337 commented 4 years ago

ups, didn't see your snippet, will test it :)

ton31337 commented 4 years ago

leaf:

router bgp 100
 neighbor 10.0.0.1 remote-as 100
 neighbor 10.0.0.1 shutdown
 address-family ipv4 unicast
  neighbor 10.0.0.1 route-reflector-client
  neighbor 10.0.0.1 next-hop-self
  neighbor 10.0.0.1 soft-reconfiguration inbound
!

spine:

router bgp 100
 neighbor 10.0.0.2 remote-as 100
 !
 address-family ipv4 unicast
  redistribute connected
 exit-address-family
!

No any similar logs you gave in my testing still. By the way, I don't see shutdown in your config snippet. Are there any other related configurations in your setup to know?

edvinaskairys commented 4 years ago

hello, sorry, for late reply:

here i have full config:

cat /etc/frr/frr.conf

log file /var/log/frr/frr.log
no ipv6 forwarding
!
interface p1p1
 ip address 10.254.33.11/31
 ip ospf 1 area 0.0.0.0
 ip ospf message-digest-key 2 md5 pass!ciscolinux
!
interface p1p2
 ip address 1.1.164.249/31
 ip ospf 2 area 0.0.0.0
 ip ospf message-digest-key 2 md5 pass!ciscolinux
!
interface p2p1
 ip address 1.1.164.251/31
 ip ospf 2 area 0.0.0.0
 ip ospf message-digest-k
```ey 2 md5 pass!ciscolinux
!
interface p2p2
 ip address 10.254.33.13/31
 ip ospf 1 area 0.0.0.0
 ip ospf message-digest-key 2 md5 pass!ciscolinux
!
interface lo
 ip address 1.1.165.208/32 label lo:10
 ip ospf 2 area 0.0.0.0
!
interface dummy0
 ip address 10.254.33.14/32
 ip ospf 1 area 0.0.0.0
!
interface GRE_ntgrtr03
 ip address 10.130.11.241/30
 ip ospf network broadcast
!
interface GRE_jayrtr03
 ip address 10.130.11.245/30
 ip ospf network broadcast
!
interface GRE_itxrtr01
 ip address 10.130.11.249/30
 ip ospf network broadcast
!
interface GRE_netvpn01jay
 ip address 10.130.11.253/30
 ip ospf network broadcast
!
interface GRE_la2rtr01
 ip address 10.130.13.1/30
 ip ospf network broadcast
!
interface GRE_la2rtr02
 ip address 10.130.13.5/30
 ip ospf network broadcast
!
interface GRE_hk2rtr01
 ip address 10.130.13.9/30
 ip ospf network broadcast
!
interface GRE_hk2rtr02
 ip address 10.130.13.13/30
 ip ospf network broadcast
!
router bgp 198xxx
 bgp log-neighbor-changes
 coalesce-time 1000
 neighbor 10.130.11.242 remote-as 198xxx
 neighbor 10.130.11.242 description NTGRTR03
 neighbor 10.130.11.242 timers 10 30
 neighbor 10.130.11.246 remote-as 198xxx
 neighbor 10.130.11.246 description JAYRTR03
 neighbor 10.130.11.246 timers 10 30
 neighbor 10.130.11.250 remote-as 198xxx
 neighbor 10.130.11.250 description ITXRTR01
 neighbor 10.130.11.250 timers 10 30
 neighbor 10.130.11.254 remote-as 198xxx
 neighbor 10.130.11.254 description netvpn01jay
 neighbor 10.130.11.254 timers 10 30
 neighbor 10.130.13.2 remote-as 198xxx
 neighbor 10.130.13.2 description LA2RTR01
 neighbor 10.130.13.2 timers 10 30
 neighbor 10.130.13.6 remote-as 198xxx
 neighbor 10.130.13.6 description LA2RTR01
 neighbor 10.130.13.6 timers 10 30
 neighbor 10.130.13.10 remote-as 198xxx
 neighbor 10.130.13.10 description HK2RTR01
 neighbor 10.130.13.10 timers 10 30
 neighbor 10.130.13.14 remote-as 198xxx
 neighbor 10.130.13.14 description HK2RTR02
 neighbor 10.130.13.14 timers 10 30
 !
 address-family ipv4 unicast
  distance bgp 20 25 200
  aggregate-address 10.254.33.0/24 summary-only
  aggregate-address 10.33.0.0/16 summary-only
  redistribute ospf 1 route-map OSPF_REDIST_TO_BGP
  neighbor 10.130.11.242 route-reflector-client
  neighbor 10.130.11.242 next-hop-self
  neighbor 10.130.11.242 soft-reconfiguration inbound
  neighbor 10.130.11.242 route-map ROUTEMAP_FROM_NETGROUP in
  neighbor 10.130.11.242 route-map ROUTEMAP_TO_NETGROUP out
  neighbor 10.130.11.246 route-reflector-client
  neighbor 10.130.11.246 next-hop-self
  neighbor 10.130.11.246 soft-reconfiguration inbound
  neighbor 10.130.11.246 route-map ROUTEMAP_FROM_JAYNET in
  neighbor 10.130.11.246 route-map ROUTEMAP_TO_JAYNET out
  neighbor 10.130.11.250 route-reflector-client
  neighbor 10.130.11.250 next-hop-self
  neighbor 10.130.11.250 soft-reconfiguration inbound
  neighbor 10.130.11.250 route-map ROUTEMAP_FROM_INTERXION in
  neighbor 10.130.11.250 route-map ROUTEMAP_TO_INTERXION out
  neighbor 10.130.11.254 route-reflector-client
  neighbor 10.130.11.254 next-hop-self
  neighbor 10.130.11.254 soft-reconfiguration inbound
  neighbor 10.130.11.254 route-map ROUTEMAP_FROM_JAYNET in
  neighbor 10.130.11.254 route-map ROUTEMAP_TO_JAYNET out
  neighbor 10.130.13.2 route-reflector-client
  neighbor 10.130.13.2 next-hop-self
  neighbor 10.130.13.2 soft-reconfiguration inbound
  neighbor 10.130.13.2 prefix-list BGP_FROM_LA2 in
  neighbor 10.130.13.2 route-map ROUTEMAP_TO_LA2 out
  neighbor 10.130.13.2 weight 10
  neighbor 10.130.13.6 route-reflector-client
  neighbor 10.130.13.6 next-hop-self
  neighbor 10.130.13.6 soft-reconfiguration inbound
  neighbor 10.130.13.6 prefix-list BGP_FROM_LA2 in
  neighbor 10.130.13.6 route-map ROUTEMAP_TO_LA2 out
  neighbor 10.130.13.6 weight 10
  neighbor 10.130.13.10 route-reflector-client
  neighbor 10.130.13.10 next-hop-self
  neighbor 10.130.13.10 soft-reconfiguration inbound
  neighbor 10.130.13.10 route-map ROUTEMAP_FROM_HK2 in
  neighbor 10.130.13.10 route-map ROUTEMAP_TO_HK2 out
  neighbor 10.130.13.10 weight 10
  neighbor 10.130.13.14 route-reflector-client
  neighbor 10.130.13.14 next-hop-self
  neighbor 10.130.13.14 soft-reconfiguration inbound
  neighbor 10.130.13.14 route-map ROUTEMAP_FROM_HK2 in
  neighbor 10.130.13.14 route-map ROUTEMAP_TO_HK2 out
  neighbor 10.130.13.14 weight 10
  maximum-paths 2
  maximum-paths ibgp 2
 exit-address-family
!    
router ospf 1
 ospf router-id 10.254.33.11
 passive-interface default
 no passive-interface p1p1
 no passive-interface p2p2
 area 0.0.0.0 authentication message-digest
 redistribute bgp metric 1 metric-type 1 route-map REDIST_BGP_TO_OSPF
!
router ospf 2
 ospf router-id 1.1.165.208
 passive-interface default
 no passive-interface p1p2
 no passive-interface p2p1
 area 0.0.0.0 authentication message-digest
!

ip prefix-list DEFAULT_ROUTE seq 5 permit 0.0.0.0/0
ip prefix-list REDIST_BGP_TO_OSPF seq 5 deny 10.33.0.0/16 le 32
ip prefix-list REDIST_BGP_TO_OSPF seq 10 deny 10.254.33.0/24 le 32
ip prefix-list REDIST_BGP_TO_OSPF seq 15 permit 0.0.0.0/0 le 32
ip prefix-list OSPF_REDIST_TO_BGP seq 20 permit 10.33.0.0/16 le 24
ip prefix-list OSPF_REDIST_TO_BGP seq 25 permit 10.254.33.0/24 le 32
ip prefix-list OSPF_REDIST_TO_BGP seq 30 deny any
ip prefix-list BGP_TO_NETGROUP seq 5 permit 10.33.0.0/16
ip prefix-list BGP_TO_NETGROUP seq 10 permit 10.254.33.0/24
ip prefix-list BGP_TO_NETGROUP seq 15 permit 10.65.0.0/16
ip prefix-list FROM_NETGROUP seq 5 deny 10.33.0.0/16 le 32
ip prefix-list FROM_NETGROUP seq 6 deny 10.254.33.0/24 le 32
ip prefix-list FROM_NETGROUP seq 15 permit 10.0.0.0/8 le 24
ip prefix-list FROM_NETGROUP seq 20 permit 172.16.0.0/12 le 24
ip prefix-list BGP_TO_JAYNET seq 5 permit 10.33.0.0/16
ip prefix-list BGP_TO_JAYNET seq 10 permit 10.254.33.0/24
ip prefix-list BGP_TO_JAYNET seq 15 permit 10.65.0.0/16
ip prefix-list FROM_JAYNET seq 5 deny 10.33.0.0/16 le 32
ip prefix-list FROM_JAYNET seq 6 deny 10.254.33.0/24 le 32
ip prefix-list FROM_JAYNET seq 15 permit 10.0.0.0/8 le 24
ip prefix-list FROM_JAYNET seq 20 permit 172.16.0.0/12 le 24
ip prefix-list BGP_TO_INTERXION seq 5 permit 10.33.0.0/16
ip prefix-list BGP_TO_INTERXION seq 10 permit 10.254.33.0/24
ip prefix-list BGP_TO_INTERXION seq 15 permit 10.65.0.0/16
ip prefix-list FROM_INTERXION seq 5 deny 10.33.0.0/16 le 32
ip prefix-list FROM_INTERXION seq 6 deny 10.254.33.0/24 le 32
ip prefix-list FROM_INTERXION seq 15 permit 10.0.0.0/8 le 24
ip prefix-list FROM_INTERXION seq 20 permit 172.16.0.0/12 le 24
ip prefix-list BGP_TO_LA2 seq 5 permit 10.33.0.0/16
ip prefix-list BGP_TO_LA2 seq 10 permit 10.254.33.0/24
ip prefix-list BGP_FROM_LA2 seq 5 deny 10.33.0.0/16 le 32
ip prefix-list BGP_FROM_LA2 seq 6 deny 10.254.33.0/24 le 32
ip prefix-list BGP_FROM_LA2 seq 15 permit 10.0.0.0/8 le 24
ip prefix-list BGP_FROM_LA2 seq 20 permit 172.16.0.0/12 le 24
ip prefix-list BGP_TO_HK2_LOCAL seq 5 permit 10.33.0.0/16
ip prefix-list BGP_TO_HK2_LOCAL seq 10 permit 10.254.33.0/24
ip prefix-list BGP_TO_HK2_DKROUTES seq 5 permit 10.0.0.0/20
ip prefix-list BGP_TO_HK2_DKROUTES seq 10 permit 10.0.16.0/20
ip prefix-list BGP_TO_HK2_DKROUTES seq 15 permit 10.0.32.0/20
ip prefix-list BGP_TO_HK2_DKROUTES seq 20 permit 10.1.0.0/16
ip prefix-list BGP_TO_HK2_DKROUTES seq 25 permit 10.2.0.0/16
ip prefix-list BGP_TO_HK2_DKROUTES seq 30 permit 10.3.0.0/16
ip prefix-list BGP_TO_HK2_DKROUTES seq 35 permit 10.11.0.0/16
ip prefix-list BGP_TO_HK2_DKROUTES seq 40 permit 10.21.0.0/16
ip prefix-list BGP_TO_HK2_DKROUTES seq 45 permit 10.22.0.0/16
ip prefix-list BGP_TO_HK2_DKROUTES seq 50 permit 10.253.1.0/24
ip prefix-list BGP_TO_HK2_DKROUTES seq 55 permit 10.253.22.0/24
ip prefix-list FROM_HK2 seq 5 permit 10.65.0.0/16

ip protocol ospf route-map NO_YES_DEFAULT_ROUTE

route-map NO_YES_DEFAULT_ROUTE deny 10
 match ip address prefix-list DEFAULT_ROUTE
 match source-instance 1
 match source-protocol ospf
!
route-map NO_YES_DEFAULT_ROUTE permit 20
 match ip address prefix-list DEFAULT_ROUTE
 match source-instance 2
 match source-protocol ospf
!
route-map NO_YES_DEFAULT_ROUTE permit 30
 match source-instance 1
 match source-protocol ospf
!
route-map NO_YES_DEFAULT_ROUTE deny 40
 match source-instance 2
 match source-protocol ospf
!
route-map REDIST_BGP_TO_OSPF permit 10
 match ip address prefix-list REDIST_BGP_TO_OSPF
!
route-map OSPF_REDIST_TO_BGP permit 10
 match ip address prefix-list OSPF_REDIST_TO_BGP
!
route-map ROUTEMAP_FROM_NETGROUP permit 10
 match ip address prefix-list FROM_NETGROUP
 set ip next-hop peer-address
!
route-map ROUTEMAP_FROM_JAYNET permit 10
 match ip address prefix-list FROM_JAYNET
 set ip next-hop peer-address
!
route-map ROUTEMAP_FROM_INTERXION permit 10
 match ip address prefix-list FROM_INTERXION
 set ip next-hop peer-address
!
route-map ROUTEMAP_FROM_HK2 permit 10
 match ip address prefix-list FROM_HK2
 set ip next-hop peer-address
!
route-map ROUTEMAP_TO_NETGROUP permit 10
 match ip address prefix-list BGP_TO_NETGROUP
 set origin igp
!
route-map ROUTEMAP_TO_JAYNET permit 10
 match ip address prefix-list BGP_TO_JAYNET
 set origin igp
!
route-map ROUTEMAP_TO_INTERXION permit 10
 match ip address prefix-list BGP_TO_INTERXION
 set origin igp
!
route-map ROUTEMAP_TO_LA2 permit 10
 match ip address prefix-list BGP_TO_LA2
 set origin igp
!
route-map ROUTEMAP_TO_HK2 permit 10
 match ip address prefix-list BGP_TO_HK2_LOCAL
 set origin igp
!
route-map ROUTEMAP_TO_HK2 permit 20
 match ip address prefix-list BGP_TO_HK2_DKROUTES
!

Also i've using this FRR setup made from source code which was provided in webpage.

Don't know what i can troubleshoot more. Thanks

edvinaskairys commented 4 years ago

sorry, closed it by mistake

ton31337 commented 4 years ago

thanks, will continue my tests.

ton31337 commented 4 years ago

@from88 can't replicate. Isn't here a case when you generate /etc/frr/frr.conf template using other automation tools (ansible, chef, etc.) and the config differs from what show running produces? In addition, please show your /etc/frr/daemons content.

edvinaskairys commented 4 years ago

i managed to replicate it:

1) yes, i created the config with puppet automation tool. But config line is correct, because when i do sysctemctl reload frr, it accepts the shutdown command ant puts into running-config. 2). Now after every reboot on test machine i got this:

Dec 18 15:41:41 dctvpn001prvjay frr[1641]: watchfrr[  OK  ]
Dec 18 15:41:41 dctvpn001prvjay frr[1641]: line 34: Failure to communicate[13] to bgpd, line:  neighbor 10.130.11.237 shutdown
Dec 18 15:41:42 dctvpn001prvjay frr[1641]: Configuration file[/etc/frr/frr.conf] processing failure: 13

and after the system boot, intiation of systemctl reload the shutdown commands starts to act and shutdowns the BGP session. I can do more debug commands if't would help.

Thanks

ton31337 commented 4 years ago

I created an animated gif what I do and what I get: frr_issue_5536 Am I doing something wrong to replicate?

edvinaskairys commented 4 years ago

I created an animated gif what I do and what I get: frr_issue_5536 Am I doing something wrong to replicate?

very strange, seems you're doing same steps. This is what i get after reboot:

journalctl -f -u frr -n 100

-- Logs begin at Thu 2019-12-19 09:13:41 CET. --
Dec 19 09:13:46 dctvpn001prvjay systemd[1]: Starting FRRouting (FRR)...
Dec 19 09:13:46 dctvpn001prvjay frr[1636]: Creating /var/run/frr
Dec 19 09:13:46 dctvpn001prvjay frr[1636]: Loading capability module if not yet done.
Dec 19 09:13:46 dctvpn001prvjay frr[1636]: Starting FRRouting daemons (prio:10):
Dec 19 09:13:47 dctvpn001prvjay frr[1636]: zebra 2019/12/19 09:13:47 warnings: ZEBRA: Disabling MPLS support (no kernel support)
Dec 19 09:13:47 dctvpn001prvjay frr[1636]: [  OK  ]
Dec 19 09:13:47 dctvpn001prvjay frr[1636]: bgpd [  OK  ]
Dec 19 09:13:47 dctvpn001prvjay frr[1636]: ospfd-1[  OK  ]
Dec 19 09:13:47 dctvpn001prvjay frr[1636]: ospfd-2[  OK  ]
Dec 19 09:13:47 dctvpn001prvjay frr[1636]: Starting FRRouting monitor daemon:
Dec 19 09:13:47 dctvpn001prvjay watchfrr[1764]: watchfrr 5.0.2 watching [zebra bgpd ospfd-1 ospfd-2]
Dec 19 09:13:48 dctvpn001prvjay watchfrr[1764]: ospfd-1 state -> up : connect succeeded
Dec 19 09:13:48 dctvpn001prvjay watchfrr[1764]: bgpd state -> up : connect succeeded
Dec 19 09:13:48 dctvpn001prvjay watchfrr[1764]: ospfd-2 state -> up : connect succeeded
Dec 19 09:13:48 dctvpn001prvjay watchfrr[1764]: zebra state -> up : connect succeeded
Dec 19 09:13:48 dctvpn001prvjay watchfrr[1764]: Watchfrr: Notifying Systemd we are up and running
Dec 19 09:13:48 dctvpn001prvjay frr[1636]: watchfrr[  OK  ]
Dec 19 09:13:49 dctvpn001prvjay frr[1636]: line 34: Failure to communicate[13] to bgpd, line:  neighbor 10.130.11.237 shutdown
Dec 19 09:13:49 dctvpn001prvjay frr[1636]: Configuration file[/etc/frr/frr.conf] processing failure: 13
Dec 19 09:13:49 dctvpn001prvjay systemd[1]: Started FRRouting (FRR).
and this is my daemons cfg file

cat /etc/frr/daemons 
# This file tells the frr package which daemons to start.
#
# Entries are in the format: <daemon>=(yes|no|priority)
#   0, "no"  = disabled
#   1, "yes" = highest priority
#   2 .. 10  = lower priorities
#
# For daemons which support multiple instances, a 2nd line listing
# the instances can be added. Eg for ospfd:
#   ospfd=yes
#   ospfd_instances="1,2"
#
# Priorities were suggested by Dancer <dancer@zeor.simegen.com>.
# They're used to start the FRR daemons in more than one step
# (for example start one or two at network initialization and the
# rest later). The number of FRR daemons being small, priorities
# must be between 1 and 9, inclusive (or the initscript has to be
# changed). /usr/lib/frr/frr then can be started as
#
#   /usr/lib/frr/frr <start|stop|restart|<priority>>
#
# where priority 0 is the same as 'stop', priority 10 or 'start'
# means 'start all'
#
# Sample configurations for these daemons can be found in
# /usr/share/doc/frr/examples/.
#
# ATTENTION:
#
# When activation a daemon at the first time, a config file, even if it is
# empty, has to be present *and* be owned by the user and group "frr", else
# the daemon will not be started by /usr/lib/frr/frr. The permissions should
# be u=rw,g=r,o=.
# When using "vtysh" such a config file is also needed. It should be owned by
# group "frrvty" and set to ug=rw,o= though. Check /etc/pam.d/frr, too.
#
watchfrr_enable=yes
watchfrr_options=("-b_" "-r/usr/lib/frr/frr_restart_%s" "-s/usr/lib/frr/frr_start_%s" "-k/usr/lib/frr/frr_stop_%s")
#
zebra=yes
bgpd=yes
ospfd=yes
ospfd_instances="1,2"
ospf6d=no
ripd=no
ripngd=no
isisd=no
ldpd=no
pimd=no
nhrpd=no
eigrpd=no
babeld=no
sharpd=no
pbrd=no
#
# Command line options for the daemons
#
zebra_options=("-A 127.0.0.1")
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")
ldpd_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")
babeld_options=("-A 127.0.0.1")
sharpd_options=("-A 127.0.0.1")
pbrd_options=("-A 127.0.0.1")

#
# If the vtysh_enable is yes, then the unified config is read
# and applied if it exists.  If no unified frr.conf exists
# then the per-daemon <daemon>.conf files are used)
# If vtysh_enable is no or non-existant, the frr.conf is ignored.
# it is highly suggested to have this set to yes
vtysh_enable=yes

and the only difference that i add that shutdown command with automation tool (puppet). But i dont understand how could it impact the behavior..

ton31337 commented 4 years ago

Tested with your /etc/frr/daemons - same behavior, all is fine for me. I just want to double-check: is that config taken from cat command or show running because I don't see shutdown statement. If that was from show running, can you send me cat /etc/frr/frr.conf? And or show me the Puppet template to be sure what's going on?

edvinaskairys commented 4 years ago

it was taked from running config (sorry). But I can ensure that Puppet generates correct config with shutdown option in frr.conf.

from exmaple this file (bgp section cut) on test machine was generated with puppet. As you see shutdown line is included correctly.

 `router bgp 198622
 bgp log-neighbor-changes
 coalesce-time 1000
 neighbor 10.130.11.237 shutdown
 neighbor 10.130.11.237 remote-as 198622
 neighbor 10.130.11.237 description NY2RTR02
 neighbor 10.130.11.237 timers 10 30
 !
 address-family ipv4 unicast
  distance bgp 20 25 200
  aggregate-address 10.1.0.0/16 summary-only
  aggregate-address 10.2.0.0/16 summary-only
  aggregate-address 10.3.0.0/16 summary-only
  redistribute ospf 1 route-map BGP_DTC_TO_AWS
  neighbor 10.130.11.237 route-reflector-client
  neighbor 10.130.11.237 next-hop-self
  neighbor 10.130.11.237 soft-reconfiguration inbound
  neighbor 10.130.11.237 route-map BGP_FROM_NY2 in
  neighbor 10.130.11.237 route-map BGP_TO_NY2 out
  maximum-paths 2
  maximum-paths ibgp 2
 exit-address-family  

But after reboot im seeing this:

Dec 19 09:13:47 dctvpn001prvjay watchfrr[1764]: watchfrr 5.0.2 watching [zebra bgpd ospfd-1 ospfd-2]
Dec 19 09:13:48 dctvpn001prvjay watchfrr[1764]: ospfd-1 state -> up : connect succeeded
Dec 19 09:13:48 dctvpn001prvjay watchfrr[1764]: bgpd state -> up : connect succeeded
Dec 19 09:13:48 dctvpn001prvjay watchfrr[1764]: ospfd-2 state -> up : connect succeeded
Dec 19 09:13:48 dctvpn001prvjay watchfrr[1764]: zebra state -> up : connect succeeded
Dec 19 09:13:48 dctvpn001prvjay watchfrr[1764]: Watchfrr: Notifying Systemd we are up and running
Dec 19 09:13:48 dctvpn001prvjay frr[1636]: watchfrr[  OK  ]
Dec 19 09:13:49 dctvpn001prvjay frr[1636]: line 34: Failure to communicate[13] to bgpd, line:  neighbor 10.130.11.237 shutdown
Dec 19 09:13:49 dctvpn001prvjay frr[1636]: Configuration file[/etc/frr/frr.conf] processing failure: 13
ton31337 commented 4 years ago

@from88 that's why I asked you to show the output from cat. The reason you get this error is that you issue shutdown on a neighbor which is not created yet. You have to move shutdown statement after the neighbor is defined already.

edvinaskairys commented 4 years ago

@from88 that's why I asked you to show the output from cat. The reason you get this error is that you issue shutdown on a neighbor which is not created yet. You have to move shutdown statement after the neighbor is defined already.

thank you.