Friday, September 5, 2008

Class-Based TCP header compression, traveling the DocCD

I was playing around with header compression today and noticed an issue (no longer an issue, I found my problem, see comments section) with class-based header compression. First, here is my topology:

R2-----ethernet-----[R3]-----serial-----[R4]

On R3 I have the following:

class-map match-all TELNET
match protocol telnet
!
policy-map OUT2R4
class TELNET
compress header ip
!
interface Serial1/1
ip address 172.12.34.3 255.255.255.0
service-policy output OUT2R4

When I telnet to R4 from R2 nothing happens, it opens up but I get no password prompt:

R2#telnet 4.4.4.4
Trying 4.4.4.4 ... Open




When I disable compression it works fine. So on R4 I tried to enable compression:

R4(config)#class-map TELNET
R4(config-cmap)#match protocol telnet
R4(config-cmap)#exit
R4(config)#policy-map INBOUND
R4(config-pmap)#class TELNET
R4(config-pmap-c)#compression header ip
R4(config)#int s1/1
R4(config-if)#service-policy input INBOUND
Header compression: Can be enabled as an output feature only
R4(config-if)#^Z

So I tried this instead:

R4(config-if)#ip tcp header-compression

But still it didn't work. So I headed to the DocCD:

First stop was 12.4 Quality of Service Configuration Guide. From there I went to Part 6: Link Efficiency Mechanisms. Next I clicked the "Header Compression" link then to "Configuring Class-Based RTP and TCP Header Compression." I already had what I thought was the correct CBWFQ configuration but nevertheless, I started here.

After shortly browsing this topic I found "Configuring TCP Header Compression" link. Here is where I found the treasure in the configuration example:

"ip tcp header-compression [passive | iphc-format | ietf-format]"

But my R4 doesn't have the iphc-format option listed:

R4(config-if)#ip tcp header-compression ?
passive Compress only for destinations which send compressed headers


But it took as a hidden option:

R4(config-if)#ip tcp header-compression iphc-format

And it worked!

R2#telnet 4.4.4.4
Trying 4.4.4.4 ... Open


User Access Verification

Password:
R4>

Not sure if all the links above will be available in the real lab, but it still was a good exercise in getting through the documentation. I started off with QoS, made my to Class-based compression and then ultimately found the command I was looking for - one that wasn't even in my context help!

1 comment:

  1. Well after playing around some more, I figured that if I enable compression outbound on R4 towards R3 then it works as well. For some reason I was thinking I needed it inbound on R4, but this isn't the case, outbound will do!

    ReplyDelete

Note: Only a member of this blog may post a comment.