На компьютере с Ubuntu 10.04 - «Маршрутизаторе» есть два соединения eth0 и ppp0.
ppp0 смотрит в интернет.
eth0 - в локальную сеть.
На компьютере-клиенте (Ubuntu 10.04) - только eth0.
Задача: раздавать трафик из ppp0 в eth0 для клиентов сидящих в локалке.
Схема:
eth0 ppp0
Внутрнняя сеть --------------------[ маршрутизатор ]---------------------- Internet
192.168.1.0/24 192.168.1.1 внешний ip-адрес 0.0.0.0/0
Мои действия:
1. Подключаю пачкорды от первого и второго компьютера к свичу.
Включаю соединения eht0 на обоих компьютерах.
Соединения установлены.
2. Настраиваю NetworkManager у «Маршрутизатора»:
Сетевые соединения - Проводные - eth0 - Изменить
Параметры IPv4:
Метод - Вручную
Адрес 192.168.1.3
Маска 255.255.255.0
Шлюз 0.0.0.0
Серверы DNS 217.71.160.17, 217.71.160.33
Маршруты Пусто
Флажки [v] использовать это соединение только для ресурсов в его сети
# Информация об установленном соединении eth0:
http://img.flashtux.org/img132b7a019d77xc7c6ecdd.png
# Интерфейс: Ethernet (eth0)
# MAC-адрес: xx:xx:xx:xx:xx:xx
# Драйвер: forcedeth
# скорость: 100 мб/с
# Защита: нет
# IP-адрес: 192.168.1.3
# Широковещательный адрес: 192.168.1.255
# Маска подсети: 255.255.255.255
# информация об установленном соединении ppp0:http://img.flashtux.org/img132b7a019caexcb62f1be.png# Интерфейс: CDMA (ttyUSB0)
# MAC-адрес: пусто
# Драйвер: option1
# скорость: неизвестно
# Защита: неизвестно
# IP-адрес: 217.71.175.104
# Широковещательный адрес: 217.71.175.104
# Маска подсети: 255.255.255.255
# Шлюз по умолчанию: 217.71.160.96
# Первичный DNS: 217.71.160.17
# Вторичный DNS: 217.71.160.333. Настраиваю NetworkManager у «Клиента»:
Сетевые соединения - Проводные - eth0 - Изменить
Параметры IPv4:
Метод - Вручную
Адрес 192.168.1.5
Маска 255.255.255.0
Шлюз 192.168.1.3
Серверы DNS Пусто
Маршруты Пусто
Флажки [v] использовать это соединение только для ресурсов в его сети
4. Выполняю команды из под рута на «Маршрутизаторе»:
# Разрешаю пропуск трафика через шлюз:sysctl -w net.ipv4.ip_forward="1"
ответ:
net.ipv4.ip_forward = 1
# Добавляю правило, для маскировки ip в цепочку POSTROUTING таблицы nat:iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
#Проверяю:iptables -t nat -L POSTROUTING
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
MASQUERADE all -- anywhere anywhere
# Теперь клиенты внутренней сети якобы могут получить
# возможность доступа в интернет установив в качестве шлюза
# адрес 192.168.1.3# Запрещаю возможность установки новых соединений с маршрутизатором из интернета, а также
# форвардинг из сетей отличных от 192.168.1.0/24 .
# Установливаю политики по умолчанию для цепочек в DROP, запретив все соединения кроме тех,
# которые будут разрешены:iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
# Разрешаю входящие соединения на маршрутизатор с внутренней сети (для управления):iptables -A INPUT -i eth0 --source 192.168.1.0/24 --match state --state NEW,ESTABLISHED -j ACCEPT
# Разрешаю маршрутизатору отвечать компьютерам во внутренней сети:iptables -A OUTPUT -o eth0 --destination 192.168.1.0/24 --match state --state NEW,ESTABLISHED -j ACCEPT
# Разрешаю перенаправление пакетов из внутренней сети во внешнюю для установки соединений и установленных соединений:
iptables -A FORWARD -i eth0 --source 192.168.1.0/24 --destination 0.0.0.0/0 --match state --state NEW,ESTABLISHED -j ACCEPT
# Разрешаю перенаправление пакетов из интернета во внутреннюю сеть только для установленных соединений:iptables -A FORWARD -i ppp0 --destination 192.168.1.0/24 --match state --state ESTABLISHED -j ACCEPT
5. Включаю соединение Skylink (ppp0) через NetworkManager
NetworkManager сообщает, что соединение разорвано.
Снимаю флажок с пункта «Включить мобильный доступ»
Ставлю флажок на пункте «Включить мобильный доступ»
Выбираю соединение Skylink (ppp0)
Соединение установлено. (трафик приходит на «Маршрутизатор» через ppp0)
Итог:
На машине-клиенте трафик не идет.
Что я делаю не так?
Данные
tcpdump на маршрутизаторе. Из сообщений видно, что было поднято соединение eth0 на клиенте и был послан ping на адрес 192.168.1.3:
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
14:26:33.588066 IP 192.168.1.5 > igmp.mcast.net: igmp v3 report, 1 group record(s)
14:26:33.774505 IP 192.168.1.5.mdns > 224.0.0.251.mdns: 0 [4q] [7n][|domain]
14:26:33.801139 IP 192.168.1.5.mdns > 224.0.0.251.mdns: 0*- [0q] 2/0/0[|domain]
14:26:34.024488 IP 192.168.1.5.mdns > 224.0.0.251.mdns: 0 [4q] [7n][|domain]
14:26:34.251753 IP 192.168.1.3.mdns > 224.0.0.251.mdns: 0 PTR (QM)? 5.1.168.192.in-addr.arpa. (42)
14:26:34.275436 IP 192.168.1.5.mdns > 224.0.0.251.mdns: 0 [4q] [7n][|domain]
14:26:34.475304 IP 192.168.1.5.mdns > 224.0.0.251.mdns: 0*- [0q] 7/0/0[|domain]
14:26:34.943590 IP 192.168.1.5.mdns > 224.0.0.251.mdns: 0*- [0q] 2/0/0[|domain]
14:26:35.252004 IP 192.168.1.3.mdns > 224.0.0.251.mdns: 0 PTR (QM)? 5.1.168.192.in-addr.arpa. (42)
14:26:35.252301 IP 192.168.1.5.mdns > 224.0.0.251.mdns: 0*- [0q] 1/0/0 (Cache flush) PTR[|domain]
14:26:35.617693 IP 192.168.1.5.mdns > 224.0.0.251.mdns: 0*- [0q] 6/0/0[|domain]
14:26:37.086903 IP 192.168.1.5.mdns > 224.0.0.251.mdns: 0*- [0q] 6/0/0[|domain]
14:26:37.252304 IP 192.168.1.3.mdns > 224.0.0.251.mdns: 0 PTR (QM)? 5.1.168.192.in-addr.arpa. (42)
14:26:37.252722 IP 192.168.1.5.mdns > 224.0.0.251.mdns: 0*- [0q] 1/0/0 (Cache flush) PTR[|domain]
14:26:37.760484 IP 192.168.1.5.mdns > 224.0.0.251.mdns: 0*- [0q] 7/0/0[|domain]
14:26:39.679595 IP 192.168.1.3.mdns > 224.0.0.251.mdns: 0 PTR (QM)? 251.0.0.224.in-addr.arpa. (42)
14:26:40.679930 IP 192.168.1.3.mdns > 224.0.0.251.mdns: 0 PTR (QM)? 251.0.0.224.in-addr.arpa. (42)
14:26:41.583695 IP 192.168.1.5 > igmp.mcast.net: igmp v3 report, 1 group record(s)
14:26:42.680327 IP 192.168.1.3.mdns > 224.0.0.251.mdns: 0 PTR (QM)? 251.0.0.224.in-addr.arpa. (42)
14:26:44.995580 IP 192.168.1.3.mdns > 224.0.0.251.mdns: 0 PTR (QM)? 3.1.168.192.in-addr.arpa. (42)
14:26:45.995860 IP 192.168.1.3.mdns > 224.0.0.251.mdns: 0 PTR (QM)? 3.1.168.192.in-addr.arpa. (42)
14:26:47.996238 IP 192.168.1.3.mdns > 224.0.0.251.mdns: 0 PTR (QM)? 3.1.168.192.in-addr.arpa. (42)
14:27:14.684927 ARP, Request who-has 192.168.1.3 tell 192.168.1.5, length 46
14:27:14.684954 ARP, Reply 192.168.1.3 is-at 00:1b:fc:c9:0c:f3 (oui Unknown), length 28
14:27:14.685077 IP 192.168.1.5 > 192.168.1.3: ICMP echo request, id 19976, seq 1, length 64
14:27:15.689748 IP 192.168.1.5 > 192.168.1.3: ICMP echo request, id 19976, seq 2, length 64
14:27:16.697731 IP 192.168.1.5 > 192.168.1.3: ICMP echo request, id 19976, seq 3, length 64
14:27:16.852533 IP 192.168.1.3.mdns > 224.0.0.251.mdns: 0 [2q] PTR (QM)? _pulse-sink._tcp.local.[|domain]
14:27:17.706059 IP 192.168.1.5 > 192.168.1.3: ICMP echo request, id 19976, seq 4, length 64
14:27:18.713719 IP 192.168.1.5 > 192.168.1.3: ICMP echo request, id 19976, seq 5, length 64
14:27:19.721726 IP 192.168.1.5 > 192.168.1.3: ICMP echo request, id 19976, seq 6, length 64
14:27:20.730050 IP 192.168.1.5 > 192.168.1.3: ICMP echo request, id 19976, seq 7, length 64
14:27:21.737719 IP 192.168.1.5 > 192.168.1.3: ICMP echo request, id 19976, seq 8, length 64
14:27:22.745704 IP 192.168.1.5 > 192.168.1.3: ICMP echo request, id 19976, seq 9, length 64
14:27:23.754071 IP 192.168.1.5 > 192.168.1.3: ICMP echo request, id 19976, seq 10, length 64
14:27:24.761698 IP 192.168.1.5 > 192.168.1.3: ICMP echo request, id 19976, seq 11, length 64
14:27:25.769699 IP 192.168.1.5 > 192.168.1.3: ICMP echo request, id 19976, seq 12, length 64
14:27:26.778020 IP 192.168.1.5 > 192.168.1.3: ICMP echo request, id 19976, seq 13, length 64
14:27:27.785698 IP 192.168.1.5 > 192.168.1.3: ICMP echo request, id 19976, seq 14, length 64
14:27:28.793697 IP 192.168.1.5 > 192.168.1.3: ICMP echo request, id 19976, seq 15, length 64
14:27:29.802049 IP 192.168.1.5 > 192.168.1.3: ICMP echo request, id 19976, seq 16, length 64
14:27:30.809681 IP 192.168.1.5 > 192.168.1.3: ICMP echo request, id 19976, seq 17, length 64
Данные ifconfig
# ifconfig
eth0 Link encap:Ethernet HWaddr 00:xx:xx:xx:xx:xx
inet addr:192.168.1.3 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: xxx::xxx:xxxx:xxxx:xxx/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:204 errors:0 dropped:0 overruns:0 frame:0
TX packets:110 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:23526 (23.5 KB) TX bytes:16868 (16.8 KB)
Interrupt:27 Base address:0x2000
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:251 errors:0 dropped:0 overruns:0 frame:0
TX packets:251 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:382247 (382.2 KB) TX bytes:382247 (382.2 KB)
pan1 Link encap:Ethernet HWaddr xx:xx:xx:xx:xx:xx
inet addr:10.7.40.1 Bcast:10.7.40.255 Mask:255.255.255.0
inet6 addr: xxx::xxx:xxxx:xxxx:xxxx/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:102 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:15560 (15.5 KB)
ppp0 Link encap:Протокол PPP (Point-to-Point Protocol)
inet addr:217.71.162.65 P-t-P:217.71.160.96 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:1366 errors:1 dropped:0 overruns:0 frame:0
TX packets:1408 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:475225 (475.2 KB) TX bytes:429606 (429.6 KB)
Данные route
route
Таблица маршутизации ядра протокола IP
Destination Gateway Genmask Flags Metric Ref Use Iface
217.71.160.96 * 255.255.255.255 UH 0 0 0 ppp0
192.168.1.0 * 255.255.255.0 U 1 0 0 eth0
link-local * 255.255.0.0 U 1000 0 0 ppp0
default 217.71.160.96 0.0.0.0 UG 0 0 0 ppp0
Ответа клиенту о результатах «пингования» не происходит.
Что здесь не так, и почему у меня не приходит трафик клиенту?
