I have set up BGP to do some custom routing for a subset of addresses in the range 192.168.1.0/24.
I have verified that the BGP is working by testing ping/curl on a different host in a different subnet (in the 192.168.2.0/24 range), so I think that the routing configuration is working correctly. I have also verified that the IP is accessible from pfsense.
However, pings and curls fail with a no route to host
message when attempting to hit an IP from a host in the same subnet.
curl -v http://192.168.1.11
* Rebuilt URL to: http://192.168.1.11/
* Trying 192.168.1.11...
* connect to 192.168.1.11 port 80 failed: No route to host
* Failed to connect to 192.168.1.11 port 80: No route to host
* Closing connection 0
curl: (7) Failed to connect to 192.168.1.11 port 80: No route to host
Arp is showing (incomplete)
for the IP being routed to, which I though was strange but maybe is normal?
arp -n
Address HWtype HWaddress Flags Mask Iface
192.168.1.1 ether 40:62:31:00:52:40 C eth0
...
192.168.1.11 (incomplete) eth0
Here's the routes for a host in the subnet.
ip route
default via 192.168.1.1 dev eth0
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown
172.18.0.0/16 dev br-f1b94ce4ec9c proto kernel scope link src 172.18.0.1 linkdown
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.154
I stumbled across a post that I thought was describing my situation, where IP redirect was causing the hosts not to use the route, but after updating the net.inet.ip.redirect
and net.inet6.ip6.redirect
values (and rebooting pfsense) I am still left with the same problem. Is there some way to force IPs in the same subnet to use the correct route?
Edit: Updated with network topology