User Tools

Site Tools


workbook:jno-332:332_nat

This is an old revision of the document!


332 NAT

Необходимые знания:

  • Identify the concepts, benefits and operation of NAT
    • NAT types
    • NAT/PAT processing
    • Address persistence
    • NAT proxy ARP
    • Configuration guidelines
  • Demonstrate knowledge of how to configure, monitor and troubleshoot NAT
    • NAT configuration steps
    • Monitoring and troubleshooting

NAT types

NAT (Network address translation) - это технология которая позволяет транслировать ip адреса из приватного пула (RFC1918 - 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) в глобально маршрутизируемые адреса и обратно. Строго говоря можно любые адреса транслировать - приватные в приватные, публичные в публичные, это не играет большой роли.

PAT (Port address (?) translation) - это технология которая позволяет менять номера портов. Как правило чистый PAT не используется, его обычно применяют в связке с NAT.

Виды NAT:

  • Static NAT - трансляция адрес в адрес, PAT не используется.
    Как правило используется когда надо прокинуть много портов из интернета в локалку или когда надо выпускать сервер из локалки всегда в один и тот же внешний ip адрес. Трансляция работает в обе стороны.
  • Source NAT - трансляция пула адресов в пул адрес (PAT не используется) или трансляция пула адресов в один адрес (PAT используется).
    Применяется когда надо выпустить локальные машины в интернет и при этом имеется ограниченное количество внешних адресов. После ната у пакета меняется адрес источника и еще может менять порт источника, трансляция работает только в одну сторону.
  • Destination NAT - трансляция одного внешнего адреса в один внутренний адрес. Применятся когда надо прокинуть только один порт к внутр. серверу, например tcp/80. После ната у пакета меняется адрес назначения и можно еще поменять порт назначения, трансляция работает только в одну сторону.

Пример настройки:

  • Static NAT
    {primary:node0}[edit security nat static]
    admin@srx650-master# show
    rule-set ST-NAT-FROM-UNT {
        from zone untrust;
        rule ST-NAT-FROM-UNT-R1-SNOM-VOIP {
            match {
                destination-address x.y.z.202/32;
            }
            then {
                static-nat {
                    prefix {
                        192.168.7.13/32;
                    }
                }
            }
        }
        rule ST-NAT-FROM-UNT-R2-VOIP {
            match {
                destination-address x.y.z.205/32;
            }
            then {
                static-nat {
                    prefix {
                        192.168.7.11/32;
                    }
                }
            }
        }
    }
    rule-set ST-NAT-FROM-MTS-VOIP {
        from interface reth0.282;
        rule ST-NAT-FROM-MTS-R1-SNOM-VOIP3 {
            match {
                destination-address 10.62.24.2/32;
            }
            then {
                static-nat {
                    prefix {
                        192.168.7.202/32;
                    }
                }
            }
        }
    }
    rule-set ST-NAT-FROM-RT-VOIP {
        from interface reth0.286;
        rule ST-NAT-FROM-RT-R1-SNOM-VOIP {
            match {
                destination-address 10.62.23.2/32;
            }
            then {
                static-nat {
                    prefix {
                        192.168.7.13/32;
                    }
                }
            }
        }
    }
    rule-set ST-NAT-FROM-TR {
        from zone trust;
        rule ST-NAT-FROM-TR-R1-FCIIT {
            match {
                source-address xx.yy.zz.12/32;
                destination-address 10.10.249.3/32;
            }
            then {
                static-nat {
                    prefix {
                        10.10.249.2/32;
                    }
                }
            }
        }
    }


    Если надо сделать статический или дестинейшин нат в адрес который не настроен на логическом интерфейсе srx, то надо включать proxy-arp.

    {primary:node0}[edit security nat]
    admin@srx650-master# top show interfaces reth0.264
    description VOIP-OUTSIDE;
    vlan-id 264;
    family inet {
        filter {
            output ACL_VOIP_IN;
        }
        address x.y.z.201/29;
    }
    ---
    {primary:node0}[edit security nat]
    admin@srx650-master# show proxy-arp
    interface reth0.264 {
        address {
            x.y.z.202/32;
            x.y.z.203/32;
            x.y.z.205/32;
        }
    }
  • Source NAT
    {primary:node0}[edit security nat source]
    admin@srx650-master# show
    pool SNAT-POOL-PX {
        address {
            x.y.z.227/32;
        }
    }
    ...
    rule-set PX-TO-UNTRUST {
        from zone px;
        to zone untrust;
        rule SRC-NAT-PX-TO-UNT-R1 {
            match {
                source-address xx.yy.zz.18/32;
                destination-address 0.0.0.0/0;
            }
            then {
                source-nat {
                    pool {
                        SNAT-POOL-PX;
                    }
                }
            }
        }
    }
    ----
    
    [edit security nat source]
    admin@nsk-01-srx2# show
    rule-set TRUST-TO-UNTRUST {
        from zone TRUST;
        to zone UNTRUST;
        rule SRC-NAT-TR-TO-UNT-R1 {
            match {
                source-address-name [ USER-NET SERV-NET ];
                destination-address 0.0.0.0/0;
            }
            then {
                source-nat {
                    interface;
                }
            }
        }
  • Destination NAT
    {primary:node0}[edit security nat destination]
    admin@srx650-master# show
    pool MGMT-SSH-ACCESS {
        address 192.168.7.9/32 port 22;
    }
    rule-set from-untrust {
        from zone untrust;
        rule svc-voip3-squid-access {
            match {
                source-address z.y.x.5/32;
                destination-address x.y.z.203/32;
                destination-port {
                    43276;
                }
            }
            then {
                destination-nat {
                    pool {
                        MGMT-SSH-ACCESS;
                    }
                }
            }
        }

NAT/PAT processing

При первичном прохождении пакета через Flow-module правила нат срабатывают до первого совпадения в следующем порядке:

  1. Static NAT
  2. Destination NAT
  3. Reverse Static NAT - обратное, относительно “from zone untrust”, правило статической трансляции.
  4. Source NAT

Схема:


Address persistence

Когда для SNAT используются пулы адресов нет гарантии, что конкретный внутренний адрес всегда будет выходить с одним и тем же адресов из пула. Т.е., например, к одному и тому же сайту (по tcp/80) можно будет выйти c двух разных ip адресов, это не оч. хорошо.
Что бы этого избежать используется команда “address-persistent”.

admin@nsk-01-srx2# show source
address-persistent;
rule-set TRUST-TO-UNTRUST {
...

Такой проблемы нет когда SNAT делается в адрес интерфейса.


NAT proxy ARP

Прокси arp настраивается для того, что бы сообщить маршрутизатору, что он должен отвечать на широковещательные arp запросы (сосдений маршрутизатор ) для ip адресов которые непосредственно на нем не настроены.

У нас есть интерфейс reth0.265 на котором настроен адрес 1.2.3.225.

{primary:node0}[edit security nat proxy-arp]
admin@srx650-master# top show interfaces reth0 unit 265
vlan-id 265;
family inet {
    address 1.2.3.225/29;
}

{primary:node0}[edit security nat proxy-arp]
admin@srx650-master# run show interfaces reth0.265
  Logical interface reth0.265 (Index 89) (SNMP ifIndex 669)
...
      Addresses, Flags: Is-Preferred Is-Primary
        Destination: 1.2.3.224/29, Local: 1.2.3.225, Broadcast: 1.2.3.231

Через этот интерфейс доступна сеть 1.2.3.224/29, srx будет отвечать на arp запросы для адреса 1.2.3.225 и не будет отвечать на запросы для адресов 1.2.3.[226..230] т.к. это не его адреса.
После того как настроили SNAT или DNAT на, например, адрес 1.2.3.226, srx-су надо сообщить что теперь надо отвечать на arp запросы для этого адреса.

{primary:node0}[edit security nat proxy-arp]
admin@srx650-master# show
interface reth0.265 {
    address {
        1.2.3.226/32;
        1.2.3.227/32;
        1.2.3.228/32;
    }
}

При этом в таблице маршрутизации появляется статический роут, остальные адреса все так же доступны через директ роут.

{primary:node0}[edit security nat proxy-arp]
admin@srx650-master# run show route 1.2.3.226

inet.0: 451 destinations, 502 routes (451 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both

1.2.3.226/32  *[Static/1] 7w0d 20:57:37
                      Receive

{primary:node0}[edit security nat proxy-arp]
admin@srx650-master# run show route 1.2.3.229

inet.0: 451 destinations, 502 routes (451 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both

1.2.3.224/29  *[Direct/0] 7w0d 20:58:21
                    > via reth0.265

Configuration guidelines


Полезные ссылки

workbook/jno-332/332_nat.1495551091.txt.gz · Last modified: (external edit)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki