It's a bug. Now it's fixed.
VPCS[6]> relay dump on
dump on
VPCS[6]> set dump detail mac
dump flags: mac detail
VPCS[6]> p 10.0.0.100 -1 -c 1
00:50:79:66:68:05 -> ff:ff:ff:ff:ff:ff
ARP, OpCode: 1 (Request)
Ether Address: 00:50:79:66:68:05 -> Broadcast
Who has 192.168.0.1? Tell 192.168.0.200
cc:02:0b:c4:00:00 -> 00:50:79:66:68:05
ARP, OpCode: 2 (Reply)
Ether Address: cc:02:0b:c4:00:00 -> 00:50:79:66:68:05
192.168.0.1 is at cc:02:0b:c4:00:00
00:50:79:66:68:05 -> cc:02:0b:c4:00:00
IPv4, id: a56f, length: 84, ttl: 64, sum: 0966
Address: 192.168.0.200 -> 10.0.0.100
Proto: icmp, type: 8, code: 0
Desc: Echo
10.0.0.100 icmp_seq=1 timeout
VPCS[6]>
cc:02:0b:c4:00:00 -> 00:50:79:66:68:05
IPv4, id: a56f, length: 84, ttl: 63, sum: 0a66
Address: 10.0.0.100 -> 192.168.0.200
Proto: icmp, type: 0, code: 0
Desc: Echo reply
VPCS[6]> p 10.0.0.100 -1 -c 1
00:50:79:66:68:05 -> cc:02:0b:c4:00:00
IPv4, id: a575, length: 84, ttl: 64, sum: 0960
Address: 192.168.0.200 -> 10.0.0.100
Proto: icmp, type: 8, code: 0
Desc: Echo
cc:01:0b:c2:00:00 -> 00:50:79:66:68:05
IPv4, id: a56f, length: 84, ttl: 63, sum: 0a66
Address: 10.0.0.100 -> 192.168.0.200
Proto: icmp, type: 0, code: 0
Desc: Echo reply
64 bytes from 10.0.0.100 icmp_seq=1 ttl=63 time=101.947 ms
cc:01:0b:c2:00:00 -> 00:50:79:66:68:05
IPv4, id: a575, length: 84, ttl: 63, sum: 0a60
Address: 10.0.0.100 -> 192.168.0.200
Proto: icmp, type: 0, code: 0
Desc: Echo reply
VPCS[6]> p 10.0.0.100 -2 -c 1
00:50:79:66:68:05 -> cc:02:0b:c4:00:00
IPv4, id: a57b, length: 84, ttl: 64, sum: 094a
Address: 192.168.0.200 -> 10.0.0.100
Proto: udp, len: 64, sum: 224d
Port: 30135 -> 7
cc:01:0b:c2:00:00 -> 00:50:79:66:68:05
IPv4, id: a57b, length: 84, ttl: 63, sum: 0a4a
Address: 10.0.0.100 -> 192.168.0.200
Proto: udp, len: 64, sum: 224d
Port: 7 -> 30135
64 bytes from 10.0.0.100 udp_seq=1 ttl=63 time=36.606 ms
VPCS[6]> p 10.0.0.100 -3 -c 1
00:50:79:66:68:05 -> cc:02:0b:c4:00:00
IPv4, id: a580, length: 60, ttl: 64, sum: 0968
Address: 192.168.0.200 -> 10.0.0.100
Proto: tcp, sum: 8c57, ack: 00000000, seq: 022a1b59, flags: S
Port: 53285 -> 7
cc:01:0b:c2:00:00 -> 00:50:79:66:68:05
IPv4, id: a580, length: 40, ttl: 63, sum: 0a7c
Address: 10.0.0.100 -> 192.168.0.200
Proto: tcp, sum: c753, ack: 022a1b5a, seq: 140e0f76, flags: SA
Port: 7 -> 53285
00:50:79:66:68:05 -> cc:02:0b:c4:00:00
IPv4, id: a581, length: 52, ttl: 64, sum: 096f
Address: 192.168.0.200 -> 10.0.0.100
Proto: tcp, sum: 9487, ack: 140e0f77, seq: 022a1b5a, flags: A
Port: 53285 -> 7
Connect
[email protected] seq=1 ttl=63 time=51.250 ms
00:50:79:66:68:05 -> cc:02:0b:c4:00:00
IPv4, id: a582, length: 108, ttl: 64, sum: 0936
Address: 192.168.0.200 -> 10.0.0.100
Proto: tcp, sum: 272e, ack: 140e0f77, seq: 022a1b5a, flags: PA
Port: 53285 -> 7
cc:01:0b:c2:00:00 -> 00:50:79:66:68:05
IPv4, id: a582, length: 40, ttl: 63, sum: 0a7a
Address: 10.0.0.100 -> 192.168.0.200
Proto: tcp, sum: c71c, ack: 022a1b92, seq: 140e0f77, flags: A
Port: 7 -> 53285
SendData
[email protected] seq=1 ttl=63 time=39.752 ms
00:50:79:66:68:05 -> cc:02:0b:c4:00:00
IPv4, id: a583, length: 52, ttl: 64, sum: 096d
Address: 192.168.0.200 -> 10.0.0.100
Proto: tcp, sum: 9446, ack: 140e0f77, seq: 022a1b92, flags: FPA
Port: 53285 -> 7
cc:01:0b:c2:00:00 -> 00:50:79:66:68:05
IPv4, id: a583, length: 40, ttl: 63, sum: 0a79
Address: 10.0.0.100 -> 192.168.0.200
Proto: tcp, sum: c71b, ack: 022a1b93, seq: 140e0f77, flags: A
Port: 7 -> 53285
cc:01:0b:c2:00:00 -> 00:50:79:66:68:05
IPv4, id: a583, length: 40, ttl: 63, sum: 0a79
Address: 10.0.0.100 -> 192.168.0.200
Proto: tcp, sum: 053f, ack: 022a1b93, seq: 140e0f77, flags: FA
Port: 7 -> 53285
Close
[email protected] seq=1 ttl=63 time=55.080 ms
VPCS[6]>
00:50:79:66:68:05 -> cc:02:0b:c4:00:00
IPv4, id: a584, length: 52, ttl: 64, sum: 096c
Address: 192.168.0.200 -> 10.0.0.100
Proto: tcp, sum: 944d, ack: 140e0f78, seq: 022a1b93, flags: A
Port: 53285 -> 7
VPCS[6]> relay dump off
dump off
I tested it on OSX. Attached is Linux program, but I can't find a Linux host which can be ran dynamips to test asymmetric routing.