On 2014/02/14 13:03, Alex Mathiasen wrote: > Hello, > > First of all: I hope I am posting this to the correct maillinglist, if not > then I'm sorry! > > I am having big issues with my OpenBSD 5.4 (Also had these issues prior to > upgrading to 5.4). The server is a complete new installation - I have tried > this setup with 3 different servers from different manufactures, and 4 > different network cards (HP 100 Mbit, HP 4x1 Gbit, Intel 2x1 Gbit, Trend Net > 1Gbit). The server is loaded with 4Gigs of RAM, and have plenty of resources > available. Current load is 0.10. Kernel have not been modified or altered. > > The setup is as following: BGPD configured, routing enabled. The BGPD works > fine, I get all the prefixes loaded, as seen below. > > # bgpctl show > Neighbor AS MsgRcvd MsgSent OutQ Up/Down > State/PrfRcvd > TDC 3292 > 82071 16 0 00:12:47 476299 > > This is my sysctl.conf (kern.bufcache and net.inet.ip was added trying to > resolve this issue, without result.) > > net.inet.ip.forwarding=1 # 1=Permit forwarding (routing) of IPv4 > packets > kern.bufcachepercent=50
Remove this bufcachepercent=50 line, it is useless on a router and potentially harmful. > net.inet.ip.ifq.maxlen=512 > > The issue is: I am having big diffeculties with routing my packets both to > internal hosts, and external hosts. Periodically when tracing/pinging from my > OpenBSD, it just can't route successfully. This also affect my ingoing and > outgoing traffic, by resulting in lost packets. > > This is an example of attempting to ping: > # ping 8.8.8.8 > PING 8.8.8.8 (8.8.8.8): 56 data bytes > ping: sendto: No route to host > ping: wrote 8.8.8.8 64 chars, ret=-1 > ping: sendto: No route to host > ping: wrote 8.8.8.8 64 chars, ret=-1 > ping: sendto: No route to host > ping: wrote 8.8.8.8 64 chars, ret=-1 > ping: sendto: No route to host > ping: wrote 8.8.8.8 64 chars, ret=-1 > ping: sendto: No route to host > ping: wrote 8.8.8.8 64 chars, ret=-1 > 64 bytes from 8.8.8.8: icmp_seq=5 ttl=51 time=23.881 ms > 64 bytes from 8.8.8.8: icmp_seq=6 ttl=51 time=22.117 ms > > Second attempt: > # ping 8.8.8.8 > PING 8.8.8.8 (8.8.8.8): 56 data bytes > ping: sendto: No route to host > ping: wrote 8.8.8.8 64 chars, ret=-1 > ping: sendto: No route to host > ping: wrote 8.8.8.8 64 chars, ret=-1 > ping: sendto: No route to host > ping: wrote 8.8.8.8 64 chars, ret=-1 > 64 bytes from 8.8.8.8: icmp_seq=3 ttl=51 time=22.276 ms > 64 bytes from 8.8.8.8: icmp_seq=4 ttl=51 time=22.315 ms > > Third attempt: > # ping 8.8.8.8 > PING 8.8.8.8 (8.8.8.8): 56 data bytes > 64 bytes from 8.8.8.8: icmp_seq=0 ttl=51 time=22.356 ms > 64 bytes from 8.8.8.8: icmp_seq=1 ttl=51 time=22.309 ms > > And this just keeps going on, sometimes 100% sucessfully, sometimes with 2-xx > packets lost before routing is successful. > > Trace-routes to internal hosts: > > # traceroute 212.70.x.x > traceroute to 212.70.x.x (212.70.x.x), 64 hops max, 40 byte packets > 1 firewall (212.70.x.x5) 0.260 ms 0.224 ms 0.111 ms > 2 php (212.70.x.x) 0.496 ms 0.484 ms 0.352 ms > > Second attempt: > # traceroute 212.70.x.x > traceroute to 212.70.x.x (212.70.x.x), 64 hops max, 40 byte packets > 1 firewall (212.70.x.x5) 0.176 ms 0.223 ms 0.235 ms > 2 php (212.70.x.x) 0.483 ms 0.474 ms 0.363 ms > > Third attempt: > # traceroute 212.70.x.x > traceroute to 212.70.x.x (212.70.x.x), 64 hops max, 40 byte packets > sendto: No route to host > 1 traceroute: wrote 212.70.x.x 40 chars, ret=-1 > *sendto: No route to host > traceroute: wrote 212.70.x.x 40 chars, ret=-1 > *sendto: No route to host > traceroute: wrote 212.70.x.x 40 chars, ret=-1 > *sendto: No route to host > 2 traceroute: wrote 212.70.x.x 40 chars, ret=-1 > *sendto: No route to host > traceroute: wrote 212.70.x.x 40 chars, ret=-1 > *sendto: No route to host > traceroute: wrote 212.70.x.x 40 chars, ret=-1 > * > 3 php (212.70.x.x) 0.416 ms 0.482 ms 0.474 ms > > Any suggestions on how I can further debug this issue, or possible resolve > this once in for all? I can grant access to the server as well, if anyone > feels like debugging. > > Looking forward to some replies. Thank you in advance. > > Best regards, Alex Mathiasen Some ideas: - Check bgpd log entries in /var/log/daemon - Check kernel log entries in dmesg - Examine things both when it's working fand when it's not working and compare to spot differences, for example: bgpctl show nexthop route -n get <bgp peer's address> route -n get <failing destination> ifconfig -A