Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС для молодых и начинающих системных администраторов.
Имеется домашний сервер с двумя сетевыми картами. К Eth0 подключен адсл-модем, а Eth1 смотрит в локальную сеть. На Eth1 я задал статический адрес 192.168.1.1, который является шлюзом для клиента 192.168.1.100. Как теперь быть с глобальным шлюзом для выхода в интернет? Так как провайдер выдаёт динамический ip-адрес, соответственно Eth0 я должен оставить пустым. Но что происходит после дозвона.
Появился какой то ppp0 аж с двумя адресами, а Eth0 по прежнему остался пустым. Откуда берётся этот виртуальный интерфейс? Почему на карточке с модемом отсутствует ip-адрес? И главное с каким тогда адресом настроить глобальный шлюз?
Первый адрес - от провайдера при подключении к инету, второй - моя сеть. Осталось указать глобальный шлюз по умолчанию, но с каким адресом к сожалению не понял.
paltusssss
всё у вас в порядке и никаких «глобальных шлюзов» (что это такое?) вам «настраивать» не надо.
к провайдеру у вас поднят туннель, олицетворяемый интерфейсом ppp0
ip-адрес вашего конца туннеля: 178.45.54.25
ip-адрес другого конца туннеля: 88.200.222.253
маршрут по умолчанию назначен прямо через этот интерфейс. и это правильно.
догадываюсь, что на клиентской машине у вас «нет интернета». т.е. не резолвятся адреса.
что у клиенат в /etc/resolv.conf творится?
всё у вас в порядке и никаких «глобальных шлюзов» (что это такое?)
Под глобальным шлюзом я имел ввиду тот, через который пакеты уходят в WAN.
догадываюсь, что на клиентской машине у вас «нет интернета». т.е. не резолвятся адреса.
что у клиенат в /etc/resolv.conf творится?
Вы правы! Нет ни интернета, ни пингов в сторону сервера. Таблица маршрутизации и локальные интерфейсы показаны выше. В /proc/sys/net/ipv4/ip_forward поставил единицу. И всё равно пинги от сервера идут и в локалку и в интернет, а со стороны клиента - превышен интервал ожидания для запроса. (Причём ip-адрес он получил от dhcp-сервера и межсетевой экран на время отключал). Чего же не хватает?
P.S. клиент ХРишный, /etc/resolv.conf - нет.
со стороны сервера:
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 - тоже.
Присвоил интерфейсу 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, удалите.
$ 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) В руководствах настоятельно рекомендовали после поднятия локальных интерфейсов настроить маршрутизацию, для выхода клиентов в глобальную сеть. Маршрутизация не была настроена и всё работает. Почему?
маршрутизация у вас настроена. читайте внимательнее — о чём именно говорят эти ваши руководства.
В них было сказано, что клиент подключается к серверу, через локальный шлюз, то есть через ту сетевушку. которая соединяется со свичом. В то же время в таблице маршрутизации сервера есть два поля destination, где перечисляются внутренние сети и поле Gateway, где указвается глобальный шлюз, то есть тот айпишник данный провайдером для выхода в WAN. В моём случае:
маршрут по умолчанию назначен прямо через этот интерфейс. и это правильно.
btw. пользуйтесь для просмотра таблиц маршрутизации командой
$ /sbin/ip r
а не чужеродными linux-у route или (ещё веселее) netstat.
вывод уж точно гораздо нагляднее и человекочитаемее.
p.s. то, что вы цитируете, относится к нормальной раздаче интернета. вы же настроили проксирование http-трафика и вас (как я понял) это устраивает. так и не берите дурного в голову и тяжёлого в руки.