Есть выделенный ip xxx.xx.xxx.28. (На всякий случай - его шлюз: xxx.xx.xxx.18)
Есть локалка 192.168.0.0/24, dhcpd настроил, адреса получают. Надо их связать и дать доступ в тырнеты.
Комп, который станет шлюзом: xxx.xx.xxx.28 (eth0) и 192.168.0.1 (eth1).
Почти сутки (учитывая, что в них - 24 часа) курю маны по iproute2 и не понимаю, как сделать задуманное.
Создал таблицу inet_0 в /etc/iproute2/rt_tables.
затем, как я понял, надо
#ip rule add from 192.168.0.0/24 table inet_0
#ip ro add default via xxx.xx.xxx.28 dev eth0 table inet_0
#ip ro flush cache
Не прошло. Пакетики не идут.
$ip ro list
xxx.xx.xxx.16/28 dev eth0 proto kernel scope link src 217.71.134.28 metric 1
169.254.0.0/16 dev eth0 scope link metric 1000
default via xxx.xx.xxx.18 dev eth0 proto static
(небольшой вопрос: что первые два рута делают в списке?)
(последний добавил я, когда настраивал тырнеты на машинке - где тот, который я хотел добавить?)
$ip rule list
0: from all lookup local
32765: from 192.168.0.0/24 lookup inet_0
32766: from all lookup main
32767: from all lookup default
Каменты насчёт того, что я идиот и ничего не понимаю приветствуются. Только, пожалуйста, при этом говорите, где я именно идиот и как делают не идиоты.
-
юзай transparent proxy посредством iptables - это и есть nat.
есть подозрение, что автор думая о nat, попутал iptables c iproute
-
-
юзай transparent proxy посредством iptables - это и есть nat.
Это не есть NAT это один из способов его реализовать.
-
(или автор идиот (: )
Пошёл курить маны.
-
Кстати, mutantcornholio, вы форвардинг включили?
1
2
3
4
5
6
7
|
# Вот так
echo 1 > /proc/sys/net/ipv4/ip_forward
# Или вот так
sysctl -w net.ipv4.ip_forward=1
|
-
А iproute вообще должен делать nat?
В общем автор либо незнает про iptables либо нехочет им пользоваться ... на всякий случай маскарадинг в iptables делается так
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERAD
Перед этим включить фовардинг как zend прописал.
Если получиться сделать это через iproute - поделись магией.
-
-
-
Не-а. Не работает =\
-
-
Какие логи надо приводить?
-
Через iproute2 не получится - он предназначен не для этого.
-
Комп, который станет шлюзом: xxx.xx.xxx.28 (eth0) и 192.168.0.1 (eth1).
Так какой из них шлюз?
-
-
А сори накосячил.
-
mutantcornholio, вот этот скрипт выполните на вашем шлюзе:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
#!/bin/sh -e
PATH=/usr/sbin:/sbin:/bin:/usr/bin
# Интерфейс который смотрит в интернет
INET_IFACE=eth0
# Интерфейс который смотрит в локальную сеть
LNET_IFACE=eth1
# Сбрасываем правила и удаляем цепочки
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
iptables -t nat -X
iptables -t mangle -X
# Включаем NAT
iptables -t nat -A POSTROUTING -o $INET_IFACE -j MASQUERADE
# Включаем форвардинг
sysctl -w net.ipv4.ip_forward=1 > /dev/null
exit 0
|
-
-
Всё равно не работает. Нет пинга ни до шлюза ни до любого ресурса свыше с поднатных (как их правильно называть) компов. Также эти компы не пингуются со шлюза (хотя время от времени выскакивает From xxx.xx.xxx.18: icmp_seq=66 Redirect Host(New nexthop: xxx.xx.xxx.17) )
-
-
Вы "почистили" те настройки, которые делали с iproute2?
-
-
Удалил все route'ы и rule'ы
$ip route show
xxx.xx.xxx.16/28 dev eth0 proto kernel scope link src xxx.xx.xxx.28 metric 1
169.254.0.0/16 dev eth0 scope link metric 1000
default via xxx.xx.xxx.18 dev eth0 proto static
$ ip rule show
0: from all lookup local
32766: from all lookup main
32767: from all lookup default
-
Нет пинга ни до шлюза
Выполните на клиенте ifconfig -a и вывод сюда. Если там винда, скажите как в данный момент у клиента настроена сетевая карта (IP, адрес шлюза и т.д.).
-
-
Винда. ip 192.168.0.2
шлюз 192.168.0.1
маска 255.255.255.0
dhcp раздаёт тот же 192.168.0.1
-
-
1. Клиент получает все настройки (IP, адрес шлюза и т.д.) по DHCP, так?
2. Вручную клиентов вы не настраивали так?
3. Сетевой интерфейс вашего шлюза, который смотрит в локалку имеет IP-адрес 192.168.0.1, так?
Если так, то клиент шлюз пинговать обязан. Справедливо и обратное. Проверьте так ли это еще раз, предварительно стерев все правила, которые вы создали с помощью iproute2.
-
-
Перебил ещё раз 192.168.0.1, 255.255.255.0 через ifconfig eth1 на шлюзе. Пинги на клиентах пошли. Наружу тоже. А сайтики в браузере открываться не хотят о_О. Я ещё чего-то не сделал?
-
-
DNS?
-
-
dns работает. ping google.com есть
-
-
Если ping google.com есть, значит все работает. Значит проблема в браузере. Он, часом, не через проксю в интернет ходит? В общем смотреть настройки браузера.
-
-
Нет, не через проксю. Даже специально потестил на IE. "Узел найден, ожидается ответ.."
-
-
А дальше что происходит?
-
-
"Невозможно отобразить страницу"
-
-
А другие браузеры что говорят?
-
-
Тоже самое
-
-
запустить tcpdump и показать его вывод
-
-
На котором интерфейсе? eth0?
-
Как только включаю форвардинг, появляется куча пакетов admin prohibited.
-
-
iptables -L?
-
-
лучше
iptables -nvL
iptables -nvL -t nat
-
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
-
-
А вот это iptables -nvL -t nat, как вам предложил De_Abler, что выводит?
-
Такое чувство, что кто-то весь канал забил торрентами или все разом кинулись обновления качать или что-то в этом духе.
-
-
И да, там фаирвол нигде ничего не блокирует?
-
У меня 21 строчка выглядит так:
iptables -t nat -A POSTROUTING -s $LAN_NET -j MASQUERADE
-
Chain PREROUTING (policy ACCEPT 3639 packets, 266K bytes)
pkts bytes target prot opt in out source destination
Chain POSTROUTING (policy ACCEPT 599 packets, 60524 bytes)
pkts bytes target prot opt in out source destination
3062 216K MASQUERADE all -- * eth0 0.0.0.0/0 0.0.0.0/0
Chain OUTPUT (policy ACCEPT 6053 packets, 458K bytes)
pkts bytes target prot opt in out source
(ответил на http://welinux.ru/post/4760/#cmnt91626)
-
Слушайте... по определённым обстоятельствам шлюз ещё и декстопная машинка. Там происходит то же самое.
-
-
ifconfig
-
-
Грёбаная клава!
И так... А интернет-то работает? Покажите ifconfig -a со шлюза, покажите route -n со шлюза, покажите cat /etc/resolv.conf со шлюза. И да в инете что нибудь пингуется?
-
-
Да. Пингуется.
есть включить форвардинг, то ssh не работает. Так что пока с отключенным.
eth0 Link encap:Ethernet HWaddr 20:cf:30:8c:46:ea
inet addr:xxx.xx.xxx.28 Bcast:xxx.xx.xxx.31 Mask:255.255.255.240
inet6 addr: 2001:b08:a:2800:22cf:30ff:fe8c:46ea/64 Scope:Общий
inet6 addr: fe80::22cf:30ff:fe8c:46ea/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:349334 errors:0 dropped:0 overruns:0 frame:0
TX packets:246036 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:403528978 (403.5 MB) TX bytes:52461670 (52.4 MB)
Interrupt:37 Base address:0x4000
eth1 Link encap:Ethernet HWaddr 00:08:a1:1c:b2:7f
inet addr:192.168.0.1 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::208:a1ff:fe1c:b27f/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:4603 errors:0 dropped:0 overruns:0 frame:0
TX packets:3184 errors:0 dropped:0 overruns:0 carrier:0
collisions:10 txqueuelen:1000
RX bytes:494507 (494.5 KB) TX bytes:416025 (416.0 KB)
Interrupt:17 Base address:0xe800
eth2 Link encap:Ethernet HWaddr 00:04:76:14:82:aa
inet6 addr: fe80::204:76ff:fe14:82aa/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:10906 errors:0 dropped:0 overruns:1 frame:0
TX packets:18 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1011601 (1.0 MB) TX bytes:1404 (1.4 KB)
Interrupt:16 Base address:0xec00
lo Link encap:Локальная петля (Loopback)
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:27850 errors:0 dropped:0 overruns:0 frame:0
TX packets:27850 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:27777690 (27.7 MB) TX bytes:27777690 (27.7 MB)
(на eth2 подниму другой нат по аналогии).
Таблица маршутизации ядра протокола IP
Destination Gateway Genmask Flags Metric Ref Use Iface
xxx.xx.xxx.16 0.0.0.0 255.255.255.240 U 1 0 0 eth0
192.168.0.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 1000 0 0 eth0
0.0.0.0 xxx.xx.xxx.18 0.0.0.0 UG 0 0 0 eth0
В resolv.conf сейчас один DNS-сервер:
nameserver xxx.xx.xxx.18
-
Честно говоря, не полнял, в каком состоянии у вас настройки сейчас.
Удалите все изначальные настройки.
Выполните скрипт, который вам порекомендовали вот здесь.
После этого покажите с роутера вывод команд
ip a l
ip r l
iptables -t nat -nvL
ping -c 5 google.ru
И с клиентов
ping 192.168.0.1
ping google.ru
-
1: lo: mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth1: mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:08:a1:1c:b2:7f brd ff:ff:ff:ff:ff:ff
inet 192.168.0.1/24 brd 192.168.0.255 scope global eth1
inet6 fe80::208:a1ff:fe1c:b27f/64 scope link
valid_lft forever preferred_lft forever
3: eth2: mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:04:76:14:82:aa brd ff:ff:ff:ff:ff:ff
inet6 fe80::204:76ff:fe14:82aa/64 scope link
valid_lft forever preferred_lft forever
4: eth0: mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000
link/ether 20:cf:30:8c:46:ea brd ff:ff:ff:ff:ff:ff
inet xxx.xx.xxx.28/28 brd xxx.xx.xxx.31 scope global eth0
inet6 2001:b08:a:2800:22cf:30ff:fe8c:46ea/64 scope global dynamic
valid_lft 2591864sec preferred_lft 604664sec
inet6 fe80::22cf:30ff:fe8c:46ea/64 scope link
valid_lft forever preferred_lft forever
xxx.xx.xxx.16/28 dev eth0 proto kernel scope link src 217.71.134.28 metric 1
192.168.0.0/24 dev eth1 proto kernel scope link src 192.168.0.1
169.254.0.0/16 dev eth0 scope link metric 1000
default via xxx.xx.xxx.18 dev eth0 proto static
Chain PREROUTING (policy ACCEPT 18459 packets, 1358K bytes)
pkts bytes target prot opt in out source destination
Chain POSTROUTING (policy ACCEPT 2614 packets, 315K bytes)
pkts bytes target prot opt in out source destination
42 3314 MASQUERADE all -- * eth0 0.0.0.0/0 0.0.0.0/0
Chain OUTPUT (policy ACCEPT 19266 packets, 1672K bytes)
pkts bytes target prot opt in out source destination
From xxx.xxxx.ru (xxx.xx.xxx.18): icmp_seq=1 Redirect Host(New nexthop: xxx.xxxx.ru (xxx.xx.xxx.17))
64 bytes from 74.125.232.20: icmp_seq=1 ttl=56 time=41.9 ms
From xxx.xxxx.ru (xxx.xx.xxx.18): icmp_seq=2 Redirect Host(New nexthop: xxx.xxxx.ru (xxx.xx.xxx.17))
64 bytes from 74.125.232.20: icmp_seq=2 ttl=56 time=41.8 ms
From xxx.xxxx.ru (xxx.xx.xxx.18): icmp_seq=3 Redirect Host(New nexthop: xxx.xxxx.ru (xxx.xx.xxx.17))
64 bytes from 74.125.232.20: icmp_seq=3 ttl=56 time=41.3 ms
From xxx.xxxx.ru (xxx.xx.xxx.18): icmp_seq=4 Redirect Host(New nexthop: xxx.xxxx.ru (xxx.xx.xxx.17))
64 bytes from 74.125.232.20: icmp_seq=4 ttl=56 time=41.4 ms
From xxx.xxxx.ru (xxx.xx.xxx.18): icmp_seq=5 Redirect Host(New nexthop: xxx.xxxx.ru (xxx.xx.xxx.17))
64 bytes from 74.125.232.20: icmp_seq=5 ttl=56 time=41.8 ms
Пинг с клиентов нормальный. Время такое же.
-
-
Может MTU недостаточно большой?
PS
И да, telnet ya.ru 80 выводит что то вроде:
1
2
3
4
|
redaktor@redaktor-desktop:~$ telnet ya.ru 80
Trying 93.158.134.3...
Connected to ya.ru.
Escape character is '^]'. |
или нет?
-
-
Всмысле наоборот большой...
-
Судя по вот этому
1
2
3
ТС наткнулся на Path MTU Discovery Black Hole. Есть статейка по этой проблеме - почитайте на досуге.
А решается это тоже несложно:
iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1300
попробуйте.
-
Оказалось, я не правильно выставил на шлюзе его шлюз по умолчанию. Должен был быть 17й. Там что-то редиректилось и до форвардинга как-то работало.
|
|
|
Последние посты
|
|
Последние комментарии
|
|
Изменения
|
|
Черновики (все)
|
|
Избранное (всё)
|
|
|