I can't believe there isn't a single place that has worked examples of
virtual Ethernet between IBM i partitions, but if there is one I can't
find it. I have an IBM i 7.2 partition that is the host for an IBM i
7.2 guest partition. The host partition has the physical Ethernet
adapters. What I want to do is create a Virtual Ethernet between the
two partitions so I can FTP between them. I'll worry about routing
external clients (like 5250 sessions) later.
I followed the instructions for creating Virtual Ethernet adapters with
the HMC.
http://www-01.ibm.com/support/knowledgecenter/POWER8/p8hat/p8hat_configvirtethp6.htm?cp=POWER8%2F1-6-1-0-3-4-2-2
This looks so straightforward I may be lulling myself into complacency.
Here are the two adapter configurations:
Host:
Adapter id: 2
Virtual switch: ETHERNET0
VLAN ID: 1
Required: False
IEEE 802.1q: False
Additional VLAN IDs:
Access external network: True
Trunk priority: 1
Guest:
Adapter id: 3
Virtual switch: ETHERNET0
VLAN ID: 1
Required: True
IEEE 802.1q: False
Additional VLAN IDs:
Access external network: False
The closest thing I could find to 'How to create Virtual Ethernet for
IBM i 7.2' is this:
http://www-01.ibm.com/support/knowledgecenter/ssw_ibm_i_72/rzai2/rzai2virtethernet.htm
which describes how to share a physical adapter between a host and
guest. Which I probably eventually want. I followed the instructions
and came up with these line descriptions:
Host:
wrkhdwrsc *cmn
Resource name . . . . . . . : CMN13
Text . . . . . . . . . . . . : Ethernet Port
Type-model . . . . . . . . . : 268C-002
Serial number . . . . . . . : 00-00000
Part number . . . . . . . . :
Location : U8286.41A.21EF0DV-V1-C2-T1
dsplind veth1
LIND VETH1
OPTION *BASIC
*ELAN
RSRCNAME CMN13
BRIDGE *NONE
ONLINE *YES
VRYWAIT *NOWAIT
NETCTL VETH1NET
ADPTADR 621B5A661102
EXCHID 056FBAF0
ETHSTD *ETHV2
LINESPEED 1G
*AUTO
DUPLEX *FULL
*AUTO
SRVOPT *NONE
Guest:
wrkhdwrsc *cmn
Resource name . . . . . . . : CMN04
Text . . . . . . . . . . . . : Ethernet Port
Type-model . . . . . . . . . : 268C-002
Serial number . . . . . . . : 00-00000
Part number . . . . . . . . :
Location : U8286.41A.21EF0DV-V2-C3-T1
dsplind veth1
Line description . . . . . . . . . : VETH1
Option . . . . . . . . . . . . . . : *BASIC
Category of line . . . . . . . . . : *ELAN
Resource name . . . . . . . . . . : CMN04
Bridge identifier . . . . . . . . : *NONE
Online at IPL . . . . . . . . . . : *YES
Vary on wait . . . . . . . . . . . : *NOWAIT
Network controller . . . . . . . . : VETH1NET
Local adapter address . . . . . . : 621B54F2DE03
Exchange identifier . . . . . . . : 056FBA0F
Ethernet standard . . . . . . . . : *ETHV2
Line speed . . . . . . . . . . . . : 1G
Current line speed . . . . . . . . : *AUTO
Duplex . . . . . . . . . . . . . . : *FULL
Current duplex . . . . . . . . . . : *AUTO
Serviceability options . . . . . . : *NONE
All of that seems straightforward, no drama. Now comes the part that
seems insurmountable: assigning IP addresses. Just to try to get
something going, I have tried host = 10.1.10.1 and guest = 10.1.10.2.
Host TCP/IP config:
cfgtcp 1
Internet Subnet Line Line
Address Mask Description Type
10.1.0.4 255.255.255.0 ETHLINE *ELAN
10.1.10.1 255.255.255.0 VETH1 *ELAN
10.1.241.4 255.255.255.0 ETHLINEPVT *ELAN
127.0.0.1 255.0.0.0 *LOOPBACK *NONE
192.168.101.2 255.255.255.0 ETHLINEPUB *ELAN
cfgtcp 2
Route Subnet Next Preferred
Destination Mask Hop Interface
*DFTROUTE *NONE 10.1.0.1 10.1.0.4
*DFTROUTE *NONE 10.1.241.2 10.1.241.4
*DFTROUTE *NONE 192.168.101.1 192.168.101.2
10.0.2.0 255.255.255.0 10.1.0.1 *NONE
...
10.1.10.2 *HOST 10.1.10.2 10.1.10.1
...
wrkcfgsts *lin veth1
VETH1 ACTIVE
VETH1NET ACTIVE
VETH1TCP ACTIVE
Guest TCP/IP config:
cfgtcp 1
Internet Subnet Line Line
Address Mask Description Type
10.1.10.2 255.255.255.0 VETH1 *ELAN
127.0.0.1 255.0.0.0 *LOOPBACK *NONE
cfgtcp 2
Route Subnet Next Preferred
Destination Mask Hop Interface
*DFTROUTE *NONE 10.1.10.1 10.1.10.2
wrkcfgsts *lin veth1
VETH1 ACTIVE
VETH1NET ACTIVE
VETH1TCP ACTIVE
Everything seems to come up OK when I do a STRTCPIFC.
I can ping the local machine, ie from host ping '10.1.10.1' works.
Likewise from guest ping '10.1.10.2' works, so the interface seems OK,
but ping to the opposite LPAR does not work.
(on the guest)
PING reply 5 from 10.1.10.2 took 0 ms. 256 bytes.
Round-trip (in milliseconds) min/avg/max = 0/0/0.
Connection verification statistics: 5 of 5
4 > ping '10.1.10.1'
Verifying connection to host system 10.1.10.1.
No response from host within 1 seconds
No response from host within 1 seconds
No response from host within 1 seconds
No response from host within 1 seconds
No response from host within 1 seconds
Connection verification statistics: 0 of 5
I used netstat 2 to look at the routes, and on the guest LPAR, I get this:
Route Subnet Next Route
Destination Mask Hop Available
10.1.10.0 255.255.255.0 *DIRECT *YES
10.1.10.1 *HOST 10.1.10.1 *NO
127.0.0.0 255.0.0.0 *DIRECT *YES
224.0.0.0 240.0.0.0 *DIRECT *YES
224.0.0.0 240.0.0.0 *DIRECT *YES
*DFTROUTE *NONE 10.1.10.1 *NO
It looks better on the host:
Route Subnet Next Route
Destination Mask Hop Available
10.1.241.0 255.255.255.0 *DIRECT *YES
10.1.10.0 255.255.255.0 *DIRECT *YES
10.1.0.0 255.255.255.0 *DIRECT *YES
10.1.10.2 *HOST 10.1.10.2 *YES
...
No route available from the guest to the host. I've hit the limit of my
understanding of how to manipulate TCP/IP configuration with IBM i.
Shouldn't a packet from .2 which is bound for .1 go out the one and only
interface configured (10.1.10.2)? Which is VLAN 1 on the guest. And
shouldn't VLAN 1 on the guest be connected to VLAN 1 on the host? Which
line is attached to TCP/IP interface 10.1.10.1?
As an Amazon Associate we earn from qualifying purchases.