osrg / gobgp Goto Github PK
View Code? Open in Web Editor NEWBGP implemented in the Go Programming Language
Home Page: https://osrg.github.io/gobgp/
License: Apache License 2.0
BGP implemented in the Go Programming Language
Home Page: https://osrg.github.io/gobgp/
License: Apache License 2.0
Hello!
I'm using my C++ code with external call of serialize_path and announce single unicast route. But in CLI client I saw "?" in origin field instead of "i" or "e"
gobgp global rib -a ipv4
Network Next Hop AS_PATH Age Attrs
*> 10.10.20.0/22 0.0.0.0 00:05:42 [{Origin: ?}]
When I announce unicast route with CLI I got same issue:
gobgp global rib add 11.22.33.44/32 nexthop 0.0.0.0 -a ipv4
*> 11.22.33.44/32 0.0.0.0 00:00:04 [{Origin: ?}]
Is it OK?
Hello, folks!
I'm developer of https://github.com/FastVPSEestiOu/fastnetmon and I widely use BGP and Flow Spec.
My Customers asked me about GoBGP integration https://github.com/FastVPSEestiOu/fastnetmon/issues/389 And I really like your project!
So I have found this nice page https://github.com/osrg/gobgp/blob/master/docs/sources/grpc-client.md and looking for some way for C++/C integration.
Thus I could add GoBGP syntax to my BGP Flow Spec library (it's generates flow spec from C structures): https://github.com/FastVPSEestiOu/fastnetmon/blob/master/src/bgp_flow_spec.h and feed it with CLI.
But I looking for some way for more deeper integration :) Could you help me?
Hello!
I saw 210.173.170.254 / 323 RPKI server in your default configuration. What's toolkit are running this server? I have tried to use RPKI validator from RIPE but it's not working.... :(
Hello, BGP Gurus :)
I have installed two servers with gobgp: 178.62.227.110 and 213.133.111.200
I have following configuration files:
[Global]
[Global.GlobalConfig]
As = 65001
RouterId = "178.62.227.110"
[Neighbors]
[[Neighbors.NeighborList]]
[Neighbors.NeighborList.NeighborConfig]
NeighborAddress = "213.133.111.200"
PeerAs = 65002
And this:
[Global]
[Global.GlobalConfig]
As = 65002
RouterId = "213.133.111.200"
[Neighbors]
[[Neighbors.NeighborList]]
[Neighbors.NeighborList.NeighborConfig]
NeighborAddress = "178.62.227.110"
PeerAs = 65001
Output:
gobgpd
{"level":"info","msg":"Peer 213.133.111.200 is added","time":"2015-09-02T00:26:25+03:00"}
{"Key":"213.133.111.200","State":4,"Topic":"Peer","level":"warning","msg":"Closed an accepted connection","time":"2015-09-02T00:26:56+03:00"}
{"Data":"hold timer expired","Key":"213.133.111.200","Topic":"Peer","level":"warning","msg":"sent notification","time":"2015-09-02T00:30:31+03:00"
}
{"Key":"213.133.111.200","State":4,"Topic":"Peer","level":"warning","msg":"Closed an accepted connection","time":"2015-09-02T00:31:11+03:00"}
{"Data":"hold timer expired","Key":"213.133.111.200","Topic":"Peer","level":"warning","msg":"sent notification","time":"2015-09-02T00:34:46+03:00"
}
{"Key":"213.133.111.200","State":4,"Topic":"Peer","level":"warning","msg":"Closed an accepted connection","time":"2015-09-02T00:35:26+03:00"}
{"Data":"hold timer expired","Key":"213.133.111.200","Topic":"Peer","level":"warning","msg":"sent notification","time":"2015-09-02T00:39:02+03:00"
}
{"Key":"213.133.111.200","State":4,"Topic":"Peer","level":"warning","msg":"Closed an accepted connection","time":"2015-09-02T00:39:41+03:00"}
{"Data":"hold timer expired","Key":"213.133.111.200","Topic":"Peer","level":"warning","msg":"sent notification","time":"2015-09-02T00:43:17+03:00"
}
{"Key":"213.133.111.200","State":4,"Topic":"Peer","level":"warning","msg":"Closed an accepted connection","time":"2015-09-02T00:43:56+03:00"}
{"Data":"hold timer expired","Key":"213.133.111.200","Topic":"Peer","level":"warning","msg":"sent notification","time":"2015-09-02T00:47:32+03:00"
}
{"Key":"213.133.111.200","State":4,"Topic":"Peer","level":"warning","msg":"Closed an accepted connection","time":"2015-09-02T00:48:11+03:00"}
Second:
gobgpd
{"level":"info","msg":"Peer 178.62.227.110 is added","time":"2015-09-01T23:26:52+02:00"}
{"Key":"178.62.227.110","State":4,"Topic":"Peer","level":"warning","msg":"Closed an accepted connection","time":"2015-09-01T23:30:52+02:00"}
{"Data":"hold timer expired","Key":"178.62.227.110","Topic":"Peer","level":"warning","msg":"sent notification","time":"2015-09-01T23:31:02+02:00"}
2015/09/01 23:32:54 transport: http2Server.HandleStreams failed to receive the preface from client: read tcp 213.133.111.200:8080->104.238.116.143:63476: read: connection reset by peer
{"Key":"178.62.227.110","State":4,"Topic":"Peer","level":"warning","msg":"Closed an accepted connection","time":"2015-09-01T23:35:07+02:00"}
{"Data":"hold timer expired","Key":"178.62.227.110","Topic":"Peer","level":"warning","msg":"sent notification","time":"2015-09-01T23:35:17+02:00"}
{"Key":"178.62.227.110","State":4,"Topic":"Peer","level":"warning","msg":"Closed an accepted connection","time":"2015-09-01T23:39:22+02:00"}
{"Data":"hold timer expired","Key":"178.62.227.110","Topic":"Peer","level":"warning","msg":"sent notification","time":"2015-09-01T23:39:32+02:00"}
{"Key":"178.62.227.110","State":4,"Topic":"Peer","level":"warning","msg":"Closed an accepted connection","time":"2015-09-01T23:43:37+02:00"}
{"Data":"hold timer expired","Key":"178.62.227.110","Topic":"Peer","level":"warning","msg":"sent notification","time":"2015-09-01T23:43:47+02:00"}
{"Key":"178.62.227.110","State":4,"Topic":"Peer","level":"warning","msg":"Closed an accepted connection","time":"2015-09-01T23:47:52+02:00"}
{"Data":"hold timer expired","Key":"178.62.227.110","Topic":"Peer","level":"warning","msg":"sent notification","time":"2015-09-01T23:48:02+02:00"}
And I have tshark output which parses BGP nicely:
tshark 'port 179'
Running as user "root" and group "root". This could be dangerous.
Capturing on 'eth0'
1 0.000000 178.62.227.110 -> 213.133.111.200 BGP 111 OPEN Message
2 0.425042 178.62.227.110 -> 213.133.111.200 BGP 111 [TCP Retransmission] OPEN Message
2 3 1.276011 178.62.227.110 -> 213.133.111.200 BGP 111 [TCP Retransmission] OPEN Message
3 4 2.976015 178.62.227.110 -> 213.133.111.200 BGP 111 [TCP Retransmission] OPEN Message
4 5 6.376036 178.62.227.110 -> 213.133.111.200 BGP 111 [TCP Retransmission] OPEN Message
5 6 13.168113 178.62.227.110 -> 213.133.111.200 BGP 111 [TCP Retransmission] OPEN Message
6 7 24.427626 213.133.111.200 -> 178.62.227.110 TCP 74 50664 > bgp [SYN] Seq=0 Win=14600 Len=0 MSS=1460 SACK_PERM=1 TSval=632155582 TSecr=0 WS=128
8 24.427755 178.62.227.110 -> 213.133.111.200 TCP 74 bgp > 50664 [SYN, ACK] Seq=0 Ack=1 Win=14480 Len=0 MSS=1460 SACK_PERM=1 TSval=3244285243 TSecr=632155582 WS=256
9 24.439089 213.133.111.200 -> 178.62.227.110 TCP 66 50664 > bgp [ACK] Seq=1 Ack=1 Win=14720 Len=0 TSval=632155594 TSecr=3244285243
10 24.439745 178.62.227.110 -> 213.133.111.200 TCP 66 bgp > 50664 [FIN, ACK] Seq=1 Ack=1 Win=14592 Len=0 TSval=3244285255 TSecr=632155594
10 11 24.863041 178.62.227.110 -> 213.133.111.200 TCP 66 [TCP Retransmission] bgp > 50664 [FIN, ACK] Seq=1 Ack=1 Win=14592 Len=0 TSval=3244285679 TSecr=632155594
12 25.288030 178.62.227.110 -> 213.133.111.200 TCP 66 [TCP Retransmission] bgp > 50664 [FIN, ACK] Seq=1 Ack=1 Win=14592 Len=0 TSval=3244286104 TSecr=632155594
12 13 26.138017 178.62.227.110 -> 213.133.111.200 TCP 66 [TCP Retransmission] bgp > 50664 [FIN, ACK] Seq=1 Ack=1 Win=14592 Len=0 TSval=3244286954 TSecr=632155594
13 14 26.768048 178.62.227.110 -> 213.133.111.200 BGP 111 [TCP Retransmission] OPEN Message
14 15 27.840147 178.62.227.110 -> 213.133.111.200 TCP 66 [TCP Retransmission] bgp > 50664 [FIN, ACK] Seq=1 Ack=1 Win=14592 Len=0 TSval=3244288656 TSecr=632155594
15 16 31.240051 178.62.227.110 -> 213.133.111.200 TCP 66 [TCP Retransmission] bgp > 50664 [FIN, ACK] Seq=1 Ack=1 Win=14592 Len=0 TSval=3244292056 TSecr=632155594
16 17 38.032039 178.62.227.110 -> 213.133.111.200 TCP 66 [TCP Retransmission] bgp > 50664 [FIN, ACK] Seq=1 Ack=1 Win=14592 Len=0 TSval=3244298848 TSecr=632155594
17 18 51.632040 178.62.227.110 -> 213.133.111.200 TCP 66 [TCP Retransmission] bgp > 50664 [FIN, ACK] Seq=1 Ack=1 Win=14592 Len=0 TSval=3244312448 TSecr=632155594
18 19 53.936053 178.62.227.110 -> 213.133.111.200 BGP 111 [TCP Retransmission] OPEN Message
19 20 78.832046 178.62.227.110 -> 213.133.111.200 TCP 66 [TCP Retransmission] bgp > 50664 [FIN, ACK] Seq=1 Ack=1 Win=14592 Len=0 TSval=3244339648 TSecr=632155594
20 21 108.336043 178.62.227.110 -> 213.133.111.200 BGP 111 [TCP Retransmission] OPEN Message
21 22 217.136090 178.62.227.110 -> 213.133.111.200 BGP 111 [TCP Retransmission] OPEN Message
22 23 239.577566 178.62.227.110 -> 213.133.111.200 BGP 87 NOTIFICATION Message
23 24 254.579118 178.62.227.110 -> 213.133.111.200 TCP 74 57583 > bgp [SYN] Seq=0 Win=14600 Len=0 MSS=1460 SACK_PERM=1 TSval=3244515395 TSecr=0 WS=256
25 254.590743 213.133.111.200 -> 178.62.227.110 TCP 74 bgp > 57583 [SYN, ACK] Seq=0 Ack=1 Win=14480 Len=0 MSS=1460 SACK_PERM=1 TSval=632385748 TSecr=3244515395 WS=128
26 254.590852 178.62.227.110 -> 213.133.111.200 TCP 66 57583 > bgp [ACK] Seq=1 Ack=1 Win=14848 Len=0 TSval=3244515406 TSecr=632385748
27 254.591367 178.62.227.110 -> 213.133.111.200 BGP 111 OPEN Message
28 254.802020 178.62.227.110 -> 213.133.111.200 BGP 111 [TCP Retransmission] OPEN Message
29 255.013033 178.62.227.110 -> 213.133.111.200 BGP 111 [TCP Retransmission] OPEN Message
29 30 255.436030 178.62.227.110 -> 213.133.111.200 BGP 111 [TCP Retransmission] OPEN Message
30 31 256.282019 178.62.227.110 -> 213.133.111.200 BGP 111 [TCP Retransmission] OPEN Message
31 32 257.976040 178.62.227.110 -> 213.133.111.200 BGP 111 [TCP Retransmission] OPEN Message
32 33 261.360036 178.62.227.110 -> 213.133.111.200 BGP 111 [TCP Retransmission] OPEN Message
33 34 268.128023 178.62.227.110 -> 213.133.111.200 BGP 111 [TCP Retransmission] OPEN Message
34 35 279.437928 213.133.111.200 -> 178.62.227.110 TCP 74 50665 > bgp [SYN] Seq=0 Win=14600 Len=0 MSS=1460 SACK_PERM=1 TSval=632410595 TSecr=0 WS=128
36 279.438032 178.62.227.110 -> 213.133.111.200 TCP 74 bgp > 50665 [SYN, ACK] Seq=0 Ack=1 Win=14480 Len=0 MSS=1460 SACK_PERM=1 TSval=3244540253 TSecr=632410595 WS=256
37 279.449399 213.133.111.200 -> 178.62.227.110 TCP 66 50665 > bgp [ACK] Seq=1 Ack=1 Win=14720 Len=0 TSval=632410607 TSecr=3244540253
38 279.450148 178.62.227.110 -> 213.133.111.200 TCP 66 bgp > 50665 [FIN, ACK] Seq=1 Ack=1 Win=14592 Len=0 TSval=3244540266 TSecr=632410607
38 39 279.874053 178.62.227.110 -> 213.133.111.200 TCP 66 [TCP Retransmission] bgp > 50665 [FIN, ACK] Seq=1 Ack=1 Win=14592 Len=0 TSval=3244540690 TSecr=632410607
40 280.299032 178.62.227.110 -> 213.133.111.200 TCP 66 [TCP Retransmission] bgp > 50665 [FIN, ACK] Seq=1 Ack=1 Win=14592 Len=0 TSval=3244541115 TSecr=632410607
40 41 281.148027 178.62.227.110 -> 213.133.111.200 TCP 66 [TCP Retransmission] bgp > 50665 [FIN, ACK] Seq=1 Ack=1 Win=14592 Len=0 TSval=3244541964 TSecr=632410607
41 42 281.648032 178.62.227.110 -> 213.133.111.200 BGP 111 [TCP Retransmission] OPEN Message
42 43 282.848032 178.62.227.110 -> 213.133.111.200 TCP 66 [TCP Retransmission] bgp > 50665 [FIN, ACK] Seq=1 Ack=1 Win=14592 Len=0 TSval=3244543664 TSecr=632410607
43 44 286.248027 178.62.227.110 -> 213.133.111.200 TCP 66 [TCP Retransmission] bgp > 50665 [FIN, ACK] Seq=1 Ack=1 Win=14592 Len=0 TSval=3244547064 TSecr=632410607
44 45 293.040063 178.62.227.110 -> 213.133.111.200 TCP 66 [TCP Retransmission] bgp > 50665 [FIN, ACK] Seq=1 Ack=1 Win=14592 Len=0 TSval=3244553856 TSecr=632410607
45 46 306.640031 178.62.227.110 -> 213.133.111.200 TCP 66 [TCP Retransmission] bgp > 50665 [FIN, ACK] Seq=1 Ack=1 Win=14592 Len=0 TSval=3244567456 TSecr=632410607
46 47 308.720124 178.62.227.110 -> 213.133.111.200 BGP 111 [TCP Retransmission] OPEN Message
47 48 333.872035 178.62.227.110 -> 213.133.111.200 TCP 66 [TCP Retransmission] bgp > 50665 [FIN, ACK] Seq=1 Ack=1 Win=14592 Len=0 TSval=3244594688 TSecr=632410607
48 49 362.800032 178.62.227.110 -> 213.133.111.200 BGP 111 [TCP Retransmission] OPEN Message
49 50 471.088235 178.62.227.110 -> 213.133.111.200 BGP 111 [TCP Retransmission] OPEN Message
50 51 494.592432 178.62.227.110 -> 213.133.111.200 BGP 87 NOTIFICATION Message
51 52 509.593690 178.62.227.110 -> 213.133.111.200 TCP 74 57584 > bgp [SYN] Seq=0 Win=14600 Len=0 MSS=1460 SACK_PERM=1 TSval=3244770409 TSecr=0 WS=256
53 509.605036 213.133.111.200 -> 178.62.227.110 TCP 74 bgp > 57584 [SYN, ACK] Seq=0 Ack=1 Win=14480 Len=0 MSS=1460 SACK_PERM=1 TSval=632640765 TSecr=3244770409 WS=128
54 509.605163 178.62.227.110 -> 213.133.111.200 TCP 66 57584 > bgp [ACK] Seq=1 Ack=1 Win=14848 Len=0 TSval=3244770421 TSecr=632640765
55 509.606015 178.62.227.110 -> 213.133.111.200 BGP 111 OPEN Message
56 509.818027 178.62.227.110 -> 213.133.111.200 BGP 111 [TCP Retransmission] OPEN Message
57 510.030039 178.62.227.110 -> 213.133.111.200 BGP 111 [TCP Retransmission] OPEN Message
57 58 510.455008 178.62.227.110 -> 213.133.111.200 BGP 111 [TCP Retransmission] OPEN Message
58 59 511.304040 178.62.227.110 -> 213.133.111.200 BGP 111 [TCP Retransmission] OPEN Message
59 60 513.004039 178.62.227.110 -> 213.133.111.200 BGP 111 [TCP Retransmission] OPEN Message
60 61 516.399992 178.62.227.110 -> 213.133.111.200 BGP 111 [TCP Retransmission] OPEN Message
61 62 523.200016 178.62.227.110 -> 213.133.111.200 BGP 111 [TCP Retransmission] OPEN Message
62 63 534.447596 213.133.111.200 -> 178.62.227.110 TCP 74 50666 > bgp [SYN] Seq=0 Win=14600 Len=0 MSS=1460 SACK_PERM=1 TSval=632665608 TSecr=0 WS=128
64 534.447831 178.62.227.110 -> 213.133.111.200 TCP 74 bgp > 50666 [SYN, ACK] Seq=0 Ack=1 Win=14480 Len=0 MSS=1460 SACK_PERM=1 TSval=3244795263 TSecr=632665608 WS=256
65 534.459353 213.133.111.200 -> 178.62.227.110 TCP 66 50666 > bgp [ACK] Seq=1 Ack=1 Win=14720 Len=0 TSval=632665620 TSecr=3244795263
66 534.459776 178.62.227.110 -> 213.133.111.200 TCP 66 bgp > 50666 [FIN, ACK] Seq=1 Ack=1 Win=14592 Len=0 TSval=3244795275 TSecr=632665620
67 534.883018 178.62.227.110 -> 213.133.111.200 TCP 66 [TCP Retransmission] bgp > 50666 [FIN, ACK] Seq=1 Ack=1 Win=14592 Len=0 TSval=3244795699 TSecr=632665620
67 68 535.308026 178.62.227.110 -> 213.133.111.200 TCP 66 [TCP Retransmission] bgp > 50666 [FIN, ACK] Seq=1 Ack=1 Win=14592 Len=0 TSval=3244796124 TSecr=632665620
68 69 536.158033 178.62.227.110 -> 213.133.111.200 TCP 66 [TCP Retransmission] bgp > 50666 [FIN, ACK] Seq=1 Ack=1 Win=14592 Len=0 TSval=3244796974 TSecr=632665620
69 70 536.816035 178.62.227.110 -> 213.133.111.200 BGP 111 [TCP Retransmission] OPEN Message
70 71 537.856021 178.62.227.110 -> 213.133.111.200 TCP 66 [TCP Retransmission] bgp > 50666 [FIN, ACK] Seq=1 Ack=1 Win=14592 Len=0 TSval=3244798672 TSecr=632665620
71 72 541.256033 178.62.227.110 -> 213.133.111.200 TCP 66 [TCP Retransmission] bgp > 50666 [FIN, ACK] Seq=1 Ack=1 Win=14592 Len=0 TSval=3244802072 TSecr=632665620
72 73 548.048000 178.62.227.110 -> 213.133.111.200 TCP 66 [TCP Retransmission] bgp > 50666 [FIN, ACK] Seq=1 Ack=1 Win=14592 Len=0 TSval=3244808864 TSecr=632665620
73 74 561.648041 178.62.227.110 -> 213.133.111.200 TCP 66 [TCP Retransmission] bgp > 50666 [FIN, ACK] Seq=1 Ack=1 Win=14592 Len=0 TSval=3244822464 TSecr=632665620
74 75 564.016039 178.62.227.110 -> 213.133.111.200 BGP 111 [TCP Retransmission] OPEN Message
75 76 588.848041 178.62.227.110 -> 213.133.111.200 TCP 66 [TCP Retransmission] bgp > 50666 [FIN, ACK] Seq=1 Ack=1 Win=14592 Len=0 TSval=3244849664 TSecr=632665620
76 77 618.416041 178.62.227.110 -> 213.133.111.200 BGP 111 [TCP Retransmission] OPEN Message
77 78 727.088015 178.62.227.110 -> 213.133.111.200 BGP 111 [TCP Retransmission] OPEN Message
78 79 749.608030 178.62.227.110 -> 213.133.111.200 BGP 87 NOTIFICATION Message
79 80 764.609857 178.62.227.110 -> 213.133.111.200 TCP 74 57585 > bgp [SYN] Seq=0 Win=14600 Len=0 MSS=1460 SACK_PERM=1 TSval=3245025425 TSecr=0 WS=256
81 764.621127 213.133.111.200 -> 178.62.227.110 TCP 74 bgp > 57585 [SYN, ACK] Seq=0 Ack=1 Win=14480 Len=0 MSS=1460 SACK_PERM=1 TSval=632895784 TSecr=3245025425 WS=128
82 764.621237 178.62.227.110 -> 213.133.111.200 TCP 66 57585 > bgp [ACK] Seq=1 Ack=1 Win=14848 Len=0 TSval=3245025437 TSecr=632895784
83 764.621632 178.62.227.110 -> 213.133.111.200 BGP 111 OPEN Message
84 764.833034 178.62.227.110 -> 213.133.111.200 BGP 111 [TCP Retransmission] OPEN Message
85 765.045024 178.62.227.110 -> 213.133.111.200 BGP 111 [TCP Retransmission] OPEN Message
85 86 765.470033 178.62.227.110 -> 213.133.111.200 BGP 111 [TCP Retransmission] OPEN Message
86 87 766.320030 178.62.227.110 -> 213.133.111.200 BGP 111 [TCP Retransmission] OPEN Message
87 88 768.020019 178.62.227.110 -> 213.133.111.200 BGP 111 [TCP Retransmission] OPEN Message
88 89 771.424032 178.62.227.110 -> 213.133.111.200 BGP 111 [TCP Retransmission] OPEN Message
89 90 778.224043 178.62.227.110 -> 213.133.111.200 BGP 111 [TCP Retransmission] OPEN Message
90 91 789.457478 213.133.111.200 -> 178.62.227.110 TCP 74 50667 > bgp [SYN] Seq=0 Win=14600 Len=0 MSS=1460 SACK_PERM=1 TSval=632920621 TSecr=0 WS=128
92 789.457636 178.62.227.110 -> 213.133.111.200 TCP 74 bgp > 50667 [SYN, ACK] Seq=0 Ack=1 Win=14480 Len=0 MSS=1460 SACK_PERM=1 TSval=3245050273 TSecr=632920621 WS=256
93 789.468892 213.133.111.200 -> 178.62.227.110 TCP 66 50667 > bgp [ACK] Seq=1 Ack=1 Win=14720 Len=0 TSval=632920632 TSecr=3245050273
94 789.469753 178.62.227.110 -> 213.133.111.200 TCP 66 bgp > 50667 [FIN, ACK] Seq=1 Ack=1 Win=14592 Len=0 TSval=3245050285 TSecr=632920632
95 789.891046 178.62.227.110 -> 213.133.111.200 TCP 66 [TCP Retransmission] bgp > 50667 [FIN, ACK] Seq=1 Ack=1 Win=14592 Len=0 TSval=3245050707 TSecr=632920632
95 96 790.313997 178.62.227.110 -> 213.133.111.200 TCP 66 [TCP Retransmission] bgp > 50667 [FIN, ACK] Seq=1 Ack=1 Win=14592 Len=0 TSval=3245051130 TSecr=632920632
96 97 791.160007 178.62.227.110 -> 213.133.111.200 TCP 66 [TCP Retransmission] bgp > 50667 [FIN, ACK] Seq=1 Ack=1 Win=14592 Len=0 TSval=3245051976 TSecr=632920632
97 98 791.824058 178.62.227.110 -> 213.133.111.200 BGP 111 [TCP Retransmission] OPEN Message
98 99 792.852113 178.62.227.110 -> 213.133.111.200 TCP 66 [TCP Retransmission] bgp > 50667 [FIN, ACK] Seq=1 Ack=1 Win=14592 Len=0 TSval=3245053668 TSecr=632920632
99 100 796.240163 178.62.227.110 -> 213.133.111.200 TCP 66 [TCP Retransmission] bgp > 50667 [FIN, ACK] Seq=1 Ack=1 Win=14592 Len=0 TSval=3245057056 TSecr=632920632
100 101 803.008010 178.62.227.110 -> 213.133.111.200 TCP 66 [TCP Retransmission] bgp > 50667 [FIN, ACK] Seq=1 Ack=1 Win=14592 Len=0 TSval=3245063824 TSecr=632920632
101 102 816.560034 178.62.227.110 -> 213.133.111.200 TCP 66 [TCP Retransmission] bgp > 50667 [FIN, ACK] Seq=1 Ack=1 Win=14592 Len=0 TSval=3245077376 TSecr=632920632
102 103 818.992048 178.62.227.110 -> 213.133.111.200 BGP 111 [TCP Retransmission] OPEN Message
103 104 843.632051 178.62.227.110 -> 213.133.111.200 TCP 66 [TCP Retransmission] bgp > 50667 [FIN, ACK] Seq=1 Ack=1 Win=14592 Len=0 TSval=3245104448 TSecr=632920632
104 105 873.392056 178.62.227.110 -> 213.133.111.200 BGP 111 [TCP Retransmission] OPEN Message
105 106 982.064009 178.62.227.110 -> 213.133.111.200 BGP 111 [TCP Retransmission] OPEN Message
106 107 1004.622633 178.62.227.110 -> 213.133.111.200 BGP 87 NOTIFICATION Message
107 108 1019.624036 178.62.227.110 -> 213.133.111.200 TCP 74 57586 > bgp [SYN] Seq=0 Win=14600 Len=0 MSS=1460 SACK_PERM=1 TSval=3245280440 TSecr=0 WS=256
109 1019.635364 213.133.111.200 -> 178.62.227.110 TCP 74 bgp > 57586 [SYN, ACK] Seq=0 Ack=1 Win=14480 Len=0 MSS=1460 SACK_PERM=1 TSval=633150801 TSecr=3245280440 WS=128
110 1019.635451 178.62.227.110 -> 213.133.111.200 TCP 66 57586 > bgp [ACK] Seq=1 Ack=1 Win=14848 Len=0 TSval=3245280451 TSecr=633150801
111 1019.636314 178.62.227.110 -> 213.133.111.200 BGP 111 OPEN Message
112 1019.846999 178.62.227.110 -> 213.133.111.200 BGP 111 [TCP Retransmission] OPEN Message
113 1020.058004 178.62.227.110 -> 213.133.111.200 BGP 111 [TCP Retransmission] OPEN Message
113 114 1020.480963 178.62.227.110 -> 213.133.111.200 BGP 111 [TCP Retransmission] OPEN Message
114 115 1021.328027 178.62.227.110 -> 213.133.111.200 BGP 111 [TCP Retransmission] OPEN Message
115 116 1023.020015 178.62.227.110 -> 213.133.111.200 BGP 111 [TCP Retransmission] OPEN Message
116 117 1026.400029 178.62.227.110 -> 213.133.111.200 BGP 111 [TCP Retransmission] OPEN Message
117 118 1033.168054 178.62.227.110 -> 213.133.111.200 BGP 111 [TCP Retransmission] OPEN Message
118 119 1044.467157 213.133.111.200 -> 178.62.227.110 TCP 74 50668 > bgp [SYN] Seq=0 Win=14600 Len=0 MSS=1460 SACK_PERM=1 TSval=633175633 TSecr=0 WS=128
120 1044.467264 178.62.227.110 -> 213.133.111.200 TCP 74 bgp > 50668 [SYN, ACK] Seq=0 Ack=1 Win=14480 Len=0 MSS=1460 SACK_PERM=1 TSval=3245305283 TSecr=633175633 WS=256
121 1044.478535 213.133.111.200 -> 178.62.227.110 TCP 66 50668 > bgp [ACK] Seq=1 Ack=1 Win=14720 Len=0 TSval=633175645 TSecr=3245305283
122 1044.479286 178.62.227.110 -> 213.133.111.200 TCP 66 bgp > 50668 [FIN, ACK] Seq=1 Ack=1 Win=14592 Len=0 TSval=3245305295 TSecr=633175645
122 123 1044.901005 178.62.227.110 -> 213.133.111.200 TCP 66 [TCP Retransmission] bgp > 50668 [FIN, ACK] Seq=1 Ack=1 Win=14592 Len=0 TSval=3245305717 TSecr=633175645
124 1045.324027 178.62.227.110 -> 213.133.111.200 TCP 66 [TCP Retransmission] bgp > 50668 [FIN, ACK] Seq=1 Ack=1 Win=14592 Len=0 TSval=3245306140 TSecr=633175645
124 125 1046.170026 178.62.227.110 -> 213.133.111.200 TCP 66 [TCP Retransmission] bgp > 50668 [FIN, ACK] Seq=1 Ack=1 Win=14592 Len=0 TSval=3245306986 TSecr=633175645
125 126 1046.704052 178.62.227.110 -> 213.133.111.200 BGP 111 [TCP Retransmission] OPEN Message
126 127 1047.864026 178.62.227.110 -> 213.133.111.200 TCP 66 [TCP Retransmission] bgp > 50668 [FIN, ACK] Seq=1 Ack=1 Win=14592 Len=0 TSval=3245308680 TSecr=633175645
127 128 1051.248024 178.62.227.110 -> 213.133.111.200 TCP 66 [TCP Retransmission] bgp > 50668 [FIN, ACK] Seq=1 Ack=1 Win=14592 Len=0 TSval=3245312064 TSecr=633175645
128 129 1058.016035 178.62.227.110 -> 213.133.111.200 TCP 66 [TCP Retransmission] bgp > 50668 [FIN, ACK] Seq=1 Ack=1 Win=14592 Len=0 TSval=3245318832 TSecr=633175645
129 130 1071.536015 178.62.227.110 -> 213.133.111.200 TCP 66 [TCP Retransmission] bgp > 50668 [FIN, ACK] Seq=1 Ack=1 Win=14592 Len=0 TSval=3245332352 TSecr=633175645
130 131 1073.776041 178.62.227.110 -> 213.133.111.200 BGP 111 [TCP Retransmission] OPEN Message
131 132 1098.608058 178.62.227.110 -> 213.133.111.200 TCP 66 [TCP Retransmission] bgp > 50668 [FIN, ACK] Seq=1 Ack=1 Win=14592 Len=0 TSval=3245359424 TSecr=633175645
132 133 1127.984036 178.62.227.110 -> 213.133.111.200 BGP 111 [TCP Retransmission] OPEN Message
133 134 1236.272208 178.62.227.110 -> 213.133.111.200 BGP 111 [TCP Retransmission] OPEN Message
134 135 1259.637302 178.62.227.110 -> 213.133.111.200 BGP 87 NOTIFICATION Message
135 136 1274.638992 178.62.227.110 -> 213.133.111.200 TCP 74 57587 > bgp [SYN] Seq=0 Win=14600 Len=0 MSS=1460 SACK_PERM=1 TSval=3245535454 TSecr=0 WS=256
137 1274.650818 213.133.111.200 -> 178.62.227.110 TCP 74 bgp > 57587 [SYN, ACK] Seq=0 Ack=1 Win=14480 Len=0 MSS=1460 SACK_PERM=1 TSval=633405819 TSecr=3245535454 WS=128
138 1274.650959 178.62.227.110 -> 213.133.111.200 TCP 66 57587 > bgp [ACK] Seq=1 Ack=1 Win=14848 Len=0 TSval=3245535466 TSecr=633405819
139 1274.651510 178.62.227.110 -> 213.133.111.200 BGP 111 OPEN Message
140 1274.863023 178.62.227.110 -> 213.133.111.200 BGP 111 [TCP Retransmission] OPEN Message
140 141 1275.075021 178.62.227.110 -> 213.133.111.200 BGP 111 [TCP Retransmission] OPEN Message
142 1275.500021 178.62.227.110 -> 213.133.111.200 BGP 111 [TCP Retransmission] OPEN Message
142 143 1276.350125 178.62.227.110 -> 213.133.111.200 BGP 111 [TCP Retransmission] OPEN Message
143 144 1278.048020 178.62.227.110 -> 213.133.111.200 BGP 111 [TCP Retransmission] OPEN Message
144 145 1281.448068 178.62.227.110 -> 213.133.111.200 BGP 111 [TCP Retransmission] OPEN Message
145 146 1288.240016 178.62.227.110 -> 213.133.111.200 BGP 111 [TCP Retransmission] OPEN Message
146 147 1299.476623 213.133.111.200 -> 178.62.227.110 TCP 74 50669 > bgp [SYN] Seq=0 Win=14600 Len=0 MSS=1460 SACK_PERM=1 TSval=633430646 TSecr=0 WS=128
148 1299.476855 178.62.227.110 -> 213.133.111.200 TCP 74 bgp > 50669 [SYN, ACK] Seq=0 Ack=1 Win=14480 Len=0 MSS=1460 SACK_PERM=1 TSval=3245560292 TSecr=633430646 WS=256
149 1299.488578 213.133.111.200 -> 178.62.227.110 TCP 66 50669 > bgp [ACK] Seq=1 Ack=1 Win=14720 Len=0 TSval=633430657 TSecr=3245560292
150 1299.489111 178.62.227.110 -> 213.133.111.200 TCP 66 bgp > 50669 [FIN, ACK] Seq=1 Ack=1 Win=14592 Len=0 TSval=3245560305 TSecr=633430657
150 151 1299.913057 178.62.227.110 -> 213.133.111.200 TCP 66 [TCP Retransmission] bgp > 50669 [FIN, ACK] Seq=1 Ack=1 Win=14592 Len=0 TSval=3245560729 TSecr=633430657
152 1300.338040 178.62.227.110 -> 213.133.111.200 TCP 66 [TCP Retransmission] bgp > 50669 [FIN, ACK] Seq=1 Ack=1 Win=14592 Len=0 TSval=3245561154 TSecr=633430657
152 153 1301.188026 178.62.227.110 -> 213.133.111.200 TCP 66 [TCP Retransmission] bgp > 50669 [FIN, ACK] Seq=1 Ack=1 Win=14592 Len=0 TSval=3245562004 TSecr=633430657
153 154 1301.840012 178.62.227.110 -> 213.133.111.200 BGP 111 [TCP Retransmission] OPEN Message
154 155 1302.888021 178.62.227.110 -> 213.133.111.200 TCP 66 [TCP Retransmission] bgp > 50669 [FIN, ACK] Seq=1 Ack=1 Win=14592 Len=0 TSval=3245563704 TSecr=633430657
155 156 1306.288037 178.62.227.110 -> 213.133.111.200 TCP 66 [TCP Retransmission] bgp > 50669 [FIN, ACK] Seq=1 Ack=1 Win=14592 Len=0 TSval=3245567104 TSecr=633430657
156 157 1313.088037 178.62.227.110 -> 213.133.111.200 TCP 66 [TCP Retransmission] bgp > 50669 [FIN, ACK] Seq=1 Ack=1 Win=14592 Len=0 TSval=3245573904 TSecr=633430657
157 158 1326.704050 178.62.227.110 -> 213.133.111.200 TCP 66 [TCP Retransmission] bgp > 50669 [FIN, ACK] Seq=1 Ack=1 Win=14592 Len=0 TSval=3245587520 TSecr=633430657
158 159 1329.072029 178.62.227.110 -> 213.133.111.200 BGP 111 [TCP Retransmission] OPEN Message
159 160 1353.904158 178.62.227.110 -> 213.133.111.200 TCP 66 [TCP Retransmission] bgp > 50669 [FIN, ACK] Seq=1 Ack=1 Win=14592 Len=0 TSval=3245614720 TSecr=633430657
160 161 1383.472021 178.62.227.110 -> 213.133.111.200 BGP 111 [TCP Retransmission] OPEN Message
161 162 1431.390647 178.62.227.110 -> 213.133.111.200 TCP 66 57587 > bgp [FIN, ACK] Seq=46 Ack=1 Win=14848 Len=0 TSval=3245692206 TSecr=633405819
162
Both server correctly listen 179 socket:
netstat -lnpt|grep 179
tcp 0 0 0.0.0.0:179 0.0.0.0:* LISTEN 170307/gobgpd
tcp 0 0 :::179 :::* LISTEN 170307/gobgpd
And second:
netstat -lnpt|grep 179
tcp 0 0 0.0.0.0:179 0.0.0.0:* LISTEN 17097/gobgpd
tcp6 0 0 :::179 :::* LISTEN 17097/gobgpd
I have checked connectivity between servers on 179 port with telnet and everything works nice. But gobgpd do not saw each other :(
Thanks for help!
Hello, folks!
Please read this issue niemeyer/gopkg#36 (comment)
So we have troubles if we want to install gobgpd in CentOS 6 or another old platform. This platform supported by golang but this folks drop support for this really popular platforms.
Do you have any ideas how to solve this issue?
Hello, folks!
I have RPKI enabled in configuration:
[[rpki-servers]]
[rpki-servers.config]
address = "127.0.0.1"
port = 8282
And it's definitely working:
gobgp rpki server
Session State Uptime #IPv4/IPv6 records
127.0.0.1:8282 Up 00:40:57 17135/2537
And mentioned in startup code:
{"level":"info","msg":"roa server is connected, 127.0.0.1:8282","time":"2016-01-12T10:14:32+03:00"}
But in gobgp global rib output I do not see any data about RPKI validation status:
gobgp global rib|grep 198068
*> 5.45.112.0/24 xxx 3327 198068 00:39:18 [{Origin: i} {Med: 1023}]
* 5.45.112.0/24 xxx 3327 198068 00:39:42 [{Origin: i} {Med: 1023}]
*> 5.45.114.0/24 xxx 3327 198068 00:39:18 [{Origin: i} {Med: 1023}]
* 5.45.114.0/24 xxx 3327 198068 00:39:42 [{Origin: i} {Med: 1023}]
*> 5.45.115.0/24 xxx 3327 198068 00:39:18 [{Origin: i} {Med: 1023}]
* 5.45.115.0/24 xxx 3327 198068 00:39:42 [{Origin: i} {Med: 1023}]
The same for adj-in output:
gobgp neig xxx adj-in|grep 198068
5.45.112.0/24 xxx 3327 198068 00:01:40 [{Origin: i} {Med: 1023}]
5.45.114.0/24 xxx 3327 198068 00:01:40 [{Origin: i} {Med: 1023}]
5.45.115.0/24 xxx 3327 198068 00:01:40 [{Origin: i} {Med: 1023}]
But in debug output I see RPKI validation:
{"Key":"xxxx/20","Path":{"IsWithdraw":false,"NoImplicitWithdraw":false,"Validation":"not-found","IsFromZebra":false,"Owner":"xxxxx","Uuid":null},"Topic":"Table","level":"debug","msg":"Implicit withdrawal of old path, since we have learned new path from the same peer","time":"2016-01-12T11:10:11+03:00"}
Could you check this?
Hello!
I have some idea about "commit" option for CLI which could save all changes executed with CLI to configuration file.
Will be interesting to get example configuration file with CLI (and manually replace it in the filesystem or backup somewhere).
Hello!
I'm running gobgp for one week with single unicast peer and got really big memory consumption:
ps aux|grep gobgp
root 226 0.0 0.1 1979544 3832 ? Sl Oct06 0:24 /opt/gobgp_1_0_0/gobgpd -f /etc/gobgpd.conf
root 25668 0.0 0.0 11064 888 pts/1 S+ 18:57 0:00 grep gobgp
And I'm scary by number of gobgp processes:
|-gobgpd-+-{gobgpd) S 1 223
| `-36*[{gobgpd}]
Normal usage is about 150 mb:
ps aux|grep bgp
root 22091 0.0 0.0 145140 10800 pts/1 Sl+ 18:48 0:00 /opt/gobgp_1_0_0/gobgpd -f /etc/gobgpd.conf
root 22100 0.0 0.0 14188 2144 pts/0 S+ 18:49 0:00 grep bgp
Test_Message() in packet/bgp_test.go is insufficient to find serialization/decoding bugs.
The code creates some random BGP messages and then
What this test can verify is that a BGP message is somehow serializable and decodable,
but it cannot guarantee anything about data integrity.
Therefore this test passes even if a certain field of a message is broken due to a serialization bug.
A sample bug this test cannot find is here: soramichi@5ae7873
To fix this issue requires implementing BGPMessage.equals() that checks if all the field values are the same.
No new connection is generated when ROA cache is specified with IPv6 address
------ configuration
[RpkiServers]
[[RpkiServers.RpkiServerList]]
[RpkiServers.RpkiServerList.RpkiServerConfig]
Address = "2001:3a0:e002:1001::101" <--- parser accept it, but no tcp connetion generated
when formatting url string of ROA cache server in func [email protected], IPv6 address should be enclosed with bracket[]?
Is there any way to set the BGP encapsulation extended community attribute on routes ( https://tools.ietf.org/html/rfc5512#section-4.5 ) generated by the "rib add <> -a evpn" commands?
Hello, folks!
gobgp global rib -a ipv4-flowspec del match destination 10.0.0.0/24 protocol tcp destination-port 88 source-port 5353 source 20.0.0.0/24 then redirect 10:10
panic: runtime error: index out of range
goroutine 1 [running]:
github.com/osrg/gobgp/packet.flowSpecNumericParser(0xc82018c040, 0x2, 0x6, 0x0, 0x0, 0x0, 0x0)
/root/gofolder/src/github.com/osrg/gobgp/packet/bgp.go:1934 +0x5e3
github.com/osrg/gobgp/packet.ParseFlowSpecComponents(0xc82001c300, 0x5c, 0x0, 0x0, 0x0, 0x0, 0x0)
/root/gofolder/src/github.com/osrg/gobgp/packet/bgp.go:2006 +0x548
github.com/osrg/gobgp/gobgp/cmd.ParseFlowSpecArgs(0xc820107200, 0xe, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
/root/gofolder/src/github.com/osrg/gobgp/gobgp/cmd/global.go:213 +0x28a
github.com/osrg/gobgp/gobgp/cmd.ParsePath(0x10085, 0xc820107200, 0xe, 0x10, 0x0, 0x0, 0x0)
/root/gofolder/src/github.com/osrg/gobgp/gobgp/cmd/global.go:404 +0x1b05
github.com/osrg/gobgp/gobgp/cmd.modPath(0x0, 0x0, 0x0, 0xa01520, 0x3, 0xc820107200, 0xe, 0x10, 0x0, 0x0)
/root/gofolder/src/github.com/osrg/gobgp/gobgp/cmd/global.go:453 +0xf8
github.com/osrg/gobgp/gobgp/cmd.NewGlobalCmd.func2(0xc82016a700, 0xc820107200, 0xe, 0x10)
/root/gofolder/src/github.com/osrg/gobgp/gobgp/cmd/global.go:554 +0x87
github.com/spf13/cobra.(*Command).execute(0xc82016a700, 0xc820106f00, 0x10, 0x10, 0x0, 0x0)
/root/gofolder/src/github.com/spf13/cobra/command.go:499 +0x869
github.com/spf13/cobra.(*Command).Execute(0xc82016a000, 0x0, 0x0)
/root/gofolder/src/github.com/spf13/cobra/command.go:582 +0x46a
main.main()
/root/gofolder/src/github.com/osrg/gobgp/gobgp/main.go:23 +0x25
goroutine 17 [syscall, locked to thread]:
runtime.goexit()
/usr/local/go/src/runtime/asm_amd64.s:1696 +0x1
goroutine 3 [select]:
google.golang.org/grpc/transport.(*http2Client).controller(0xc820182000)
/root/gofolder/src/google.golang.org/grpc/transport/http2_client.go:799 +0x629
created by google.golang.org/grpc/transport.newHTTP2Client
/root/gofolder/src/google.golang.org/grpc/transport/http2_client.go:193 +0x1536
goroutine 4 [IO wait]:
net.runtime_pollWait(0x7faedde86ad8, 0x72, 0xc82007c0b0)
/usr/local/go/src/runtime/netpoll.go:157 +0x60
net.(*pollDesc).Wait(0xc820172680, 0x72, 0x0, 0x0)
/usr/local/go/src/net/fd_poll_runtime.go:73 +0x3a
net.(*pollDesc).WaitRead(0xc820172680, 0x0, 0x0)
/usr/local/go/src/net/fd_poll_runtime.go:78 +0x36
net.(*netFD).Read(0xc820172620, 0xc82017e024, 0x9, 0x9, 0x0, 0x7faedde81028, 0xc82007c0b0)
/usr/local/go/src/net/fd_unix.go:232 +0x23a
net.(*conn).Read(0xc8200361a0, 0xc82017e024, 0x9, 0x9, 0x0, 0x0, 0x0)
/usr/local/go/src/net/net.go:172 +0xe4
io.ReadAtLeast(0x7faee0ccc1b8, 0xc8200361a0, 0xc82017e024, 0x9, 0x9, 0x9, 0x0, 0x0, 0x0)
/usr/local/go/src/io/io.go:298 +0xe6
io.ReadFull(0x7faee0ccc1b8, 0xc8200361a0, 0xc82017e024, 0x9, 0x9, 0x3f33df36a0da9501, 0x0, 0x0)
/usr/local/go/src/io/io.go:316 +0x62
github.com/bradfitz/http2.readFrameHeader(0xc82017e024, 0x9, 0x9, 0x7faee0ccc1b8, 0xc8200361a0, 0xdd000000, 0xc800000000, 0x0, 0x0)
/root/gofolder/src/github.com/bradfitz/http2/frame.go:228 +0xa5
github.com/bradfitz/http2.(*Framer).ReadFrame(0xc82017e000, 0x0, 0x0, 0x0, 0x0)
/root/gofolder/src/github.com/bradfitz/http2/frame.go:373 +0xe6
google.golang.org/grpc/transport.(*framer).readFrame(0xc820132ed0, 0x0, 0x0, 0x0, 0x0)
/root/gofolder/src/google.golang.org/grpc/transport/http_util.go:453 +0x3d
google.golang.org/grpc/transport.(*http2Client).reader(0xc820182000)
/root/gofolder/src/google.golang.org/grpc/transport/http2_client.go:729 +0x115
created by google.golang.org/grpc/transport.newHTTP2Client
/root/gofolder/src/google.golang.org/grpc/transport/http2_client.go:199 +0x1595
goroutine 5 [select]:
google.golang.org/grpc.(*ClientConn).transportMonitor(0xc8200d1c30)
/root/gofolder/src/google.golang.org/grpc/clientconn.go:383 +0x29a
created by google.golang.org/grpc.Dial
/root/gofolder/src/google.golang.org/grpc/clientconn.go:188 +0x541
Hello!
I'm using recent commit and tried to do some tests with it. And hit issue about complete silence about broken configuration options:
[global.config]
as = xxxx
router-id = "xxx"
[[neighbors]]
[neighbors.config]
neighbor-address = "xxx"
peer-as = xx
[[neighbors.afi-safis]]
afi-safi-name = "ipv4-unicast"
[[neighbors]]
[neighbors.config]
neighbor-address = "xx"
peer-as = xxx
[[neighbors.afi-safis]]
afi-safi-name = "ipv4-unicast"
[some.weird.optionsasdadsdas]
enable = true
[[rpki-servers]]
[rpki-servers.config]
address = "127.0.0.1"
port = 8282
As you can see we definitely should notify user in this case.
But actually GoBGP keep silence:
{"level":"info","msg":"gobgpd started","time":"2016-01-09T20:10:28+03:00"}
{"level":"info","msg":"finished reading the config file","time":"2016-01-09T20:10:28+03:00"}
{"level":"info","msg":"Peer xxxx is added","time":"2016-01-09T20:10:28+03:00"}
{"level":"info","msg":"roa server is connected, 127.0.0.1:8282","time":"2016-01-09T20:10:28+03:00"}
{"level":"info","msg":"Peer xxxx is added","time":"2016-01-09T20:10:28+03:00"}
Hello!
I'm trying to configure default policy for my peers with configuration file. Actually it's bit complicated because you are using 0 and 1 as params for reject and accept here: https://github.com/osrg/gobgp/blob/master/docs/sources/policy.md
My suggestion to change non meaningful 0 and 1 to something like: reject / accept / pass.
BGP filters is very-very-very dangerous part of BGP daemon and we need to prevent as much as possible errors here.
Hello, folks!
We are interested in performance tests of GoBGP. So we could try to feed FullBGP to it and check how it going.
Do you have any benchmarks?
Hello, folks!
I suggest to change 8080 port to something non standard. I hit issue when trying to run RIPE RPKI validator with GoBGP on same machine :)
So much web servers and apps using 8080 port and will be fine to change GoBGP's API port to something uniq!
What do you think?
Hello!
Sorry for bothering you but I haven't any examples How I could specify multiple SAFI's.
I'm using this configuration:
[Global]
[Global.GlobalConfig]
As = 65001
RouterId = "178.62.227.110"
[Neighbors]
[[Neighbors.NeighborList]]
[Neighbors.NeighborList.NeighborConfig]
NeighborAddress = "213.133.111.200"
PeerAs = 65001
[Neighbors.NeighborList.AfiSafis]
[[Neighbors.NeighborList.AfiSafis.AfiSafiList]]
AfiSafiName = "ipv4-flowspec"
But IPv4-unicast safi disabled when I specified flowspec explicitly.
When ebgp configured on gobgpd like:
+--------+ +------+
| gobgpd +-------+ vSRX |
+--------+ +------+
^ ^
192.168.0.78 192.168.0.76
AS64600 AS64601
# gobgpd.conf
[Global]
[Global.GlobalConfig]
As = 64600
RouterId = "192.168.0.78"
[Neighbors]
[[Neighbors.NeighborList]]
[Neighbors.NeighborList.NeighborConfig]
NeighborAddress = "192.168.0.76"
PeerAs = 64601
MRT injection by gobgp mrt inject global rib.20150410.0200 100
generates BGP update message below.
# TABLE_DUMP_V2|04/10/15 02:00:00|A|202.249.2.86|7500|1.0.0.0/24|7500 2497 15169|IGP
Border Gateway Protocol - UPDATE Message
Marker: ffffffffffffffffffffffffffffffff
Length: 62
Type: UPDATE Message (2)
Withdrawn Routes Length: 0
Total Path Attribute Length: 35
Path attributes
Path Attribute - ORIGIN: IGP
Flags: 0x40, Transitive: Well-known, Transitive, Complete
0... .... = Optional: Well-known
.1.. .... = Transitive: Transitive
..0. .... = Partial: Complete
...0 .... = Length: Regular length
Type Code: ORIGIN (1)
Length: 1
Origin: IGP (0)
Path Attribute - AS_PATH: 7500 2497 15169
Flags: 0x40, Transitive: Well-known, Transitive, Complete
0... .... = Optional: Well-known
.1.. .... = Transitive: Transitive
..0. .... = Partial: Complete
...0 .... = Length: Regular length
Type Code: AS_PATH (2)
Length: 14
AS Path segment: 7500 2497 15169
Segment type: AS_SEQUENCE (2)
Segment length (number of ASN): 3
AS4: 7500
AS4: 2497
AS4: 15169
Path Attribute - NEXT_HOP: 192.168.0.78
Flags: 0x40, Transitive: Well-known, Transitive, Complete
0... .... = Optional: Well-known
.1.. .... = Transitive: Transitive
..0. .... = Partial: Complete
...0 .... = Length: Regular length
Type Code: NEXT_HOP (3)
Length: 4
Next hop: 192.168.0.78 (192.168.0.78)
Path Attribute - LOCAL_PREF: 100
Flags: 0x40, Transitive: Well-known, Transitive, Complete
0... .... = Optional: Well-known
.1.. .... = Transitive: Transitive
..0. .... = Partial: Complete
...0 .... = Length: Regular length
Type Code: LOCAL_PREF (5)
Length: 4
Local preference: 100
Network Layer Reachability Information (NLRI)
1.0.0.0/24
NLRI prefix length: 24
NLRI prefix: 1.0.0.0 (1.0.0.0)
AS_PATH and LOCAL_PREF of Path Attribute look like iBGPs in the message.
Here is my environment:
$ cd $GOPATH/src/github.com/osrg/gobgp
gobgp $ git show
commit d34f4d81662ffc9df4b5dead8e5581fd0e4c21db
Author: FUJITA Tomonori <[email protected]>
Date: Mon Aug 10 16:03:04 2015 +0900
policy: kill unused code
Signed-off-by: FUJITA Tomonori <[email protected]>
gobgp $ uname -a
Linux wheezy 3.2.0-4-amd64 #1 SMP Debian 3.2.68-1+deb7u3 x86_64 GNU/Linux
gobgp $ go version
go version go1.4.2 linux/amd64
Hello!
I have two servers with standard iBGP configuration.
From second server I have announced some prefix:
gobgp global rib add 10.10.10.0/24
From second server I saw it:
gobgp neighbor
Peer AS Up/Down State |#Advertised Received Accepted
178.62.227.110 65001 00:37:07 Establ | 0 1 1
So when I tried to get "local" table gobgp get stuck:
gobgp neighbor 178.62.227.110 local
........ so long wait ...
But abj-in works with charm:
gobgp neighbor 178.62.227.110 adj-in
Network Next Hop AS_PATH Age Attrs
N 10.10.10.0/24 178.62.227.110 00:05:27 [{Origin: i} {LocalPref: 100}]
I have tried -d option but without any success:
gobgp -d neighbor 178.62.227.110 local
... still hangs ...
I could share strace of gobgp process too: https://www.dropbox.com/s/7vl7p69do3jxtcl/gobgp_local.trace?dl=0
Hello, folks!
It's not an issue it's just information for folks who uses C++ client (or want to try it).
And I will try to fix it right now.
Hey!
I am using this simple configuration:
global:
config:
router-id: 192.0.2.0
neighbors:
- config:
neighbor-address: 192.0.2.1
peer-as: 64512
local-as: 65001
- config:
neighbor-address: 192.0.2.3
peer-as: 64512
local-as: 65002
gobgp is sending an OPEN message without the ASN.
192.0.2.0.47156 > 192.0.2.1.179: Flags [P.], cksum 0x8a87 (correct), seq 1:46, ack 1, win 229, options [nop,nop,TS val 25941 ecr 60994], length 45: BGP
Open Message (1), length: 45
Version 4, my AS 0, Holdtime 90s, ID 192.0.2.0
Optional parameters, length: 16
Option Capabilities Advertisement (2), length: 14
Route Refresh (2), length: 0
Multiprotocol Extensions (1), length: 4
AFI IPv4 (1), SAFI Unicast (1)
0x0000: 0001 0001
32-Bit AS Number (65), length: 4
4 Byte AS 0
0x0000: 0000 0000
Looking at the code, I am unsure how this should be handled. config/default.go
and config/util.go
takes the local AS from global configuration only. Other files seem to use LocalAs
.
hi
I use gobgp to establish BGP session with two routers:
$ sudo -E ./gobgpd -f ~/gobgp.conf
{"level":"info","msg":"gobgpd started","time":"2015-12-08T16:20:57+08:00"}
{"level":"info","msg":"finished reading the config file","time":"2015-12-08T16:20:57+08:00"}
{"level":"info","msg":"Peer 10.75.44.204 is added","time":"2015-12-08T16:20:57+08:00"}
{"level":"info","msg":"Peer 10.75.44.209 is added","time":"2015-12-08T16:20:57+08:00"}
{"Key":"10.75.44.209","State":5,"Topic":"Peer","level":"info","msg":"Peer Up","time":"2015-12-08T16:21:07+08:00"}
{"Key":"10.75.44.204","State":5,"Topic":"Peer","level":"info","msg":"Peer Up","time":"2015-12-08T16:21:07+08:00"}
But I can't get the running information from CLI:
$ sudo ./gobgp neighbor
2015/12/08 16:29:26 transport: http2Client.notifyError got notified that the client transport was broken unexpected EOF.
rpc error: code = 13 desc = "transport is closing"
$ sudo ./gobgp neighbor 10.75.44.204
2015/12/08 16:31:18 transport: http2Client.notifyError got notified that the client transport was broken unexpected EOF.
2015/12/08 16:31:18 transport: http2Client.notifyError got notified that the client transport was broken unexpected EOF.
2015/12/08 16:31:18 transport: http2Client.notifyError got notified that the client transport was broken unexpected EOF.
.....
Hello!
I have tested my integration with C++ project and found huge amount off issues related with golang .so implementation.
So when we create libgobgp.so we attach full Go's runtime to C++ application. It's not a simple code which could be called like native C .so file.
You could look on example application which linked to libgobgp:
16364 root 20 0 231M 19452 13708 S 0.0 0.1 0:00.03 โ โโ ./gobgp_api_client
16370 root 20 0 231M 19452 13708 S 0.0 0.1 0:00.00 โ โโ gobgp_api_clien
16369 root 20 0 231M 19452 13708 S 0.0 0.1 0:00.00 โ โโ gobgp_api_clien
16368 root 20 0 231M 19452 13708 S 0.0 0.1 0:00.00 โ โโ gobgp_api_clien
16367 root 20 0 231M 19452 13708 S 0.0 0.1 0:00.00 โ โโ gobgp_api_clien
16366 root 20 0 231M 19452 13708 S 0.0 0.1 0:00.00 โ โโ gobgp_api_clien
16365 root 20 0 231M 19452 13708 S 0.0 0.1 0:00.01 โ โโ gobgp_api_clien
As you can see we have 5 threads from Golang and only single thread about app itself.
So it's not a problem itself. But Golang runtime redefine all signals and actions and broke popen (they related with SIGCHLD handler code used in pope) capability and daemoization code from my application.
I suggest to create native C library for encoding/decoding BGP structures.... But it's really complex... :(
Hello, folks!
Will be fine if you could add support for IPv6. So I could work as tester here and build C++ integration for IPv6 too :)
I intend to compare your OSS BGP Implementation with other ones in my master thesis. I also plan to analyze the implemented features by comparing the supported RFCs.
My issue is that I couldn't find a list of RFCs for GoBGP. I would appreciate if you created a list or posted me the link to the existing one.
Regards
Daniel Seidenstรผcker
(P.S.: Excuse my non-native English skills.)
Would be great to have the chance of configure timers to BGP announcements in order to be able perform temporal filters with BGP flowspec.
Something like ban an ips address for 1 hour.
Hello!
As mentioned in issue #356 so much users want to store additional information for each announce.
So we have two ways:
I prefer second option but we need some key for merging data from external storage and gobgp together.
I would like to ask for some way to select announces by ID. With IPv4 unicast is really simple to select announce by key because CIDR mask work as key. But for flow spec announces we should mention whole rule for withdraw.
It's really hard to withdraw announces in full form:
gobgp global rib -a ipv4-flowspec del match destination 10.0.0.0/24 protocol tcp source 20.0.0.0/24 then redirect 10:10
Will be fine to "assign" some uniq key (uuid will be fine) to each flow spec announce for simplified withdrawal process:
gobgp global rib -a ipv4-flowspec del 56beb318-641e-4dd0-8b69-83223f10199a
With uuid's we could store any required information outside without bothering about "key".
Hello!
I have looked to source code and found support for BGP_CAP_GRACEFUL_RESTART. So I'm looking for some way to specify this option.
I want to keep my announces while gobgp is restarting or server with gobgp become unreachable.
More information you could find here:
http://www.juniper.net/techpubs/en_US/junos15.1/topics/concept/bgp-long-lived-graceful-restart.html
https://datatracker.ietf.org/doc/draft-uttaro-idr-bgp-persistence/
So we need two directions:
Hello, Network Gurus!
I have broken your tool when plying with communities :( I'm so sorry about it.
I have created announce:
gobgp global rib add 10.33.1.0/24 -a ipv4
Then I have created blackhole community:
gobgp policy community add blackhole 65000:666
And enabled it for all exported prefixes:
gobgp neighbor 213.133.111.200 policy add export blackhole accept
After this operations source session goes away:
gobgpd
{"level":"info","msg":"Peer 213.133.111.200 is added","time":"2015-09-02T12:13:32+03:00"}
{"Key":"213.133.111.200","State":5,"Topic":"Peer","level":"info","msg":"Peer Up","time":"2015-09-02T12:13:39+03:00"}
panic: runtime error: invalid memory address or nil pointer dereference
[signal 0xb code=0x1 addr=0x10 pc=0x4f3a6c]
goroutine 11 [running]:
github.com/osrg/gobgp/server.(*LocalRib).setPolicy(0x0, 0xc82005cd80, 0xc8201fb1a0)
/root/gofolder/src/github.com/osrg/gobgp/server/peer.go:415 +0x67c
github.com/osrg/gobgp/server.(*BgpServer).handleGrpc(0xc820059c00, 0xc8200f1310, 0x0, 0x0, 0x0)
/root/gofolder/src/github.com/osrg/gobgp/server/server.go:1500 +0x35d0
github.com/osrg/gobgp/server.(*BgpServer).Serve(0xc820059c00)
/root/gofolder/src/github.com/osrg/gobgp/server/server.go:335 +0x2d09
created by main.main
/root/gofolder/src/github.com/osrg/gobgp/gobgpd/main.go:145 +0x961
goroutine 1 [select]:
main.main()
/root/gofolder/src/github.com/osrg/gobgp/gobgpd/main.go:165 +0x1955
goroutine 17 [syscall, locked to thread]:
runtime.goexit()
/usr/local/go/src/runtime/asm_amd64.s:1696 +0x1
goroutine 13 [chan receive]:
github.com/osrg/gobgp/server.(*BgpServer).Serve.func1(0xc82001ad20)
/root/gofolder/src/github.com/osrg/gobgp/server/server.go:145 +0x61
created by github.com/osrg/gobgp/server.(*BgpServer).Serve
/root/gofolder/src/github.com/osrg/gobgp/server/server.go:164 +0x149
goroutine 8 [syscall]:
os/signal.loop()
/usr/local/go/src/os/signal/signal_unix.go:22 +0x18
created by os/signal.init.1
/usr/local/go/src/os/signal/signal_unix.go:28 +0x37
goroutine 9 [select, locked to thread]:
runtime.gopark(0xb794a0, 0xc820026f28, 0xa60cc0, 0x6, 0x18, 0x2)
/usr/local/go/src/runtime/proc.go:185 +0x163
runtime.selectgoImpl(0xc820026f28, 0x0, 0x18)
/usr/local/go/src/runtime/select.go:392 +0xa64
runtime.selectgo(0xc820026f28)
/usr/local/go/src/runtime/select.go:212 +0x12
runtime.ensureSigM.func1()
/usr/local/go/src/runtime/signal1_unix.go:227 +0x353
runtime.goexit()
/usr/local/go/src/runtime/asm_amd64.s:1696 +0x1
goroutine 10 [chan receive]:
github.com/osrg/gobgp/config.ReadConfigfileServe(0xa712d0, 0xb, 0xc82001a780, 0xc82001a7e0)
/root/gofolder/src/github.com/osrg/gobgp/config/serve.go:17 +0x60
created by main.main
/root/gofolder/src/github.com/osrg/gobgp/gobgpd/main.go:142 +0x8f8
goroutine 12 [IO wait]:
net.runtime_pollWait(0x7f46a0281d78, 0x72, 0xc82000a1b0)
/usr/local/go/src/runtime/netpoll.go:157 +0x60
net.(*pollDesc).Wait(0xc8200147d0, 0x72, 0x0, 0x0)
/usr/local/go/src/net/fd_poll_runtime.go:73 +0x3a
net.(*pollDesc).WaitRead(0xc8200147d0, 0x0, 0x0)
/usr/local/go/src/net/fd_poll_runtime.go:78 +0x36
net.(*netFD).accept(0xc820014770, 0x0, 0x7f46a0281fb8, 0xc8201dec60)
/usr/local/go/src/net/fd_unix.go:408 +0x27c
net.(*TCPListener).AcceptTCP(0xc820028490, 0xc820039dc0, 0x0, 0x0)
/usr/local/go/src/net/tcpsock_posix.go:254 +0x4d
net.(*TCPListener).Accept(0xc820028490, 0x0, 0x0, 0x0, 0x0)
/usr/local/go/src/net/tcpsock_posix.go:264 +0x3d
google.golang.org/grpc.(*Server).Serve(0xc8200f0be0, 0x7f46a0281fe0, 0xc820028490, 0x0, 0x0)
/root/gofolder/src/google.golang.org/grpc/server.go:198 +0x18a
github.com/osrg/gobgp/server.(*Server).Serve(0xc8201329d0, 0x0, 0x0)
/root/gofolder/src/github.com/osrg/gobgp/server/grpc_server.go:105 +0x296
created by main.main
/root/gofolder/src/github.com/osrg/gobgp/gobgpd/main.go:149 +0x9a4
goroutine 14 [chan receive]:
github.com/osrg/gobgp/server.(*BgpServer).Serve.func2(0xc82001ad80)
/root/gofolder/src/github.com/osrg/gobgp/server/server.go:169 +0x43
created by github.com/osrg/gobgp/server.(*BgpServer).Serve
/root/gofolder/src/github.com/osrg/gobgp/server/server.go:172 +0x18c
goroutine 15 [IO wait]:
net.runtime_pollWait(0x7f46a0281ef8, 0x72, 0xc82000a1b0)
/usr/local/go/src/runtime/netpoll.go:157 +0x60
net.(*pollDesc).Wait(0xc8200146f0, 0x72, 0x0, 0x0)
/usr/local/go/src/net/fd_poll_runtime.go:73 +0x3a
net.(*pollDesc).WaitRead(0xc8200146f0, 0x0, 0x0)
/usr/local/go/src/net/fd_poll_runtime.go:78 +0x36
net.(*netFD).accept(0xc820014690, 0x0, 0x7f46a0281fb8, 0xc82011b900)
/usr/local/go/src/net/fd_unix.go:408 +0x27c
net.(*TCPListener).AcceptTCP(0xc820028480, 0xc82001ade0, 0x0, 0x0)
/usr/local/go/src/net/tcpsock_posix.go:254 +0x4d
github.com/osrg/gobgp/server.listenAndAccept.func1(0xc820028480, 0xc82001ade0)
/root/gofolder/src/github.com/osrg/gobgp/server/server.go:121 +0x31
created by github.com/osrg/gobgp/server.listenAndAccept
/root/gofolder/src/github.com/osrg/gobgp/server/server.go:128 +0x227
goroutine 16 [IO wait]:
net.runtime_pollWait(0x7f46a0281e38, 0x72, 0xc82000a1b0)
/usr/local/go/src/runtime/netpoll.go:157 +0x60
net.(*pollDesc).Wait(0xc820014760, 0x72, 0x0, 0x0)
/usr/local/go/src/net/fd_poll_runtime.go:73 +0x3a
net.(*pollDesc).WaitRead(0xc820014760, 0x0, 0x0)
/usr/local/go/src/net/fd_poll_runtime.go:78 +0x36
net.(*netFD).accept(0xc820014700, 0x0, 0x7f46a0281fb8, 0xc82011b4e0)
/usr/local/go/src/net/fd_unix.go:408 +0x27c
net.(*TCPListener).AcceptTCP(0xc820028488, 0x0, 0x0, 0x0)
/usr/local/go/src/net/tcpsock_posix.go:254 +0x4d
github.com/osrg/gobgp/server.listenAndAccept.func1(0xc820028488, 0xc82001ade0)
/root/gofolder/src/github.com/osrg/gobgp/server/server.go:121 +0x31
created by github.com/osrg/gobgp/server.listenAndAccept
/root/gofolder/src/github.com/osrg/gobgp/server/server.go:128 +0x227
goroutine 18 [select]:
github.com/osrg/gobgp/server.(*FSM).connectLoop(0xc820077a40, 0x0, 0x0)
/root/gofolder/src/github.com/osrg/gobgp/server/fsm.go:244 +0x4f7
github.com/osrg/gobgp/server.(*FSM).(github.com/osrg/gobgp/server.connectLoop)-fm(0x0, 0x0)
/root/gofolder/src/github.com/osrg/gobgp/server/fsm.go:147 +0x2e
gopkg.in/tomb%2ev2.(*Tomb).run(0xc820077a40, 0xc820132e50)
/root/gofolder/src/gopkg.in/tomb.v2/tomb.go:153 +0x21
created by gopkg.in/tomb%2ev2.(*Tomb).Go
/root/gofolder/src/gopkg.in/tomb.v2/tomb.go:149 +0x131
goroutine 30 [chan receive]:
github.com/osrg/gobgp/server.(*FSMHandler).loop(0xc8200cb900, 0x0, 0x0)
/root/gofolder/src/github.com/osrg/gobgp/server/fsm.go:876 +0x14d
github.com/osrg/gobgp/server.(*FSMHandler).(github.com/osrg/gobgp/server.loop)-fm(0x0, 0x0)
/root/gofolder/src/github.com/osrg/gobgp/server/fsm.go:280 +0x2e
gopkg.in/tomb%2ev2.(*Tomb).run(0xc820077a40, 0xc820133900)
/root/gofolder/src/gopkg.in/tomb.v2/tomb.go:153 +0x21
created by gopkg.in/tomb%2ev2.(*Tomb).Go
/root/gofolder/src/gopkg.in/tomb.v2/tomb.go:149 +0x131
goroutine 31 [select]:
github.com/osrg/gobgp/server.(*FSMHandler).established(0xc8200cb900, 0x51b73e)
/root/gofolder/src/github.com/osrg/gobgp/server/fsm.go:800 +0xfff
github.com/osrg/gobgp/server.(*FSMHandler).loop.func1(0x0, 0x0)
/root/gofolder/src/github.com/osrg/gobgp/server/fsm.go:867 +0xe3
gopkg.in/tomb%2ev2.(*Tomb).run(0xc8200cb900, 0xc8201de060)
/root/gofolder/src/gopkg.in/tomb.v2/tomb.go:153 +0x21
created by gopkg.in/tomb%2ev2.(*Tomb).Go
/root/gofolder/src/gopkg.in/tomb.v2/tomb.go:149 +0x131
goroutine 32 [select]:
github.com/osrg/gobgp/server.(*FSMHandler).sendMessageloop(0xc8200cb900, 0x0, 0x0)
/root/gofolder/src/github.com/osrg/gobgp/server/fsm.go:746 +0x50e
github.com/osrg/gobgp/server.(*FSMHandler).(github.com/osrg/gobgp/server.sendMessageloop)-fm(0x0, 0x0)
/root/gofolder/src/github.com/osrg/gobgp/server/fsm.go:788 +0x2e
gopkg.in/tomb%2ev2.(*Tomb).run(0xc8200cb900, 0xc8201339d0)
/root/gofolder/src/gopkg.in/tomb.v2/tomb.go:153 +0x21
created by gopkg.in/tomb%2ev2.(*Tomb).Go
/root/gofolder/src/gopkg.in/tomb.v2/tomb.go:149 +0x131
goroutine 33 [IO wait]:
net.runtime_pollWait(0x7f46a0281cb8, 0x72, 0xc82000a1b0)
/usr/local/go/src/runtime/netpoll.go:157 +0x60
net.(*pollDesc).Wait(0xc820014ae0, 0x72, 0x0, 0x0)
/usr/local/go/src/net/fd_poll_runtime.go:73 +0x3a
net.(*pollDesc).WaitRead(0xc820014ae0, 0x0, 0x0)
/usr/local/go/src/net/fd_poll_runtime.go:78 +0x36
net.(*netFD).Read(0xc820014a80, 0xc8201de620, 0x13, 0x13, 0x0, 0x7f46a027c050, 0xc82000a1b0)
/usr/local/go/src/net/fd_unix.go:232 +0x23a
net.(*conn).Read(0xc8200284d0, 0xc8201de620, 0x13, 0x13, 0x0, 0x0, 0x0)
/usr/local/go/src/net/net.go:172 +0xe4
io.ReadAtLeast(0x7f46a02822a8, 0xc8200284d0, 0xc8201de620, 0x13, 0x13, 0x13, 0x0, 0x0, 0x0)
/usr/local/go/src/io/io.go:298 +0xe6
io.ReadFull(0x7f46a02822a8, 0xc8200284d0, 0xc8201de620, 0x13, 0x13, 0x13, 0x0, 0x0)
/usr/local/go/src/io/io.go:316 +0x62
github.com/osrg/gobgp/server.readAll(0x7f46a02821f0, 0xc8200284d0, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0)
/root/gofolder/src/github.com/osrg/gobgp/server/fsm.go:394 +0xd9
github.com/osrg/gobgp/server.(*FSMHandler).recvMessageWithError(0xc8200cb900, 0x0, 0x0)
/root/gofolder/src/github.com/osrg/gobgp/server/fsm.go:402 +0x7a
github.com/osrg/gobgp/server.(*FSMHandler).recvMessageloop(0xc8200cb900, 0x0, 0x0)
/root/gofolder/src/github.com/osrg/gobgp/server/fsm.go:778 +0x2d
github.com/osrg/gobgp/server.(*FSMHandler).(github.com/osrg/gobgp/server.recvMessageloop)-fm(0x0, 0x0)
/root/gofolder/src/github.com/osrg/gobgp/server/fsm.go:790 +0x2e
gopkg.in/tomb%2ev2.(*Tomb).run(0xc8200cb900, 0xc8201339e0)
/root/gofolder/src/gopkg.in/tomb.v2/tomb.go:153 +0x21
created by gopkg.in/tomb%2ev2.(*Tomb).Go
/root/gofolder/src/gopkg.in/tomb.v2/tomb.go:149 +0x131
goroutine 43 [runnable]:
google.golang.org/grpc/transport.(*http2Server).controller(0xc8200714d0)
/root/gofolder/src/google.golang.org/grpc/transport/http2_server.go:611 +0x629
created by google.golang.org/grpc/transport.newHTTP2Server
/root/gofolder/src/google.golang.org/grpc/transport/http2_server.go:133 +0x852
goroutine 44 [IO wait]:
net.runtime_pollWait(0x7f46a0281bf8, 0x72, 0xc82000a1b0)
/usr/local/go/src/runtime/netpoll.go:157 +0x60
net.(*pollDesc).Wait(0xc82020ba30, 0x72, 0x0, 0x0)
/usr/local/go/src/net/fd_poll_runtime.go:73 +0x3a
net.(*pollDesc).WaitRead(0xc82020ba30, 0x0, 0x0)
/usr/local/go/src/net/fd_poll_runtime.go:78 +0x36
net.(*netFD).Read(0xc82020b9d0, 0xc820071464, 0x9, 0x9, 0x0, 0x7f46a027c050, 0xc82000a1b0)
/usr/local/go/src/net/fd_unix.go:232 +0x23a
net.(*conn).Read(0xc820028588, 0xc820071464, 0x9, 0x9, 0x0, 0x0, 0x0)
/usr/local/go/src/net/net.go:172 +0xe4
io.ReadAtLeast(0x7f46a02822a8, 0xc820028588, 0xc820071464, 0x9, 0x9, 0x9, 0x0, 0x0, 0x0)
/usr/local/go/src/io/io.go:298 +0xe6
io.ReadFull(0x7f46a02822a8, 0xc820028588, 0xc820071464, 0x9, 0x9, 0x6da8579645415501, 0x0, 0x0)
/usr/local/go/src/io/io.go:316 +0x62
github.com/bradfitz/http2.readFrameHeader(0xc820071464, 0x9, 0x9, 0x7f46a02822a8, 0xc820028588, 0xa0000000, 0xc800000000, 0x0, 0x0)
/root/gofolder/src/github.com/bradfitz/http2/frame.go:228 +0xa5
github.com/bradfitz/http2.(*Framer).ReadFrame(0xc820071440, 0x0, 0x0, 0x0, 0x0)
/root/gofolder/src/github.com/bradfitz/http2/frame.go:373 +0xe6
google.golang.org/grpc/transport.(*framer).readFrame(0xc8201fb260, 0x0, 0x0, 0x0, 0x0)
/root/gofolder/src/google.golang.org/grpc/transport/http_util.go:445 +0x3d
google.golang.org/grpc/transport.(*http2Server).HandleStreams(0xc8200714d0, 0xc8201dec80)
/root/gofolder/src/google.golang.org/grpc/transport/http2_server.go:249 +0x6be
google.golang.org/grpc.(*Server).Serve.func2(0x7f46a02823f0, 0xc8200714d0, 0xc8200f0be0)
/root/gofolder/src/google.golang.org/grpc/server.go:229 +0x89
created by google.golang.org/grpc.(*Server).Serve
/root/gofolder/src/google.golang.org/grpc/server.go:233 +0x733
goroutine 45 [chan receive]:
github.com/osrg/gobgp/server.(*Server).ModNeighborPolicy(0xc8201329d0, 0x7f46a0282fe0, 0xc8201fef50, 0x0, 0x0)
/root/gofolder/src/github.com/osrg/gobgp/server/grpc_server.go:319 +0x4e6
github.com/osrg/gobgp/api._Grpc_ModNeighborPolicy_Handler(0xa425e0, 0xc8201329d0, 0x7f46a0282768, 0xc820071560, 0x0, 0x0)
/root/gofolder/src/github.com/osrg/gobgp/api/gobgp.pb.go:1523 +0xdb
google.golang.org/grpc.(*Server).processStreamingRPC(0xc8200f0be0, 0x7f46a02823f0, 0xc8200714d0, 0xc82012e780, 0xc82011b440, 0xd53f00, 0x0, 0x0)
/root/gofolder/src/google.golang.org/grpc/server.go:358 +0x3d5
google.golang.org/grpc.(*Server).handleStream(0xc8200f0be0, 0x7f46a02823f0, 0xc8200714d0, 0xc82012e780)
/root/gofolder/src/google.golang.org/grpc/server.go:398 +0x7d4
google.golang.org/grpc.(*Server).Serve.func2.1(0xc82012e780)
/root/gofolder/src/google.golang.org/grpc/server.go:228 +0x49
google.golang.org/grpc/transport.(*http2Server).operateHeaders.func3(0xc8201dec80, 0xc82012e780, 0xc8201fee60)
/root/gofolder/src/google.golang.org/grpc/transport/http2_server.go:208 +0x26
created by google.golang.org/grpc/transport.(*http2Server).operateHeaders
/root/gofolder/src/google.golang.org/grpc/transport/http2_server.go:210 +0xfe1
Hello!
I have checked master code because I want to pull updated C++ library.
But I could not build .so correctly:
cd /usr/src
git clone https://github.com/osrg/gobgp.git
cd gobgp/gobgp
go build -buildmode=c-shared -o libgobgp.so *.go
But I got only libgobgp.so and could not find libgobgp.h.
So even with old libgobgp.h it do not work correctly:
undefined reference to `decode_path'
undefined reference to `serialize_path'
Could you help me?
Hello, folks!
I'm working hard on my slides for RIPE 71 and I want to mention your awesome toolkit here. But I really like logotypes and will be very happy if you create some logo for GoBGP! :)
Thanks!
Hello, folks!
I want to get working nexthop for unicast IPv4 as recommended here #306 (comment)
I have implemented complete API for announce/withdraw prefixes with gRPC: https://github.com/pavel-odintsov/gobgp_api_cpp_client/blob/master/gobgp_api_client.cc#L82
So I could not specify nexthop with gRPC too :(
Because function for generating BGP structures serialize_path hasn't this capability and uses hardcoded nexthop:
Line 398 in ba3a7dd
Could you add any option for doing this job?
I'm using uRPF capability from Cisco and Juniper and really need nexthop... http://www.cisco.com/web/about/security/intelligence/urpf.pdf
Thanks so much!
Testing right now :
$ go get github.com/osrg/gobgp/gobgp
go/src/github.com/osrg/gobgp/config/serve.go:34: v.UnmarshalExact undefined (type *viper.Viper has no field or method UnmarshalExact)
Hello, folks!
My neighbor uses passive mode, so only I could connect to it.
I have following configuration:
cat /etc/gobgpd.conf
[global.config]
as = 65000
router-id = "136.243.59.116"
[[neighbors]]
[neighbors.config]
neighbor-address = "213.133.111.200"
peer-as = 65000
[neighbors.ebgp-multihop.config]
enabled = true
[[neighbors.afi-safis]]
afi-safi-name = "ipv4-unicast"
[neighbors.graceful-restart.config]
enabled = true
restart-time = 120
[neighbors.afi-safis.mp-graceful-restart.config]
enabled = true
213.133.111.200 it's my neighbor with passive BGP.
But when I start GoBGP I'm expecting immediate connection to neighbor.
But actually I should wait for 50+ seconds until first try to connect with opposite site.
Debug output here:
gobgpd -f /etc/gobgpd.conf --log-level debug
{"level":"info","msg":"gobgpd started","time":"2016-02-03T21:03:23+03:00"}
{"level":"info","msg":"finished reading the config file","time":"2016-02-03T21:03:23+03:00"}
{"level":"info","msg":"Peer 213.133.111.200 is added","time":"2016-02-03T21:03:23+03:00"}
{"Duration":0,"Key":"213.133.111.200","Topic":"Peer","level":"debug","msg":"IdleHoldTimer expired","time":"2016-02-03T21:03:23+03:00"}
{"Key":"213.133.111.200","Topic":"Peer","level":"debug","msg":"state changed","new":"BGP_FSM_ACTIVE","old":"BGP_FSM_IDLE","reason":"idle-hold-timer-expired","time":"2016-02-03T21:03:23+03:00"}
So all this time (40 seconds) GoBPG haven't tried to connect to neighbor with "passive mode"
{"Key":"213.133.111.200","Topic":"Peer","level":"debug","msg":"state changed","new":"BGP_FSM_OPENSENT","old":"BGP_FSM_ACTIVE","reason":"unknown","time":"2016-02-03T21:04:08+03:00"}
{"Key":"213.133.111.200","Topic":"Peer","level":"debug","msg":"state changed","new":"BGP_FSM_OPENCONFIRM","old":"BGP_FSM_OPENSENT","reason":"unknown","time":"2016-02-03T21:04:08+03:00"}
{"Key":"213.133.111.200","State":4,"Topic":"Peer","level":"info","msg":"Peer Up","time":"2016-02-03T21:04:08+03:00"}
{"Key":"213.133.111.200","Topic":"Peer","level":"debug","msg":"state changed","new":"BGP_FSM_ESTABLISHED","old":"BGP_FSM_OPENCONFIRM","reason":"unknown","time":"2016-02-03T21:04:08+03:00"}
{"Key":"213.133.111.200","State":5,"Topic":"Peer","data":{"Header":{"Marker":null,"Len":23,"Type":2},"Body":{"WithdrawnRoutesLen":0,"WithdrawnRoutes":null,"TotalPathAttributeLen":0,"PathAttributes":null,"NLRI":null}},"level":"debug","msg":"sent","time":"2016-02-03T21:04:08+03:00"}
{"Key":"213.133.111.200","Topic":"Peer","data":{"Header":{"Marker":null,"Len":50,"Type":2},"Body":{"WithdrawnRoutesLen":0,"WithdrawnRoutes":[],"TotalPathAttributeLen":21,"PathAttributes":[{"type":1,"value":0},{"type":2,"as_paths":null},{"type":3,"nexthop":"213.133.111.193"},{"type":5,"value":100}],"NLRI":[{"prefix":"0.0.0.0/0"},{"prefix":"213.133.111.192/27"}]}},"level":"debug","msg":"received","time":"2016-02-03T21:04:08+03:00"}
{"Key":"0.0.0.0/0","Topic":"Table","level":"debug","msg":"create Destination","time":"2016-02-03T21:04:08+03:00"}
{"Key":"213.133.111.192/27","Topic":"Table","level":"debug","msg":"create Destination","time":"2016-02-03T21:04:08+03:00"}
{"Key":"0.0.0.0/0","Topic":"table","level":"debug","msg":"Processing destination","time":"2016-02-03T21:04:08+03:00"}
{"level":"debug","msg":"computeKnownBestPath known pathlist: 1","time":"2016-02-03T21:04:08+03:00"}
{"Key":"213.133.111.192/27","Topic":"table","level":"debug","msg":"Processing destination","time":"2016-02-03T21:04:08+03:00"}
{"level":"debug","msg":"computeKnownBestPath known pathlist: 1","time":"2016-02-03T21:04:08+03:00"}
{"Data":{"IsWithdraw":false},"Key":"213.133.111.200","Topic":"Peer","level":"debug","msg":"From same AS, ignore.","time":"2016-02-03T21:04:08+03:00"}
{"Data":{"IsWithdraw":false},"Key":"213.133.111.200","Topic":"Peer","level":"debug","msg":"From same AS, ignore.","time":"2016-02-03T21:04:08+03:00"}
{"Key":"213.133.111.200","Topic":"Peer","data":{"Header":{"Marker":null,"Len":23,"Type":2},"Body":{"WithdrawnRoutesLen":0,"WithdrawnRoutes":[],"TotalPathAttributeLen":0,"PathAttributes":[],"NLRI":[]}},"level":"debug","msg":"received","time":"2016-02-03T21:04:08+03:00"}
{"AddressFamily":65537,"Key":"213.133.111.200","Topic":"Peer","level":"debug","msg":"EOR received","time":"2016-02-03T21:04:08+03:00"}
{"Key":"213.133.111.200","State":5,"Topic":"Peer","data":{"Header":{"Marker":null,"Len":19,"Type":4},"Body":{}},"level":"debug","msg":"sent","time":"2016-02-03T21:04:38+03:00"}
{"Key":"213.133.111.200","State":5,"Topic":"Peer","data":{"Header":{"Marker":null,"Len":19,"Type":4},"Body":{}},"level":"debug","msg":"sent","time":"2016-02-03T21:05:08+03:00"}
{"Key":"213.133.111.200","State":5,"Topic":"Peer","data":{"Header":{"Marker":null,"Len":19,"Type":4},"Body":{}},"level":"debug","msg":"sent","time":"2016-02-03T21:05:38+03:00"}
{"Key":"213.133.111.200","State":5,"Topic":"Peer","data":{"Header":{"Marker":null,"Len":19,"Type":4},"Body":{}},"level":"debug","msg":"sent","time":"2016-02-03T21:06:08+03:00"}
{"Key":"213.133.111.200","State":5,"Topic":"Peer","data":{"Header":{"Marker":null,"Len":19,"Type":4},"Body":{}},"level":"debug","msg":"sent","time":"2016-02-03T21:06:38+03:00"}
{"Key":"213.133.111.200","State":5,"Topic":"Peer","data":{"Header":{"Marker":null,"Len":19,"Type":4},"Body":{}},"level":"debug","msg":"sent","time":"2016-02-03T21:07:08+03:00"}
{"Key":"213.133.111.200","State":5,"Topic":"Peer","data":{"Header":{"Marker":null,"Len":19,"Type":4},"Body":{}},"level":"debug","msg":"sent","time":"2016-02-03T21:07:38+03:00"}
{"Key":"213.133.111.200","State":5,"Topic":"Peer","data":{"Header":{"Marker":null,"Len":19,"Type":4},"Body":{}},"level":"debug","msg":"sent","time":"2016-02-03T21:08:08+03:00"}
{"Key":"213.133.111.200","State":5,"Topic":"Peer","data":{"Header":{"Marker":null,"Len":19,"Type":4},"Body":{}},"level":"debug","msg":"sent","time":"2016-02-03T21:08:38+03:00"}
{"Key":"213.133.111.200","State":5,"Topic":"Peer","data":{"Header":{"Marker":null,"Len":19,"Type":4},"Body":{}},"level":"debug","msg":"sent","time":"2016-02-03T21:09:08+03:00"}
{"Key":"213.133.111.200","State":5,"Topic":"Peer","data":{"Header":{"Marker":null,"Len":19,"Type":4},"Body":{}},"level":"debug","msg":"sent","time":"2016-02-03T21:09:38+03:00"}
{"Key":"213.133.111.200","State":5,"Topic":"Peer","data":{"Header":{"Marker":null,"Len":19,"Type":4},"Body":{}},"level":"debug","msg":"sent","time":"2016-02-03T21:10:08+03:00"}
{"Key":"213.133.111.200","State":5,"Topic":"Peer","data":{"Header":{"Marker":null,"Len":19,"Type":4},"Body":{}},"level":"debug","msg":"sent","time":"2016-02-03T21:10:38+03:00"}
{"Key":"213.133.111.200","State":5,"Topic":"Peer","data":{"Header":{"Marker":null,"Len":19,"Type":4},"Body":{}},"level":"debug","msg":"sent","time":"2016-02-03T21:11:08+03:00"}
{"Key":"213.133.111.200","State":5,"Topic":"Peer","data":{"Header":{"Marker":null,"Len":19,"Type":4},"Body":{}},"level":"debug","msg":"sent","time":"2016-02-03T21:11:38+03:00"}
{"Key":"213.133.111.200","State":5,"Topic":"Peer","data":{"Header":{"Marker":null,"Len":19,"Type":4},"Body":{}},"level":"debug","msg":"sent","time":"2016-02-03T21:12:08+03:00"}
Hello!
I have some peer in configuration and when I start GoBGP and before peer init I'm getting NIL instead remote router ID:
gobgp nei xxxx
BGP neighbor is xxxx, remote AS xxxx
BGP version 4, remote router ID <nil>
BGP state = BGP_FSM_ACTIVE, up for 00:00:00
BGP OutQ = 0, Flops = 0
Hold time is 0, keepalive interval is 0 seconds
Configured hold time is 90, keepalive interval is 0 seconds
Neighbor capabilities:
BGP_CAP_MULTIPROTOCOL:
RF_IPv4_UC: advertised
BGP_CAP_ROUTE_REFRESH: advertised
BGP_CAP_FOUR_OCTET_AS_NUMBER: advertised
Message statistics:
Sent Rcvd
Opens: 0 0
Notifications: 0 0
Updates: 0 0
Keepalives: 0 0
Route Refesh: 0 0
Discarded: 0 0
Total: 0 0
Route statistics:
Advertised: 0
Received: 0
Accepted: 0
When peer initialized correctly I get correct IP address instead NIL ;) So issue exists only between GoBGP startup and peer initialization.
Hello, folks!
I'm hardworking on RPKI deployment and have yet another suggestion about it.
I haven't found any ways to check details about RPKI invalid prefixes. Sign "I*>" is not enough for me.
I need something like RIPE RPKI validator REST API output (please look at description field):
curl http://127.0.0.1:8090/api/v1/validity/AS198068/159.253.16.0/24
{
"validated_route":{
"route":{
"origin_asn":"xx",
"prefix":"xx/24"
},
"validity":{
"state":"Invalid",
"reason":"as",
"description":"At least one VRP Covers the Route Prefix, but no VRP ASN matches the route origin ASN",
"VRPs":{
"matched":[],
"unmatched_as":[{
"asn":"xxx",
"prefix":"xxx/20",
"max_length":20
},{
"asn":"xx",
"prefix":"xxx/20",
"max_length":20
},{
"asn":"xx",
"prefix":"xxx/20",
"max_length":20
},{
"asn":"xxx",
"prefix":"xxxx/20",
"max_length":20
}],
"unmatched_length":[]
}
}
}
}
Will be fine to get new command to get details about RPKI failed state.
Hello, folks!
I'm using Git master version of GoBGP and hit this issue multiple times. GoBGP started correctly but did not listen API port:
sudo netstat -lnpt|grep gobgp
tcp 0 0 0.0.0.0:179 0.0.0.0:* LISTEN 20365/gobgpd
tcp 0 0 127.0.0.1:6060 0.0.0.0:* LISTEN 20365/gobgpd
tcp6 0 0 :::179 :::* LISTEN 20365/gobgpd
sudo /home/administrator/golibs/bin/gobgpd -f /etc/gobgpd.conf
{"level":"info","msg":"gobgpd started","time":"2015-12-30T14:39:40+03:00"}
{"level":"info","msg":"finished reading the config file","time":"2015-12-30T14:39:40+03:00"}
{"level":"info","msg":"Peer xxxxxxx is added","time":"2015-12-30T14:39:40+03:00"}
{"level":"info","msg":"roa server is connected, 127.0.0.1:8282","time":"2015-12-30T14:39:40+03:00"}
{"level":"info","msg":"can't find configuration for a new passive connection from xxxxxx","time":"2015-12-30T14:39:55+03:00"}
{"Key":"xxxxx","State":5,"Topic":"Peer","level":"info","msg":"Peer Up","time":"2015-12-30T14:40:28+03:00"}
{"level":"info","msg":"can't find configuration for a new passive connection from xxxxxx","time":"2015-12-30T14:40:54+03:00"}
I hit this issue multiple times. It's fixed by GoBGP restart:
sudo netstat -lnpt|grep gobgp
tcp 0 0 0.0.0.0:179 0.0.0.0:* LISTEN 20487/gobgpd
tcp 0 0 127.0.0.1:6060 0.0.0.0:* LISTEN 20487/gobgpd
tcp6 0 0 :::179 :::* LISTEN 20487/gobgpd
tcp6 0 0 :::50051 :::* LISTEN 20487/gobgpd
Looks likes we have some sort of race condition here...
Hello!
I'm using GoBGP as client for 2 BGP router servers. And I hit very_popular and ugly issue - I have reannounced all received prefixes from first uplink to the second and vice versa.
So fortunately I have filters on opposite side and I haven;t broken Internet.
So I have multiple questions / suggestions.
First of all, I want to ask to set default export policy to reject or just reject re-announce prefixes received from other uplink to another.
If somebody want it it should explicitly enable this.
I have achieved this with following CLI command:
gobgp global policy export set default reject
But I haven't any idea how to do same with configuration file. Could you help me here?
Hello!
I typo mistake and got broken error message (netxhop instead nexthop):
gobgp global rib add 10.33.0.0/24 netxhop 11.22.33.44 -a ipv4
usage: %!s(MISSING) rib %!s(MISSING) <PREFIX> [nexthop <ADDRESS>] -a ipv4
Please fix!
Hi, hopefully it is ok asking a question here. I am new to github. I was looking at this nice project to do something for a research project but am stuck. My problem is trying to serialize "PathAttributeExtendedCommunities".
-I am seeing the serialization in the bgp_test.go trying to use the test message as follows:
&IPv4AddressSpecificExtended{SubType: 3, IPv4: net.ParseIP("192.2.1.2").To4(), LocalAdmin: 3000},
&OpaqueExtended{Value: []byte{0, 1, 2, 3, 4, 5, 6, 7}},
&UnknownExtended{Type: 99, Value: []byte{0, 1, 2, 3, 4, 5, 6, 7}},
I end up with an empty array:
&{{192 BGP_ATTR_TYPE_EXTENDED_COMMUNITIES 0 []} []}
The message looks good in the BGPUpdate message
func (msg *BGPUpdate) Serialize() ([]byte, error) {
Creates:
&{{%!s(uint8=192) BGP_ATTR_TYPE_EXTENDED_COMMUNITIES %!s(uint16=0) } [%!s(*bgp.OpaqueExtended=&{[0 1 2 3 4 5 6 7]})]}
But when the ExtendedCommunity array gets processed further it seems to be empty.
pbuf := make([]byte, 2)
for _, p := range msg.PathAttributes {
The nested Extended Attribute is never triggered:
func (e *OpaqueExtended) Serialize() ([]byte, error) {
Wireshark ends up with an extended attributes structure but it is empty with a length of 0. Thank you for any assistance you can offer.
Hello!
As mentioned before I'm looking for some way to specify custom community with gRPC: #306 (comment) :)
But unfortunately I could generate BGP data structures only with serialize_path function from GoBGP .so library: serialize_path.
For example:
gobgpapi::Path* current_path = new gobgpapi::Path;
path* path_c_struct = serialize_path(ipv4_unicast_route_family, (char*)"10.10.20.33/22");
for (int path_attribute_number = 0; path_attribute_number < path_c_struct->path_attributes_len; path_attribute_number++) {
current_path->add_pattrs(path_c_struct->path_attributes[path_attribute_number]->value,
path_c_struct->path_attributes[path_attribute_number]->len);
}
current_path->set_nlri(path_c_struct->nlri.value, path_c_struct->nlri.len);
As you can see we could generate PATH only with GoBGP's dynamic library and I could not specify community manually.
So will be fine to open some way to do this because custom community is "must" for me :) Each ISP uses different community numbers for blackhole and I need to use different community numbers each time.
Thanks!
Hello!
Please look at line:
Line 5941 in d6148c7
You are expecting two elements array (because you are reading data[1], second element from data) but you check array length to be more than single byte.
Hi, is possible to open a PR that reduces the docker image size to 84MB?
aledbf/gobgp 0.1 b98b5cd57243 2 minutes ago 83.35 MB
osrg/gobgp latest 76abf8cf461f 4 days ago 900.5 MB
This is the change
Thanks
Hello, GoBGP team!
I have idea to use GoBGP for routing between Docker host servers over routing server. I want to deploy Bird as Routing Server and use GoBGP on physical server. So I need two options: add received announces to linux routing table and announce all routes from linux routing table to route server.
I know about some netlink integration in GoBGP. Could you share ideas?
Hello!
I would like to ask to change standard name for protocol buffers from "api" namespace and "grpc" service name to something more uniq :)
"grpc" and "api" names is very hard to understand because this class names used by gRPC itself or could be used by application authors.
I could offer "Gobgp::GobgpClient" or we could remove package and sue GobgpClient only.
Hello!
I have running GoBGP with RPKI ROA server for some time and get so much messages from stdout:
{"level":"info","msg":"roa server is connected, 127.0.0.1:8282","time":"2016-01-09T04:35:04+03:00"}
{"level":"info","msg":"roa server is disconnected, 127.0.0.1:8282","time":"2016-01-09T05:35:09+03:00"}
{"level":"info","msg":"roa server is connected, 127.0.0.1:8282","time":"2016-01-09T05:35:09+03:00"}
{"level":"info","msg":"roa server is disconnected, 127.0.0.1:8282","time":"2016-01-09T06:35:14+03:00"}
{"level":"info","msg":"roa server is connected, 127.0.0.1:8282","time":"2016-01-09T06:35:14+03:00"}
{"level":"info","msg":"roa server is disconnected, 127.0.0.1:8282","time":"2016-01-09T07:35:19+03:00"}
{"level":"info","msg":"roa server is connected, 127.0.0.1:8282","time":"2016-01-09T07:35:19+03:00"}
{"level":"info","msg":"roa server is disconnected, 127.0.0.1:8282","time":"2016-01-09T08:35:24+03:00"}
{"level":"info","msg":"roa server is connected, 127.0.0.1:8282","time":"2016-01-09T08:35:24+03:00"}
{"level":"info","msg":"roa server is disconnected, 127.0.0.1:8282","time":"2016-01-09T09:35:29+03:00"}
{"level":"info","msg":"roa server is connected, 127.0.0.1:8282","time":"2016-01-09T09:35:29+03:00"}
{"level":"info","msg":"roa server is disconnected, 127.0.0.1:8282","time":"2016-01-09T10:35:34+03:00"}
{"level":"info","msg":"roa server is connected, 127.0.0.1:8282","time":"2016-01-09T10:35:34+03:00"}
{"level":"info","msg":"roa server is disconnected, 127.0.0.1:8282","time":"2016-01-09T11:35:39+03:00"}
{"level":"info","msg":"roa server is connected, 127.0.0.1:8282","time":"2016-01-09T11:35:39+03:00"}
{"level":"info","msg":"roa server is disconnected, 127.0.0.1:8282","time":"2016-01-09T12:35:44+03:00"}
{"level":"info","msg":"roa server is connected, 127.0.0.1:8282","time":"2016-01-09T12:35:44+03:00"}
{"level":"info","msg":"roa server is disconnected, 127.0.0.1:8282","time":"2016-01-09T13:35:49+03:00"}
{"level":"info","msg":"roa server is connected, 127.0.0.1:8282","time":"2016-01-09T13:35:49+03:00"}
{"level":"info","msg":"roa server is disconnected, 127.0.0.1:8282","time":"2016-01-09T14:35:54+03:00"}
{"level":"info","msg":"roa server is connected, 127.0.0.1:8282","time":"2016-01-09T14:35:54+03:00"}
{"level":"info","msg":"roa server is disconnected, 127.0.0.1:8282","time":"2016-01-09T15:35:59+03:00"}
{"level":"info","msg":"roa server is connected, 127.0.0.1:8282","time":"2016-01-09T15:35:59+03:00"}
{"level":"info","msg":"roa server is disconnected, 127.0.0.1:8282","time":"2016-01-09T16:36:04+03:00"}
{"level":"info","msg":"roa server is connected, 127.0.0.1:8282","time":"2016-01-09T16:36:04+03:00"}
{"level":"info","msg":"roa server is disconnected, 127.0.0.1:8282","time":"2016-01-09T17:36:09+03:00"}
{"level":"info","msg":"roa server is connected, 127.0.0.1:8282","time":"2016-01-09T17:36:09+03:00"}
{"level":"info","msg":"roa server is disconnected, 127.0.0.1:8282","time":"2016-01-09T18:36:14+03:00"}
{"level":"info","msg":"roa server is connected, 127.0.0.1:8282","time":"2016-01-09T18:36:14+03:00"}
Is it OK?
I think the default local address gobgp used to bind with 179 is localhost
, so how can I change the address to another?
thanks.
Hello, folks!
I have started with gobgpd and created following configuration on single server (178...):
[Global]
[Global.GlobalConfig]
As = 65001
RouterId = "178.xxxx"
[Neighbors]
[[Neighbors.NeighborList]]
[Neighbors.NeighborList.NeighborConfig]
NeighborAddress = "213.xxxx"
PeerAs = 65002
But on the server 213 I haven't started any BGP daemon yet.
But gobgp tool shows it as "active":
gobgp neighbor
Peer AS Up/Down State |#Advertised Received Accepted
213.133.111.200 65002 never Active | 0 0 0
telnet 213.133.111.200 179
Trying 213.133.111.200...
telnet: connect to address 213.133.111.200: Connection refused
What's wrong here? From my point of view we should show it as "down" instead "active".
Hello, folks!
I haver pretty strange issue with route statistics:
gobgp neighbor xxx
BGP neighbor is xxx, remote AS xxx
BGP version 4, remote router ID xxxxx
BGP state = BGP_FSM_ESTABLISHED, up for 00:12:40
BGP OutQ = 0, Flops = 0
Hold time is 0, keepalive interval is 10 seconds
Configured hold time is 90, keepalive interval is 10 seconds
Neighbor capabilities:
BGP_CAP_MULTIPROTOCOL:
RF_IPv4_UC: advertised and received
BGP_CAP_ROUTE_REFRESH: advertised and received
BGP_CAP_GRACEFUL_RESTART: received
BGP_CAP_FOUR_OCTET_AS_NUMBER: advertised and received
BGP_CAP_ENHANCED_ROUTE_REFRESH: received
Message statistics:
Sent Rcvd
Opens: 1 1
Notifications: 0 0
Updates: 2 13853
Keepalives: 77 85
Route Refesh: 0 0
Discarded: 0 0
Total: 80 13939
Route statistics:
Advertised: 0
Received: 32111
Accepted: 32153
As you can see number of accepted routes exceed number of received routes. How it possible?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.