Forum Discussion

kridsana_52318's avatar
kridsana_52318
Icon for Nimbostratus rankNimbostratus
Apr 20, 2015

LB 4200v with CMP disable does not distribute evenly but 3400 does

Hi

 

Right now customer have to implement a new system so they testing application and see some problem

 

This application is selling ticket online via web and have source address persistence in config with Round robin LB method

 

assume they have 10 server and 10 client testing with different IP

 

At first, When they testing they saw F5 (4200v) send many client to the same server. We think it is due to CMP enable (SOL10430) So we disable it.

 

After disable CMP, It's better but some client still sent to the same server. This is a problem.

 

We use LB Round robin method and CMP disabled so all of client must sent to server next-in-line , Am I right? Why it still sent to the same server. (10 server with 10 client testing)

 

PS. I try to test with F5 3400 because it has one core and result is LB is evenly. each client sent to each server respectively.

 

2 Replies

  • The problem occur when I testing with Lastest platform of BIG-IP which have more than one daemon (tmm,tmm1,tmm2,...) I capture traffic and see F5 still use tmm1,tmm2 ,... to manage traffic. Why it use that even though we disable CMP?
  • After disable CMP, It's better but some client still sent to the same server. This is a problem.

    it seems okay here.

     hardware
    
    root@(B4200-R77-S7)(cfg-sync Standalone)(Active)(/Common)(tmos) show sys hardware | grep -A 4 Platform
    Platform
      Name           BIG-IP 4200
      BIOS Revision  OBJ-0433-xx Build: 2.02.171.0 05/02/2014
      Base MAC       00:23:e9:5b:19:40
    
     configuration
    
    root@(B4200-R77-S7)(cfg-sync Standalone)(Active)(/Common)(tmos) list ltm virtual bar
    ltm virtual bar {
        cmp-enabled no
        destination 100.100.100.108:http
        ip-protocol tcp
        mask 255.255.255.255
        pool foo
        profiles {
            tcp { }
        }
        rules {
            qux
        }
        source 0.0.0.0/0
        source-address-translation {
            type automap
        }
        vs-index 3
    }
    root@(B4200-R77-S7)(cfg-sync Standalone)(Active)(/Common)(tmos) list ltm pool foo
    ltm pool foo {
        members {
            200.200.200.101:http {
                address 200.200.200.101
            }
            200.200.200.102:http {
                address 200.200.200.102
            }
            200.200.200.111:http {
                address 200.200.200.111
            }
        }
    }
    root@(B4200-R77-S7)(cfg-sync Standalone)(Active)(/Common)(tmos) list ltm rule qux
    ltm rule qux {
        when SERVER_CONNECTED {
      log local0. "tmm=[TMM::cmp_unit] client=[IP::client_addr]:[TCP::client_port] server=[IP::server_addr]:[TCP::server_port]"
    }
    }
    
     /var/log/ltm
    
    [root@B4200-R77-S7:Active:Standalone] config  tail -f /var/log/ltm
    Apr 19 21:11:02 B4200-R77-S7 info tmm[14550]: Rule /Common/qux : tmm=0 client=100.100.100.3:42423 server=200.200.200.102:80
    Apr 19 21:11:02 B4200-R77-S7 info tmm[14550]: Rule /Common/qux : tmm=0 client=100.100.100.3:42424 server=200.200.200.101:80
    Apr 19 21:11:02 B4200-R77-S7 info tmm[14550]: Rule /Common/qux : tmm=0 client=100.100.100.3:42425 server=200.200.200.111:80
    Apr 19 21:11:02 B4200-R77-S7 info tmm[14550]: Rule /Common/qux : tmm=0 client=100.100.100.3:42426 server=200.200.200.102:80
    Apr 19 21:11:02 B4200-R77-S7 info tmm[14550]: Rule /Common/qux : tmm=0 client=100.100.100.3:42427 server=200.200.200.101:80
    Apr 19 21:11:02 B4200-R77-S7 info tmm[14550]: Rule /Common/qux : tmm=0 client=100.100.100.3:42428 server=200.200.200.111:80
    Apr 19 21:11:02 B4200-R77-S7 info tmm[14550]: Rule /Common/qux : tmm=0 client=100.100.100.3:42429 server=200.200.200.102:80
    Apr 19 21:11:02 B4200-R77-S7 info tmm[14550]: Rule /Common/qux : tmm=0 client=100.100.100.3:42430 server=200.200.200.101:80
    Apr 19 21:11:02 B4200-R77-S7 info tmm[14550]: Rule /Common/qux : tmm=0 client=100.100.100.3:42431 server=200.200.200.111:80
    

    I capture traffic and see F5 still use tmm1,tmm2 ,... to manage traffic. Why it use that even though we disable CMP?

    i understand it is normal because incoming traffic may be hashed to any tmm (not only tmm0). in case not tmm0, that traffic will be internally forwarded to tmm0. if you make a log in irule, you will see tmm which executes is tmm0.

     trace
    
    [root@B4200-R77-S7:Active:Standalone] config  tcpdump -nni 0.0 -s0 port 80
    tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
    listening on 0.0, link-type EN10MB (Ethernet), capture size 65535 bytes
    21:07:56.325777 IP 100.100.100.3.42422 > 100.100.100.108.80: S 4123496108:4123496108(0) win 5840  in slot1/tmm1 lis=
    21:07:56.325949 IP 100.100.100.108.80 > 100.100.100.3.42422: S 2128954956:2128954956(0) ack 4123496109 win 4380  out slot1/tmm0 lis=/Common/bar
    21:07:56.326325 IP 100.100.100.3.42422 > 100.100.100.108.80: . ack 1 win 5840  in slot1/tmm1 lis=/Common/bar
    21:07:56.326540 IP 100.100.100.3.42422 > 100.100.100.108.80: P 1:91(90) ack 1 win 5840  in slot1/tmm1 lis=/Common/bar
    21:07:56.326600 IP 200.200.200.107.42422 > 200.200.200.111.80: S 71915054:71915054(0) win 4380  out slot1/tmm0 lis=/Common/bar
    21:07:56.326611 IP 100.100.100.108.80 > 100.100.100.3.42422: . ack 91 win 4470  out slot1/tmm0 lis=/Common/bar
    21:07:56.328318 IP 200.200.200.111.80 > 200.200.200.107.42422: S 3326085761:3326085761(0) ack 71915055 win 5792  in slot1/tmm0 lis=/Common/bar
    21:07:56.328338 IP 200.200.200.107.42422 > 200.200.200.111.80: . ack 1 win 4380  out slot1/tmm0 lis=/Common/bar
    21:07:56.328447 IP 200.200.200.107.42422 > 200.200.200.111.80: P 1:91(90) ack 1 win 4380  out slot1/tmm0 lis=/Common/bar
    21:07:56.328753 IP 200.200.200.111.80 > 200.200.200.107.42422: . ack 91 win 5792  in slot1/tmm0 lis=/Common/bar
    21:07:56.329993 IP 200.200.200.111.80 > 200.200.200.107.42422: P 1:338(337) ack 91 win 5792  in slot1/tmm0 lis=/Common/bar
    21:07:56.330012 IP 100.100.100.108.80 > 100.100.100.3.42422: P 1:338(337) ack 91 win 4470  out slot1/tmm0 lis=/Common/bar
    21:07:56.330019 IP 200.200.200.107.42422 > 200.200.200.111.80: . ack 338 win 4717  out slot1/tmm0 lis=/Common/bar
    21:07:56.330115 IP 200.200.200.111.80 > 200.200.200.107.42422: F 338:338(0) ack 91 win 5792  in slot1/tmm0 lis=/Common/bar
    21:07:56.330126 IP 200.200.200.107.42422 > 200.200.200.111.80: . ack 339 win 4717  out slot1/tmm0 lis=/Common/bar
    21:07:56.330131 IP 100.100.100.108.80 > 100.100.100.3.42422: F 338:338(0) ack 91 win 4470  out slot1/tmm0 lis=/Common/bar
    21:07:56.330348 IP 100.100.100.3.42422 > 100.100.100.108.80: . ack 338 win 6432  in slot1/tmm1 lis=/Common/bar
    21:07:56.330437 IP 100.100.100.3.42422 > 100.100.100.108.80: F 91:91(0) ack 339 win 6432  in slot1/tmm1 lis=/Common/bar
    21:07:56.330468 IP 100.100.100.108.80 > 100.100.100.3.42422: . ack 92 win 4470  out slot1/tmm0 lis=/Common/bar
    21:07:56.330486 IP 200.200.200.107.42422 > 200.200.200.111.80: F 91:91(0) ack 339 win 4717  out slot1/tmm0 lis=/Common/bar
    21:07:56.330806 IP 200.200.200.111.80 > 200.200.200.107.42422: . ack 92 win 5792  in slot1/tmm0 lis=/Common/bar
    
     /var/log/ltm
    
    [root@B4200-R77-S7:Active:Standalone] config  tail -f /var/log/ltm
    Apr 19 21:07:56 B4200-R77-S7 info tmm[14550]: Rule /Common/qux : tmm=0 client=100.100.100.3:42422 server=200.200.200.111:80