1*af5dd318SPeter WemmConfiguring NAT on your network.
2*af5dd318SPeter Wemm================================
3*af5dd318SPeter Wemm
4*af5dd318SPeter WemmTo start setting up NAT, we need to define which is your "internal" interface
5*af5dd318SPeter Wemmand which is your "external" interface.  The "internal" interface is the
6*af5dd318SPeter Wemmnetwork adapter connected to the network with private IP addresses which
7*af5dd318SPeter Wemmyou need to change for communicating on the Internet.  The "external"
8*af5dd318SPeter Wemminterface is configured with a valid internet address.
9*af5dd318SPeter Wemm
10*af5dd318SPeter WemmFor example, your internal interface might have an IP# of 10.1.1.1 and be
11*af5dd318SPeter Wemmconnected to your ethernet, whilst your external interface might be a PPP
12*af5dd318SPeter Wemmconnection with an IP number of 204.51.62.176.
13*af5dd318SPeter Wemm
14*af5dd318SPeter WemmThus your network might look like this:
15*af5dd318SPeter Wemm
16*af5dd318SPeter Wemm<Internal Network>
17*af5dd318SPeter Wemm [pc]      [pc]
18*af5dd318SPeter Wemm  |         |
19*af5dd318SPeter Wemm+-+---------+------+
20*af5dd318SPeter Wemm                   |
21*af5dd318SPeter Wemm               [firewall]
22*af5dd318SPeter Wemm                   |
23*af5dd318SPeter Wemm                   |
24*af5dd318SPeter Wemm               Internet
25*af5dd318SPeter Wemm<External Network>
26*af5dd318SPeter Wemm
27*af5dd318SPeter Wemm
28*af5dd318SPeter WemmWriting the map-rule.
29*af5dd318SPeter Wemm---------------------
30*af5dd318SPeter WemmWhen you're connected to the Internet, you will either have a block of IP
31*af5dd318SPeter Wemmaddresses assigned to you, maybe several different blocks, or you use a
32*af5dd318SPeter Wemmsingle IP address, i.e. with dialup PPP.  If you have a block of addresses
33*af5dd318SPeter Wemmassigned, these can be used to create either a 1:1 mapping (if you have
34*af5dd318SPeter Wemmonly a few internal IP addresses) or N:1 mappings, where groups of internal
35*af5dd318SPeter Wemmaddresses map to a single IP address and unless you have enough Internet
36*af5dd318SPeter Wemmaddresses for a 1:1 mapping, you will want to do "portmapping" for TCP and
37*af5dd318SPeter WemmUDP port numbers.
38*af5dd318SPeter Wemm
39*af5dd318SPeter WemmFor an N:1 situation, you might have:
40*af5dd318SPeter Wemm
41*af5dd318SPeter Wemmmap ppp0 10.1.0.0/16 -> 209.23.1.5/32 portmap tcp/udp 10000:40000
42*af5dd318SPeter Wemmmap ppp0 10.1.0.0/16 -> 209.23.1.5/32 portmap
43*af5dd318SPeter Wemm
44*af5dd318SPeter Wemmwhere if you had 16 addresses available, you could do:
45*af5dd318SPeter Wemm
46*af5dd318SPeter Wemmmap ppp0 10.1.0.0/16 -> 209.23.1.0/28 portmap tcp/udp 10000:40000
47*af5dd318SPeter Wemmmap ppp0 10.1.0.0/16 -> 209.23.1.0/28 portmap
48*af5dd318SPeter Wemm
49*af5dd318SPeter WemmOr if you wanted to allocate subnets to each IP#, you might do:
50*af5dd318SPeter Wemm
51*af5dd318SPeter Wemmmap ppp0 10.1.1.0/24 -> 209.23.1.2/32 portmap tcp/udp 10000:40000
52*af5dd318SPeter Wemmmap ppp0 10.1.2.0/24 -> 209.23.1.3/32 portmap tcp/udp 10000:40000
53*af5dd318SPeter Wemmmap ppp0 10.1.3.0/24 -> 209.23.1.4/32 portmap tcp/udp 10000:40000
54*af5dd318SPeter Wemmmap ppp0 10.1.1.0/24 -> 209.23.1.2/32 portmap
55*af5dd318SPeter Wemmmap ppp0 10.1.2.0/24 -> 209.23.1.3/32 portmap
56*af5dd318SPeter Wemmmap ppp0 10.1.3.0/24 -> 209.23.1.4/32 portmap
57*af5dd318SPeter Wemm
58*af5dd318SPeter Wemm*** NOTE: NAT rules are used on a first-match basis only!
59*af5dd318SPeter Wemm
60*af5dd318SPeter Wemm
61*af5dd318SPeter WemmFiltering with NAT.
62*af5dd318SPeter Wemm-------------------
63*af5dd318SPeter WemmIP Filter will always translate addresses in a packet _BEFORE_ it checks its
64*af5dd318SPeter Wemmaccess list for inbound packets and translates addresses _AFTER_ it has
65*af5dd318SPeter Wemmchecked the access control lists for outbound packets.
66*af5dd318SPeter Wemm
67*af5dd318SPeter WemmFor example (using the above NAT rules), if you wanted to prevent all hosts
68*af5dd318SPeter Wemmin the 10.1.2.0/24 subnet from using NAT, you might use the following rule
69*af5dd318SPeter Wemmwith ipf:
70*af5dd318SPeter Wemm
71*af5dd318SPeter Wemmblock out on ppp0 from 10.1.2.0/24 to any
72*af5dd318SPeter Wemmblock in on ppp0 from any to 10.1.2.0/24
73*af5dd318SPeter Wemm
74*af5dd318SPeter Wemmand use these with ipnat:
75*af5dd318SPeter Wemm
76*af5dd318SPeter Wemmmap ppp0 10.1.0.0/16 -> 209.23.1.0/28 portmap tcp/udp 10000:40000
77*af5dd318SPeter Wemmmap ppp0 10.1.0.0/16 -> 209.23.1.0/28 portmap
78