Routing

Для новичков как вообще в Linux, так и в конкретной теме, к которой относится вопрос.

Модератор: Bizdelnick

user
Сообщения: 163
Статус: ~
ОС: Debian GNU/Linux

Routing

Сообщение user »

Подскажите, как настроить вот такую вещь:

Есть 2 интерфейса, допустим eth0 и eth1.
На обоих прямые внешние IP-адреса, интернет.

Как сделать, чтобы с машины все маршруты 0.0.0.0, кроме 1 подсети, например 10.0.0.0/24 - шли через eth0, а 10.0.0.0/24 через eth1?
Но при этом нужно, чтобы сервер был виден с инета по обоим IP-адресам обоих интерфейсов.

Как сделать, подскажите пожалуйста.
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Routing

Сообщение sash-kan »

user@gate

$ sudo ip r a 10.0.0.0/24 dev eth1 $ sudo ip r a default dev eth0
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
user
Сообщения: 163
Статус: ~
ОС: Debian GNU/Linux

Re: Routing

Сообщение user »

sash-kan писал(а): ↑
02.05.2007 16:06

user@gate

$ sudo ip r a 10.0.0.0/24 dev eth1 $ sudo ip r a default dev eth0

но тогда с инета не будет заходить на ип интерфейса eth1
Спасибо сказали:
user
Сообщения: 163
Статус: ~
ОС: Debian GNU/Linux

Re: Routing

Сообщение user »

^
Спасибо сказали:
Аватара пользователя
kasak
Сообщения: 899
ОС: OpenBSD

Re: Routing

Сообщение kasak »

с инета нельзя зайти на адреса начинающиеся с 10, 172, 127, 192 и др.

правка: упс.. перечитал топик. сори, гоню.

если на интерфейсе внешний IP он полюбому будет виден, локальной маршрутизации это не касается
Linux kasak-pc 6.17.8-arch1-1 #1 SMP PREEMPT_DYNAMIC Fri, 14 Nov 2025 06:54:20 +0000 x86_64 GNU/Linux
Спасибо сказали:
user
Сообщения: 163
Статус: ~
ОС: Debian GNU/Linux

Re: Routing

Сообщение user »

Так это понятно, что будет виден.

Есть машина с 2 подключениями eth0 и ppp0 к примеру.
Как прописать роутинг, чтобы с машины шли соединения исходящие через интерфейс ppp0.
А заходить на машину из инета можно было по адресам любого из интерфейсов...

Если прописать route add default dev ppp0, то от меня все будет идти через ppp0.
Но при этом по eth0 не будет пускать входящие из вне. Ответа в обратнуб сторону не будет.
Как прописать маршрут для eth0?
Спасибо сказали:
Аватара пользователя
kasak
Сообщения: 899
ОС: OpenBSD

Re: Routing

Сообщение kasak »

всё, понял тему...
но помочь даже не знаю чем :(
Linux kasak-pc 6.17.8-arch1-1 #1 SMP PREEMPT_DYNAMIC Fri, 14 Nov 2025 06:54:20 +0000 x86_64 GNU/Linux
Спасибо сказали:
user
Сообщения: 163
Статус: ~
ОС: Debian GNU/Linux

Re: Routing

Сообщение user »

:(
Спасибо сказали:
user
Сообщения: 163
Статус: ~
ОС: Debian GNU/Linux

Re: Routing

Сообщение user »

Не верится, что никто не знает..
Очень надо (
Спасибо сказали:
Аватара пользователя
kasak
Сообщения: 899
ОС: OpenBSD

Re: Routing

Сообщение kasak »

реально очень трудный ребус... я бы подумал что-нить насчёт IPTABLES.
но я в нём не силён..
возможно как-нибудь можно перенаправить...

может быть алиас можно ещё один присвоить к eth1 ??
Linux kasak-pc 6.17.8-arch1-1 #1 SMP PREEMPT_DYNAMIC Fri, 14 Nov 2025 06:54:20 +0000 x86_64 GNU/Linux
Спасибо сказали:
user
Сообщения: 163
Статус: ~
ОС: Debian GNU/Linux

Re: Routing

Сообщение user »

Говорят, надо глядеть в сторону Policy routing, iproute2..

Суть - посылать пакеты с того интерфейса, на который они пришли, а не по default route.

Гуглил, гуглил, но что, куда и почем там и не понял. Не нашел не 1 путного мануала по этому. (
Спасибо сказали:
IPhoenixI
Сообщения: 27
ОС: ASP Linux + FreeBSD

Re: Routing

Сообщение IPhoenixI »

user писал(а): ↑
13.06.2007 22:26
Говорят, надо глядеть в сторону Policy routing, iproute2..

Суть - посылать пакеты с того интерфейса, на который они пришли, а не по default route.

Гуглил, гуглил, но что, куда и почем там и не понял. Не нашел не 1 путного мануала по этому. (


FreeBSD? :rolleyes:
Спасибо сказали:
Аватара пользователя
Uncle_Theodore
Сообщения: 3339
ОС: Slackware 12.2, ArchLinux 64

Re: Routing

Сообщение Uncle_Theodore »

При чем тут FreeBSD, хотел бы я знать?
А хороший мануал по iproute2 вот тут
http://linux-ip.net/gl/ip-cref/
Спасибо сказали:
Аватара пользователя
kot.ua
Сообщения: 136
ОС: debian

Re: Routing

Сообщение kot.ua »

Помогите, пожалуйста, настроить маршрутизацию.
Не могу понять, что делаю не так...

Код: Выделить всё

Ситуация №1

Поставил маршрутизатор (debian) на работе:
-------------------------------------------------------------------------------------------
[клиенты - eth0 1.1.1.0/24] - [eth0 1.1.1.1 - маршрутизатор - ppp0 ] - [модем] - [интернет]
-------------------------------------------------------------------------------------------

1) включил пересылку пакетов между интерфейсами:
/etc/sysctl.conf
#
net.ipv4.ip_forward = 1
#

2) в iptables настроил NAT:
#
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A POSTROUTING -s 1.1.1.0/255.255.255.0 -o ppp0 -j MASQUERADE
#

Больше ничего с сетевыми настройками не делал.
Клиенты интернет получают, все работает, как часики :)

Код: Выделить всё

Ситуация №2

Пытаюсь поставить маршрутизатор дома:
-------------------------------------------------------------------------------------------------------------------------------
[дом.клиент eth0 1.1.1.2] - [eth1 1.1.1.1 - маршрутизатор - eth0 192.168.99.99] - [городская сеть на витой паре - ресурсы сети]
                                                       - ppp0 ***адрес***   ] - [vpn-server 192.168.99.1] - [интернет]
-------------------------------------------------------------------------------------------------------------------------------

1) включил пересылку пакетов между интерфейсами:
/etc/sysctl.conf
#
net.ipv4.ip_forward = 1
#

2) в iptables настроил NAT:
#
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A POSTROUTING -s 1.1.1.0/255.255.255.0 -o eth0 -j SNAT --to-source 192.168.99.99
-A POSTROUTING -s 1.1.1.0/255.255.255.0 -o ppp0 -j MASQUERADE
#

Если заходить с клиента, не видно ни городской сети, ни интернета.

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

Код: Выделить всё

Вывод route -n до поднятия pptp-соединения:

$ sudo route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
1.1.1.0         0.0.0.0         255.255.255.0   U     0      0        0 eth1
192.168.64.0    0.0.0.0         255.255.192.0   U     0      0        0 eth0


Вывод route -n после поднятия pptp-соединения:

$ sudo route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
195.16.xx.xx    0.0.0.0         255.255.255.255 UH    0      0        0 ppp0
1.1.1.0         0.0.0.0         255.255.255.0   U     0      0        0 eth1
192.168.64.0    0.0.0.0         255.255.192.0   U     0      0        0 eth0
0.0.0.0         0.0.0.0         0.0.0.0         U     0      0        0 ppp0



/etc/ppp/peers/vpn

pty "pptp 192.168.99.1 --nolaunchpppd"
name MyName
remotename PPTP
file /etc/ppp/options.pptp
ipparam vpn
defaultroute
usepeerdns
persist



/etc/network/interfaces

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
    address 192.168.99.99
    netmask 255.255.192.0

auto eth1
iface eth1 inet static
    address 1.1.1.1
    netmask 255.255.255.0
    network 1.1.1.0
    broadcast 1.1.1.255

auto tunnel
iface tunnel inet ppp
    provider vpn
Спасибо сказали:
Аватара пользователя
kot.ua
Сообщения: 136
ОС: debian

Re: Routing

Сообщение kot.ua »

Часть проблемы решена:
в файле /var/lib/iptables/active

заменил
:FORWARD DROP [0:0]

на
:FORWARD ACCEPT [0:0]

В результате клиент теперь получает интернет. Спасибо Hangman'у!

Остался доступ к гродской сети. Его нет.
Что можно сделать?

Код: Выделить всё

# Generated by iptables-save v1.3.6 on Wed Jun 20 15:47:38 2007
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A POSTROUTING -s 1.1.1.0/255.255.255.0 -o eth0 -j SNAT --to-source 192.168.99.99
-A POSTROUTING -s 1.1.1.0/255.255.255.0 -o ppp0 -j MASQUERADE
COMMIT
# Completed on Wed Jun 20 15:47:38 2007
# Generated by iptables-save v1.3.6 on Wed Jun 20 15:47:38 2007
*filter
:INPUT DROP [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT DROP [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p udp -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --sport 135 -j ACCEPT
-A INPUT -i eth0 -p udp -m udp --sport 135 -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --sport 137 -j ACCEPT
-A INPUT -i eth0 -p udp -m udp --sport 137 -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --sport 139 -j ACCEPT
-A INPUT -i eth0 -p udp -m udp --sport 139 -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --sport 445 -j ACCEPT
-A INPUT -i eth0 -p udp -m udp --sport 445 -j ACCEPT
-A INPUT -s 192.168.99.1 -d 192.168.99.99 -p tcp -m tcp --dport 1723 -m state --state NEW,ESTABLISHED -j ACCEPT
-A INPUT -s 192.168.99.1 -d 192.168.99.99 -p gre -j ACCEPT
-A INPUT -i eth1 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p udp -m udp --dport 123 -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
-A OUTPUT -p icmp -j ACCEPT
-A OUTPUT -p tcp -m tcp --sport 32768:65535 -j ACCEPT
-A OUTPUT -p udp -m udp --sport 32768:65535 -j ACCEPT
-A OUTPUT -o eth0 -p tcp -m tcp --dport 135 -j ACCEPT
-A OUTPUT -o eth0 -p udp -m udp --dport 135 -j ACCEPT
-A OUTPUT -o eth0 -p tcp -m tcp --dport 137 -j ACCEPT
-A OUTPUT -o eth0 -p udp -m udp --dport 137 -j ACCEPT
-A OUTPUT -o eth0 -p tcp -m tcp --dport 139 -j ACCEPT
-A OUTPUT -o eth0 -p udp -m udp --dport 139 -j ACCEPT
-A OUTPUT -o eth0 -p tcp -m tcp --dport 445 -j ACCEPT
-A OUTPUT -o eth0 -p udp -m udp --dport 445 -j ACCEPT
-A OUTPUT -s 192.168.99.99 -d 192.168.99.1 -p tcp -m tcp --dport 1723 -m state --state NEW,ESTABLISHED -j ACCEPT
-A OUTPUT -s 192.168.99.99 -d 192.168.99.1 -p gre -j ACCEPT
-A OUTPUT -o eth1 -p tcp -m tcp --sport 22 -j ACCEPT
-A OUTPUT -p udp -m udp --dport 123 -j ACCEPT
COMMIT
# Completed on Wed Jun 20 15:47:38 2007
Спасибо сказали:
user
Сообщения: 163
Статус: ~
ОС: Debian GNU/Linux

Re: Routing

Сообщение user »

Uncle_Theodore писал(а): ↑
19.06.2007 03:58
При чем тут FreeBSD, хотел бы я знать?
А хороший мануал по iproute2 вот тут
http://linux-ip.net/gl/ip-cref/

Кто понимает в этом, подскажите проще :\
Есть 2 интерфейса, есть 2 локалки на каждом, где диапазоны пересекаются.
Как сделать сервер доступным из обоих!

Конкретнее. 10.24.0.0/24 есть и там и там. Нужно чтобы сервер отзывался из обоих сетей с таких адресов, а от меня все по умолчанию уходило через eth1 допустим.

Не понимаю как сделать, сколько уже пролистал всего :\
Спасибо сказали:
user
Сообщения: 163
Статус: ~
ОС: Debian GNU/Linux

Re: Routing

Сообщение user »

Всё, вопрос решен.

Кому интересно:

Код: Выделить всё

echo 10 t1 >> /etc/iproute2/rt_tables
echo 11 t2 >> /etc/iproute2/rt_tables

ip rule add from ип_eth1 lookup t1
ip route add 0/0 via шлюз_eth1 table t1
ip rule add from ип_eth2 lookup t2
ip route add 0/0 via шлюз_eth2 table t2
Спасибо сказали: