Настройка сети

Автор mihail_1, 09 сентября 2013, 21:26:44

« назад - далее »

0 Пользователи и 2 гостей просматривают эту тему.

mihail_1

Сейчас работает:
eth0 локальная сеть
eth1 провайдер 1
ppp0 подключение по l2tp провайдера 1
сервер и локальная сеть имеют доступ в интернет через ppp0
Добавлено:
eth2 провайдер 2
Надо:
оставить локальной сети доступ через ppp0, а серверу cделать через eth2

Возможно ли?
Если да, то как?


apollyon

возможно
http://www.opennet.ru/docs/RUS/LARTC/LARTC-net.html.gz#c322_html
плюс ко всему, для доступа извне к серверу ещё нужно маркировать входящие пакеты на шлюзе и раскидывать по соответствующим таблицам маршрутизации

mihail_1

http://www.opennet.ru Forbidden
Нет ли еще где-то этого же?
По поводу маркирования пакетов не понял, также не помешает инструкция (доступ к серверу из вне нужно оставить как и был через ppp0, через eth2 не нужен)

apollyon

странно, у меня открывается нормально
http://www.lartc.org/ - это оригинал на инглише.
по поводу маркировки пакетов - на внешних интрефейсах нужно ставить марки, далее роутить пакеты уже по этим маркам, а на обратном пути эти же марки восстанавливать, чтобы пакеты уходили туда, откуда пришли. без этого у меня бывало такое, что пакеты с eth0 уходили обратно через eth1

mihail_1

# ip rule add from 10.0.0.10 table John
Насколько я понял 10.0.0.10 это адрес другой машины для которой настраивается доступ в интернет.
А какой адрес использовать для самого сервера, чтобы его собсвенные запросы направлялись через eth2?

apollyon

#5
Цитата: mihail_1 от 11 сентября 2013, 18:09:12А какой адрес использовать для самого сервера, чтобы его собсвенные запросы направлялись через eth2?
соответственно адрес сервера и использовать, для него будет отдельная таблица маршрутизации

Сообщение объединено: 11 сентября 2013, 18:29:25

вот ещё вспомнил полезные ссылки, там есть всё про настройку роутинга на 2х каналах и про маркировку пакетов в iptables
http://habrahabr.ru/post/54748/
http://habrahabr.ru/post/108690/

mihail_1

#6
Цитата: apollyon от 11 сентября 2013, 18:26:04
соответственно адрес сервера и использовать
В которой сети? У него три сетевых карты + vpn одной из них или его это 127.0.0.1?

apollyon

начинаем с начала...
- у шлюза 3 интерфейса: 2 внешних и 1 локальный (луп не считаем)
- в локальной сети есть сервер со своим ip локалки
- на шлюзе нужно добавить правило, которое по ip сервера будет роутить его через eth2, все остальные пускать через ppp0.
всё, что нужно, я уже дал. и как мне кажется, будет даже проще вынести шлюз в другую сеть (а-ля DMZ сделать). для LAN шлюзом по дефолту будет ppp0, для DMZ - eth2 соответственно.

mihail_1

Я понимаю, что для Вас это проще чем 2*2, но я такое никогда не делал и пока только больше запутываюсь.
Шлюз это часть сервера или самостоятельное устройство? У меня отдельного устройства нет, все должен делать сервер.
Локалка есть (на сервере eth0) и должна по прежнему получать доступ в интернет через ppp0 (через eth1).
На запросы из интернета сервер должен отвечать по ppp0 (там постоянный внешний IP).
Одна из программ (или все) должна открывать исходящие соединения через eth2.
IP на всех трех сетевых картах и ppp0 принадлежат серверу. Как узнать который из них IP сервера?

apollyon

ещё и меня путаете. я уже выдал всю пищу для ума, теперь только собрать это в кучу надо

mihail_1

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

Мне пока достаточно, чтобы через eth2 работало одно приложение. Возможно ли это сделать изнутри него не трогая настройки сервера? Проще ли это?

apollyon

либо в настройках сервиса выставить интерфейс, на котором он будет слушать, либо в iptables закрыть INPUT для одного из интерфейсов. ну и если на ip повешен домен, то запросы явно будут приходить только на него.
я уже не помню, возможно даже маркировку пакетов делать не нужно будет. у меня проблемы возникали только при пробросе портов в локаль

mihail_1

Приложение не будет открывать слушающий сокет, наоборот оно должно открывать соединения по 80-му порту к чужим серверам в интернете
Но не через ppp0, а через eth2. А настроек у него нет, но в исходниках можно менять все что нужно.

apollyon

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

mihail_1

Если выход возможен только через один интерфейс, то как локалка выйдет через ppp0, а приложение через eth2? Сделать что бы оно соединялось с нужного IP удалось, но соединения не устанавливаются.