The OpenNET Project / Index page

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

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Маршрутизация нескольких сетей"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (Маршрутизация, NAT / Linux)
Изначальное сообщение [ Отслеживать ]

"Маршрутизация нескольких сетей"  +/
Сообщение от mrzorg (ok) on 28-Сен-11, 13:03 
всем привет

имеется сеть такого плана
- роутер с centos 6 c 3мя сетевыми интерфейсами eth0, eth4 и eth5
- eth0 смотрит в оптический конвертер за которым есть маршрутизатор (физически расположен в другом учреждении) с адресом 192.168.255.17,
  который дает доступ к серверу 192.168.222.15
- eth4 смотрит в нашу локалку, 192.168.1.0/24
- в локалке есть шлюз который рулит интернетом, его адрес 192.168.1.2
- eth5 смотрит в локалку другого здания, там сеть 172.16.0.0 с маской 255.255.0.0

более понятно как это выглядит - http://img13.imageshack.us/img13/4295/networkp.gif

надо настроить, чтобы из нашей локалки могли ходить в 2 другие и интернет.

шлюзом по умолчанию на рабочих станциях стоит 192.168.1.4

прописал на роутере шлюзом по умолчанию 192.168.1.2 и

echo "1" > /proc/sys/net/ipv4/ip_forward
route add -net 172.16.0.0 netmask 255.255.0.0 dev eth5
route add -net 192.168.1.0 netmask 255.255.255.0 dev eth4

в инет рабочие станции ходить стали, а так же в 172 сеть.

но вот не могу разобраться что прописать для хождения нашей локалки через eth0 в сеть за конвертером.
подскажите если не сложно

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Маршрутизация нескольких сетей"  +/
Сообщение от _sirius_ (ok) on 28-Сен-11, 13:37 
На роутере с интерфейсами eth0, eth4, eth5 прописываете route add -net 192.168.222.0 netmask 255.255.255.0 gw 192.168.255.17

на роутере 192.168.255.17 прописать роуты на сети 192.168.1.0/24 и на 172.16.0.0/16 на 192.168.255.18, или дефаулт на 192.168.255.18, (если нужно ходить и в интернет то еще на роутере 192.168.1.2 прописать роут на сеть 192.168.222.0/24 на gw 192.168.1.4), в сети 192.168.222.0/24 роут на сети 192.168.1.0/24 и на 172.16.0.0/16, или если роутер в сети один, то дефолт на интерфейс роутера 192.168.255.17, который в подсети 192.168.222.0/24(вы его не указали на схеме).

Если у вас другая маска для 192.168.222.0 соответственно поменяете и еще тут указал схему, что все видят друг-друга, может вам будет не очень понятно по объяснениям, но если б на схеме было указано имена роутеров и каким интерфейсом 192.168.255.18 смотрит в сеть 192.168.222.0/24 было бы понятней.


Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Маршрутизация нескольких сетей"  +/
Сообщение от Виталий email(??) on 30-Сен-11, 01:16 
> route add -net 192.168.1.0 netmask 255.255.255.0 dev eth4
> route add -net 172.16.0.0 netmask 255.255.0.0 dev eth5

прописывать не нужно, поскольку если роутер подключен непосредственно к этим сетям,
то эти маршруты должны были установиться сами при поднятии соответствующих интерфейсов, если это не так, значит что-то неправильно настроено.

> есть маршрутизатор который ДАЁТ ДОСТУП к серверу 192.168.222.15

Отсюда следует что он уже настроен и никакие больше маршруты прописывать на нём не надо.
Если это не так, то на нём надо настроить NAT между сетью 192.168.255.0/24 и сервером 192.168.222.15:
iptables -t nat -s 192.168.255.0/24 -d 192.168.222.15 -j SNAT --to-source 192.168.222.17

Все настройки проводить нужно на вашем роутере:

1. Добавить маршрут до сервера 192.168.222.15
ip r add 192.168.222.15 via 192.168.255.17 dev eth0

2. Настроить трансляцию сетевых адресов
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -d 192.168.222.15 -j SNAT --to-source 192.168.225.18

После этого пакеты из подсети 192.168.1.0/24 должны начать проходить на сервер 192.168.222.15.

> в инет рабочие станции ходить стали, а так же в 172 сеть

это говорит о том, что какие-то настройки уже присутствуют на роутере - в частности настроен NAT для сети 172.16 и прописан default gateway:
iptables -t nat -A POSRTROUTING -s 192.168.1.0/24 -d 172.16.0.0/16 -j SNAT --to-source 172.16.31.50
ip r add default via 192.168.1.2 dev eth4

Не мешало бы в вашем сообщении представить вывод команд

ip a
ip r
iptables -t nat -L -n -v

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

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

3. "Маршрутизация нескольких сетей"  +/
Сообщение от mrzorg (ok) on 30-Сен-11, 11:41 
>> есть маршрутизатор который ДАЁТ ДОСТУП к серверу 192.168.222.15
> Отсюда следует что он уже настроен и никакие больше маршруты прописывать на
> нём не надо.
> Если это не так, то на нём надо настроить NAT между сетью
> 192.168.255.0/24 и сервером 192.168.222.15:
> iptables -t nat -s 192.168.255.0/24 -d 192.168.222.15 -j SNAT --to-source 192.168.222.17

тут такой момент, сейчас стоит старый маршрутизатор из второго пенька,
который разруливает траффик из нашей локалки до сервера 192.168.222.15
Я решил от него избавится и перенести все на новый, понадежнее.
Раньше наша локальная сеть была с адресацией 192.100.116.0/24, потом ее
поменяли на 192.168.168.0/24 в связи с разделением конторы на две части.

ifconfig там выглядит так
eth0      Link encap:Ethernet  HWaddr 00:04:75:C6:F8:82
          inet addr:192.100.116.26  Bcast:192.100.116.255  Mask:255.255.255.0
          inet6 addr: fe80::204:75ff:fec6:f882/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:656517 errors:0 dropped:0 overruns:1 frame:0
          TX packets:131300 errors:0 dropped:0 overruns:0 carrier:1
          collisions:0 txqueuelen:1000
          RX bytes:45609016 (43.4 MiB)  TX bytes:19954106 (19.0 MiB)
          Interrupt:10 Base address:0xc000

eth0:0    Link encap:Ethernet  HWaddr 00:04:75:C6:F8:82
          inet addr:192.168.168.26  Bcast:192.168.168.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Interrupt:10 Base address:0xc000

eth3      Link encap:Ethernet  HWaddr 00:50:04:09:C7:DF
          inet addr:192.168.255.18  Bcast:192.168.255.19  Mask:255.255.255.252
          inet6 addr: fe80::250:4ff:fe09:c7df/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:60914 errors:0 dropped:0 overruns:0 frame:0
          TX packets:61036 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:12812968 (12.2 MiB)  TX bytes:5788762 (5.5 MiB)
          Interrupt:9 Base address:0x8000

т.е. eth0 смотрит к нам двумя айпишниками, новым и старым, а eth3 смотрит в оптический конвертер другого учреждения.
Так вот, маршрутизатор за eth3 мне недоступен, т.к. это здание километров за 8, что там установлено я даже не знаю.
Выходит что, скорее всего, там настроен маршрут через старую нашу адресацию? Получится ли настроить без вмешательства
на "их" маршрутизатор ?

> Не мешало бы в вашем сообщении представить вывод команд
> ip a

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 100
    link/ether 00:18:fe:2e:17:19 brd ff:ff:ff:ff:ff:ff
    inet 192.168.255.18/30 brd 192.168.255.19 scope global eth0
    inet6 fe80::218:feff:fe2e:1719/64 scope link
       valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000
    link/ether 00:18:fe:2e:17:18 brd ff:ff:ff:ff:ff:ff
4: eth2: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000
    link/ether 00:18:fe:2e:17:1b brd ff:ff:ff:ff:ff:ff
5: eth3: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000
    link/ether 00:18:fe:2e:17:1a brd ff:ff:ff:ff:ff:ff
6: eth4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
    link/ether 00:1b:78:08:82:de brd ff:ff:ff:ff:ff:ff
    inet 192.168.168.4/24 brd 192.168.168.255 scope global eth4
    inet6 fe80::21b:78ff:fe08:82de/64 scope link
       valid_lft forever preferred_lft forever
7: eth5: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
    link/ether 00:1b:78:08:82:df brd ff:ff:ff:ff:ff:ff
    inet 172.16.31.50/19 brd 172.16.31.255 scope global eth5
    inet6 fe80::21b:78ff:fe08:82df/64 scope link
       valid_lft forever preferred_lft forever

> ip r

192.168.255.16/30 dev eth0  proto kernel  scope link  src 192.168.255.18  metric 1
192.168.168.0/24 dev eth4  proto kernel  scope link  src 192.168.168.4  metric 1
172.16.0.0/19 dev eth5  proto kernel  scope link  src 172.16.31.50  metric 1
default via 192.168.168.2 dev eth4  proto static

> iptables -t nat -L -n -v

Chain PREROUTING (policy ACCEPT 1181K packets, 99M bytes)
pkts bytes target     prot opt in     out     source               destination

Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target     prot opt in     out     source               destination
  858 55372 MASQUERADE  all  --  *      eth+    0.0.0.0/0            0.0.0.0/0

Chain OUTPUT (policy ACCEPT 625 packets, 40756 bytes)
pkts bytes target     prot opt in     out     source               destination

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "Маршрутизация нескольких сетей"  +/
Сообщение от Виталий email(??) on 01-Окт-11, 13:31 
> Получится ли настроить без вмешательства на "их" маршрутизатор ?

Получится.

А зачем вам в одной сети два маршрутизатора? Было бы проще, если бы вы все свои сети подключили к одному маршрутизатору, который шлюз в интернет (192.168.168.2) и разруливали бы весь трафик на нём. А освободившуюся железку использовали бы под другие цели. Если есть такая возможность, можно либо каждую сеть подключить к нему отдельным кабелем к отдельному интерфейсу, либо если такой возможности нет, разделить сети на VLAN-ы (если у вас управляемые коммутаторы) для безопасности или даже можно и без них, но это уже будет не безопасно.

В вашем случае необходимо провести следующие настройки:

1. Удалить masquerade. Его целесообразно использовать в том случае, если на внешнем интерфейсе используется динамический ip-адрес, так как это требовательная к ресурсам операция. При статической адресации лучше использовать SNAT.

iptables -t nat -F POSTROUTING

2. Маршрут к удалённому серверу 192.168.222.15
ip r add 192.168.222.15 via 192.168.255.17 dev eth0

Настройка доступа из сети 192.168.168.0/24 к удалённому серверу
iptables -t nat -A POSTROUTING -s 192.168.168.0/24 -d 192.168.222.15 -j SNAT --to-source 192.168.255.18

Если надо,чтоб сеть 172.16.0.0/19 тоже имела доступ к удалённому серверу
iptables -t nat -A POSTROUTING -s 172.16.0.0/19 -d 192.168.222.15 -j SNAT --to-source 192.168.255.18

3. Настройка доступа к сети 172.16.0.0/19 из сети 192.168.168.0/24
iptables -t nat -A POSTROUTING -s 192.168.168.0/24 -d 172.16.0.0/19 -j SNAT --to-source 172.16.31.50

Если надо, чтоб сеть 172.16.0.0/19 имела доступ к сети 192.168.168.0/24
iptables -t nat -A POSTROUTING -s 172.16.0.0/191 -d 192.168.168.0/24 -j SNAT --to-source 192.168.168.4

4. Все остальные пакеты (из сети 192.168.168.0/24), которые не попадают под вышеописанные правила отправляем на default gateway 192.168.168.2
iptables -t nat -A POSTROUTING -s 192.168.168.0/24 -j SNAT --to-source 192.168.168.4

Если сеть 172.16.0.0/19 надо тоже выпускать в интернет, то прописываем аналогичное правило для неё
iptables -t nat -A POSTROUTING -s 172.16.0.0/19 -j SNAT --to-source 192.168.168.4


Конечно всё гораздо проще )

> в инет рабочие станции ходить стали, а так же в 172 сеть.
> Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
> pkts bytes target     prot opt in     out     source               destination
>  858 55372 MASQUERADE  all  --  *      eth+    0.0.0.0/0            0.0.0.0/0

Это правило заменяет все вышеописанные правила для iptables, только так гораздо проще разграничить доступ между сетями, указав явно - кому куда можно ходить, а кому нельзя. Хотя, в принципе, используя masquerade, это можно было бы сделать и в цепочке FORWARD таблицы FILTER. Просто я привык делать так.

> но вот не могу разобраться что прописать для хождения нашей локалки через eth0 в сеть за конвертером

маршрут к серверу надо было прописать
ip r add 192.168.222.15 via 192.168.255.17 dev eth0
ваш маршрутизатор просто не знает где находится эта сеть в которой стоит сервер, по этому отправляет все пакеты, предназначенные для него, на default gateway, а тот в свою очередь шлёт их в интернет.

Ну и напоследок я бы всё-таки настроил таблицу FILTER, чтоб окончательно прибить все ненужные пакеты между сетями.

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




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

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