Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: Маршрутизация пакетов с одного сетевого интерфейса на другой  (Прочитано 1549 раз)

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

Оффлайн sg.washington

  • Автор темы
  • Новичок
  • *
  • Сообщений: 4
    • Просмотр профиля
Здравствуйте.
Встала задача в локальной сети отфильтровать интернет. Отфильтровать собственно нужно всяческие мэйл.ру, вконтакте и пр. ересь. Все банально.
До задачи имелся адсл роутер, который раздавал инет. Теперь этот интернет попадает в компьютер-шлюз. В этом компе две сетевухи - eth1 (Модем) и eth2 (Сеть локальная.).
Я, собственно, узнал, что мне нужно:
1. Включить форвардинг и настроить его
2. Включить НАТ (я сделал через маскарадинг)
3. Поставить и настроить сквид, который будет резать лажу.
4. Настроить редирект пакетов с 80ого порта на 3128.

Проблема у меня очень странная - при включении компьютера - сеть подключается автоматом на обоих интерфейсах. Но если интернет на компе работает, то вот локалка ведет себя странно - хоть вроде и сетка работает, но комп из сети не пингуется. Лечится если выдернуть шнур из сетевухи и воткнуть обратно. Тоггда и комп пингуется, и форвардинг начинает работать. Грешил на сетевуху, заменил на новую - та же проблема. Что это может быть - железо, ОС или кривой iptables?
Пример моего незатейливого конфига ниже (пока что без редиректа пакетов сквиду), сейчас хотя бы понять, почему сетка не заводится.
# Generated by iptables-save v1.4.4 on Mon Jun 14 11:52:11 2010
*filter
:INPUT ACCEPT [149:12885]
:FORWARD ACCEPT [104:24721]
:OUTPUT ACCEPT [20:2174]
-A INPUT -i lo -j ACCEPT
COMMIT
# Completed on Mon Jun 14 11:52:11 2010
# Generated by iptables-save v1.4.4 on Mon Jun 14 11:52:11 2010
*mangle
:PREROUTING ACCEPT [594:63919]
:INPUT ACCEPT [149:12885]
:FORWARD ACCEPT [432:50230]
:OUTPUT ACCEPT [20:2174]
:POSTROUTING ACCEPT [169:34972]
COMMIT
# Completed on Mon Jun 14 11:52:11 2010
# Generated by iptables-save v1.4.4 on Mon Jun 14 11:52:11 2010
*nat
:PREROUTING ACCEPT [305:19551]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [2:520]
-A POSTROUTING -o eth1 -j MASQUERADE
COMMIT
# Completed on Mon Jun 14 11:52:11 2010

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28469
    • Просмотр профиля
ifconfig
показывай.
И ip route
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн censor

  • Старожил
  • *
  • Сообщений: 1126
    • Просмотр профиля
-A INPUT -i lo -j ACCEPT
бесполезное правило, т.к. действие по умолчанию ACCEPT

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28469
    • Просмотр профиля
-A INPUT -i lo -j ACCEPT
бесполезное правило, т.к. действие по умолчанию ACCEPT

Бесполезное то оно бесполезное, но когда надумаешь отключать DEFAULT ACCEPT, нe придётся гадать, куда что девалось.

Я бы даже сделал

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -j ACCEPT
COMMIT
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн sg.washington

  • Автор темы
  • Новичок
  • *
  • Сообщений: 4
    • Просмотр профиля
Это вот ifconfig:
eth0      Link encap:Ethernet  HWaddr 00:80:48:34:72:e0  
          inet addr:192.168.1.251  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::280:48ff:fe34:72e0/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1301 errors:0 dropped:0 overruns:0 frame:0
          TX packets:116 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:91195 (91.1 KB)  TX bytes:15877 (15.8 KB)
          Interrupt:18 Base address:0xb000

eth1      Link encap:Ethernet  HWaddr 00:1e:58:48:32:f3  
          inet addr:192.168.1.253  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::21e:58ff:fe48:32f3/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:20 errors:0 dropped:0 overruns:0 frame:0
          TX packets:38 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:2200 (2.2 KB)  TX bytes:5074 (5.0 KB)
          Interrupt:22  

IP Route:
192.168.1.0/24 dev eth0  proto kernel  scope link  src 192.168.1.251  metric 1
192.168.1.0/24 dev eth1  proto kernel  scope link  src 192.168.1.253  metric 1
169.254.0.0/16 dev eth0  scope link  metric 1000
default via 192.168.1.254 dev eth1  proto static

Заметил странность. Когда комп перезагружается и не виден из сети - логи показывают, что на этапе PREROUTING в таблице NAT куча пакетов проходит из локальной сети. Почему так? Действие по умолчанию то - accept.
« Последнее редактирование: 29 Июня 2010, 12:47:32 от sg.washington »

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28469
    • Просмотр профиля
Заметил странность. Когда комп перезагружается и не виден из сети - логи показывают, что на этапе PREROUTING в таблице NAT куча пакетов проходит из локальной сети. Почему так? Действие по умолчанию то - accept.


Переведи на русский.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн Mam(O)n

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Первоочередная задача шлюза - объединять разные подсети. А у тебя два интерфейса сидят в одной подсети. Разведи по разным подсетям..

Оффлайн sg.washington

  • Автор темы
  • Новичок
  • *
  • Сообщений: 4
    • Просмотр профиля
Ну вот на сервере добавляю правило sudo iptables -t nat -I PREROUTING 1 -j LOG --log-prefix "Prerouting: "
Ребучу сервер.
Пингую его с компа в локальной сети - пинга нет.
Смотрю логи - дофигища записей с префиксом "Prerouting: ", т.е. пакеты приходят из локальной сети, но как-будто застрявают. Теперь если я выдерну шнур из сетевой карты (это на которой локальная сеть висит) и воткну его вновь - сей сервер начнет пинговаться из локалки и в локалке появится интернет. Вот как-то так.

Оффлайн censor

  • Старожил
  • *
  • Сообщений: 1126
    • Просмотр профиля
раздели подсети на картах, у тебя оба интерфейса в одной сети, это бред полнейший.

Оффлайн sg.washington

  • Автор темы
  • Новичок
  • *
  • Сообщений: 4
    • Просмотр профиля
Про подсети понял, сейчас через двадцать минут раскидаю по разным.

Пользователь решил продолжить мысль 29 Июня 2010, 14:27:51:
Раскидал на разные. Теперь после включения компа сетка без проблем подключается. Не работает форвардинг. Намертво. Не могу сообразить, в чем дело.
« Последнее редактирование: 29 Июня 2010, 14:27:51 от sg.washington »

Оффлайн Mam(O)n

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Не могу сообразить, в чем дело.
Давай соображать вместе.

На сервере:
sudo iptables-save
ifconfig -a
ip route
sysctl net.ipv4.ip_routing

На винклиенте:
ipconfig /all
ping ya.ru

 

Страница сгенерирована за 0.063 секунд. Запросов: 23.