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 ([email protected])