{2600}---
        |                            --- /29
        |                            |
        ---- fxp0 { OpenBSD } fxp1 --|
                  { Bridge  }        |
                                     eth0 { Cisco 2514 } eth1 --|
                                                                |
                                                                |  /28
                                                      More OpenBSD Units 



I am having a problem that I have been unable to fix.  The scenario above
is what my lab looks like.  Essentially my workstation lives off the /29
behind the fxp1 interface.  The OpenBSD Bridge is a 3.3 Generic with
pf/altq protecting everything behind it.  I can ssh to the OpenBSD bridge
from my workstation because my IP address is on the same /29 as the
External Int of the Bridge on fxp0, but none of my machines behind the
Cisco 2514 on the eth1 network /28 can talk directly to the Bridge but can
bridge out/in just fine.  Mind you traffic from the /29 can talk to the 
bridge just fine.  Just to clarify anything that comes in from the 
Internet and lands on fxp0 can talk to the Bridge as well.

I see this in my tcpdumps

## XXX.XXX.56.211 = machine on /28 subnet
## xxx.xxx.43.114 = fxp0 IP on Bridge on /29

Jun 09 11:09:48.142206 rule 20/0(match): pass in on fxp0: XXX.XXX.56.211.32214 > 
xxx.xxx.43.114.22: S
Jun 09 11:09:48.146181 rule 6/0(match): block in on fxp0: xxx.xxx.43.114.22 > 
XXX.XXX.56.211.32214: S

supporting icmp redirect dumps show this
Jun 09 11:19:55.824378 : ROU.TER.IP.113 > xxx.xxx.43.114: icmp: redirect 
XXX.XXX.56.211 to net xxx.xxx.43.116


This looks to me like a icmp redirect problem because I am seeing the
External IP of my bridge send the packet right back at the interface with
destination of the correct machine on the /29.

I at first thought it was a problem with icmp route-redirects on the
Bridge not being allowed to pass in to tell the Bridge external IP to
redirect the traffic back out fxp1.  After adding

$gw_router = ip of bridge next hop --> Cisco 2600

# ICMP router redirect for multiple networks
pass in log quick on $br0_if inet proto icmp from $gw_router to any icmp-type 5 code 0 
keep state queue man1 label "pass icmp redirects from gw_router"
pass in log quick on $br0_if inet proto icmp from $gw_router to any icmp-type 5 code 1 
keep state queue man1 label "pass icmp redirects from gw_router"
pass in log quick on $br0_if inet proto icmp from $gw_router to any icmp-type 5 code 2 
keep state queue man1 label "pass icmp redirects from gw_router"
pass in log quick on $br0_if inet proto icmp from $gw_router to any icmp-type 5 code 3 
keep state queue man1 label "pass icmp redirects from  gw_router"

This didn't work and I noticed that the block was on xxx.xxx.43.114
coming in the fxp0 interface so I put a statement for xxx.xxx.43.114 to
allow in on fxp0 although this should never happen except in this
situation.  After doing this I see the following when trying to ssh to
xxx.xxx.43.114 from a IP on the /28 network.

Jun 09 12:09:24.680962 rule 20/0(match): pass in on fxp0: XXX.XX.56.211.32148 > 
xxx.xxx.43.114.22: S
Jun 09 12:09:24.700588 rule 61/0(match): pass in on fxp0: xxx.xxx.43.114.22 > 
XXX.XXX.56.211.32148: S
Jun 09 12:09:30.692264 rule 61/0(match): pass in on fxp0: xxx.xxx.43.114.22 > 
XXX.XXX.56.211.32148: S
Jun 09 12:09:36.679255 rule 61/0(match): pass in on fxp0: xxx.xxx.43.114.22 > 
XXX.XXX.56.211.32148: S

but It never establishes the connection and I don't see any blocks on
pflog0

Seeing how this didn't work I again looked at what was happening and tried
to add a route on the bridge using the interface as the direction to push
the /28 network - I assumed this would work like a Cisco { ie static
route a network out a interface }q

route add XXX.XXX.56.208/28 -interface fxp1
route: fxp1: bad value

route add XXX.XXX.56.208 -netmask XXX.XXX.XXX.240 -interface fxp1
route: fxp1: bad value

I am confused now - do I have syntax wrong on this can I not influence a 
route out a interface
that is just "up"

fxp1: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
        address: 00:02:b3:bf:e8:b6
        media: Ethernet 100baseTX full-duplex
        status: active
        inet6 fe80::202:b3ff:febf:e8b6%fxp1 prefixlen 64 scopeid 0x2


I even tried this line in my pf.conf
@13 pass in log quick on fxp0 reply-to fxp1 inet proto tcp from XXX.XXX.56.211 to 
xxx.xxx.43.114 port = ssh keep state

and do see the action hiting that line

Jun 09 12:59:01.243481 rule 13/0(match): pass in on fxp0: XXX.XXX.56.211.9681 > 
xxx.xxx.43.114.22: S

but I still get no connection.




The 2514 can talk directly to the bridge but it knows about both /29 and 
/28

2514_dual_eth>telnet XXX.XXX.43.114 22
Trying XXX.XXX.43.114, 22 ... Open
SSH-1.99-OpenSSH_3.6.1

But a Unit on the other side of the 2514 can't

some.host.name:/etc% telnet XXX.XXX.43.114 22
Trying XXX.XXX.43.114...



Any Ideas or anyone have a similar situation and they found a resolution?

TIA

Jason Houx





Reply via email to