NAT with public interface with more than one address

John Klos <[email protected]>
Newsgroups gmane.os.netbsd.devel.network
Message-ID <[email protected]>
Hi,

It seems there are no more search engines which allow for searching for 
exact things. "npf" "nat" "multiple addresses" nets nothing, nor does +npf 
+nat +"multiple addresses". I feel like search engines are not very useful 
these days.

I'm so confused. Here's simple NAT with npf:

$ext_if = re0
$ext_ip = { inet4($ext_if) }
$localnet_lan = { 192.168.50.0/24 }
map $ext_if dynamic $localnet_lan -> $ext_if

Ok. But what happens when re0 has more than one address?

/etc/npf.conf:17:0: map segment cannot have multiple static addresses

How about:

$ext_ip = 47.150.85.30
or
$ext_ip = { 47.150.85.30 }

/etc/npf.conf:25:27: wrong variable 'ext_ip' type 'family-address-mask' for interface near '$ext_ip'

Nope. What about:

$ext_ip = 47.150.85.30/32
$ext_ip = { 47.150.85.30/32 }
/etc/npf.conf:15:0: translation address, given the specified algorithm, must be a pool or a single address

So what does inet4(interface) look like? The man page says, "Static list. 
IPv4 addresses." Not sure, but I see this in the examples:

map $ext_if dynamic $localnet_lan -> ifaddrs($ext_if)

Using ifaddrs(), either with the interface or with inet4(interface), gives 
me NAT with as many IPs as the interface has without the errors above, but 
I can't control which address NAT uses.

But I can't use $ext_ip when it is set to 47.150.85.30, even though I can 
just put 47.150.85.30 in place of $ext_ip.

I'm completely missing something here. Can someone please help?

Thanks,
John Klos
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.