Skip to content

Conversation

@zhang-shengping
Copy link
Contributor

add bandwidth control, sip, diameter, multi-provider snat pools, diameter healthmonitor, TCP IP transmmission.

zhaoqin-github and others added 6 commits May 28, 2020 02:05
CAUTION: TCP listener can configure http profile, but if it
is configured with http profile, it may not work well with ssh
protocol, since it will check the upper 7 layer info, then
ssh connection will be block by http profile.

fastl4 type TCP listener can not configure server or
client protocol, it will throw error.

Command info:
SE give suggestion to configuration ESD like below:

  "insert_sip_tcp-option": {
    "lbaas_stcp": "tcp_option_28",
    "lbaas_irule": ["insert-clientIP-TCP-option"]
  }

we have to change TCP to standard type to use lbaas_stcp tag (Protocol
profile (Sever)) by using --description options.

Command lines:
neutron lbaas-listener-create --name tcp-standard
                              --loadbalancer source-ip-lb
                              --protocol TCP
                              --protocol-port 24
                              --description "{'TCP-type':'standard'}"

neutron lbaas-l7policy-create --listener tcp-standard
                              --name insert_sip_tcp-option
                              --action REJECT

CAUTION: update description is not allow.

Conflicts:
	f5_openstack_agent/lbaasv2/drivers/bigip/selfips.py
…nfigure with

different snat pool address.

Conflicts:
	etc/neutron/services/f5/f5-openstack-agent.ini

(cherry picked from commit 059cde5)
…nfigure with

different snat pool address.

Conflicts:
	etc/neutron/services/f5/f5-openstack-agent.ini

(cherry picked from commit 059cde5)
transparent IP TCP standard listener

Add sip udp listener:

neutron lbaas-listener-create --name test-udp-sip \\
                              --loadbalancer test-lb \\
                              --protocol TCP \\
                              --protocol-port 24 \\
                              --description "{'Add-profile':'SIP', 'Listener-proto':'UDP', 'Listener-type':'standard'}"

neutron lbaas-l7policy-create --listener test-udp-sip --name sip_persistence --action REJECT

---------------------------------------------------------------

Add daimeter listener:

neutron lbaas-listener-create --name test-tcp-diameter  \\
                              --loadbalancer test-lb \\
                              --protocol TCP \\
                              --protocol-port 1234 \\
                              --description "{'Add-profile':'Diameter', 'ds':'diameter-it-session', 'dr':'diameterrouter-it'}"

neutron lbaas-l7policy-create --listener test-tcp-diameter --name diameter_tcp --action REJECT

---------------------------------------------------------------

Change transparent IP TCP standard listener CLI to:

neutron lbaas-listener-create --name test-tcp-transparent  \\
                              --loadbalancer test-lb  \\
                              --protocol TCP  \\
                              --protocol-port 8899 \\
                              --description "{'Listener-type':'standard'}"

neutron lbaas-l7policy-create --listener test-tcp-transparent --name insert_sip_tcp-option --action REJECT

---------------------------------------------------------------

ESD file:

cat /etc/neutron/services/f5/esd/demo.json
{

  "sip_persistence": {
    "lbaas_persist": "custom_sip_persist"
  },

  "diameter_tcp": {
    "lbaas_ctcp": "tcp-idle-800"
  },

  "insert_sip_tcp-option": {
    "lbaas_stcp": "tcp_option_28",
    "lbaas_irule": ["insert-clientIP-TCP-option"]
  }
}
CMCC need to add Diameter type healthmonitor for them,
the lbaas healthmonitor does not include DIAMETER type,
this feature to let lbaas cli use `--name diameter` to
configure diameter type healthmonitor on F5 BIGIP.

usage:
create diameter healthmonitor on BIGIP:
  neutron lbaas-healthmonitor-create --pool a4b9e446-4350-4652-8d20-e6d087e784e6
                                     --type TCP
                                     --delay 20
                                     --timeout 30
                                     --max-retries 1
                                     --name diameter

delete diameter healthmonitor on BIGIP (do not use diameter name to delete):
  neutron lbaas-healthmonitor-delete ac8f50f8-8bfb-44a8-a1d5-dd571570ef31

Conflicts:
	f5_openstack_agent/lbaasv2/drivers/bigip/test/conftest.py
	f5_openstack_agent/lbaasv2/drivers/bigip/test/mock_builder_base_class.py
Copy link
Contributor

@Niklaus-xie Niklaus-xie left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

测试包已发出。 这个merge动作先hold一下。 待我先确认目前上线的部分完全不再动。pls go ahead if you have comments about the code itself, but let's hold the merge for a little bit.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants