I visited a customer yesterday, and they mentioned a weird problem:
They have a z/Linux guest that's acting as an SNA gateway for some VSE
users. So it's dual-homed: a virtual NIC (vNIC) for incoming TCP/IP
traffic, and a real OSA for outgoing SNA (to the VSE guest(s) -- not sure
what happens there, whether one is a gateway or what).
So this all works, BUT every so often -- like a couple of times an hour --
IP traffic to/from the gateway machine starts going over the real OSA. This
seems to mean (based on observed behavior) that IP stuff originating FROM
that machine works, but external stuff (say, SNMP requests) don't. It also
means that their SNA users get dropped *sometimes*.
Fooling around on the guest with ping and traceroute using -I proved to my
satisfaction that this is what's happening (though of course I'm always
happy to be proven wrong).
And after a few minutes, it all goes back to normal.
route -nNvee and with no operands seems to support that no visible routing
changes are occurring. Note that when things are "switched", I can't even
ping the gateway using the vNIC interface!
It "feels like" something is deciding that the real OSA is "better" --
faster? shinier? less virtual? -- and deciding to use that, but then for
some other reason switches back. But that's a SWAG.
Ideas? Output of various commands is below. Oh, one other thing: I've
never seen some of the output from Q V OSA below (the INP + 01 stuff). But
then, I'm not used to fooling with real OSAs attached to guests. I didn't
see anything about this output in the HELP file for QUERY VIRTUAL OSA.
Thanks...
...phsiii
===========
* QUERY VIRTUAL OSA output
OSA 0300 ON NIC 0300 UNIT 000 SUBCHANNEL = 0004
0300 DEVTYPE OSA CHPID 00 OSD
0300 QDIO-ELIGIBLE QIOASSIST-ELIGIBLE
OSA 0301 ON NIC 0300 UNIT 001 SUBCHANNEL = 0005
0301 DEVTYPE OSA CHPID 00 OSD
0301 QDIO-ELIGIBLE QIOASSIST-ELIGIBLE
OSA 0302 ON NIC 0300 UNIT 002 SUBCHANNEL = 0006
0302 DEVTYPE OSA CHPID 00 OSD
0302 QDIO ACTIVE QIOASSIST ACTIVE
0302
0302 INP + 01 IOCNT = 01028525 ADP = 010 PROG = 000 UNAVAIL = 118
0302 BYTES = 000000000B9345BF
0302 OUT + 01 IOCNT = 00000000 ADP = 000 PROG = 000 UNAVAIL = 128
0302 BYTES = 0000000000000000
0302 OUT + 02 IOCNT = 00000000 ADP = 000 PROG = 000 UNAVAIL = 128
0302 BYTES = 0000000000000000
0302 OUT + 03 IOCNT = 09718461 ADP = 000 PROG = 128 UNAVAIL = 000
0302 BYTES = 00000001125268FC
0302 OUT + 04 IOCNT = 00000000 ADP = 000 PROG = 000 UNAVAIL = 128
0302 BYTES = 0000000000000000
OSA 0800 ON OSA 0873 SUBCHANNEL = 0000
0800 DEVTYPE OSA CHPID F3 OSD
0800 QDIO-ELIGIBLE QIOASSIST-ELIGIBLE
OSA 0801 ON OSA 0874 SUBCHANNEL = 0001
0801 DEVTYPE OSA CHPID F3 OSD
0801 QDIO-ELIGIBLE QIOASSIST-ELIGIBLE
OSA 0802 ON OSA 0875 SUBCHANNEL = 0002
0802 DEVTYPE OSA CHPID F3 OSD
0802 QDIO ACTIVE QIOASSIST ACTIVE
0802
0802 INP + 01 IOCNT = 45963134 ADP = 009 PROG = 000 UNAVAIL = 119
0802 BYTES = 00000003F4EF805D
0802 OUT + 01 IOCNT = 00000000 ADP = 000 PROG = 000 UNAVAIL = 128
0802 BYTES = 0000000000000000
0802 OUT + 02 IOCNT = 00000000 ADP = 000 PROG = 000 UNAVAIL = 128
0802 BYTES = 0000000000000000
0802 OUT + 03 IOCNT = 27987274 ADP = 000 PROG = 128 UNAVAIL = 000
0802 BYTES = 0000000157AA76F9
0802 OUT + 04 IOCNT = 00000000 ADP = 000 PROG = 000 UNAVAIL = 128
0802 BYTES = 0000000000000000
* ifconfig output
eth0 Link encap:Ethernet HWaddr 02:00:00:00:00:03
inet addr:172.17.3.192 Bcast:172.17.255.255 Mask:255.255.0.0
inet6 addr: fe80::200:0:300:3/64 Scope:Link
UP BROADCAST NOTRAILERS RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1067812 errors:0 dropped:0 overruns:0 frame:0
TX packets:9720081 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:160032156 (152.6 Mb) TX bytes:4600399128 (4387.2 Mb)
eth1 Link encap:Ethernet HWaddr 02:00:41:00:01:01
inet6 addr: fe80::200:4100:0:101/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1492 Metric:1
RX packets:49295490 errors:0 dropped:0 overruns:0 frame:0
TX packets:28034759 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:14727109133 (14044.8 Mb) TX bytes:5765808842 (5498.7 Mb)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:6021 errors:0 dropped:0 overruns:0 frame:0
TX packets:6021 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:432783 (422.6 Kb) TX bytes:432783 (422.6 Kb)
* traceroute -Ieth0 172.17.3.170 output
traceroute to 172.17.3.170 (172.17.3.170), 30 hops max, 40 byte packets
1 * * *
2 * * *
3 * * *
4 * * *
5 * * *
6 * * *
7 * * *
8 * * *
9 * * *
10 * * *
11 * * *
12 * * *
13 * * *
14 * * *
15 * * *
16 * * *
17 * * *
18 * * *
19 * * *
20 * * *
21 * * *
22 * * *
23 * * *
24 * * *
25 * * *
26 * * *
27 * * *
28 * * *
29 * * *
30 * * *
* traceroute -Ieth1 172.17.3.170 output
traceroute to 172.17.3.170 (172.17.3.170), 30 hops max, 40 byte packets
1 * * *
2 * * *
3 * * *
4 * * *
5 * * *
6 * * *
7 172.17.3.170 1.295 ms 0.878 ms 0.750 ms
* route -nNvee output
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use
Iface MSS Window irtt
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
0 0 0
172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
0 0 0
127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
0 0 0
0.0.0.0 172.17.0.1 0.0.0.0 UG 0 0 0 eth0
0 0 0
* route output
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use
Iface
link-local * 255.255.0.0 U 0 0 0 eth0
172.17.0.0 * 255.255.0.0 U 0 0 0 eth0
loopback * 255.0.0.0 U 0 0 0 lo
default 172.17.0.1 0.0.0.0 UG 0 0 0 eth0
* ping -Ieth0 172.17.3.170 output -- works?!
PING 172.17.3.170 (172.17.3.170) from 172.17.3.192 eth0: 56(84) bytes of
data.
64 bytes from 172.17.3.170: icmp_seq=1 ttl=60 time=0.557 ms
--- 172.17.3.170 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.557/0.557/0.557/0.000 ms
* ping -Ieth1 172.17.3.170 output -- also works?!
PING 172.17.3.170 (172.17.3.170) from 172.17.3.192 eth1: 56(84) bytes of
data.
64 bytes from 172.17.3.170: icmp_seq=1 ttl=60 time=0.614 ms
--- 172.17.3.170 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.614/0.614/0.614/0.000 ms