OVH offers additional public IPv4s in blocks as small as /30, that is 4 IPs total. As I understand it, strictly speaking two of those are supposed to be unusable. However, OVH allows me to route those to specific MACs (each corresponding to a specific virtual machine).
Are there any gotchas to using the highest and the lowest IP in a block like this?
The only gotcha I found was that when configuring Windows to use the IP address, a smaller (err.. larger?) subnet mask must be specified. OVH support says /32 (255.255.255.255) should be used as the subnet mask for any IP anyway, not just the lowest/highest IP. It seems that internally, they don't route IPs based on subnets anyway, so I can't think of any other potential gotchas.
The lowest address is possibly less encumbered, since it's normally assigned as the gateway/router for that network, where as the highest would be used for broadcast traffic to every machine in the network. I've never tried to assign a broadcast address (as a unicast address) to a machine specifically, you might end up seeing a lot of odd traffic.
If you're assigning PPP style netmasks, there are no broadcasts or routers involved, since the network will only have one member (PPP handles the rest).
It depends on how the network outside your server(s) is configured. I find it not very likely they could have divided a block of, say, 256 addresses into 64 subnets of 4 addresses each, mainly because this would waste 50% of the available addresses, up to 75% if a router interface actually was present on each subnet.
More likely, they are using larger subnets, and only told you "you can use addresses from .32 to .35", without really configuring their network like that; if this is the case, you can use all four addresses. But for this to work, a larger subnet mask than /30 is required.
You should definitely ask them; only they will know how things are actually configured in their network.