If I have problems with the NAT66 algorithm, it is the set of cases in which it can be defeated. Both of these have to do with routing.

In the first, if Alice served by Bob and Bobby, it is probable that Alice's administration lists both the Alice-via-Bob and the Alice-via- Bobby address in DNS. If Carol seeks to connect to Alice, Alice will pick among those addresses at random unless she has a good explicit reason to have an affinity to one of them. However, routing within Alice's network may choose a different exit gateway than the ingress gateway Carol in effect chose when she chose an address to use for Alice. Thus, when Carol sends a SYN to Alice-via-Bob, the SYN-ACK might come from Alice-via-Bobby. One hopes that Carol would eventually retry Alice-via-Bobby and get through.

Coming back to Keith's question of referrals, there is a security issue in hairpins. Let's imagine that in DNS Alice's administration also lists Alice-via-ULA, the request is from Alicia, and both Alicia's and Alice's nearest exit gateway is Bobby. If Alicia chooses to contact Alice-via-Bobby, the argument is that the NAT66 should either do or do something externally equivalent to translating it to Bobby's network, turning the packet around, and translating it back into Alice's network. But if Alicia chooses Alice-via-Bob, the packet will exit to Bob, change ISPs, and attempt to enter at the NAT66 between Alice and Bob. While this would functionally work, it would violate my company's, and I presume many company's, information security rules - internal traffic is not allowed to go externally. Hence, they are likely to filter traffic to both Alice-via-Bob and Alice-via-Bobby at both NAT66 systems, with a view to forcing Alicia to use Alice-via-ULA. Alice can refer to her heart's content, but only using addresses that conform to the corporate security rules.

That said, I think both of these have trivial solutions.

To the first point, I need to prove this, but I think it would be anomalous for such communication exchanges to not settle down to a pair of addresses that work. If both Alice and Carol are using their egress gateways of choice, the setup of sessions would have the effect of selecting a pair of addresses that work. I can construct a case in which that is not true, but I have to work pretty hard.

To the second case, I have two observations. First, while this is unpopular with those who design DNS, those who run DNS usually have different DNS databases internally and externally. If the internal database uses ULA addresses and the external database uses Bob/Bobby addresses, and the application uses names rather than addresses, the issue largely falls out. Second, even if there is a common DNS, I would be amazed to find Alicia trying to access Alice-via-Bob or Alice- via-Bobby in preference to Alice-via-ULA, since Alicia and Alice have addresses from the same prefix, and RFC 3484 would tell Alicia to select that prefix.
_______________________________________________
nat66 mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/nat66

Reply via email to