On one of my web server the loopback route is in 2nd position and usually it is in 3rd position on other server when displaying the routes:
>ip route show
Results on what is displayed on one centos 7 server:
default via 85.x.x.254 dev enp32s0
85.x.x.192/26 dev enp32s0 proto kernel scope link src 85.x.x.201
169.254.0.0/16 dev enp32s0 scope link metric 1002
Result for another centos 7 server:
default via 217.x.x.1 dev em1
169.254.0.0/16 dev em1 scope link metric 1002
217.x.x.0/24 dev em1 proto kernel scope link src 217.x.x.216
Does it make any differences? Does it have any consequences? Can anyone explain why it happens?
The order in which routes are entered is, by definition, unimportant. This is due to how routes are supposed to be applied: the more specific ones have precedence over the more generic ones.
Suppose you have two routes:
When sending a packet to the machine with, say, 172.16.32.1 IP address, the selected gateway will be always 192.168.1.2, independently from how the order the routes where entered in the system.
There is a catch, however: what about two routes for the very same network, but with different gateway? For example, consider this setup:
How would the system work? If you want a route to have preference over another otherwise identical route, you had to assign them a metric value. The metric is considered as a "cost" value, with lower metric preferred. So if your system has two otherwise identical routes but with different metric, it selects the route with a lower metric value.
But what happens if the two routes are identical even in the metric value? In this (corner) case, the default behavior is undefined and varies from system to system. For example, a system could prefer the fist entered route, while another system can give preference to the last entered one. Other systems can use both routes at the same time, distributing packets in a near round-robin fashion called ECMP (equal cost multipath routing). Finally, other systems can forbid the presence of two really identical routes, denying the possibily to even enter such routes.
Yes, the ordering of network routes is important independently of operating system in general.
Routes are programs. They say, when you get a packet that is addressed to network A, use router A to do it. When you get one for B, use router B.
Let's say that A is inside of B, like A = 192.168.1.0/24 and B = 192.168.0.0/22. Then if we reverse the ordering of routes being applied, A would have no effect, because all of A is inside B. On the other ahdn , int this ordering, even though B is second, the route still affects B because 75% of its hosts are not in A.
The ordering of route application in this context (static routes) is done via static metrics. The smallest metric (cheapest route) gets to go before.