Learn F5 Technologies, Get Answers & Share Community Solutions Join DevCentral

Filter by:
  • Solution
  • Technology
Answers

node name re-written: Upgrade from v10 - V11

Am running VE BIG-IP 11.2.1 Build 797.0 Final, and have successfully imported ucs configuration files from v10.x to the new platform.

I have noticed is that the node list imported from version 10.x to v11.x has changed: What was the orginal NAME field for the node has been changed the DESCRIPTION field; and the IP address for the node has been allocated as the new NAME for the node.

This wouldn't be so bad but it seems as if the search/filter function in the node list view DOES NOT search via the desctiption.. Which means that I currently cannot narrow down the node list by using searching for a friendly name.

any help is greatfully received!

Kindly thanks :)

Daniel

0
Rate this Question

Answers to this Question

placeholder+image
USER ACCEPTED ANSWER & F5 ACCEPTED ANSWER
in v11, node name is used as key, so it must be unique. there is no guarantee node name is unique in v10.

to change node name, you may export scf, update node name (e.g. using bash script), import the scf back.

sol13408: Overview of single configuration files (11.x)
http://support.f5.com/kb/en-us/solutions/public/13000/400/sol13408.html

regarding searching node description, you may open a support case and submit request for enhancement.
0
placeholder+image
USER ACCEPTED ANSWER & F5 ACCEPTED ANSWER

Object names must start with an alphabetical character. http://support.f5.com/kb/en-us/solu...13209.html -- Interesting that yours don't! Perhaps this is no longer a requirement in v11.2.1?

A list of reserved words that should not be used in configurations (i.e. as object names) can be found here: http://support.f5.com/kb/en-us/solu...l6869.html

0
placeholder+image
USER ACCEPTED ANSWER & F5 ACCEPTED ANSWER

Allowed characters are alphabetic and numerical characters and the following;

• period (.)
• dash (-)
• underscore (_)

Spaces are not allowed, case sensitivity is honoured, so objects named test-1 and Test-1 could both exist.

You may specify a partition for an object in the name field, regardless of the partition you currently have selected for writing to, for example, you could name an object as follows: /Common/test-node-1.

 

0
placeholder+image
USER ACCEPTED ANSWER & F5 ACCEPTED ANSWER

If you can generate a list of IPs to descriptions you can just use sed in vi.

save your config:

tmsh# save sys config

edit your config:

bash# vim /config/bigip.conf

modify nodes (this will do nodes and pool members)

:%s#/Common/127.0.0.1#/Common/localhost#g

:%s#/Common/127.0.0.2#/Common/localhost2#g

save your work & quit

:wq

load your updated config

tmsh# load sys config

0
placeholder+image
USER ACCEPTED ANSWER & F5 ACCEPTED ANSWER

I came across this issue as well. Fortunately it was a small deployment we had at the time. I could see it was going to be a much big nuisance for our larger deployment when we do upgrade at a later time.

I also recall that there seems to be more restrictions as to what chars can be used in a name ('%' no longer allowed?) under v11.

What is the rationale behind this behaviour in an upgrade? A name is just a label, and a user's choice of what to put in there, within reason, should be respected.

One year on since this question was raised, has this behaviour been changed in a later release, say, v. 11.5.0?

This software is supposed to bridge/converge network and applications, and network admins' usual preference of just using IP addresses in configurations can be a nightmare for administration of applications. I see a lot of examples of naming a virtual server "vs_blah_blah", and in my deployment I tend to use a more intuitive naming scheme, such as, my.service.my.com_443 (":" is not allowed), which makes it easier to find a service amongst a multitude of others.

Just a thought (and a couple of more questions).

0
placeholder+image
USER ACCEPTED ANSWER & F5 ACCEPTED ANSWER
Well, it wouldn't be pleasant but you could manually edit the configuration file and change the names as necessary and reload it. Node names can't be changed any other way unless you delete and recreate. Perhaps someone else has a better idea?
-1
placeholder+image
USER ACCEPTED ANSWER & F5 ACCEPTED ANSWER

Yes that thought did cross my mind! not entirely pleasent as we have about 156 nodes to re-write. I'm supprised this hasn't come up as an issue for others. Especially as the search function doesn't use the Description field

Daniel

-1
placeholder+image
USER ACCEPTED ANSWER & F5 ACCEPTED ANSWER

Thanks - a quick/noddy question regarding the node name

Here is a sample node exported from my new config with pretend IP address as name.

I assume that the name is the item after the /Common/

Where i to replace them all with text - are there any formatting rules to be aware of?

ltm node /Common/10.1.1.1 {
address 10.1.1.1
description Gateway
monitor none

thanks again

-1
placeholder+image
USER ACCEPTED ANSWER & F5 ACCEPTED ANSWER
i had to delete node before because i merged configuration and node address is same. if you import whole scf, you do not need to delete node.

root@(ve11a)(cfg-sync Changes Pending)(Active)(/Common)(tmos)# list ltm node
ltm node 10.1.1.1 {
    address 10.1.1.1
    description Gateway
    monitor none
    session monitor-enabled
}
root@(ve11a)(cfg-sync Changes Pending)(Active)(/Common)(tmos)# delete ltm node 10.1.1.1
root@(ve11a)(cfg-sync Changes Pending)(Active)(/Common)(tmos)# load sys config from-terminal merge
Enter configuration. Press CTRL-D to submit or CTRL-C to cancel.
ltm node Gateway {
    address 10.1.1.1
    description Gateway
    monitor none
    session monitor-enabled
}
Loading configuration...
root@(ve11a)(cfg-sync Changes Pending)(Active)(/Common)(tmos)# list ltm node
ltm node Gateway {
    address 10.1.1.1
    description Gateway
    monitor none
    session monitor-enabled
}
-1
placeholder+image
USER ACCEPTED ANSWER & F5 ACCEPTED ANSWER
Posted By What Lies Beneath on 10/30/2012 09:13 AM

Object names must start with an alphabetical character. http://support.f5.com/kb/en-us/solu...13209.html -- Interesting that yours don't! Perhaps this is no longer a requirement in v11.2.1?

A list of reserved words that should not be used in configurations (i.e. as object names) can be found here: http://support.f5.com/kb/en-us/solu...l6869.html



Yes odd that! Guess that because the new names were created/changed by the import process that it ignores it's own rules?

Anyway thanks to all for your comments and help - I'm going to spend my morning (UK time) cutting and pasting the old names in to the new name field, then reloading the scf files! Wahoo :)

Will update the topic with my results

Dan

-1
placeholder+image
USER ACCEPTED ANSWER & F5 ACCEPTED ANSWER
having done some testing - and it seems that the SCF config fails to import when I change the node name. The reason is because the pool that has the node in it, references that node by its NAME not just the IP address. Which in this case is the IP address.

So what you get is this error - Configuration error: invalid node address, the IP address x.x.x.x already exists.

You do not get this error, if you import an scf that has the pool information correct - even if the node / pool / vs exists.

So my question is....

Can anyone think of an easy way i can also replace the name listed in the pool from the IP address to the "friendly name"

This wouldn't be as necessary if the orginal upgrade/import hadn't re-written my name fields - or i could search on the node GUI by description!

Thanks again

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

############################
##Shows changed node name and but orig/ pool infomation - which won't import
##############################
ltm node /Common/test_node1 {
    address 10.1.1.2
    description test_node1 
}
ltm pool /Common/Test_pool1 {
    description test_pool1
    members {
        /Common/10.1.1.2:80 {
            address 10.1.1.2
        }
    }


############################
##Shows changed node and pool infomation - which will now import
###########################

ltm node /Common/test_node1 {
    address 10.1.1.2
    description test_node1 
}
ltm pool /Common/Test_pool1 {
    description test_pool1
    members {
        /Common/test_node1:80 {
            address 10.1.1.2
        }
    }
} 
-1
placeholder+image
USER ACCEPTED ANSWER & F5 ACCEPTED ANSWER
So I have ran into the same problem and was wondering if anyone figured out a reliable fix. I have about 100 nodes & 62 pools. We run multiple services per node on different ports, but they are mostly on one /24.

My biggest problem is that now that the name has moved, you cannot add a node from the node list by name; only IP address. We have a team of engineers that work on the different applications, and we have already had 1 production incident where the wrong node was added to a live pool because the engineer was off by 1 number (.145 instead of .146).

I tried manually updating the bigip.conf file in our test environment twice, and each time a different product had issues. I'm reluctant to do such a major change across the entire F5. Has anyone written a script or anything to help? I opened a ticket with support, and they basically said I need to delete the nodes & re-add them (not realistic at all).

Anyone?
-1
placeholder+image
USER ACCEPTED ANSWER & F5 ACCEPTED ANSWER
You could consider scripting this in Bash.

Start with a list of the nodes and dump to a file:
cat bigip.conf |grep "ltm node" |awk -F" " '{ print $3 }'

Create a copy of your bigip.conf file - you'll be working with the copy (bigip.conf.replace)
cp bigip.conf bigip.conf.replace

Now create a Perl script and add the following line for as many nodes as you have:
perl -pi -e 's/OLD-NAME/NEW_NAME/g' bigip.conf.replace
Where OLD-NAME is the (escaped) current value. So for example, if an existing node name is "/Common/10.70.0.3", your Perl script line will look something like this:

perl -pi -e 's/\/Common\/10.70.0.3/local-dot-3/g' bigip.conf.replace


** The -i means to edit in place.

If you dumped the original list into a text file:
1. replace any instance of "/" with "\/"
2. add "perl -pi -e 's/" to the beginning of each line
3. add "/g' bigip.conf.replace" to the end of each line
4. manually fill in the second part of each replace string to meet your naming requirements.

Open the bigip.conf.replace file to make sure everything looks good. If it does, swap it with bigip.conf (don't delete the original in case you run into problems - make another copy), and reload:
tmsh load sys config
-1