Fixes #6444 - add support for virtual NICs

This doesn't work for me - $1 and $2 don't exist in the loop because `k` isn't passed in, `identifier` is instead. If add an extra line, repeating the regex, it works:

```
interfaces.select { |k, _| k =~ /(.*)_(\d+)/ }.each do |identifier, _|
  identifier =~ /(.*)_(\d+)/
  new_name = "#{$1}.#{$2}"
```

Can we get a test for this too?