When using CSW Rule with POST method and load balancing based on incoming URI, you could run into a defect that prevents the right configuration. By default, “case-insensitive” CSW Rules would have to be added to “case-insensitive” CSW Policies. However, “case-insensitive” key word at the end of the CSW Rule for HTTP Method is NOT recognized by the Brocade ADX. Most browsers send the HTTP Method in Uppercase and hence, Brocade Engineers did not design the CSW Rule for HTTP Method to work with “case-insensitive” keyword.
Virtual ADX(config)#csw-rule “POST_Method” method eq “POST” case-insensitive
Virtual ADX(config)#csw-policy “CSW_POLICY” case-insensitive
Virtual ADX(config-CSW_POLICY)#match “POST_Method” forward 1
Rule “POST_Method” does not match policy “CSW_POLICY” case sensitivity type
What if you want to combine HTTP Method related CSW Rule (case-sensitive) with normal L7 load balancing rules based on case-insensitive URI ?
In this case, you can only create “case-sensitive” CSW Policy and not “case-insensitive” CSW Policy as the CSW Rule for Method doesn’t have a “case-insensitive” option. In effect, the URI that is utilized within the CSW Rule has to be “case-sensitive” and won’t match any case.
I wanted this configuration (case-insensitive):
csw-rule “POST_Method” method eq “POST” case-insensitive
csw-rule “URI_ADMIN” url pattern “/ADMIN/” case-insensitive
csw-rule “URI_STAGE” url pattern “/STAGE/” case-insensitive
csw-policy “CSW_POLICY” case-insensitive
match “URI_ADMIN” forward 1026
match “URI_STAGE” forward 1026
match “POST_Method” forward 1027
Settled For This Configuration (case-sensitive):
csw-rule “POST_Method” method eq “POST”
csw-rule “URI_ADMIN” url pattern “/admin/”
csw-rule “URI_STAGE” url pattern “/stage/”
csw-policy “CSW_POLICY”
match “URI_ADMIN” forward 1026
match “URI_STAGE” forward 1026
match “POST_Method” forward 1027
Issue seen: 12.4D code.