|
|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Alexander V. Zinin 2:5020/400 24 Apr 2004 16:32:53 To : All Subject : route & natd --------------------------------------------------------------------------------
Hello, All!
Hа сервере три сетевых карты: vr0, rl0, rl1.
vr0 - статический адрес - 192.168.1.1/24.
rl0 - DHCP. Выдает: 217.10.43.32/20, default route: 217.10.43.1
rl1 - DHCP. Выдает: 10.0.0.42/19, default route: 10.0.0.1
natd порт 8668 - rl0
natd порт 8669 - rl1
Задача: пустить траффик на 10/8 и 217.10.32/20 в 10.0.0.1(rl1), а весь остальной
на default gateway:
217.10.43.1(rl0). Чтобы через nat траффик шёл так же.
Проблема в следующем: после перезагрузки случайным образом назначаются маршруты.
То есть, хоть в
/etc/rc.conf прописано всё статически, после перезагрузки может получится так,
что 10.0.0.1 на rl0,
а не rl1, как должно быть, если написать netstat -rn. Или шлюз по умолчанию -
10.0.0.1, вместо
217.10.43.1. Если случайным образом всё стало правильно - всё работает. Если
нет, то правлю в ручную
маршруты - на сервере всё работает, а вот с клинтов через nat - нет :(
1. Почему после изменения маршрутов на правильные через nat нету доступа в сеть
?
2. Почему устанавливаются неправильные маршруты ?
3. Как решить проблему ? :)
4. Есть ли другие пути ?
FreeBSD zinin.comex.ru 4.10-PRERELEASE FreeBSD 4.10-PRERELEASE #11: Sat Apr 24
12:30:05 MSD 2004
alexander@zinin.comex.ru:/usr/src/sys/compile/FIRST i386
P.S. Как так может получаться, если назначение маршрутов идёт *после* получения
адресов по DHCP в
/etc/rc.network ?
Далее привожу часть /etc/rc.conf и /etc/ipfw.sh.
rc.conf:
^^^^^^^^^^^^^
ifconfig_vr0="inet 192.168.1.1 netmask 255.255.255.0"
ifconfig_rl0="DHCP"
ifconfig_rl1="DHCP"
firewall_enable="YES"
firewall_script="/etc/ipfw.sh"
gateway_enable="YES"
defaultrouter="217.10.43.1"
static_routes="ctv1 ctv2"
route_ctv1="10.0.0.0/8 10.0.0.1"
route_ctv2="217.10.32.0/20 10.0.0.1"
ipfw.sh:
#!/bin/sh
natd -p 8668 -n rl0
natd -p 8669 -n rl1
arp -s 192.168.1.2 00:0c:6e:8e:e9:82
arp -s 192.168.1.3 00:0d:88:4e:6a:1d
arp -s 192.168.1.4 00:50:ba:c1:05:f7
# Flush all rules
ipfw -f flush
CTV="{ 10.0.0.0/8, 217.10.32.0/20, 172.16.0.0/16 }"
Internet="{ not 10.0.0.0/8, 217.10.32.0/20, 192.168.1.0/24, 192.168.100.0/24 }"
Clients="{ 192.168.1.2, 192.168.1.3, 192.168.1.4 }"
# allow all in lo0
ipfw add allow all from any to any via lo0
# local network
ipfw add allow all from 192.168.1.0/24 to 192.168.1.1
ipfw add allow all from 192.168.1.1 to 192.168.1.0/24
# divert to Internet
ipfw add divert 8668 all from any to ${Internet} via rl0
ipfw add divert 8668 all from ${Internet} to any via rl0
# divert to CTV
ipfw add divert 8669 all from any to ${CTV} via rl1
ipfw add divert 8669 all from ${CTV} to any via rl1
ipfw add allow all from ${Clients} to any
ipfw add allow all from any to ${Clients}
ipfw add allow all from me to any
ipfw add allow all from any to me
# default rule
ipfw add reset all from any to any
With best regards, Alexander V. Zinin. E-mail: zinin@comtv.ru
--- ifmail v.2.15dev5.3
* Origin: Comcor-TV (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/205425e81581.html, оценка из 5, голосов 10
|