There is a difference:
Using the 'encap dot1q X native' directive causes this subinterface to accept untagged traffic (which is what it generates) OR traffic tagged with VLAN X.
An IP address assigned to a physical interface can't do that. Is this a good thing? I'm not sure.
This, incidentally, is the similar to the behavior of the 'vlan dot1q tag native' command on Catalysts, except it works the other way: The catalyst accepts tagged or untagged traffic, but generates tagged traffic.
Putting these two features together allows crazy interaction like I've captured here:
Code:
Frame 3 (114 bytes on wire, 114 bytes captured)
Arrival Time: Jul 26, 2012 21:37:40.960823000
[Time delta from previous captured frame: 0.298311000 seconds]
[Time delta from previous displayed frame: 0.298311000 seconds]
[Time since reference or first frame: 0.333150000 seconds]
Frame Number: 3
Frame Length: 114 bytes
Capture Length: 114 bytes
[Frame is marked: False]
[Protocols in frame: eth:ip:icmp:data]
Ethernet II, Src: ca:00:08:7a:00:08 (ca:00:08:7a:00:08), Dst: Cisco_67:bf:00 (00:0b:fd:67:bf:00)
Destination: Cisco_67:bf:00 (00:0b:fd:67:bf:00)
Address: Cisco_67:bf:00 (00:0b:fd:67:bf:00)
.... ...0 .... .... .... .... = IG bit: Individual address (unicast)
.... ..0. .... .... .... .... = LG bit: Globally unique address (factory default)
Source: ca:00:08:7a:00:08 (ca:00:08:7a:00:08)
Address: ca:00:08:7a:00:08 (ca:00:08:7a:00:08)
.... ...0 .... .... .... .... = IG bit: Individual address (unicast)
.... ..1. .... .... .... .... = LG bit: Locally administered address (this is NOT the factory default)
Type: IP (0x0800)
Internet Protocol, Src: 2.2.2.10 (2.2.2.10), Dst: 2.2.2.1 (2.2.2.1)
Version: 4
Header length: 20 bytes
Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00)
0000 00.. = Differentiated Services Codepoint: Default (0x00)
.... ..0. = ECN-Capable Transport (ECT): 0
.... ...0 = ECN-CE: 0
Total Length: 100
Identification: 0xb79b (47003)
Flags: 0x00
0.. = Reserved bit: Not Set
.0. = Don't fragment: Not Set
..0 = More fragments: Not Set
Fragment offset: 0
Time to live: 255
Protocol: ICMP (0x01)
Header checksum: 0xfbee [correct]
[Good: True]
[Bad : False]
Source: 2.2.2.10 (2.2.2.10)
Destination: 2.2.2.1 (2.2.2.1)
Internet Control Message Protocol
Type: 8 (Echo (ping) request)
Code: 0 ()
Checksum: 0xf26f [correct]
Identifier: 0x0012
Sequence number: 0 (0x0000)
Data (72 bytes)
0000 00 00 00 00 00 48 8b 80 ab cd ab cd ab cd ab cd .....H..........
0010 ab cd ab cd ab cd ab cd ab cd ab cd ab cd ab cd ................
0020 ab cd ab cd ab cd ab cd ab cd ab cd ab cd ab cd ................
0030 ab cd ab cd ab cd ab cd ab cd ab cd ab cd ab cd ................
0040 ab cd ab cd ab cd ab cd ........
Data: 0000000000488B80ABCDABCDABCDABCDABCDABCDABCDABCD...
[Length: 72]
Frame 4 (118 bytes on wire, 118 bytes captured)
Arrival Time: Jul 26, 2012 21:37:40.961327000
[Time delta from previous captured frame: 0.000504000 seconds]
[Time delta from previous displayed frame: 0.000504000 seconds]
[Time since reference or first frame: 0.333654000 seconds]
Frame Number: 4
Frame Length: 118 bytes
Capture Length: 118 bytes
[Frame is marked: False]
[Protocols in frame: eth:vlan:ip:icmp:data]
Ethernet II, Src: Cisco_67:bf:00 (00:0b:fd:67:bf:00), Dst: ca:00:08:7a:00:08 (ca:00:08:7a:00:08)
Destination: ca:00:08:7a:00:08 (ca:00:08:7a:00:08)
Address: ca:00:08:7a:00:08 (ca:00:08:7a:00:08)
.... ...0 .... .... .... .... = IG bit: Individual address (unicast)
.... ..1. .... .... .... .... = LG bit: Locally administered address (this is NOT the factory default)
Source: Cisco_67:bf:00 (00:0b:fd:67:bf:00)
Address: Cisco_67:bf:00 (00:0b:fd:67:bf:00)
.... ...0 .... .... .... .... = IG bit: Individual address (unicast)
.... ..0. .... .... .... .... = LG bit: Globally unique address (factory default)
Type: 802.1Q Virtual LAN (0x8100)
802.1Q Virtual LAN, PRI: 0, CFI: 0, ID: 2
000. .... .... .... = Priority: 0
...0 .... .... .... = CFI: 0
.... 0000 0000 0010 = ID: 2
Type: IP (0x0800)
Internet Protocol, Src: 2.2.2.1 (2.2.2.1), Dst: 2.2.2.10 (2.2.2.10)
Version: 4
Header length: 20 bytes
Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00)
0000 00.. = Differentiated Services Codepoint: Default (0x00)
.... ..0. = ECN-Capable Transport (ECT): 0
.... ...0 = ECN-CE: 0
Total Length: 100
Identification: 0xb79b (47003)
Flags: 0x00
0.. = Reserved bit: Not Set
.0. = Don't fragment: Not Set
..0 = More fragments: Not Set
Fragment offset: 0
Time to live: 255
Protocol: ICMP (0x01)
Header checksum: 0xfbee [correct]
[Good: True]
[Bad : False]
Source: 2.2.2.1 (2.2.2.1)
Destination: 2.2.2.10 (2.2.2.10)
Internet Control Message Protocol
Type: 0 (Echo (ping) reply)
Code: 0 ()
Checksum: 0xfa6f [correct]
Identifier: 0x0012
Sequence number: 0 (0x0000)
Data (72 bytes)
0000 00 00 00 00 00 48 8b 80 ab cd ab cd ab cd ab cd .....H..........
0010 ab cd ab cd ab cd ab cd ab cd ab cd ab cd ab cd ................
0020 ab cd ab cd ab cd ab cd ab cd ab cd ab cd ab cd ................
0030 ab cd ab cd ab cd ab cd ab cd ab cd ab cd ab cd ................
0040 ab cd ab cd ab cd ab cd ........
Data: 0000000000488B80ABCDABCDABCDABCDABCDABCDABCDABCD...
[Length: 72]
An untagged ping got a tagged response. Nifty.