Most vendors have support for /31 by now. RouterOS however has some peculiarities. I would really like RouterOS to ARP for the remote address, to avoid flooding the network with broadcasts and to interop with other vendors.
Testing against a Fortigate with 1.2.3.5/31, but I believe most vendors behave the same.
First option:
/ip address add interface=ether2 address=1.2.3.4/31
/ping 1.2.3.5
Ping is sent to broadcast without ARP
ether2 2.102 1 → CC:2D:E0:B5:C8:8A FF:FF:FF:FF:FF:FF 1.2.3.4 1.2.3.5 ip:icmp 70 3 no
Fortigate tries to ARP for 1.2.3.4, that is ignored
ether2 2.102 2 ← 90:6C:AC:A9:50:91 FF:FF:FF:FF:FF:FF 1.2.3.5: who has 1.2.3.4? arp 60 2 no
Second option:
/ip address add interface=ether2 address=1.2.3.4/32 network=1.2.3.5
RouterOS pings broadcast but also accepts ARP
ether2 16.569 36 → CC:2D:E0:B5:C8:8A FF:FF:FF:FF:FF:FF 1.2.3.4 1.2.3.5 ip:icmp 70 2 no
ether2 16.569 37 ← 90:6C:AC:A9:50:91 FF:FF:FF:FF:FF:FF 1.2.3.5: who has 1.2.3.4? arp 60 2 no
ether2 16.569 38 → CC:2D:E0:B5:C8:8A 90:6C:AC:A9:50:91 1.2.3.4: at CC:2D:E0:B5:C8:8A arp 42 2 no
ether2 16.569 39 ← 90:6C:AC:A9:50:91 CC:2D:E0:B5:C8:8A 1.2.3.5 1.2.3.4 ip:icmp 70 1 no
Third option:
/ip address add interface=ether2 address=1.2.3.4/32
/ip route add dst-address=1.2.3.5/32 gateway=ether2
Same results as the second option.
Is there a way to get RouterOS to ARP for the peer address, so traffic is not flooded and proper conformance to RFC 3021 is achieved?