The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Внешний интерфейс, PPPoE, mpd, ipfw. Как это работает?, !*! zizmo, 15-Май-07, 13:38  [смотреть все]
Прошу прощения, что пишу сюда, но мой вопрос тесно связан с настройкой ipfw.

ОС - FreeBSD 5.4
Внешний интерфейс - fxp0.
Для соединения с провайдером поднят PPPoE (tun0).
Для объединения двух контор поднят VPN при помощи mpd (ng0).
fxp0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        inet 195.x.x.111 netmask 0xffffffff broadcast 195.x.x.x
tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1492
        inet 195.x.x.111 --> 195.x.x.20 netmask 0xffffffff
        Opened by PID 209
ng0: flags=8890<POINTOPOINT,NOARP,SIMPLEX,MULTICAST> mtu 1500

Вопрос состоит в следующем:
Как работает такая связка?
На каком интерфейсе надо поднимать NAT?
Если из локалки идет пакет на www.ru 80, то в какой последовательности он проходит tun0 и fxp0? И как идет ответ?
Как идет пакет, предназначеный для второй конторы через tun0 fxp0 и ng0?

Перекурил кучу документации, от шаманских плясок вокруг ipfw голова кругом идет.
Если от ответа достигну просветления, постараюсь более не беспокоить.

  • Внешний интерфейс, PPPoE, mpd, ipfw. Как это работает?, !*! DN, 14:42 , 15-Май-07 (1)
    >Прошу прощения, что пишу сюда, но мой вопрос тесно связан с настройкой
    >ipfw.
    >
    >ОС - FreeBSD 5.4
    >Внешний интерфейс - fxp0.
    >Для соединения с провайдером поднят PPPoE (tun0).
    >Для объединения двух контор поднят VPN при помощи mpd (ng0).
    >fxp0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
    >        inet 195.x.x.111 netmask 0xffffffff
    >broadcast 195.x.x.x
    >tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1492
    >        inet 195.x.x.111 --> 195.x.x.20 netmask 0xffffffff
    >        Opened by PID 209
    >
    >ng0: flags=8890<POINTOPOINT,NOARP,SIMPLEX,MULTICAST> mtu 1500
    >
    >Вопрос состоит в следующем:
    >Как работает такая связка?

    route default на tun0 195.x.x.20
    Пакеты для второй конторы инкапсулируются в PPP (ng0) , далее
    инкапсулируются в PPP (tun0), далее в Ethernet fxp0.

    >На каком интерфейсе надо поднимать NAT?
    Лучше на двух (tun0 и fxp0), то есть два natd  и два /etc/natd.conf .  

    >Если из локалки идет пакет на www.ru 80, то в какой последовательности
    >он проходит tun0 и fxp0? И как идет ответ?

    fxp1-->tun0(NAT1)-->fxp0(NAT2) . Обратно, в обратной последовательности.
    NAT2 пакет не обрабатывается, если в  /etc/natd2.conf
    unregistered_only       yes
    Или писать правильные сети и маски для divert NAT интерфейса fxp0 .

    Если пакет идет на 195.x.x.x ,  fxp1-->fxp0(NAT2).
    Обратно, в обратной последовательности.

    >Как идет пакет, предназначеный для второй конторы через tun0 fxp0 и ng0?

    fxp1-->ng0-->tun0(NAT1)-->fxp0(NAT2) . Обратно, в обратной последовательности.

    Про MTU не забудь.

    >Перекурил кучу документации, от шаманских плясок вокруг ipfw голова кругом идет.
    >Если от ответа достигну просветления, постараюсь более не беспокоить.

    Вот тут еще глянь.
    http://www.opennet.me/openforum/vsluhforumID10/3273.html

    На сайте примеров много на эту тему.


    • Внешний интерфейс, PPPoE, mpd, ipfw. Как это работает?, !*! zizmo, 15:06 , 15-Май-07 (2)
      Спасибо за ответ.

      >route default на tun0 195.x.x.20
      Это есть: default 195.x.x.20 UGS 0 315953 tun0

      >>На каком интерфейсе надо поднимать NAT?
      >Лучше на двух (tun0 и fxp0), то есть два natd  и
      >два /etc/natd.conf .
      Жестко... Попробую.

      >fxp1-->tun0(NAT1)-->fxp0(NAT2) . Обратно, в обратной последовательности.
      >NAT2 пакет не обрабатывается, если в  /etc/natd2.conf
      >unregistered_only       yes
      >Или писать правильные сети и маски для divert NAT интерфейса fxp0 .
      fxp1 - Имеется ввиду локальный интерфейс, если я правильно понял?

      >Про MTU не забудь.
      Про то, что с каждой инкапсуляцией размер пакета растет?

      >Вот тут еще глянь.
      >http://www.opennet.me/openforum/vsluhforumID10/3273.html
      >На сайте примеров много на эту тему.
      Обязательно.

      Еще раз благодарю за ответ. Если срастется - отпишу результат.

      • Внешний интерфейс, PPPoE, mpd, ipfw. Как это работает?, !*! DN, 15:22 , 15-Май-07 (3)

        >fxp1 - Имеется ввиду локальный интерфейс, если я правильно понял?

        Да. С приватными адресами.

        >>Про MTU не забудь.
        >Про то, что с каждой инкапсуляцией размер пакета растет?

        Да.

        >Еще раз благодарю за ответ. Если срастется - отпишу результат.

        А куда оно денется.

        • Внешний интерфейс, PPPoE, mpd, ipfw. Как это работает?, !*! zizmo, 17:09 , 15-Май-07 (4)
          >>Еще раз благодарю за ответ. Если срастется - отпишу результат.
          >А куда оно денется.

          Собственно я даже не знаю что сказать.
          Результат-то я получил.... Короче.

          ==natd.conf
          same_ports yes
          use_sockets yes
          unregistered_only yes

          ==rc.conf
          #NAT
          natd_enable="YES"
          natd_program="/sbin/natd"
          natd_interface="fxp0"
          natd_flags="-f /etc/natd.conf"
          #PPPoE
          ppp_enable="YES"
          ppp_mode="ddial"
          ppp_nat="YES"            # Вот тут я не уверен, надо-ли...
          ppp_profile="adsl"
          #VPN
          mpd_enable="YES"

          ==ifconfig
          fxp0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
                  options=8<VLAN_MTU>
                  inet 195.x.x.115 netmask 0xffffffff broadcast 195.x.x.115
                  ether 00:60:b0:1a:5e:8b
                  media: Ethernet autoselect (100baseTX <full-duplex>)
                  status: active
          rl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
                  options=8<VLAN_MTU>
                  inet 192.168.77.254 netmask 0xffffff00 broadcast 192.168.77.255
                  ether 00:10:dc:08:fb:3e
                  media: Ethernet autoselect (100baseTX <full-duplex>)
                  status: active
          lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
                  inet 127.0.0.1 netmask 0xff000000
          tun0: flags=8151<UP,POINTOPOINT,RUNNING,PROMISC,MULTICAST> mtu 1492
                  inet 195.x.x.115 --> 195.x.y.20 netmask 0xffffffff
                  Opened by PID 208
          ng0: flags=8890<POINTOPOINT,NOARP,SIMPLEX,MULTICAST> mtu 1500

          ==netstat -rn
          Destination        Gateway            Flags    Refs      Use  Netif Expire
          default            195.x.y.20         UGS         0   514557   tun0
          127.0.0.1          127.0.0.1          UH          0       28    lo0
          192.168.77         link#2             UC          0        0    rl0
          192.168.77.50      00:10:dc:d9:ad:92  UHLW        0     3749    rl0    234
          195.x.y.20         195.x.x.115        UH          1        2   tun0
          195.x.x.115        00:60:b0:1a:5e:8b  UHLW        0       35    lo0 =>
          195.x.x.115/32     link#1             UC          0        0   fxp0

          ==rc.ipfw
          #!/bin/sh -
          fwcmd="/sbin/ipfw -q"

          oif="tun0"
          oip="195.x.x.115"
          onet="195.x.x.115/32"
          omask="255.255.255.255"

          iif="rl0"
          iip="192.168.77.254"
          inet="192.168.77.0/24"
          imask="255.255.255.0"

          nat_1="tun0"

          ${fwcmd} -f flush
          ${fwcmd} zero

          ${fwcmd} add 100 pass all from any to any via lo0
          ${fwcmd} add 200 deny all from any to 127.0.0.0/8
          ${fwcmd} add 300 deny ip from 127.0.0.0/8 to any

          ${fwcmd} add deny all from ${inet}:${imask} to any in via ${oif}
          ${fwcmd} add deny all from ${onet}:${omask} to any in via ${iif}

          ${fwcmd} add deny all from any to 10.0.0.0/8 via ${oif}
          ${fwcmd} add deny all from any to 172.16.0.0/12 via ${oif}
          ${fwcmd} add deny all from any to 192.168.0.0/16 via ${oif}

          ${fwcmd} add deny all from any to 0.0.0.0/8 via ${oif}
          ${fwcmd} add deny all from any to 169.254.0.0/16 via ${oif}
          ${fwcmd} add deny all from any to 192.0.2.0/24 via ${oif}
          ${fwcmd} add deny all from any to 224.0.0.0/4 via ${oif}
          ${fwcmd} add deny all from any to 240.0.0.0/4 via ${oif}

          ${fwcmd} add divert natd all from any to any via ${nat_1}

          ${fwcmd} add deny all from 10.0.0.0/8 to any via ${oif}
          ${fwcmd} add deny all from 172.16.0.0/12 to any via ${oif}
          ${fwcmd} add deny all from 192.168.0.0/16 to any via ${oif}

          ${fwcmd} add deny all from 0.0.0.0/8 to any via ${oif}
          ${fwcmd} add deny all from 169.254.0.0/16 to any via ${oif}
          ${fwcmd} add deny all from 192.0.2.0/24 to any via ${oif}
          ${fwcmd} add deny all from 224.0.0.0/4 to any via ${oif}
          ${fwcmd} add deny all from 240.0.0.0/4 to any via ${oif}

          ${fwcmd} add pass tcp from any to any established

          ${fwcmd} add pass all from any to any frag

          ${fwcmd} add pass tcp from any to ${oip} 25 setup
          ${fwcmd} add pass tcp from any to ${oip} 110 setup

          $ipfw add pass all from any to any via ng0

          ${fwcmd} add deny log tcp from any to any in via ${oif} setup

          ${fwcmd} add pass tcp from any to any setup

          ${fwcmd} add pass udp from ${oip} to any 53 keep-state

          ${fwcmd} add pass udp from ${oip} to any 123 keep-state


          rc.ipfw собран на базе Симпл по Вашему совету из Вашей ссылки =)
          http://www.opennet.me/openforum/vsluhforumID10/3273.html
          "Все же почитайте man ipfw , посмотрите пример Simple в /etc/rc.firewall"

          После ребута основные сервисы заработали 25, 53, 110. ВПН пока не работает, но я этим займусь.

          До этого было все тоже за исключением ФВ, который достался в наследство.
          Если интересно, могу показать обо что я голову ломал.

          • Внешний интерфейс, PPPoE, mpd, ipfw. Как это работает?, !*! DN, 17:38 , 15-Май-07 (5)
            >>>Еще раз благодарю за ответ. Если срастется - отпишу результат.
            >>А куда оно денется.
            >
            >Собственно я даже не знаю что сказать.
            >Результат-то я получил.... Короче.
            >

            >==rc.conf
            >#NAT
            >natd_enable="YES"
            >natd_program="/sbin/natd"
            >natd_interface="fxp0"
            ^^^^^^^^^^^^^^^^^^^^^^
            natd_interface="tun0"

            См. ниже об fxp0.
            Всего один natd нужен в Вашем случае.
            Sorry.

            >natd_flags="-f /etc/natd.conf"

            >#PPPoE
            >ppp_enable="YES"
            >ppp_mode="ddial"
            >ppp_nat="YES"            
            ^^^^^^^^^^^^^^
            ppp_nat="NO"

            ># Вот тут я не уверен, надо-ли...
            >ppp_profile="adsl"
            >#VPN
            >mpd_enable="YES"
            >
            >==ifconfig
            >fxp0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
            >        options=8<VLAN_MTU>
            >        inet 195.x.x.115 netmask 0xffffffff
            >broadcast 195.x.x.115
            >        ether 00:60:b0:1a:5e:8b
            >        media: Ethernet autoselect (100baseTX <full-duplex>)
            >        status: active
            >rl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
            >        options=8<VLAN_MTU>
            >        inet 192.168.77.254 netmask 0xffffff00
            >broadcast 192.168.77.255
            >        ether 00:10:dc:08:fb:3e
            >        media: Ethernet autoselect (100baseTX <full-duplex>)
            >        status: active
            >lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
            >        inet 127.0.0.1 netmask 0xff000000
            >
            >tun0: flags=8151<UP,POINTOPOINT,RUNNING,PROMISC,MULTICAST> mtu 1492
            >        inet 195.x.x.115 --> 195.x.y.20 netmask 0xffffffff
            >        Opened by PID 208
            >
            >ng0: flags=8890<POINTOPOINT,NOARP,SIMPLEX,MULTICAST> mtu 1500
            >
            >==netstat -rn
            >Destination        Gateway    
            >        Flags  
            > Refs      Use  Netif Expire
            >
            >default            
            >195.x.y.20         UGS  
            >       0   514557
            >  tun0
            >127.0.0.1          127.0.0.1  
            >        UH  
            >       0    
            >   28    lo0
            >192.168.77         link#2  
            >          UC
            >         0  
            >      0    rl0
            >
            >192.168.77.50      00:10:dc:d9:ad:92  UHLW    
            >    0     3749  
            >  rl0    234
            >195.x.y.20         195.x.x.115  
            >     UH      
            >    1      
            > 2   tun0
            >195.x.x.115        00:60:b0:1a:5e:8b  UHLW        0       35    lo0 =>
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
            >195.x.x.115/32     link#1
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

            У Вас только один Ваш публичный IP на fxp0 (маска 255.255.255.255).
            NAT на fxp0 не понадобиться.

            >==rc.ipfw
            >#!/bin/sh -
            >fwcmd="/sbin/ipfw -q"
            >
            >oif="tun0"
            >oip="195.x.x.115"
            >onet="195.x.x.115/32"
            >omask="255.255.255.255"
            >
            >iif="rl0"
            >iip="192.168.77.254"
            >inet="192.168.77.0/24"
            >imask="255.255.255.0"
            >
            >nat_1="tun0"
            >
            >${fwcmd} -f flush
            >${fwcmd} zero
            >
            >${fwcmd} add 100 pass all from any to any via lo0
            >${fwcmd} add 200 deny all from any to 127.0.0.0/8
            >${fwcmd} add 300 deny ip from 127.0.0.0/8 to any
            >
            >${fwcmd} add deny all from ${inet}:${imask} to any in via ${oif}
            >${fwcmd} add deny all from ${onet}:${omask} to any in via ${iif}
            >
            >${fwcmd} add deny all from any to 10.0.0.0/8 via ${oif}
            >${fwcmd} add deny all from any to 172.16.0.0/12 via ${oif}
            >${fwcmd} add deny all from any to 192.168.0.0/16 via ${oif}
            >
            >${fwcmd} add deny all from any to 0.0.0.0/8 via ${oif}
            >${fwcmd} add deny all from any to 169.254.0.0/16 via ${oif}
            >${fwcmd} add deny all from any to 192.0.2.0/24 via ${oif}
            >${fwcmd} add deny all from any to 224.0.0.0/4 via ${oif}
            >${fwcmd} add deny all from any to 240.0.0.0/4 via ${oif}
            >
            >${fwcmd} add divert natd all from any to any via ${nat_1}
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

            Только один natd на tun0 .
            Natd на fxp0  не потребуется.

            >
            >${fwcmd} add deny all from 10.0.0.0/8 to any via ${oif}
            >${fwcmd} add deny all from 172.16.0.0/12 to any via ${oif}
            >${fwcmd} add deny all from 192.168.0.0/16 to any via ${oif}
            >
            >${fwcmd} add deny all from 0.0.0.0/8 to any via ${oif}
            >${fwcmd} add deny all from 169.254.0.0/16 to any via ${oif}
            >${fwcmd} add deny all from 192.0.2.0/24 to any via ${oif}
            >${fwcmd} add deny all from 224.0.0.0/4 to any via ${oif}
            >${fwcmd} add deny all from 240.0.0.0/4 to any via ${oif}
            >
            >${fwcmd} add pass tcp from any to any established
            >
            >${fwcmd} add pass all from any to any frag
            >
            >${fwcmd} add pass tcp from any to ${oip} 25 setup
            >${fwcmd} add pass tcp from any to ${oip} 110 setup
            >
            >$ipfw add pass all from any to any via ng0
            >
            >${fwcmd} add deny log tcp from any to any in via ${oif}
            >setup
            >
            >${fwcmd} add pass tcp from any to any setup
            >
            >${fwcmd} add pass udp from ${oip} to any 53 keep-state
            >
            >${fwcmd} add pass udp from ${oip} to any 123 keep-state


            >Если интересно, могу показать обо что я голову ломал.





Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру