I was asked to post this here with a promise that the VMware engineers will provide a solution (quote from email via VMware Support Request # 16111698005):
---
I recommend that you post your query on VMware Communities. The query will be reviewed and the resolution will be provided by the VMware engineers. Once again I apologize for the inconvenience caused.
---
Here's the problem as I reported it:
This is likely an in-depth problem that will need to be escalated to someone with IPv6 networking expertise in VMware Fusion. Solving this issue could also lead to significant revenue for VMware.
I'm a consultant working under contract for an organization that wants to virtualize a significant number of OS X 10.8.5 systems. Initially, the host systems will also be running OS 10.8.5 but, ultimately, will be updated to something newer.
Everything is working well on VMware except for bridging of multi-homed, manually-defined IPv6 addresses. However, this is a "must have" requirement for this project. It should also be noted that Parallels does not have this problem.
I am in need of a solution where the following tests won't fail ...
From external test system 1:
- ping6 -v x:y:z:1::99
- ping6 -v x:y:z:4::99
- ping6 -v x:y:z:5::99
From external test system 2:
- ping6 -v x:y:z:1::99
- ping6 -v x:y:z:4::99
- ping6 -v x:y:z:5::99
... in the following configuration ...
-----
Note that we only test and care about manually configured addresses. The IPv6 x:y:z:? prefix indicates a publicly routable prefix (e.g., 2001:abcd:1234:?).
The virtual host is running OS X 10.8.5 and has the following host-native networking configuration:
- 1 ethernet interface (en0) configured with 3 VLANs: VLAN 1, VLAN 4 and VLAN 5
+ VLAN 1 (on en0):
* IPv4 addr: 172.16.1.10
* IPv4 router & DNS: 172.16.1.1
* IPv4 Subnet mask: 255.255.255.0 (LAN1 is 172.16.16.0/24)
* IPv6 addr is x:y:z:1::10 (LAN1 is x:y:z:1::/64)
* IPv6 router & DNS are x:y:z:1::1
+ VLAN 4 (on en0):
* IPv4: OFF
* IPv6 addr: x:y:z:4::10 (LAN4 is x:y:z:4::/64)
* IPv6 router and DNS are x:y:z:4::1
+ VLAN 5 (on en0):
* IPv4: OFF
* IPv6 addr: x:y:z:5::10 (LAN5 is x:y:z:5::/64)
* IPv6 router and DNS are x:y:z:5::1
On the above-configured virtual host, a virtualized system that's running OS X 10.8.5 in VMware Fusion 7.1.3 (3204469, dated 2015-11-2) that has the following network configuration:
- 3 VMware network adapters defined:
+ adapter 1: bridged to VLAN 1 (en0)
+ adapter 2: bridged to VLAN 4 (en1)
+ adapter 3: bridged to VLAN 5 (en2)
- virtualized system's networking configured as:
+ LAN 1 (on en0):
* IPv4 addr: 172.16.1.99
* IPv4 router and DNS are 172.16.1.1
* IPv4 Subnet mask: 255.255.255.0 (LAN1 is 172.16.16.0/24)
* IPv6 addr: x:y:z:1::99 (LAN1 is x:y:z:1::/64)
* IPv6 router and DNS are x:y:z:1::1
+ LAN 4 (on en1):
* IPv4: OFF
* IPv6 addr: x:y:z:4::99 (LAN4 is x:y:z:4::/64)
* IPv6 router and DNS are x:y:z:4::1
+ LAN 5 (on en2):
* IPv4: OFF
* IPv6 addr: x:y:z:5::99 (LAN5 is x:y:z:5::/64)
* IPv6 router and DNS are x:y:z:5::1
External test system 1 is running OS X 10.8.5 and has the following networking configuration:
- 1 ethernet interface (en0) configured with 3 VLANs: VLAN 1, VLAN 4 and VLAN 5
+ VLAN 1 (on en0):
* IPv4 addr: 172.16.1.100
* IPv4 router and DNS are 172.16.1.1
* IPv4 Subnet mask: 255.255.255.0 (LAN1 is 172.16.16.0/24)
* IPv6 addr: x:y:z:1::100 (LAN1 is x:y:z:1::/64)
* IPv6 router and DNS are x:y:z:1::1
+ VLAN 4 (on en0):
* IPv4: OFF
* IPv6 addr: x:y:z:4::100 (LAN4 is x:y:z:4::/64)
* IPv6 router and DNS are x:y:z:4::1
+ VLAN 5 (on en0):
* IPv4: OFF
* IPv6 addr: x:y:z:5::100 (LAN5 is x:y:z:5::/64)
* IPv6 router and DNS are x:y:z:5::1
External test system 2 is running OS X 10.8.5 and has the following networking configuration:
- 1 ethernet interface (en0) configured as:
* IPv4 addr: 172.16.1.200
* IPv4 router and DNS are 172.16.1.1
* IPv4 Subnet mask: 255.255.255.0 (LAN1 is 172.16.16.0/24)
* IPv6 addr: x:y:z:1::200 (LAN1 is x:y:z:1::/64)
* IPv6 router and DNS are x:y:z:1::1
Obviously, this setup also requires a suitable switch with the applicable VLAN configuration, a router configured to perform VLAN-to-VLAN routing and a DNS.
-----
Test-setup comments ...
---
I'd guess that this setup would also fail without the use of VLANs -- i.e., with either mixed subnets on the same "wire" or with different NICs for different LANs on the virtual host. I did run a "quick 'n dirty" test using an additional Thunderbolt to Ethernet adapter and it did seem to fail the same way, but that test was not thorough. Still, it might be easier to test a multiple-NIC virtual host first, with the hope that that could prevent having to setup a VLAN environment, if you don't already have it. It's relatively easy for me to test any proposed solution in the VLAN setup I have.
It's also true that the same kinds of failures will be seen when there are only 2 IPv6 addresses/LANs configured, instead of 3, but my testing was for the most common real scenario which requires 3-LAN/3-IP support.
Failure details ...
---
In reality, if the routing is working correctly, both external test systems should always yield the same results.
What we're seeing is completely "flakey" results in that "ping6 -v" nearly always fails with "Destination Host Unreachable" and that the x:y:z:?::99 addresses are not in the router's NDP table.
I say "nearly always" because sometimes 1 (or rarely even 2) of the x:y:z:?::99 IPs will be "pingable"/visible but this seems to change with each reboot and/or any network configuration updates. In addition, a non-"pingable"/non-visible x:y:z:?::99 IP will sometimes become externally "pingable"/visible after the test system's x:y:z:?::?00 IP is pinged from the virtualized system -- e.g., scenarios similar to the following occur:
- ping6 -v x:y:z:4::99 from test system 2 fails
- ping6 -v x:y:z:4::200 is run from the virtualized system and succeeds
- now ping6 -v x:y:z:4::99 from test system 2 succeeds
Speculation ...
---
(I think it's consistent that) When you look at ifconfig on the virtualized system, you'll see that the IPv6 interface that's initially "pingable" -- there's normally 1 of the 3 that'll work -- is the IP on the interface that appears first in the list of interfaces produced by ifconfig.
It seems that the bridging is somehow only passing router advertisements for one of the multi-homed, manually-configured IPv6 addresses.
If we can get this to work, I'd be happily recommending VMware for this project. Assuming the project proceeds, it could mean significant business for VMware (my confidentiality agreement prohibits me from providing details about the project).
Hi There,
Welcome to Fusion community.
The virtual host is running OS X 10.8.5 and has the following host-native networking configuration:
- 1 ethernet interface (en0) configured with 3 VLANs: VLAN 1, VLAN 4 and VLAN 5
Do you mean you configured a truck port and let your ethernet interface plug to that port?
Re: Do you mean you configured a truck port and let your ethernet interface plug to that port?
---
Sorry, but I don't understand the question ... I don't know what a "truck port" is (but we have a sea-going container port, nearby ... and it gets lots of container trucks at the port! #;-)).
The test system upon which VMware is running (the virtual host) has the exact networking configuration indicated ... i.e., it's an iMac and there's the normal motherboard ethernet. There are 3 VLANs configured (as detailed) and all 3 of the VLANs are created "against" the motherboard ethernet port (OS X shows "Ethernet" as the interface that's selected when adding each of the VLANs via "Manage Virtual Interfaces" in the "Network" panel of "System Preferences").
Does that clarify?
sorry, A ConsultantA Consultant
Sorry, but I don't understand the question ... I don't know what a "truck port" is (but we have a sea-going container port, nearby ... and it gets lots of container trucks at the port! #;-)).
It's typo. I wanted to say 'trunk'.
I now know your environment.
Good to hear. Never thought of that typo. Guess my brain doesn't work at full tilt after 2 in the morning.
Let me know if there's any way I can help.
ping6 -v -I x:y:z:1::99 is not a valid command as '-I' requires an interface. Hoping that's what you meant (i.e., that it's not a typo and you wanted something else entirely), I ran a collection of tests and have included the results in the attached text file.
For redundency, I've also pasted the results, below (have no idea what'll happen to formatting, special characters, etc.):
---
From system that has IPv6: x:y:z:1::200
(with sanitizing search 'n replace, for security)
-----
root # ping6 -v -I en0 x:y:z:1::99
PING6(56=40+8+8 bytes) x:y:z:1::200 --> x:y:z:1::99
136 bytes from fe80::ec4:7aff:fe17:18d4%en0: Router Advertisement
64 bytes from x:y:z:1::200: Destination Host Unreachable
Vr TC Flow Plen Nxt Hlim
6 00 00000 0010 3a 40
x:y:z:1::200->x:y:z:1::99
ICMP6: type = 128, code = 0
64 bytes from x:y:z:1::200: Destination Host Unreachable
Vr TC Flow Plen Nxt Hlim
6 00 00000 0010 3a 40
x:y:z:1::200->x:y:z:1::99
ICMP6: type = 128, code = 0
64 bytes from x:y:z:1::200: Destination Host Unreachable
Vr TC Flow Plen Nxt Hlim
6 00 00000 0010 3a 40
x:y:z:1::200->x:y:z:1::99
ICMP6: type = 128, code = 0
64 bytes from x:y:z:1::200: Destination Host Unreachable
Vr TC Flow Plen Nxt Hlim
6 00 00000 0010 3a 40
x:y:z:1::200->x:y:z:1::99
ICMP6: type = 128, code = 0
^C
--- x:y:z:1::99 ping6 statistics ---
17 packets transmitted, 0 packets received, 100.0% packet loss
From VMware virtual host system that has IPv6: x:y:z:1::10
(with sanitizing search 'n replace, for security)
-----
root # ping6 -v -I en0 x:y:z:1::99
PING6(56=40+8+8 bytes) x:y:z:1::10 --> x:y:z:1::99
ping6: sendmsg: No route to host
ping6: wrote x:y:z:1::99 16 chars, ret=-1
ping6: sendmsg: No route to host
ping6: wrote x:y:z:1::99 16 chars, ret=-1
ping6: sendmsg: No route to host
ping6: wrote x:y:z:1::99 16 chars, ret=-1
136 bytes from fe80::ec4:7aff:fe17:18d4%vlan0: Router Advertisement
ping6: sendmsg: No route to host
ping6: wrote x:y:z:1::99 16 chars, ret=-1
ping6: sendmsg: No route to host
ping6: wrote x:y:z:1::99 16 chars, ret=-1
136 bytes from fe80::ec4:7aff:fe17:18d4%vlan3: Router Advertisement
ping6: sendmsg: No route to host
ping6: wrote x:y:z:1::99 16 chars, ret=-1
ping6: sendmsg: No route to host
ping6: wrote x:y:z:1::99 16 chars, ret=-1
ping6: sendmsg: No route to host
ping6: wrote x:y:z:1::99 16 chars, ret=-1
ping6: sendmsg: No route to host
ping6: wrote x:y:z:1::99 16 chars, ret=-1
ping6: sendmsg: No route to host
ping6: wrote x:y:z:1::99 16 chars, ret=-1
ping6: sendmsg: No route to host
ping6: wrote x:y:z:1::99 16 chars, ret=-1
ping6: sendmsg: No route to host
ping6: wrote x:y:z:1::99 16 chars, ret=-1
136 bytes from fe80::ec4:7aff:fe17:18d4%vlan4: Router Advertisement
136 bytes from fe80::ec4:7aff:fe17:18d4%vlan3: Router Advertisement
ping6: sendmsg: No route to host
ping6: wrote x:y:z:1::99 16 chars, ret=-1
^C
--- x:y:z:1::99 ping6 statistics ---
13 packets transmitted, 0 packets received, 100.0% packet loss
COMMENT(s):
- since the virtual host has the VLANs, the above seems to make sense
- ifconfig shows that the named 'VLAN 1' setup is actually vlan0 (on en0),
so I ran the following (and get the same results as running simply
ping6 -v x:y:z:1::99):
root # ping6 -v -I vlan0 x:y:z:1::99
PING6(56=40+8+8 bytes) x:y:z:1::10 --> x:y:z:1::99
32 bytes from x:y:z:1::99: Neighbor Advertisement
16 bytes from x:y:z:1::99, icmp_seq=0 hlim=64 dst=x:y:z:1::10 time=0.696 ms
136 bytes from fe80::ec4:7aff:fe17:18d4%vlan4: Router Advertisement
136 bytes from fe80::ec4:7aff:fe17:18d4%vlan0: Router Advertisement
16 bytes from x:y:z:1::99, icmp_seq=1 hlim=64 dst=x:y:z:1::10 time=0.590 ms
16 bytes from x:y:z:1::99, icmp_seq=2 hlim=64 dst=x:y:z:1::10 time=0.601 ms
16 bytes from x:y:z:1::99, icmp_seq=3 hlim=64 dst=x:y:z:1::10 time=0.766 ms
16 bytes from x:y:z:1::99, icmp_seq=4 hlim=64 dst=x:y:z:1::10 time=0.502 ms
16 bytes from x:y:z:1::99, icmp_seq=5 hlim=64 dst=x:y:z:1::10 time=0.614 ms
32 bytes from x:y:z:1::99: Neighbor Solicitation
16 bytes from x:y:z:1::99, icmp_seq=6 hlim=64 dst=x:y:z:1::10 time=0.487 ms
16 bytes from x:y:z:1::99, icmp_seq=7 hlim=64 dst=x:y:z:1::10 time=0.523 ms
16 bytes from x:y:z:1::99, icmp_seq=8 hlim=64 dst=x:y:z:1::10 time=0.412 ms
136 bytes from fe80::ec4:7aff:fe17:18d4%vlan3: Router Advertisement
16 bytes from x:y:z:1::99, icmp_seq=9 hlim=64 dst=x:y:z:1::10 time=0.500 ms
16 bytes from x:y:z:1::99, icmp_seq=10 hlim=64 dst=x:y:z:1::10 time=0.460 ms
16 bytes from x:y:z:1::99, icmp_seq=11 hlim=64 dst=x:y:z:1::10 time=0.556 ms
16 bytes from x:y:z:1::99, icmp_seq=12 hlim=64 dst=x:y:z:1::10 time=0.351 ms
16 bytes from x:y:z:1::99, icmp_seq=13 hlim=64 dst=x:y:z:1::10 time=0.464 ms
16 bytes from x:y:z:1::99, icmp_seq=14 hlim=64 dst=x:y:z:1::10 time=0.720 ms
^C
--- x:y:z:1::99 ping6 statistics ---
15 packets transmitted, 15 packets received, 0.0% packet loss
round-trip min/avg/max/std-dev = 0.351/0.549/0.766/0.112 ms
... and just for "completeness":
From virtualized system that has IPv6: x:y:z:1::99
(with sanitizing search 'n replace, for security)
-----
root # ping6 -v -I en0 x:y:z:1::99
PING6(56=40+8+8 bytes) x:y:z:1::99 --> x:y:z:1::99
16 bytes from x:y:z:1::99: Echo Request
16 bytes from x:y:z:1::99, icmp_seq=0 hlim=64 dst=x:y:z:1::99 time=0.223 ms
16 bytes from x:y:z:1::99: Echo Request
16 bytes from x:y:z:1::99, icmp_seq=1 hlim=64 dst=x:y:z:1::99 time=0.277 ms
16 bytes from x:y:z:1::99: Echo Request
16 bytes from x:y:z:1::99, icmp_seq=2 hlim=64 dst=x:y:z:1::99 time=0.345 ms
16 bytes from x:y:z:1::99: Echo Request
16 bytes from x:y:z:1::99, icmp_seq=3 hlim=64 dst=x:y:z:1::99 time=0.256 ms
16 bytes from x:y:z:1::99: Echo Request
16 bytes from x:y:z:1::99, icmp_seq=4 hlim=64 dst=x:y:z:1::99 time=0.279 ms
^C
--- x:y:z:1::99 ping6 statistics ---
5 packets transmitted, 5 packets received, 0.0% packet loss
round-trip min/avg/max/std-dev = 0.223/0.276/0.345/0.040 ms
COMMENT(s):
- to illustrate what I suspect is an important behavior, I did the following:
From virtualized system that has IPv6: x:y:z:1::99
(with sanitizing search 'n replace, for security)
-----
root # ping6 -v -I en0 x:y:z:1::200
PING6(56=40+8+8 bytes) x:y:z:1::99 --> x:y:z:1::200
24 bytes from x:y:z:1::10: Neighbor Advertisement
32 bytes from x:y:z:1::200: Neighbor Advertisement
16 bytes from x:y:z:1::200, icmp_seq=0 hlim=64 dst=x:y:z:1::99 time=636.677 ms
32 bytes from x:y:z:1::10: Neighbor Solicitation
16 bytes from x:y:z:1::200, icmp_seq=1 hlim=64 dst=x:y:z:1::99 time=0.878 ms
16 bytes from x:y:z:1::200, icmp_seq=2 hlim=64 dst=x:y:z:1::99 time=0.897 ms
16 bytes from x:y:z:1::200, icmp_seq=3 hlim=64 dst=x:y:z:1::99 time=0.865 ms
^C
--- x:y:z:1::200 ping6 statistics ---
4 packets transmitted, 4 packets received, 0.0% packet loss
round-trip min/avg/max/std-dev = 0.865/159.829/636.677/275.308 ms
COMMENT(s):
- ONLY AFTER doing the above, the first-listed test, above, now works, yielding
(and is the the same without '-I en0'):
root # ping6 -v x:y:z:1::99
PING6(56=40+8+8 bytes) x:y:z:1::200 --> x:y:z:1::99
16 bytes from x:y:z:1::99, icmp_seq=0 hlim=64 dst=x:y:z:1::200 time=0.925 ms
16 bytes from x:y:z:1::99, icmp_seq=1 hlim=64 dst=x:y:z:1::200 time=1.079 ms
136 bytes from fe80::ec4:7aff:fe17:18d4%en0: Router Advertisement
16 bytes from x:y:z:1::99, icmp_seq=2 hlim=64 dst=x:y:z:1::200 time=1.055 ms
16 bytes from x:y:z:1::99, icmp_seq=3 hlim=64 dst=x:y:z:1::200 time=1.069 ms
^C
--- x:y:z:1::99 ping6 statistics ---
4 packets transmitted, 4 packets received, 0.0% packet loss
round-trip min/avg/max/std-dev = 0.925/1.032/1.079/0.062 ms
ping6 -v -I x:y:z:1::99 is not a valid command as '-I' requires an interface.
Yes, I meant ping6 -v -I vlanX x:y:z:1::99.
From the virtual host, I ping'd x:y:z:1::99 via the other 2 VLANs, as well -- both yield the same results of "No route to host"
From the virtual host, I also ping'd x:y:z:4::4 via the 3 VLANs (i.e., the vlanx interfaces), all with 100% packet loss.
However (from the virtual host), pinging x:y:z:5::5 via its vlan interface worked, but not via the other 2 vlan interfaces.
Hope that helps.
From the virtual host, I also ping'd x:y:z:4::4 via the 3 VLANs (i.e., the vlanx interfaces), all with 100% packet loss.
So, x:y:z:4::4 is a physical interface but not a vlan interface?
Re: So, x:y:z:4::4 is a physical interface but not a vlan interface?
---
x:y:z:4::4 is an IPv6 address that's on LAN 1/VLAN 1 -- the tests I referred to are:
ping6 -v -I vlan0 x:y:z:4::4 [vlan0 is the ifconfig interface used to create VLAN 1, see additional config detail, below/attached)]
ping6 -v -I vlan3 x:y:z:4::4 [vlan0 is the ifconfig interface used to create VLAN 4, see additional config detail, below/attached)]
ping6 -v -I vlan4 x:y:z:4::4 [vlan0 is the ifconfig interface used to create VLAN 5, see additional config detail, below/attached)]
I've attached a text file containing the additional config detail and also inserted it below:
---
The configuration is exactly as detailed in my initial report, no more, no less.
By far, the easiest way to understand all this is to simply configure a system
the same as in the originally provided config information.
Overall, there are 5 LANs, 3 of which we're using in these tests -- from the
original config info:
LAN 1 (which is also VLAN 1): 172.16.16.0/24 and x:y:z:1::/64
LAN 4 (which is also VLAN 4): only x:y:z:4::/64
LAN 5 (which is also VLAN 5): only x:y:z:5::/64
Here's the detail not provided by the originally supplied config information ...
Pertinent/sanitized information from ifconfig on the virtual host:
---
lo0: <snip'd>
gif0: flags=8010<POINTOPOINT,MULTICAST> mtu 1280
stf0: flags=0<> mtu 1280
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=2b<RXCSUM,TXCSUM,VLAN_HWTAGGING,TSO4>
ether <snip'd>
media: autoselect (1000baseT <full-duplex,flow-control>)
status: active
en1: flags=8822<BROADCAST,SMART,SIMPLEX,MULTICAST> mtu 1500
ether <snip'd>
media: autoselect (<unknown type>)
status: inactive
p2p0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> mtu 2304
ether <snip'd>
media: autoselect
status: inactive
fw0: flags=8822<BROADCAST,SMART,SIMPLEX,MULTICAST> mtu 4078
lladdr <snip'd>
media: autoselect <full-duplex>
status: inactive
vlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=23<RXCSUM,TXCSUM,TSO4>
ether <snip'd>
inet6 fe80::ca2a:14ff:fe51:c79%vlan0 prefixlen 64 scopeid 0x8
inet6 x:y:z:1::10 prefixlen 64
inet 172.16.16.234 netmask 0xffffff00 broadcast 172.16.16.255
vlan: 16 parent interface: en0
media: autoselect (1000baseT <full-duplex,flow-control>)
status: active
vlan2: <not applicable>
vlan4: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=23<RXCSUM,TXCSUM,TSO4>
ether <snip'd>
inet6 fe80::ca2a:14ff:fe51:c79%vlan4 prefixlen 64 scopeid 0xa
inet6 x:y:z:5::10 prefixlen 64
vlan: 5 parent interface: en0
media: autoselect (1000baseT <full-duplex,flow-control>)
status: active
vlan1: flags=8842<BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=23<RXCSUM,TXCSUM,TSO4>
ether <snip'd>
vlan: 17 parent interface: en0
media: autoselect (1000baseT <full-duplex,flow-control>)
status: active
vlan3: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=23<RXCSUM,TXCSUM,TSO4>
ether <snip'd>
inet6 fe80::ca2a:14ff:fe51:c79%vlan3 prefixlen 64 scopeid 0xc
inet6 x:y:z:4::10 prefixlen 64
vlan: 4 parent interface: en0
media: autoselect (1000baseT <full-duplex,flow-control>)
status: active
vmnet1: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether 00:50:56:c0:00:01
inet 192.168.11.1 netmask 0xffffff00 broadcast 192.168.11.255
vmnet8: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether 00:50:56:c0:00:08
inet 192.168.2.1 netmask 0xffffff00 broadcast 192.168.2.255
E.G., from this and the original config info we see that the network setup item
(in system preferences) named 'VLAN 1' is ifconfig's vlan0 (this will depend
upon the order in which things were created) and has the virtual host addresses
of; IPv4: 172.16.1.10 and IPv6: x:y:z:1::10 (and some link-locals, but we don't
care about anything except manually assigned addresses) and operates on LAN 1,
using VLAN 1 where applicable (i.e., non-server type systems only operate on one
LAN and therefore let the switch do the VLAN tagging, rather than setting up a
VLAN configuration on those systems).
Pertinent/sanitized information from ifconfig on the virtualized system:
---
lo0: <snip'd>
gif0: flags=8010<POINTOPOINT,MULTICAST> mtu 1280
stf0: flags=0<> mtu 1280
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=b<RXCSUM,TXCSUM,VLAN_HWTAGGING>
ether 00:0c:29:c4:8d:16
inet 172.16.16.166 netmask 0xffffff00 broadcast 172.16.16.255
inet6 fe80::20c:29ff:fec4:8d16%en0 prefixlen 64 scopeid 0x4
inet6 x:y:z:16::166 prefixlen 64
media: autoselect (1000baseT <full-duplex>)
status: active
en2: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=b<RXCSUM,TXCSUM,VLAN_HWTAGGING>
ether 00:0c:29:c4:8d:05
inet6 fe80::20c:29ff:fec4:8d05%en2 prefixlen 64 scopeid 0x5
inet6 x:y:z:5::5 prefixlen 64
media: autoselect (1000baseT <full-duplex>)
status: active
en1: <not applicable>
en3: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=b<RXCSUM,TXCSUM,VLAN_HWTAGGING>
ether 00:0c:29:c4:8d:04
inet6 fe80::20c:29ff:fec4:8d04%en3 prefixlen 64 scopeid 0x7
inet6 x:y:z:4::4 prefixlen 64
media: autoselect (1000baseT <full-duplex>)
status: active
The network adapter information from the virtual machine's .vmx file:
---
ethernet0.address = "00:0C:29:C4:8D:16"
ethernet0.addressType = "static"
ethernet0.bsdName = "vlan0"
ethernet0.connectionType = "custom"
ethernet0.displayName = "VLAN 1"
ethernet0.generatedAddressOffset = "0"
ethernet0.linkStatePropagation.enable = "TRUE"
ethernet0.pciSlotNumber = "160"
ethernet0.present = "TRUE"
ethernet0.startConnected = "TRUE"
ethernet0.virtualDev = "e1000e"
ethernet0.vnet = "vmnet2"
ethernet0.wakeOnPcktRcv = "FALSE"
ethernet1.address = "00:0C:29:C4:8D:18"
ethernet1.addressType = "static"
ethernet1.bsdName = "vlan2"
ethernet1.connectionType = "custom"
ethernet1.displayName = <not applicable -- IPv4 only and not in our tests>
ethernet1.linkStatePropagation.enable = "TRUE"
ethernet1.pciSlotNumber = "224"
ethernet1.present = "TRUE"
ethernet1.startConnected = "TRUE"
ethernet1.virtualDev = "e1000e"
ethernet1.vnet = "vmnet3"
ethernet1.wakeOnPcktRcv = "FALSE"
ethernet2.address = "00:0C:29:C4:8D:04"
ethernet2.addressType = "static"
ethernet2.bsdName = "vlan3"
ethernet2.connectionType = "custom"
ethernet2.displayName = "VLAN 4"
ethernet2.generatedAddressOffset = "20"
ethernet2.linkStatePropagation.enable = "TRUE"
ethernet2.pciSlotNumber = "256"
ethernet2.present = "TRUE"
ethernet2.startConnected = "TRUE"
ethernet2.virtualDev = "e1000e"
ethernet2.vnet = "vmnet6"
ethernet2.wakeOnPcktRcv = "FALSE"
ethernet3.address = "00:0C:29:C4:8D:05"
ethernet3.addressType = "static"
ethernet3.bsdName = "vlan4"
ethernet3.connectionType = "custom"
ethernet3.displayName = "VLAN 5"
ethernet3.linkStatePropagation.enable = "TRUE"
ethernet3.pciSlotNumber = "1184"
ethernet3.present = "TRUE"
ethernet3.startConnected = "TRUE"
ethernet3.virtualDev = "e1000e"
ethernet3.vnet = "vmnet7"
ethernet3.wakeOnPcktRcv = "FALSE"