LinuxForum.Fans
Тема

Проблема маршрутизации.

Автор: Dartus 17 сообщений 7685 просмотров
#308230

Добрый день.

Есть проблема. Имеются 3 сетевые карты. Ядро перебрал, под IPFW и роутер. Работают только две сетевые карты, и выход в инет и лакалка и IPFW а вот третья не хочет. Помогите разобраться куда что воткнуть что бы заработала третья. :) Просто вот. уже давно сижу (3 недели) но не могу найти ответа. Задача есть на мну давит начальство а результата пока не видно. :'(

VR0 -Мир
VR1 - Локалка (работает)
VR2 - Локалка (ни как не хочет)

Показать

00005 56 5995 allow ip from any to any via vr1
00006 56 5995 allow ip from any to any via vr2
00010 0 0 allow ip from any to any via lo0
00014 5 2007 divert 8668 ip from any to any in via vr0
00015 0 0 check-state
00020 0 0 skipto 800 tcp from any to ***.***.***.*** dst-port 53 out via vr0 setup keep-state
00020 0 0 skipto 800 tcp from any to ***.***.***.*** dst-port 53 out via vr0 setup keep-state
00040 0 0 skipto 800 tcp from any to any dst-port 80 out via vr0 setup keep-state
00050 0 0 skipto 800 tcp from any to any dst-port 443 out via vr0 setup keep-state
00060 0 0 skipto 800 tcp from any to any dst-port 25 out via vr0 setup keep-state
00061 0 0 skipto 800 tcp from any to any dst-port 110 out via vr0 setup keep-state
00070 0 0 skipto 800 tcp from me to any out via vr0 setup uid root keep-state
00080 0 0 skipto 800 icmp from any to any out via vr0 keep-state
00090 0 0 skipto 800 tcp from any to any dst-port 37 out via vr0 setup keep-state
00110 0 0 skipto 800 tcp from any to any dst-port 22 out via vr0 setup keep-state
00120 0 0 skipto 800 tcp from any to any dst-port 43 out via vr0 setup keep-state
00130 0 0 skipto 800 udp from any to any dst-port 123 out via vr0 keep-state
00300 0 0 deny ip from 192.168.0.0/16 to any in via vr0
00301 0 0 deny ip from 172.16.0.0/12 to any in via vr0
00302 0 0 deny ip from 10.0.0.0/8 to any in via vr0
00303 0 0 deny ip from 127.0.0.0/8 to any in via vr0
00304 0 0 deny ip from 0.0.0.0/8 to any in via vr0
00305 0 0 deny ip from 169.254.0.0/16 to any in via vr0
00306 0 0 deny ip from 192.0.2.0/24 to any in via vr0
00307 0 0 deny ip from 204.152.64.0/23 to any in via vr0
00308 0 0 deny ip from 224.0.0.0/3 to any in via vr0
00315 0 0 deny tcp from any to any dst-port 113 in via vr0
00320 0 0 allow tcp from any to any dst-port 137 in via vr0
00321 0 0 allow tcp from any to any dst-port 138 in via vr0
00322 0 0 allow tcp from any to any dst-port 139 in via vr0
00323 0 0 allow tcp from any to any dst-port 81 in via vr0
00330 0 0 deny ip from any to any frag in via vr0
00332 3 1919 deny tcp from any to any established in via vr0
00380 0 0 allow tcp from any to me dst-port 22 in via vr0 setup limit src-addr 2
00390 0 0 allow tcp from any to me dst-port 23 in via vr0 setup limit src-addr 2
00400 2 88 deny log logamount 100 ip from any to any in via vr0
00450 0 0 deny log logamount 100 ip from any to any out via vr0
00800 0 0 divert 8668 ip from any to any out via vr0
00801 0 0 allow ip from any to any
00999 0 0 deny log logamount 100 ip from any to any



****************************************rc.config
hostname="BSD"
ifconfig_vr0="inet ***.***.***.*** netmask 255.255.255.240"
ifconfig_vr1="inet 192.168.0.44 netmask 255.255.255.0"
ifconfig_vr2="inet 172.16.0.1 netmask 255.255.255.0"
gateway_enable="YES"
firewall_enable="YES"
firewall_script="/etc/ipfw.rules"
natd_interface="vr0"
natd_program="/sbin/natd"
natd_flags="-dynamic -m"
natd_enable="YES"
defaultrouter="***.***.***.***"
sshd_enable="YES"
moused_enable="YES"
dbus_enable="YES"
hald_enable="YES"
gdm_enable="YES"
gdm_lang="ru_RU.UTF-8"
# Set dumpdev to "AUTO" to enable crash dumps, "NO" to disable
dumpdev="AUTO"

***************************************ipfw.rules

ipfw="/sbin/ipfw"
ipfw -q -f flush

# Задание стандартных переменных
cmd="ipfw -q add"
skip="skipto 800"
pif="vr0" # название внешнего интерфейса,
# принадлежащего глобальной сети


$cmd 005 allow all from any to any via vr1
$cmd 005 allow all from any to any via vr2

$cmd 010 allow all from any to any via lo0

$cmd 014 divert natd ip from any to any in via $pif

$cmd 015 check-state

$cmd 020 $skip tcp from any to ***.***.***.*** 53 out via $pif setup keep-state
$cmd 020 $skip tcp from any to ***.***.***.*** 53 out via $pif setup keep-state

$cmd 040 $skip tcp from any to any 80 out via $pif setup keep-state

$cmd 050 $skip tcp from any to any 443 out via $pif setup keep-state

$cmd 060 $skip tcp from any to any 25 out via $pif setup keep-state
$cmd 061 $skip tcp from any to any 110 out via $pif setup keep-state

$cmd 070 $skip tcp from me to any out via $pif setup keep-state uid root

$cmd 080 $skip icmp from any to any out via $pif keep-state

$cmd 090 $skip tcp from any to any 37 out via $pif setup keep-state

$cmd 110 $skip tcp from any to any 22 out via $pif setup keep-state

$cmd 120 $skip tcp from any to any 43 out via $pif setup keep-state

$cmd 130 $skip udp from any to any 123 out via $pif keep-state

$cmd 300 deny all from 192.168.0.0/16 to any in via $pif
$cmd 301 deny all from 172.16.0.0/12 to any in via $pif
$cmd 302 deny all from 10.0.0.0/8 to any in via $pif
$cmd 303 deny all from 127.0.0.0/8 to any in via $pif
$cmd 304 deny all from 0.0.0.0/8 to any in via $pif
$cmd 305 deny all from 169.254.0.0/16 to any in via $pif
$cmd 306 deny all from 192.0.2.0/24 to any in via $pif
$cmd 307 deny all from 204.152.64.0/23 to any in via $pif
$cmd 308 deny all from 224.0.0.0/3 to any in via $pif

$cmd 315 deny tcp from any to any 113 in via $pif

$cmd 320 allow tcp from any to any 137 in via $pif
$cmd 321 allow tcp from any to any 138 in via $pif
$cmd 322 allow tcp from any to any 139 in via $pif

$cmd 330 deny all from any to any frag in via $pif

$cmd 332 deny tcp from any to any established in via $pif

$cmd 380 allow tcp from any to me 22 in via $pif setup limit src-addr 2

$cmd 390 allow tcp from any to me 23 in via $pif setup limit src-addr 2

$cmd 400 deny log all from any to any in via $pif

$cmd 450 deny log all from any to any out via $pif

$cmd 800 divert natd ip from any to any out via $pif
$cmd 801 allow ip from any to any

$cmd 999 deny log all from any to any

***********************************ifconfig -a

root@BSD:/root # ifconfig -a
vr0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=82808<VLAN_MTU,WOL_UCAST,WOL_MAGIC,LINKSTATE>
ether 34:08:04:2a:1a:08
inet ***.***.***.*** netmask 0xfffffff0 broadcast ***.***.***.***
media: Ethernet autoselect (100baseTX <full-duplex>)
status: active
vr1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=82808<VLAN_MTU,WOL_UCAST,WOL_MAGIC,LINKSTATE>
ether 1c:af:f7:7d:5a:bc
inet 192.168.0.44 netmask 0xffffff00 broadcast 192.168.0.255
media: Ethernet autoselect (100baseTX <full-duplex>)
status: active
vr2: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=82808<VLAN_MTU,WOL_UCAST,WOL_MAGIC,LINKSTATE>
ether 1c:bd:b9:87:5a:c2
inet 172.16.0.1 netmask 0xffffff00 broadcast 172.16.0.255
media: Ethernet autoselect (100baseTX <full-duplex>)
status: active
ipfw0: flags=8801<UP,SIMPLEX,MULTICAST> metric 0 mtu 65536
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
options=600003<RXCSUM,TXCSUM,RXCSUM_IPV6,TXCSUM_IPV6>
inet 127.0.0.1 netmask 0xff000000
#308263

Так во первых как вы выяснили что 3 карточка не работает???

#308266

kisil,
Ну она конечно же работает но не так как мне надо... :)
Пинг есть по ресурсу, а вот инета нет, IPFW она не подчиняется..

#308271

Тоисть первая сеть ходит в интернет по НАТу. А вторая не хочет.
Обясните нормально топологию вашей сети и что означает

"Dartus⇓" написал:
Пинг есть по ресурсу, а вот инета нет, IPFW она не подчиняется..
#308273

Вот тут попробуй посмотреть, может поможет

#308278

kisil,

Есть одни провайдер и выделенным IP. Он подключен к VR0. Существуют 2 локальных сети. Первая VR1 это общая сеть с 50 компами, в этой же сети есть днс сервер. Третья сетевуха VR2 смотрит в бухгалтерию. С этим конфигом что я показал, VR1 работает замечательно, подчинена IPFW и все просто отлично. Третья VR2 она ведет себя странно. Пингуется и пингует другие машины в этой сти, но не дает выхода в локалку и не дает инета. Я уже и так и сяк и пробросы всякие пытался. Вот как бы так...

Ссылку я эту видел, пытался.. :(

#308283

А покажите но таблицу маршрутизации.

text
route
#308287

kisil,

Internet:
Destination Gateway Flags Refs Use Netif Expire
default magi13-me1-vl299.c UGS 0 0 vr0
***.***.***.***/28 link#1 U 0 0 vr0
***.***.***.*** link#1 UHS 0 0 lo0
localhost link#7 UH 0 0 lo0
172.16.0.0 link#3 U 0 0 vr2
172.16.0.1 link#3 UHS 0 0 lo0
192.168.0.0 link#2 U 0 0 vr1
192.168.0.44 link#2 UHS 0 0 lo0
root@BSD:/root #

#308294

Да что то я не силён вообще в ipfw, но поробуйте сделать для начала как так чтобы всё разрешыть и сделать НАТ, а потом будете пилить более тонкую настройку.

#308297

kisil,
Дак и так в принципе все разрешено и для всех, основные порты. Ведь Vr1 то работает по этим портам. Скажем для инета Vr2 всяко не сможет другой порт использовать кроме 80. А нат и так работает. :)

#308298

Может быть нужно использовать, скажем, свою таблицу NATD и IPFW для каждой из сетевух. Но это я даже не знаю как реализовать (

#308302

Ну а если так

Показать

$cmd 005 allow all from any to any via vr1
$cmd 006 allow all from any to any via vr2

$cmd 010 allow all from any to any via lo0

$cmd 014 divert natd ip from any to any in via $pif

$cmd 015 check-state

$cmd 800 divert natd ip from any to any out via $pif
$cmd 801 allow ip from any to any

Ну вот такой минимализ прокатит или нет???

#308316

Вот хорошая матчасть посмотрите

#308322

kisil,

Был, читал, но для меня это косвенно и то.. я не знаю как это совместить (
Короче чума....(

#308323

А тот минимальный конфиг что писал не канает.
Нужно ждать когото из знающих.

#308752

Вот что ещё нашёл.

#308815

kisil,

Это интересно...

Войдите или зарегистрируйтесь, чтобы ответить.