The OpenNET Project / Index page

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

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Linux-routing на 2 IP через один интерфейс"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [Проследить за развитием треда]

"Linux-routing на 2 IP через один интерфейс"
Сообщение от adminus novo emailИскать по авторуВ закладки on 23-Окт-03, 16:58  (MSK)
Ситуация такая: есть Линукс-машина для доступа юзеров в инет через АДСЛ - все путем, две сетевые, для локалки и модема, iptables настроен - вообщем инет работает. Но провайдер еще дает такую услугу - "городская АДСЛ-сеть" через свою локалку. Т.е., комп смотрит в мир по двум адресам - внешнему ИП для инета, и адресу в сети прова. И по второму адресу трафик не идет - картина такая:

#ping 172.16.17.х1            <--   Адрес компа в локалке прова
PING 172.16.17.х1 (172.16.17.х1) from 172.16.17.х1 : 56(84) bytes of data.
ping: sendmsg: Operation not permitted

#ping 172.16.17.х2             <-- Адрес шлюза - АДСЛ-модема
PING 172.16.17.х2 (172.16.17.х2) from #внешний IP#: 56(84) bytes of data.
64 bytes from 172.16.17.х2: icmp_seq=1 ttl=254 time=0.873 ms

# ping 172.16.17.х3             <-- Адрес удаленного компа  
PING 172.16.17.х3 (172.16.17.х3) from #внешний IP#: 56(84) bytes of data.

--- 172.16.17.х3 ping statistics ---
3 packets transmitted, 0 received, 100% loss, time 2014ms

Т.е. сам себя комп не хочет пинговать, а другие адреса гонит через внешний (инетный) ИП. Собственно, простой вопрос - [b]как настроить рутинг, чтобы пакеты в сеть прова шли с нужного адреса?[/b]
IPRoute2 есть, пробовал через него - видимо чего-то не то делаю :lamer:

сетевые настройки такие:
[pre]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:C0:DF:03:23:F6
          inet addr:#внешний IP# Bcast:*.*.*.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:8557723 errors:0 dropped:0 overruns:0 frame:0
          TX packets:9061217 errors:0 dropped:0 overruns:8 carrier:0
          collisions:0 txqueuelen:100
          RX bytes:1740973708 (1660.3 Mb)  TX bytes:2430296299 (2317.7 Mb)
          Interrupt:10 Base address:0x9000

eth0:0    Link encap:Ethernet  HWaddr 00:C0:DF:03:23:F6
          inet addr:172.16.17.*  Bcast:172.16.255.255  Mask:255.255.255.252
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Interrupt:10 Base address:0x9000

eth1      Link encap:Ethernet  HWaddr 00:50:FC:06:4A:77
          inet addr:192.168.0.1  Bcast:192.168.0.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 eth1
#внешний IP#  0.0.0.0         255.255.255.0   U     0      0        0 eth0
127.0.0.0       0.0.0.0         255.0.0.0       U     0      0        0 lo
0.0.0.0         #шлюз прова#   0.0.0.0         UG    0      0        0 eth0

# ip route show
192.168.0.0/24 dev eth1  scope link
#внешний IP#/24 dev eth0  scope link
127.0.0.0/8 dev lo  scope link
default via #шлюз прова# dev eth0

# ip addr show
eth0: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 100
    link/ether 00:c0:df:03:23:f6 brd ff:ff:ff:ff:ff:ff
    inet 195.131.103.141/24 brd 195.131.103.255 scope global eth0
    inet 172.16.17.68/30 brd 172.16.255.255 scope global eth0:0

# cat /etc/sysconfig/static-routes
eth0 net #внешний IP# netmask 255.255.255.0 gw #шлюз прова#
eth1 net 172.16.17.* netmask 255.255.255.252 gw 192.168.0.1
[/pre]

Для настройки iptables взят скрипт http://www.opennet.me/docs/RUS/iptables/misc/iptables-tutorial/rc.firewall.txt - изменены только адреса.

Вообщем, помогите кто чем может!

  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

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

1. "Linux-routing на 2 IP через один интерфейс"
Сообщение от Sampan Искать по авторуВ закладки on 24-Окт-03, 02:18  (MSK)

> eth0: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 100
>    link/ether 00:c0:df:03:23:f6 brd ff:ff:ff:ff:ff:ff
>    inet 195.131.103.141/24 brd 195.131.103.255 scope global eth0
           ^^^^^^^^^^^^^^^

Ты долго вырезал отовсюду свой внешний IP, но недоглядел
Так что не мучайся дальше :-))

Собственно про сабж

Первое,
>#ping 172.16.17.х1
>ping: sendmsg: Operation not permitted

Скорее всего в правилах iptables запрещены пакеты для eth0 с адресами 172.16.0.0/12. Оно так прямо и говорит "Operation not permitted"

Второе,
В таблице маршрутизации отсутствует маршрут на сеть 172.16.17.0/24. Естественно, пакеты туда направляются по дефолтовому маршруту.
То, что ты написал в /etc/sysconfig/static-routes не срабатывает
route -n говорит, что нету такого маршрута

Третье,
>eth0:0    Link encap:Ethernet  HWaddr 00:C0:DF:03:23:F6
>inet addr:172.16.17.*  Bcast:172.16.255.255  Mask:255.255.255.252
Броадкаст не соответствует маске.
Разберись сам в чем ошибка

Четвертое,
>/etc/sysconfig/static-routes
>eth1 net 172.16.17.* netmask 255.255.255.252 gw 192.168.0.1
Совсем все не правильно
Сделай, для начала, все руками. route add -net ... Посмотри на результаты, вывод ошибок. А потом уж добавишь в инитскрипты.

Вот, наверное, и все.
Удачи.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "Linux-routing на 2 IP через один интерфейс"
Сообщение от adminus novo emailИскать по авторуВ закладки on 24-Окт-03, 18:02  (MSK)
Спасибо за ответ, начну с исправлений :)
На самом деле, 172.16.17.68 - адрес нашей _подсети_ в сетке провайдера. Соотв., шлюз .69, хост .70 и броадкаст .71. Просто никаких доков предыдущие админы не оставили, все выяснялось по т.ф. :-Е

>Первое,
>>#ping 172.16.17.х1
>>ping: sendmsg: Operation not permitted
>
>Скорее всего в правилах iptables запрещены пакеты для eth0 с адресами 172.16.0.0/12.
>Оно так прямо и говорит "Operation not permitted"

Вообщем, оказалось да - хоть не прямо, но косвенно такие пакеты были запрещены. Сейчас добавил:
# iptables -A INPUT -p ALL -s 172.16.17.64/28 -d 172.16.17.68/30 -j ACCEPT
# iptables -A OUTPUT -p ALL -s 172.16.17.68/30 -d 172.16.17.64/28 -j ACCEPT

теперь сам себя пингует :) 64/28 в адресе, чтобы до удаленного компа мог добраться.

>Второе,
>В таблице маршрутизации отсутствует маршрут на сеть 172.16.17.0/24. Естественно, пакеты туда направляются
>по дефолтовому маршруту.
>То, что ты написал в /etc/sysconfig/static-routes не срабатывает
>route -n говорит, что нету такого маршрута
В static-routes не я писал - это наследство предыдущих админов. Наряду с прочими ужасами.

Сделал:
в /etc/sysconfig/static-routes
eth0 net 172.16.17.70 netmask 255.255.255.240 gw 172.16.17.69

К своему стыду, не нашел, как указать чтобы из этого файла обновление поизошло. :(

И еще - не могу удалить ненужное правило из ip - т.е.:
# ip ru show
0:      from all lookup local
32763:  from all to 172.16.17.64/30 lookup ADSLnet
32764:  from all to 172.16.17.0/24 lookup ADSLnet
32765:  from 192.168.0.0/24 to 172.16.17.74 lookup ADSLnet
32766:  from all lookup main
32767:  from all lookup 253

# ip ru del prio 32765
RTNETLINK answers: No such process
на
# ip ru del priority 32765 table ADSLnet
тоже самое.

теперь пинг на модем отображается уже как:
# ping 172.16.17.69
PING 172.16.17.69 (172.16.17.69) from 172.16.17.70 : 56(84) bytes of data.
64 bytes from 172.16.17.69: icmp_seq=1 ttl=254 time=0.985 ms

# ping 172.16.17.74
PING 172.16.17.74 (172.16.17.74) from 172.16.17.70 : 56(84) bytes of data.
From 195.131.103.141 icmp_seq=1 Destination Host Unreachable
т.е. идет с нужного адреса, но гонит опять таки через внешний ИП.

Теперь не могу допереть, как рутинг прописать с хоста .70 на модем .69 и дальше. От манов уже голова пухнет.
Сделал так:
# route add -net 172.16.17.64 netmask 255.255.255.240 gw 172.16.17.69 metric 1 dev eth0
# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
172.16.17.64    172.16.17.69    255.255.255.240 UG    1      0        0 eth0

# ip ru sho
0:      from all lookup local
32763:  from all to 172.16.17.64/30 lookup ADSLnet

# ip rou sho table ADSLnet
172.16.17.64/28 via 172.16.17.70 dev eth0  proto static  scope link
default via 172.16.17.69 dev eth0

>Третье,
>>eth0:0    Link encap:Ethernet  HWaddr 00:C0:DF:03:23:F6
>>inet addr:172.16.17.*  Bcast:172.16.255.255  Mask:255.255.255.252
>Броадкаст не соответствует маске.
>Разберись сам в чем ошибка

Вроде разобрался, теперь
# ifconfig eth0:0
eth0:0    Link encap:Ethernet  HWaddr 00:C0:DF:03:23:F6
     inet addr:172.16.17.70  Bcast:172.16.17.71  Mask:255.255.255.252

>Четвертое,
>>/etc/sysconfig/static-routes
>>eth1 net 172.16.17.* netmask 255.255.255.252 gw 192.168.0.1
>Совсем все не правильно
Угу, как изменил см. выше.

>Сделай, для начала, все руками. route add -net ... Посмотри на результаты,
>вывод ошибок. А потом уж добавишь в инитскрипты.

Вообщем, чего наворотил, уже и сам не очень понимаю %-\ Звонил прову, возможно, проблема с маршрутизацией у них.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

6. "Linux-routing на 2 IP через один интерфейс"
Сообщение от Sampan Искать по авторуВ закладки on 24-Окт-03, 22:58  (MSK)
Для начала нужно определиться, а что, собственно, нужно в сети 172.16.17.* ?

Судя по всему, там живут какие то сервисы провайдера. (ping 172.16.17.74)

Сдается мне, проблема в несогласовании настройки интерфейса и таблицы маршрутизации

Когда пингуется 172.16.17.69 все нормально. Но этот адрес входит в сеть определенную для eth0:0 (4 адреса: 68 - сеть, 69 - шлюз, 70 - хост, 71 - броадкаст)

Как только мы выходим за эти 4 адреса - тут же пакеты идут через реальный IP

Выход
А кто мешает сделать для eth0:0 полную сеть? Т.е.
172.16.17.0 - сеть, 255.255.255.0 - маска
172.16.17.69 - шлюз
172.16.17.70 - твой хост
172.16.17.255 - броадкаст
(И во всех настройках придерживаться этих параметров)
Ни чего страшного случиться не должно

А затем прописать маршрут (опять же на полную сеть 172.16.17.0/24) через шлюз 172.16.17.69 на интерфейс 172.16.17.70
В таком случае пакеты в любой адрес 172.16.17.х будут уходить из 172.16.17.70

З.Ы.
Не забудь подправить правила iptables для 172.16.17.0/24

  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "Linux-routing на 2 IP через один интерфейс"
Сообщение от Xela emailИскать по авторуВ закладки on 24-Окт-03, 09:58  (MSK)
Я думаю, настроить SNAT.

т.е. приблизительно так
iptables -t nat -o eth0 -d des_net -A POSTROUTING -j SNAT --to-source  172.16.17.68

Но это только предположение.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "Linux-routing на 2 IP через один интерфейс"
Сообщение от adminus novo emailИскать по авторуВ закладки on 24-Окт-03, 18:38  (MSK)
>Я думаю, настроить SNAT.
>
>т.е. приблизительно так
>iptables -t nat -o eth0 -d des_net -A POSTROUTING -j SNAT --to-source
> 172.16.17.68
>
>Но это только предположение.

да, НАТ на внешнем ИП висит,
добавил
iptables -t nat -A POSTROUTING -o eth0 -d 172.16.17.64/28 -j SNAT --to-source 172.16.17.70

ничего не изменилось.
Абыдно, инет бегает, а тут - фиг :(

  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "Linux-routing на 2 IP через один интерфейс"
Сообщение от Mikhail Искать по авторуВ закладки on 24-Окт-03, 10:02  (MSK)
На всякий случай напоминаю: iptables не работают с aliases (по крайней мере, не работали раньше). Приходится использовать всякие ухищрения типа прямого задания IP и т.п. вместо '-i eth*'.
  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




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

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