настройка маршрутизации (теоретический вопрос)

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС для молодых и начинающих системных администраторов.

Модераторы: SLEDopit, Модераторы разделов

paltusssss
Сообщения: 147

настройка маршрутизации

Сообщение paltusssss »

Здравствуйте!

Имеется домашний сервер с двумя сетевыми картами. К Eth0 подключен адсл-модем, а Eth1 смотрит в локальную сеть. На Eth1 я задал статический адрес 192.168.1.1, который является шлюзом для клиента 192.168.1.100. Как теперь быть с глобальным шлюзом для выхода в интернет? Так как провайдер выдаёт динамический ip-адрес, соответственно Eth0 я должен оставить пустым. Но что происходит после дозвона.

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

eth0      Link encap:Ethernet  HWaddr 00:17:9A:C2:1D:F7
          inet6 addr: fe80::217:9aff:fec2:1df7/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:12416 errors:0 dropped:0 overruns:0 frame:0
          TX packets:12593 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:4430771 (4.2 MiB)  TX bytes:2842757 (2.7 MiB)
          Interrupt:18 Base address:0xc800

eth1      Link encap:Ethernet  HWaddr 00:16:EC:DA:6F:DC
          inet addr:192.168.1.1  Bcast:192.168.2.255  Mask:255.255.255.0
          inet6 addr: fe80::216:ecff:feda:6fdc/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:358 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1174 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:54316 (53.0 KiB)  TX bytes:69929 (68.2 KiB)
          Interrupt:19 Base address:0xb000

ppp0      Link encap:Point-to-Point Protocol
          inet addr:178.45.54.25  P-t-P:88.200.222.253  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1492  Metric:1
          RX packets:11949 errors:0 dropped:0 overruns:0 frame:0
          TX packets:12055 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3
          RX bytes:4139803 (3.9 MiB)  TX bytes:2551056 (2.4 MiB)


Появился какой то ppp0 аж с двумя адресами, а Eth0 по прежнему остался пустым. Откуда берётся этот виртуальный интерфейс? Почему на карточке с модемом отсутствует ip-адрес? И главное с каким тогда адресом настроить глобальный шлюз?

Спасибо!
Спасибо сказали:
BIgAndy
Сообщения: 1923

Re: настройка маршрутизации

Сообщение BIgAndy »

paltusssss писал(а):
10.04.2011 09:41
Появился какой то ppp0 аж с двумя адресами, а Eth0 по прежнему остался пустым.

Включу телепата. Вы настроили модем в режиме бриджа?
Откуда берётся этот виртуальный интерфейс?

От поднятия pppd.
Провайдер требует pptp? PPoe?
Почему на карточке с модемом отсутствует ip-адрес?

Наверное, потому что вы ему не выдали/ не назначили, или потому что этот интерфейс используется только на сетевом уровне.
И главное с каким тогда адресом настроить глобальный шлюз?

Это надо спрашивать у вашего провайдера или использовать traceroute/tracepath

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

Спасибо сказали:
paltusssss
Сообщения: 147

Re: настройка маршрутизации

Сообщение paltusssss »

BIgAndy писал(а):
10.04.2011 09:52
Включу телепата. Вы настроили модем в режиме бриджа?

Да по настройкам провайдера.
Почему на карточке с модемом отсутствует ip-адрес?
Наверное, потому что вы ему не выдали/ не назначили.
Да, не назначил подразумевая, что будучи подключеным к модему будет получен динамический ip.
И главное с каким тогда адресом настроить глобальный шлюз?
Это надо спрашивать у вашего провайдера или использовать traceroute/tracepath

Не совсем вас понял. Объясните пожалуйста поподробнее. Вот как выглядит моя таблица маршрутизации:

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

# netstat -nr
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
88.200.222.253  0.0.0.0         255.255.255.255 UH        0 0          0 ppp0
192.168.1.0     0.0.0.0         255.255.255.0   U         0 0          0 eth1
169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 eth1
0.0.0.0         0.0.0.0         0.0.0.0         U         0 0          0 ppp0


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

Re: настройка маршрутизации

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

paltusssss
всё у вас в порядке и никаких «глобальных шлюзов» (что это такое?) вам «настраивать» не надо.
к провайдеру у вас поднят туннель, олицетворяемый интерфейсом ppp0
ip-адрес вашего конца туннеля: 178.45.54.25
ip-адрес другого конца туннеля: 88.200.222.253
маршрут по умолчанию назначен прямо через этот интерфейс. и это правильно.

догадываюсь, что на клиентской машине у вас «нет интернета». т.е. не резолвятся адреса.
что у клиенат в /etc/resolv.conf творится?
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
paltusssss
Сообщения: 147

Re: настройка маршрутизации

Сообщение paltusssss »

sash-kan писал(а):
10.04.2011 11:58
всё у вас в порядке и никаких «глобальных шлюзов» (что это такое?)

Под глобальным шлюзом я имел ввиду тот, через который пакеты уходят в WAN.
догадываюсь, что на клиентской машине у вас «нет интернета». т.е. не резолвятся адреса.
что у клиенат в /etc/resolv.conf творится?

Вы правы! Нет ни интернета, ни пингов в сторону сервера. Таблица маршрутизации и локальные интерфейсы показаны выше. В /proc/sys/net/ipv4/ip_forward поставил единицу. И всё равно пинги от сервера идут и в локалку и в интернет, а со стороны клиента - превышен интервал ожидания для запроса. (Причём ip-адрес он получил от dhcp-сервера и межсетевой экран на время отключал). Чего же не хватает?
P.S. клиент ХРишный, /etc/resolv.conf - нет.


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

Re: настройка маршрутизации

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

маскарадинг настроили? как раздать интернет в локальную сеть
проверьте на клиенте:
ping 192.168.1.1
?
ping 178.45.54.25
?
ping 88.200.222.253
?

и на вашем компьютере:
$ ping -c 1 88.200.222.253
?
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
paltusssss
Сообщения: 147

Re: настройка маршрутизации

Сообщение paltusssss »

со стороны сервера:
ping -c 1 88.200.222.253
PING 88.200.222.253 (88.200.222.253) 56(84) bytes of data.
64 bytes from 88.200.222.253: icmp_seq=1 ttl=255 time=42.8 ms

--- 88.200.222.253 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 42.896/42.896/42.896/0.000 ms

Со стороны клиента запинговался только локальный интерфейс 192.168.1.1 внешние адреса не пингуются - превышен интервал ожидания запроса. Присвоил интерфейсу eth0 адрес 192.168.2.1 и добавил правила:
iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -j MASQUERADE - не помогло, потом ваше:
iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -o ppp0 -j MASQUERADE - тоже.

Вывод таблицы nat

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

# iptables -L -t nat
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination
MASQUERADE  all  --  192.168.2.0/24       anywhere
MASQUERADE  all  --  192.168.2.0/24       anywhere

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

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

Re: настройка маршрутизации

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

paltusssss писал(а):
10.04.2011 17:52
Присвоил интерфейсу eth0 адрес 192.168.2.1 и добавил правила:
iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -j MASQUERADE - не помогло, потом ваше:
iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -o ppp0 -j MASQUERADE - тоже.
причём же тут eth0? клиенты у вас к eth1 подключены, интернет через ppp0 доступен. eth0 тут никаким боком.
$ sudo iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o ppp0 -j MASQUERADE
а те два правила, что уже довалили в netfilter, удалите.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
BIgAndy
Сообщения: 1923

Re: настройка маршрутизации

Сообщение BIgAndy »

sash-kan писал(а):
11.04.2011 00:57
sudo iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o ppp0 -j MASQUERADE

Это всё хорошо.... А вот в sysctl разрешена ли маршрутизация как класс?
В простейшем случае NAT вообще не надо настраивать.
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: настройка маршрутизации

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

BIgAndy писал(а):
11.04.2011 08:51
разрешена ли маршрутизация

paltusssss писал(а):
10.04.2011 15:56
В /proc/sys/net/ipv4/ip_forward поставил единицу


BIgAndy писал(а):
11.04.2011 08:51
В простейшем случае NAT вообще не надо настраивать
таких случаев в природе не наблюдается. провайдеру дела нет до используемых клиентом адресов. у него самого таких достаточно.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
paltusssss
Сообщения: 147

Re: настройка маршрутизации

Сообщение paltusssss »

sash-kan писал(а):
11.04.2011 00:57
$ sudo iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o ppp0 -j MASQUERADE
а те два правила, что уже довалили в netfilter, удалите.


Упорно не пингуется ничего кроме локального шлюза 192.168.1.1. Навеное ещё каких то настроек не хватает. Но проблему решил другим путём - с использованием прокси. Запустил заранее настроеный сквид и прописал настройки в браузере клиента. Всё. Но появилось несколько вопросов.
1) Клиент вышел в интернет, но внешние адреса всё равно не пингуются. Это нормально или нет? (Bind на сервере пока не запустил)
2) Никаких правил в iptables по перенаправлению портов не вносил, тогда зачем в электронных талмудах требуют вводить:
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 3128
Если всё работает без этого правила.
3) В руководствах настоятельно рекомендовали после поднятия локальных интерфейсов настроить маршрутизацию, для выхода клиентов в глобальную сеть. Маршрутизация не была настроена и всё работает. Почему?
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: настройка маршрутизации

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

paltusssss писал(а):
11.04.2011 20:15
Клиент вышел в интернет, но внешние адреса всё равно не пингуются. Это нормально или нет?
да
paltusssss писал(а):
11.04.2011 20:15
Никаких правил в iptables по перенаправлению портов не вносил, тогда зачем в электронных талмудах требуют вводить
читайте внимательнее, о чём эти талмуды. явно о прозрачном проксировании.
paltusssss писал(а):
11.04.2011 20:15
Маршрутизация не была настроена
маршрутизация у вас настроена. читайте внимательнее — о чём именно говорят эти ваши руководства.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
paltusssss
Сообщения: 147

Re: настройка маршрутизации

Сообщение paltusssss »

sash-kan писал(а):
11.04.2011 22:32
paltusssss писал(а):
11.04.2011 20:15
Маршрутизация не была настроена
маршрутизация у вас настроена. читайте внимательнее — о чём именно говорят эти ваши руководства.

В них было сказано, что клиент подключается к серверу, через локальный шлюз, то есть через ту сетевушку. которая соединяется со свичом. В то же время в таблице маршрутизации сервера есть два поля destination, где перечисляются внутренние сети и поле Gateway, где указвается глобальный шлюз, то есть тот айпишник данный провайдером для выхода в WAN. В моём случае:

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

# netstat -nr
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
88.200.222.253  0.0.0.0         255.255.255.255 UH        0 0          0 ppp0
192.168.1.0     0.0.0.0         255.255.255.0   U         0 0          0 eth1
169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 eth1
0.0.0.0         0.0.0.0         0.0.0.0         U         0 0          0 ppp0


default gateway обсолютно пустой и я пришёл к выводу, что глобальный шлюз - не указан. Или я опять неправильно понял?
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: настройка маршрутизации

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

paltusssss писал(а):
11.04.2011 23:08
Или я опять неправильно понял?

sash-kan писал(а):
10.04.2011 11:58
маршрут по умолчанию назначен прямо через этот интерфейс. и это правильно.


btw. пользуйтесь для просмотра таблиц маршрутизации командой
$ /sbin/ip r
а не чужеродными linux-у route или (ещё веселее) netstat.
вывод уж точно гораздо нагляднее и человекочитаемее.

p.s. то, что вы цитируете, относится к нормальной раздаче интернета. вы же настроили проксирование http-трафика и вас (как я понял) это устраивает. так и не берите дурного в голову и тяжёлого в руки.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали: