Coder Social home page Coder Social logo

osrg / gobgp Goto Github PK

View Code? Open in Web Editor NEW
3.5K 122.0 676.0 19.31 MB

BGP implemented in the Go Programming Language

Home Page: https://osrg.github.io/gobgp/

License: Apache License 2.0

Go 76.40% Python 20.44% Shell 2.96% Makefile 0.11% C++ 0.09%

gobgp's Introduction

GoBGP: BGP implementation in Go

Go Report Card Tests Go Reference Releases LICENSE

GoBGP is an open source Border Gateway Protocol (BGP) implementation designed from scratch for modern environment and implemented in a modern programming language, the Go Programming Language.


Install

Try a binary release.

Documentation

Using GoBGP

Externals

Community, discussion and support

We have the Slack for questions, discussion, suggestions, etc.

You have code or documentation for GoBGP? Awesome! Send a pull request. No CLA, board members, governance, or other mess. See BUILD.md for info on code contributing.

Licensing

GoBGP is licensed under the Apache License, Version 2.0. See LICENSE for the full license text.

gobgp's People

Contributors

a16 avatar bayrinat avatar ecbaldwin avatar floatingstatic avatar fujimoto-s avatar fujita avatar h-naoto avatar higebu avatar imcom avatar irino avatar iwaseyusuke avatar jeffbean avatar kishiguro avatar lexcc avatar mageshgv avatar mrueg avatar pavel-odintsov avatar qsqx avatar sbezverk avatar serejkus avatar tamihiro avatar thoro avatar ton31337 avatar tuetuopay avatar vincentbernat avatar wenovus avatar yas-nyan avatar yokoi-h avatar yujioshima avatar zvfvrv avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

gobgp's Issues

C/C++ integration code

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?

gobgp segmentation fault when working with community

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

Nil value in not yet initizalied peer name

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.

How to enable multiple SAFI's?

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.

Big challenge with default export filters

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?

Broken error message

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!

OpenMessage doesn't contain AS when using `local-as`

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.

Question about image size

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

Sometimes API server hasn't started

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...

RPKI walked away after GoBGP update

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?

Command gobgp neighbor xxx local hangs

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

Move away from 8080 port for API

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?

Bad BGP initial state for neighbour

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".

C/C++ integration issues

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... :(

Very long connection time when GoBGP's peer uses passive BGP

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"}

Memory leak in Gobgp

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

Issues with route statistics

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?

Graceful restart capability

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:

  • Option for gobgp client tool for graceful daemon restart
  • Option for gobgpd.conf for tuning time for timeout for unreachable BGP session.

Could not generate .h file for .so library

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?

Learn routes from Linux routing table

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?

CLI return error

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.
.....

BGP announcements with timers

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.

Default RPKI server used in GoBGP

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.... :(

Extended Communities not serializing into BGP Message

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.

Segmentation fault with flow spec with source and destination ports

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

What about GoBGP's logotype?

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!

ebgp behaves like ibgp

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

GoBGP RFC Support

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.)

External "key" for announces

Hello!

As mentioned in issue #356 so much users want to store additional information for each announce.

So we have two ways:

  1. Store everything in gobgp
  2. Store everything outside

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".

Impossible to compile

Testing right now :
$ go get github.com/osrg/gobgp/gobgp

github.com/osrg/gobgp/config

go/src/github.com/osrg/gobgp/config/serve.go:34: v.UnmarshalExact undefined (type *viper.Viper has no field or method UnmarshalExact)

Ability to specify custom nexthop with gRPC or CLI

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:

nexthop = "0.0.0.0"

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!

No new connection is generated when ROA cache is specified with IPv6 address

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

Port = 323

when formatting url string of ROA cache server in func [email protected], IPv6 address should be enclosed with bracket[]?

No warnings in case of broken configuration options

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"}

packet/bgp_test.go cannot find any(?) serialization/decoding bugs

Test_Message() in packet/bgp_test.go is insufficient to find serialization/decoding bugs.

The code creates some random BGP messages and then

  1. serialize the messages
  2. decode the messages
  3. serialize the decoded messages again
  4. compare if the results of serialization in 1 and 3 are the same

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.

Broken origin for unicats announces with gRPC API and CLI

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?

Install issues on CentOS 6

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?

Ability to specify custom community with gRPC API

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!

Mistake with array length

Hello!

Please look at line:

if len(data) < 1 {

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.

Repeating messages about ROA server disconnects

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?

Detailed information about RPKI status for prefix

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.

Ask for service name change for gRPC/protobuffers

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.

Could not connect together two servers with gobgp due to TTL validation

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!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.