Главная страница


ru.unix.bsd

 
 - RU.UNIX.BSD ------------------------------------------------------------------
 From : Alexander Burylov                    2:5054/75.1    18 Mar 2005  13:49:30
 To : All
 Subject : ipfw forward
 -------------------------------------------------------------------------------- 
 
 
 Hе совсем могу понять глубокий смысл форварда, вернее совсем не могу.
 
 Есть два ISP:
 ISP1: x.x.x.x/32 - реальный ip, шлюз isp1_gw, интерфейс ng0.
 ISP2: 192.168.200.23/32 - серый ip (за натом), шлюз 192.168.200.2, интерфейс
 ng1.
 Маршрут по умолчанию прописан на ISP1 (т.к нужны входящие снаружи, через нат
 ничего не выйдет)
 
 Есть локалка 192.168.1.0/24 которая соединяется с сервером по pptp и получает
 адреса из диапазона 192.268.255.0/24.
 
 Для хостов 192.168.255.4-20 необходимо весь внутригородской трафик пускать через
 ISP1, а внешний (интернет) трафик пускать через ISP2 (ибо дешевле).
 В то же время, для хостов 192.168.1.2-3 необходимо весь трафик пускать через
 ISP1 (ибо канал толще).
 
 netstat -nr
 
 Destination        Gateway            Flags    Refs      Use  Netif Expire
 default            isp1_gw            UGS         0       19    ng0
 127.0.0.1          127.0.0.1          UH          0     9399    lo0
 192.168.1          link#1             UC          0        0    rl0
 192.168.1.1        00:c0:26:a7:c6:49  UHLW        0       50    lo0
 192.168.200.2      192.168.200.23     UH          0        0    ng1
 192.168.200.23     lo0                UHS         0        0    lo0
 isp1_gw            x.x.x.x            UH          1        0    ng0
 
 Запускаю два ната на алиасах х.х.х.х порт 8778 и 192.168.200.23 порт 8668
 пишу правила типа:
 
 table(0) - список городских сетей
 
 # Весь городской трафик на нат (ISP1)
 ipfw add divert 8778 ip from 192.168.255.0/24\{4-20\} to table\(0\)
 # Этим нужен толстый канал, весь трафик на нат (ISP1)
 ipfw add divert 8778 ip from 192.168.255.0/24\{2-3\} to any
 # Внешний трафик на нат (ISP2)
 ipfw add divert 8668 ip from 192.168.255.0/24\{4-20\} to any
 # Форвардим после ната на ISP1
 ipfw add fwd isp1_gw ip from x.x.x.x to any
 # Форвардим после ната на ISP2
 ipfw add fwd 192.168.200.2 ip from 192.168.200.23 to any
 # Входящие с ISP1 в нат
 ipfw add divert 8778 ip from any to x.x.x.x
 # Входящие с ISP2 в нат
 ipfw add divert 8668 ip from any to 192.168.200.23
 
 В итоге форвард на ISP2 вообще не работает, вернее он форвардит не на тот
 интерфейс, т.к, форвард использует локальную таблицу маршрутизации:
 
 man ipfw:
 
 If ipaddr is not a local address, then the port number (if speci-
 fied) is ignored, and the packet will be forwarded to the remote
 address, using the route as found in the local routing table for
 that IP.
 
 Тогда спрашивается, зачем он вообще нужен? Почему он форвардит не на интерфейс, 
 а по таблице маршрутизации? Получается, что пакет с натовского адреса улетает на
 шлюз по умолчанию, а не на тот интерфейс, к которому этот адрес привязан.
 
 Каким образом можно реализовать данную схему, как сказать что все пакеты с
 такого-то адреса надо форвардить на конкретный шлюз через конкретный интерфейс, 
 не используя локальную таблицу маршрутизации (шлюз по умолчанию)?
 
 Или может быть я вообще ничего не понял в Policy Based Route... Тогда поправьте 
 и направьте меня на путь истинный.
 
    До свидания, Alexander.
 
 --- GoldED+/W32 1.1.5-30228
  * Origin: Homenet Gate (2:5054/75.1)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 ipfw forward   Alexander Burylov   18 Mar 2005 13:49:30 
 Re: ipfw forward   Mykola Dzham   18 Mar 2005 14:35:39 
 Re: ipfw forward   Alexander Burylov   18 Mar 2005 19:03:47 
 Re: ipfw forward   Gleb Smirnoff   18 Mar 2005 18:23:35 
 ipfw forward   Ilya Kulagin   18 Mar 2005 14:46:08 
Архивное /ru.unix.bsd/2775423a8aeb.html, оценка 3 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional