Skip to main content
Question

CREATE NETWORK INTERFACE vs CREATE NETWORK ADDRESS

  • April 29, 2024
  • 5 replies
  • 8 views

JoshLitt

Both CREATE NETWORK INTERFACE and CREATE NETWORK ADDRESS seem to create a row in the network_addresses table. I wonder if there is really any difference between these commands.

In our product, we are trying to switch customer deployments from "Classic Load Balancing" to "Load Balanceing Policies". To configure classic load balancing, we created a NETWORK INTERFACE, and told the node to export on that network interface. For load Balancing policies, we create a NETWORK ADDRESS and add the address to a LOAD BALANCE GROUP.

In converting a Classic Load Balancing deployment to one using Load Balancing Policy, is there a need to delete the drop the NETWORK INTERFACE and create a NETWORK ADDRESS instead? They seem to be the same thing, and both look identical in the network_addresses table once created. So I can't even tell how it was created. In fact, if I create a NETWORK INTERFACE, I can drop it with DROP NETWORK ADDRESS, and vice versa.

This is in Vertica 23.4, though the original NETWORK INTERFACE may have been created in Vertica 10.1 or Vertica 11.1.

5 replies

SruthiA
Forum|alt.badge.img+1
  • Participating Frequently
  • April 29, 2024

they should create rows in network_interfaces and network_adddresses tables respectively. if there is already existing interface and network addresses you can use them to set up load balancing. please create a support case and share the reproducer.


JoshLitt
  • Author
  • New Participant
  • April 30, 2024

I don't think so. The v_monitor.network_interfaces table appears to reflect the operating system network interfaces. Running CREATE NETWORK INTERFACE doesn't affect that table. However, it does create a row in the v_catalog.network_addresses table (as does CREATE NETWORK ADDRESS).


SruthiA
Forum|alt.badge.img+1
  • Participating Frequently
  • April 30, 2024

@JoshLitt yes. you are right. I am able to reproduce it. I have created a JIRA for the same.

test=> select interface from network_interfaces;

interface

lo
ens192
docker0
br-2f776fe24f78
lo
ens192
docker0
br-2f776fe24f78
lo
ens192
lo
ens192
lo
ens192
lo
ens192
(16 rows)

test=> CREATE NETWORK INTERFACE mynetwork ON v_test_node0001 WITH '127.0.0.1';
CREATE NETWORK INTERFACE
test=> select interface from network_interfaces;

interface

lo
ens192
docker0
br-2f776fe24f78
lo
ens192
docker0
br-2f776fe24f78
lo
ens192
lo
ens192
lo
ens192
lo
ens192
(16 rows)

test=> select * from network_addresses;
name | node | address | port | address_family | is_enabled | is_auto_detected
-----------+-----------------+-----------+------+----------------+------------+------------------
mynetwork | v_test_node0001 | 127.0.0.1 | 5433 | ipv4 | t | f
(1 row)


JoshLitt
  • Author
  • New Participant
  • April 30, 2024

Thanks for confirming.

I'd be happy if the documentation clarified this. From my perspective, CREATE NETWORK INTERFACE and CREATE NETWORK ADDRESS currently seem indistinguishable, but since the doc for CREATE NETWORK INTERFACE says the following, I'm left scratching my head about the difference, or how to tell which was used:

Do not confuse this statement with CREATE NETWORK ADDRESS, which is used to identify network addresses for connection load balancing (see Connection load balancing policies).


SruthiA
Forum|alt.badge.img+1
  • Participating Frequently
  • April 30, 2024

true. there is definitely an issue that needs to be corrected. hence I created a JIRA with engineering