I have a network problem moving from our old ISP (ISPo) to the new ISP
(ISPn). Both ISPn and ISPo are active while we transition to ISPn.

Current config:

     ----------------------                   --------------- 
    | hisoka         [em0] o-----------------o ISPo          |
    | (firewall)           |                  ---------------
    |                [em1] o-------------+
    |                      |             |   ---------------- 
    |                      |             +--o SWITCH         o------+
    |                [em4] o----------+      ----------------       |
    |     (69.67.212.126)  |          |                             |
    |  (69.67.212.120/32)  |          |     -------------           |
    |                      |          +----o ISPn        |          |
    |                [em5] o------+         -------------           |
    |  (vlandev interface) |      |                                 |
    |                      |      |                                 |
    |            [vlan200] o--+   +------+                          |
    |       (10.123.40.6)  |  |          |                          |
     ----------------------   +------+   |                          |
                                     |   |                          |
                                    -o---o-----                     |
                                   | SWITCH    |                    |
                                    -o---------                     |
                                     |                              |
                                     |   ---------------------      |
     ----------------------   +------+  | hammer              |     |
    | killua               |  |         | (firewall)   [fxp4] o-----+
    |               [bge0] o--+         |     (69.67.212.94)  |
    |       (10.123.40.2)  |            |  (69.67.212.74/32)  |
     ----------------------              ---------------------

hisoka:/# ifconfig em0
em0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
        lladdr 00:15:17:a6:32:5d
        priority: 0
        media: Ethernet autoselect (10baseT half-duplex)
        status: active
        inet6 fe80::215:17ff:fea6:325d%em0 prefixlen 64 scopeid 0x2
hisoka:/# ifconfig em1
em1: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
        lladdr 00:15:17:a6:32:5c
        priority: 0
        media: Ethernet autoselect (100baseTX full-duplex)
        status: active
        inet6 fe80::215:17ff:fea6:325c%em1 prefixlen 64 scopeid 0x3
hisoka:/# ifconfig em4
em4: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
        lladdr 00:14:4f:7c:fd:82
        priority: 0
        groups: egress
        media: Ethernet autoselect (100baseTX half-duplex)
        status: active
        inet 69.67.212.126 netmask 0xffffffe0 broadcast 69.67.212.127
        inet6 fe80::214:4fff:fe7c:fd82%em4 prefixlen 64 scopeid 0x7
        inet 69.67.212.120 netmask 0xffffffff broadcast 69.67.212.120
hisoka:/# ifconfig vlan200
vlan200: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        lladdr 00:14:4f:7c:fd:83
        priority: 0
        vlan: 200 priority: 0 parent interface: em5
        groups: vlan
        inet6 fe80::214:4fff:fe7c:fd83%vlan200 prefixlen 64 scopeid 0xb
        inet 10.123.40.6 netmask 0xfffffff8 broadcast 10.123.40.7
hisoka:/# cat /etc/bridgename.bridge0 
add em4
add em0
add em1
up
hisoka:/# brconfig
bridge0: flags=41<UP,RUNNING>
        priority 32768 hellotime 2 fwddelay 15 maxage 20 holdcnt 6 proto rstp
        em1 flags=3<LEARNING,DISCOVER>
                port 3 ifpriority 0 ifcost 0
        em0 flags=3<LEARNING,DISCOVER>
                port 2 ifpriority 0 ifcost 0
        em4 flags=3<LEARNING,DISCOVER>
                port 7 ifpriority 0 ifcost 0
hisoka:/# netstat -rn -f inet
Routing tables

Internet:
Destination        Gateway            Flags   Refs      Use   Mtu  Prio Iface
default            69.67.212.97       UGS        9    99113     -     8 em4
10.123.40.0/29     link#11            UC         2        0     -     4 vlan200
10.123.40.2        00:e0:81:2a:b5:1a  UHLc       2     3166     -     4 vlan200
10.123.40.4        00:1f:9e:7d:93:39  UHLc       1    13239     -     4 vlan200
69.67.212.96/27    link#7             UC         2        0     -     4 em4
69.67.212.97       00:08:e3:b4:b8:e0  UHLc       1        2     -     4 em4
69.67.212.120      127.0.0.1          UGHS       0        1 33160     8 lo0
69.67.212.120/32   link#7             UC         0        0     -     4 em4
69.67.212.126      00:14:4f:7c:fd:82  UHLc       0        4     -     4 lo0
127/8              127.0.0.1          UGRS       0        0 33160     8 lo0
127.0.0.1          127.0.0.1          UH         2      405 33160     4 lo0
147.243.6.29       10.123.40.4        UGHS       0       17     -     8 vlan200
224/4              127.0.0.1          URS        0        0 33160     8 lo0

hammer:/# ifconfig fxp4      
fxp4: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        lladdr 00:07:e9:5d:62:f8
        groups: egress
        media: Ethernet autoselect (100baseTX full-duplex)
        status: active
        inet 69.67.212.94 netmask 0xffffffe0 broadcast 69.67.212.95
        inet6 fe80::207:e9ff:fe5d:62f8%fxp4 prefixlen 64 scopeid 0x6
        inet 67.95.107.117 netmask 0xffffffe0 broadcast 67.95.107.127
        inet 67.95.107.116 netmask 0xffffffff broadcast 67.95.107.116
        inet 67.95.107.114 netmask 0xffffffff broadcast 67.95.107.114
        inet 67.95.107.104 netmask 0xffffffff broadcast 67.95.107.104
        inet 67.95.107.105 netmask 0xffffffff broadcast 67.95.107.105
        inet 67.95.107.106 netmask 0xffffffff broadcast 67.95.107.106
        inet 67.95.107.107 netmask 0xffffffff broadcast 67.95.107.107
        inet 67.95.107.108 netmask 0xffffffff broadcast 67.95.107.108
        inet 69.67.212.79 netmask 0xffffffff broadcast 69.67.212.79
        inet 69.67.212.77 netmask 0xffffffff broadcast 69.67.212.77
        inet 69.67.212.72 netmask 0xffffffff broadcast 69.67.212.72
        inet 69.67.212.73 netmask 0xffffffff broadcast 69.67.212.73
        inet 69.67.212.74 netmask 0xffffffff broadcast 69.67.212.74
        inet 69.67.212.75 netmask 0xffffffff broadcast 69.67.212.75
        inet 69.67.212.76 netmask 0xffffffff broadcast 69.67.212.76

killua:/# ping 69.67.212.94
PING 69.67.212.94 (69.67.212.94): 56 data bytes
[no response]

hisoka:/# tcpdump -n -e -ttt -i pflog0 host 69.67.212.94
tcpdump: listening on pflog0, link-type PFLOG
Mar 24 01:58:34.393743 rule 9/(match) pass in on vlan200: 10.123.40.2 > 
69.67.212.94: icmp: echo request
Mar 24 01:58:34.393762 rule 1/(match) nat out on em4: 69.67.212.126 > 
69.67.212.94: icmp: echo request
Mar 24 01:58:34.395040 rule 37/(match) pass in on em4: 69.67.212.126 > 
69.67.212.94: icmp: echo request
Mar 24 01:58:34.395046 rule 41/(match) pass out on em1: 69.67.212.126 > 
69.67.212.94: icmp: echo request
Mar 24 01:58:35.395232 rule 41/(match) pass out on em1: 69.67.212.126 > 
69.67.212.94: icmp: echo request
...

Now, from killua, if I ping www.google.com, which works, the tcpdump
output from hisoka looks like this:
  hisoka:/# tcpdump -n -e -ttt -i pflog0 host 74.125.95.147
  tcpdump: listening on pflog0, link-type PFLOG
  Mar 24 01:59:52.971187 rule 9/(match) pass in on vlan200: 10.123.40.2 > 
74.125.95.147: icmp: echo request
  Mar 24 01:59:52.971204 rule 1/(match) nat out on em4: 69.67.212.126 > 
74.125.95.147: icmp: echo request

I've bridged em0, em1, and em4. When killua pings 69.67.212.94, I expect
to see:
  killua (bge0) -> hisoka (vlan200)     # hisoka's 10.123.40.6 is
                                        #   default route for killua
  hisoka (vlan200) -> hisoka (em4)
  hisoka (em4) -> ISPn (69.67.212.97)
  ISPn (69.67.212.97) -> hammer (fxp4)

If I run tcpdump on hammer, I never see the ICMP ping request from
killua. But, I do see ICMP ping requests initiated from hisoka:

  hisoka:/# ping 69.67.212.94
  PING 69.67.212.94 (69.67.212.94): 56 data bytes
  64 bytes from 69.67.212.94: icmp_seq=0 ttl=254 time=2.065 ms
  64 bytes from 69.67.212.94: icmp_seq=1 ttl=254 time=1.803 ms
  ...

  hisoka:/# tcpdump -n -e -ttt -i pflog0 host 69.67.212.94
  tcpdump: listening on pflog0, link-type PFLOG
  Mar 24 01:57:56.583750 rule 35/(match) pass out on em4: 69.67.212.126 > 
69.67.212.94: icmp: echo request
  Mar 24 01:57:56.584686 rule 37/(match) pass in on em4: 69.67.212.126 > 
69.67.212.94: icmp: echo request

Any ideas? The following pflog output from above is peculiar. Why the
"pass in on em4" after "nat out on em4"? Because of the bridging?
  Mar 24 01:58:34.393762 rule 1/(match) nat out on em4: 69.67.212.126 > 
69.67.212.94: icmp: echo request
  Mar 24 01:58:34.395040 rule 37/(match) pass in on em4: 69.67.212.126 > 
69.67.212.94: icmp: echo request

-- 
albert chin (ch...@thewrittenword.com)

Reply via email to