LINUX.ORG.RU
ФорумAdmin

Не получается пробросить маршрут с eth0 на eth1

 


0

1

Добрый день,

Имеется отладка АРМе, на ней сетевая карта Ethernet 192.168.1.69 и модем, сконфигурированный как сетевая карта 192.168.8.100. Пытаюсь организовать маршрут с eth0 до модема, пинг с компа ping /S 192.168.1.5 192.168.8.100 не проходит.

root@ATK-MP157:~# ip r s

default via 192.168.1.254 dev eth0 proto static

default via 192.168.8.1 dev eth1 proto dhcp src 192.168.8.100 metric 10

192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.69

192.168.8.0/24 dev eth1 proto kernel scope link src 192.168.8.100

192.168.8.1 dev eth1 proto dhcp scope link src 192.168.8.100 metric 10

root@ATK-MP157:~# cat /proc/sys/net/ipv4/ip_forward

1

root@ATK-MP157:~# iptables -L

Chain INPUT (policy ACCEPT)

target prot opt source destination

Chain FORWARD (policy ACCEPT)

target prot opt source destination

ACCEPT all – anywhere anywhere

ACCEPT all – anywhere anywhere

Chain OUTPUT (policy ACCEPT)

target prot opt source destination

Помогите, пжл, куда копать? Поиском искал, все команды перепробовал. Не пингуется…



Последнее исправление: AlexVM22 (всего исправлений: 3)

Что значит «организовать маршрут до модема». По умолчанию линукс отвечает на каждом интерфейсе всеми своими ip-адресами.

У вас на компе маршрут до 192.168.8.100 прописан? Вы не показали маршруты компа, а только АРМ-платы

Смотрите пакеты tcpdump'ом. Может мешает включёный rp_filter.

mky ★★★★★
()
Ответ на: комментарий от mky

Что значит «организовать маршрут до модема».

Наверное, это называется пересылка («FORWARD»).

Хочу с компа добраться до модема. Комп подключен кабелем к eth0 платы. Нужна пересылка пакетов от eth0 к eth1внутри платы с АРМом.

AlexVM22
() автор топика
Ответ на: комментарий от mky

root@ATK-MP157:~# cat /proc/sys/net/ipv4/conf/eth0/rp_filter

0

root@ATK-MP157:~# cat /proc/sys/net/ipv4/conf/eth1/rp_filter

0

AlexVM22
() автор топика
Ответ на: комментарий от AlexVM22

Эта «пересылка» базово включена и её не так просто отключить. ip-адреса назначены интерфейсам, но они все локальные для хоста. Не важно с какого интрефейса пришёл пакет, если он идёт на локальный адрес он идёт в цепочки INPUT.

Вы не написали, что у вас маршрутами на компе, может у вас там пакет для 192.168.8.100 уходит по маршуту по умолчанию через 192.168.1.254...

mky ★★★★★
()
Ответ на: комментарий от mky

Пингую из Виндов, по кабелю напрямую на плату.

Вывод route print

IPv4 таблица маршрута

Активные маршруты: Сетевой адрес Маска сети Адрес шлюза Интерфейс Метрика

      0.0.0.0          0.0.0.0      192.168.1.1      192.168.1.5    281

      0.0.0.0          0.0.0.0      192.168.1.1     192.168.1.68     50

    127.0.0.0        255.0.0.0         On-link         127.0.0.1    331

    127.0.0.1  255.255.255.255         On-link         127.0.0.1    331

127.255.255.255  255.255.255.255       On-link         127.0.0.1    331

  192.168.1.0    255.255.255.0         On-link      192.168.1.68    306

  192.168.1.0    255.255.255.0         On-link       192.168.1.5    281

  192.168.1.5  255.255.255.255         On-link       192.168.1.5    281

 192.168.1.68  255.255.255.255         On-link      192.168.1.68    306

192.168.1.255  255.255.255.255         On-link      192.168.1.68    306

192.168.1.255  255.255.255.255         On-link       192.168.1.5    281

    224.0.0.0        240.0.0.0         On-link         127.0.0.1    331

    224.0.0.0        240.0.0.0         On-link       192.168.1.5    281

    224.0.0.0        240.0.0.0         On-link      192.168.1.68    306

255.255.255.255  255.255.255.255       On-link         127.0.0.1    331

255.255.255.255  255.255.255.255       On-link       192.168.1.5    281

255.255.255.255  255.255.255.255       On-link      192.168.1.68    306

=================================================================

========== Постоянные маршруты:

Сетевой адрес Маска Адрес шлюза Метрика

      0.0.0.0          0.0.0.0      192.168.1.1  По умолчанию

===========================================================================

Можно отсюда понять что-нибудь?

AlexVM22
() автор топика
Ответ на: комментарий от mky

wireShark пинг адреса 192.168.1.69 видит, а адреса 192.168.8.100 нет.

AlexVM22
() автор топика
Ответ на: комментарий от AlexVM22

На АРМ, куда подключен модем:

sudo echo 1 > /proc/sys/net/ipv4/ip_forward

На Windows:

route add 192.168.8.0 mask 255.255.255.0 192.168.1.69

В командной строке (CMD.EXE) запущенной через пункт меню «Запуск от имени Администратора».

Лучше АРМ подключи к роутеру твоей сети.

И пропиши маршрут на роутере.

Не понятно как ты подключил АРМ к ПК с Windows, точнее какие адреса назначены на сетевом интерфейсе ПК с Windows, который подключен к АРМ.

Если комп с Windows подключался проводом к роутера и на его сетевом интерфейсе прописан статический IP и ты вынул провод от компа с Windows из роутера и вставил в АРМ, то маршрута достаточно.

Если на ПК с Windows два сетевых адаптера, то тебе нужно на втором сетевом адаптере, который ты подключаешь к АРМ назначить адрес из другой сети, например 192.168.2.10/24, а на АРМ, например 192.168.2.11/24 и тогда указывать этот адрес в маршруте.

kostik87 ★★★★★
()
Последнее исправление: kostik87 (всего исправлений: 2)
Ответ на: комментарий от kostik87

Если комп с Windows подключался проводом к роутера и на его сетевом интерфейсе прописан статический IP и ты вынул провод от компа с Windows из роутера и вставил в АРМ, то маршрута достаточно.

Да, так и есть. Сначала пинговал 1 посеть от роутера, потом вынул кабель из роутера и воткнул в комп.

Если на ПК с Windows два сетевых адаптера, то тебе нужно на втором сетевом адаптере, который ты подключаешь к АРМ назначить адрес из другой сети, например 192.168.2.10/24, а на АРМ, например 192.168.2.11/24 и тогда указывать этот адрес в маршруте.

ок, идея ясна, спасибо

AlexVM22
() автор топика
Ответ на: комментарий от AlexVM22

Нарисуй схему сети, как и что у тебя подключено.

Если на ПК с Windows у тебя два сетевых адаптера, то какие на каждом из них IP адреса.

Я сделал несколько предположений в сообщении на которое ты ответил, но ты их не прокомментировал.

kostik87 ★★★★★
()
Ответ на: комментарий от AlexVM22

но все равно не пингуется

А wireShark стал видить пинги? Пока вы не увидите исходящие от виндового компа пинги, нечего вводить команды в линуксе.

mky ★★★★★
()
Ответ на: комментарий от mky

У него похоже два сетевых адпатера на Windows.

Один подключен к роутера, а второй - к АРМ.

На первом есть IP адрес, на втором - нет.

Без объединения их в мост или назначения другой сети на втором адаптере Windows и на АРМ или подключения АРМ к роутеру и прописывания маршрута на роутере ничего у него работать не будет.

Но это всё догадки, он вообще не написал как у него и что подключено.

kostik87 ★★★★★
()
Ответ на: комментарий от kostik87

Структура такая:

Комп через вайфай подключен к роутеру. Адрес 192.168.1.68.

Железяка подключена к компу напрямую через эзернет, адрес компа 192.168.1.5, адрес железяки 192.168.1.69.

В железяку воткнут модем, который видится сетевой картой с адресом 192.168.8.100.

В пинге явно указываю, через что стучаться в железяку -
ping /S 192.168.1.5 192.168.8.100

чтоб комп не вздумал через роутер лезть.

Вроде все.

AlexVM22
() автор топика
Ответ на: комментарий от AlexVM22

У тебя не будет нормально работать когда на двух сетевых интерфейсах адрес из одной сети.

Меняй адрес на АРМ и на ethernet интерфейсе компа с Windows на адресацию в другой сети.

Либо подключай АРМ кабелем к роутеру и на роутере прописывай маршрут до сети 192.168.8.0/24 через адрес роутера.

kostik87 ★★★★★
()
Последнее исправление: kostik87 (всего исправлений: 1)
Ответ на: комментарий от kostik87

У тебя не будет нормально работать когда на двух сетевых интерфейсах адрес из одной сети.

Объясни, пожалуйста, чуть подробнее, с адресами.

AlexVM22
() автор топика
Ответ на: комментарий от AlexVM22

Это не «путь», а «маршрут». Я про него в первом комментарии спросил.

В выводе iptables-save случаем нет правил в других таблицах, кроме filter, содержимое которой вы показали?

mky ★★★★★
()
Ответ на: комментарий от mky

В выводе iptables-save случаем нет правил в других таблицах, кроме filter, содержимое которой вы показали?

iptables-save вообще ничего не выводит,

root@ATK-MP157:~# iptables -L -v -n

Chain INPUT (policy ACCEPT 1 packets, 85 bytes) pkts bytes target prot opt in out source destination

Chain FORWARD (policy ACCEPT 4 packets, 240 bytes) pkts bytes target prot opt in out source destination

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination

Байты в INPUT и FORWARD - попытки пинга 192.168.8.100

AlexVM22
() автор топика
Ответ на: комментарий от mky

вывод tcpdump

00:21:44.574731 IP 192.168.1.5 > _gateway: ICMP echo request, id 1, seq 33, length 40

00:21:49.095888 IP 192.168.1.5 > _gateway: ICMP echo request, id 1, seq 34, length 40

00:21:54.103613 IP 192.168.1.5 > _gateway: ICMP echo request, id 1, seq 35, length 40

00:21:59.092628 IP 192.168.1.5 > _gateway: ICMP echo request, id 1, seq 36, length 40

AlexVM22
() автор топика
Ответ на: комментарий от AlexVM22

Ну ни причём здесь это.

Сходи почитай на хабр статьи из серии «Сети для самых маленьких».

Если кратко.

То когда ты пытаешься отправить пакет получателю. То операционная система просматривает таблицу маршрутизации.

В таблице маршрутизации прописаны маршруты до сетей.

В твоём случае маршрут до сети 192.168.8.0/24 через адрес 192.168.1.69.

И вот ты пытаешься пинговать адрес 192.168.8.100. ОС перебирает маршруты в таблице, накладывает на адрес маску сети из маршрута и получает адрес сети получателя, если адрес сети в маршруте совпадает с адресом сети получателя, то ОС берёт адрес шлюза через который доступна сеть.

В твоём случае доходит до маршрута в сеть 192.168.8.0/24, накладывает маску /24 на адрес 192.168.8.100 и получает сеть получателя 192.168.8.0.

Берёт из маршрута информация об адресе шлюза, в твоём случае это 192.168.1.69 и смотрит опять таблицу маршрутизации.

В твоей Windows с адресами 192.168.1.68 на WIFI и 192.168.1.5 на Ethernet будет две записи в таблице маршрутизации:

192.168.1.0    255.255.255.0         On-link      192.168.1.68    306
192.168.1.0    255.255.255.0         On-link      192.168.1.5    метрика не знаю какая будет, но либо такая же (306), либо больше

Накладывает маску 255.255.255.0 (/24) из первого маршрута, видит что сеть 192.168.1.0 доступна через IP адрес 192.168.1.68 и отправляет пакет до адреса 192.168.1.69 через WIFI сетевой интерфейс.

Второй маршрут тоже проверяется, но там видимо метрика выше, либо Windows просто берёт первый найденный, если метрики равны.

В итоге через Wifi сетевой интерфейс адрес 192.168.1.69 доступен не будет, т.к. он у тебя подключен к ethernet интерфейсу ноутбука и это разные физические каналы.

Радио канал и медный канал.

Там ещё перед отправкой пакета определяется МАК адрес сетевой карты получателя.

Но он найден не будет, т.к. пакет уходит через Wifi, а не ethernet интерфейс.

При ping /s 192.168.1.5 ты явно указываешь что пинг нужно отправлять через Ethernet интерфейс.

Ты можешь попробовать добавить ещё один маршрут

route add 192.168.1.69 mask 255.255.255.0 192.168.1.5

Но не уверен, что так сработает.

Поэтому иди читай «Сети для самых маленьких».

А после можешь либо использовать другую сеть на Ethernet (проводном) сетевом интерфейсе Windows и поменять так же IP адрес на АРМ на адрес в другой сети.

Либо подключить АРМ к роутеру и прописать маршрут на роутере.

kostik87 ★★★★★
()
Последнее исправление: kostik87 (всего исправлений: 1)
Ответ на: комментарий от kostik87

ок, спасибо, я в самом деле в сетях не рублю. Думаю, для меня оптимальный вариант прописать на маршрут роутере.

AlexVM22
() автор топика
Ответ на: комментарий от kostik87

Ты можешь попробовать добавить ещё один маршрут

route add 192.168.1.69 mask 255.255.255.0 192.168.1.5

Но не уверен, что так сработает

Не хочет

C:\WINDOWS\system32>route add 192.168.1.69 mask 255.255.255.0 192.168.1.5

Сбой добавления маршрута: Параметр задан неверно.

Лан, пошел читать книжки для маленьких

AlexVM22
() автор топика
Ответ на: комментарий от AlexVM22

Не хочет

Потому что ты Вася.

Маска должна быть 255.255.255.255

route add 192.168.1.69 mask 255.255.255.255 192.168.1.5

Ты вообще в сетях ничего не понимаешь.

Но повторяю, что так может не заработать.

Самое простое - поменять IP адрес на АРМ, например на 192.168.2.11/24, после чего назначить на Ethernet интерфейсе в Windows адрес 192.168.2.10/24.

После чего удалить добавленный ранее маршрут и добавить новый

route add 192.168.8.0 mask 255.255.255.0 192.168.2.11

Либо подключи АРМ к роутеру проводом и на роутере пропиши маршрут, который ранее добавлял в Windows, он указан в нескольких сообщениях выше.

kostik87 ★★★★★
()

Вам нужно либо добавить на модеме маршрут до 192.168.1.0/24 через его сетевой интерфейс (не через LTE), либо настроить NAT в интерфейс модема на ARM-плате.

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

ValdikSS ★★★★★
()
Ответ на: комментарий от ValdikSS

Не получается пробросить маршрут с eth0 на eth1 (комментарий)

Думаю не доходят.

К тому же автор написал, что модем у него в режиме сетевой карты. (RNDIS).

kostik87 ★★★★★
()
Последнее исправление: kostik87 (всего исправлений: 1)
Ответ на: комментарий от ValdikSS

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

Похоже на то, деньги списываются…

AlexVM22
() автор топика
Ответ на: комментарий от AlexVM22

Пинг 192.168.1.69 работает сейчас?

Если да, то подключись к АРМ по SSH и смотри вывод tcpdump

tcpdump -ni eth0 host 192.168.1.5

И что за шлюз по умолчанию на АРМ, 192.168.1.254?

kostik87 ★★★★★
()
Ответ на: комментарий от AlexVM22

Пинг - настолько малый пакет, что у тебя там должны списываться сотые, если не тысячные или миллионные доли от копейки.

Если у тебя только тариф не для лохов какой-нибудь.

Что вообще за тариф, что там за трафик деньги списываются? Модемы обычно на помесячной оплате за доступ в Internet и безлимитном трафике.

Или ты в модем засунул сим карту из мобильного телефона?

В таком случае провайдер мобильной связи может по IMEI определить, что СИМ карта стоит не в телефоне, а в устройстве другого типа и выставить дорогой тариф.

kostik87 ★★★★★
()
Ответ на: комментарий от kostik87

Он же уже показывал tcpdump. Вы лучше напишите, в каком случае:

iptables-save вообще ничего не выводит,

mky ★★★★★
()
Ответ на: комментарий от kostik87

Да при чём тут тариф? Он же пингует 192.168.8.100, который на интерфейсе ARM-платы. А на модеме 192.168.8.1, в первом же сообщении видно, какой адрес на ARM-плате, а какой шлюзом.

mky ★★★★★
()
Ответ на: комментарий от kostik87

Пинг 192.168.1.69 работает сейчас?

Да, пингуется.

Если да, то подключись к АРМ по SSH и смотри вывод tcpdump

00:55:37.435502 IP 192.168.1.5 > 192.168.1.69: ICMP echo request, id 1, seq 47, length 40

00:55:37.435823 IP 192.168.1.69 > 192.168.1.5: ICMP echo reply, id 1, seq 47, length 40

00:55:38.444283 IP 192.168.1.5 > 192.168.1.69: ICMP echo request, id 1, seq 48, length 40

00:55:38.444583 IP 192.168.1.69 > 192.168.1.5: ICMP echo reply, id 1, seq 48, length 40

00:55:39.455959 IP 192.168.1.5 > 192.168.1.69: ICMP echo request, id 1, seq 49, length 40

00:55:39.456251 IP 192.168.1.69 > 192.168.1.5: ICMP echo reply, id 1, seq 49, length 40

00:55:40.458398 IP 192.168.1.5 > 192.168.1.69: ICMP echo request, id 1, seq 50, length 40

00:55:40.458684 IP 192.168.1.69 > 192.168.1.5: ICMP echo reply, id 1, seq 50, length 40

И что за шлюз по умолчанию на АРМ, 192.168.1.254?

да,

default via 192.168.1.254 dev eth0 proto static

AlexVM22
() автор топика
Ответ на: комментарий от mky

Это он показывал когда делал пинг

ping /s 192.168.1.5 192.168.8.100

В этом случае пинг может дойти до 192.168.1.69, т.к. здесь явно указан адрес сетевого интерфейса с которого отправлять пакет.

модем, сконфигурированный как сетевая карта 192.168.8.100

И если вот это означает, что модем в RNDIS режиме, то ответный пакет не должен уходить в мир через модем.

iptables-save вообще ничего не выводит,

В этом случае используются политики по умолчанию, это нормально.

kostik87 ★★★★★
()
Ответ на: комментарий от kostik87

21:27:58 Мобильный интернет/Пакет интернета 0 -0,61 ₽

20:58:43 Мобильный интернет/Пакет интернета 0 -0,61 ₽

20:29:25 Мобильный интернет/Пакет интернета 0 -0,61 ₽

20:08:25 Мобильный интернет/Пакет интернета 0 -0,61 ₽

либо при включении что-то отсылает, либо пинг

AlexVM22
() автор топика
Ответ на: комментарий от AlexVM22

да,

Что да? Я спрашиваю что это за шлюз, где он находится, он подключен?

00:55:37.435502 IP 192.168.1.5 > 192.168.1.69: ICMP echo request, id 1, seq 47, length 40

00:55:37.435823 IP 192.168.1.69 > 192.168.1.5: ICMP echo reply, id 1, seq 47, length 40

Пинг-то нужно запускать до адреса 192.168.8.100.

Но вообще, я советую подключить АРМ к роутеру и прописать маршрут на нём, либо сменить сеть на АРМ и на Ethernet интерфейсе Windows.

Т.к. ты пытаешься сделать с IP адресами в одной сети на разных сетевых интерфейсах нормально работать не будет.

Это всё через одно место.

kostik87 ★★★★★
()
Ответ на: комментарий от AlexVM22

tcpdump не для того адреса написал

root@ATK-MP157:~# tcpdump -ni eth0 host 192.168.1.5

[ 4447.968027] device eth0 entered promiscuous mode tcpdump: verbose output suppressed, use -v or -vv for full protocol decode

listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes

01:04:58.147650 IP 192.168.1.5 > 192.168.8.1: ICMP echo request, id 1, seq 55, length 40

01:05:03.057612 IP 192.168.1.5 > 192.168.8.1: ICMP echo request, id 1, seq 56, length 40

01:05:08.057955 IP 192.168.1.5 > 192.168.8.1: ICMP echo request, id 1, seq 57, length 40

01:05:13.044581 IP 192.168.1.5 > 192.168.8.1: ICMP echo request, id 1, seq 58, length 40

AlexVM22
() автор топика
Ответ на: комментарий от kostik87

Работает))

Пинг-то нужно запускать до адреса 192.168.8.100.

C:\WINDOWS\system32>ping /S 192.168.1.5 192.168.8.100

Обмен пакетами с 192.168.8.100 по с 192.168.1.5 с 32 байтами данных:

Ответ от 192.168.8.100: число байт=32 время=1мс TTL=64

Ответ от 192.168.8.100: число байт=32 время=1мс TTL=64

Ответ от 192.168.8.100: число байт=32 время=1мс TTL=64

Ответ от 192.168.8.100: число байт=32 время=1мс TTL=64

Всем спасибо)))

AlexVM22
() автор топика
Ответ на: комментарий от AlexVM22

192.168.8.1 - это сетевой интерфейс в модеме. Модем уж точно ничего не знает про сеть 192.168.1.5 с которой приходят запросы.

У тебя будет пинговаться только адрес 192.168.8.100, на сетевом интерфейсе АРМ, который создаётся при подключении USB модема к АРМ.

Чтобы пинговался 192.168.8.1 тебе нужно делать на АРМ трансляцию сетевых адресов (NAT), либо как-то на модеме прописывать маршрут до сети 192.168.1.0/24 через адрес 192.168.8.100.

Почему ты делаешь не понять что? Пишешь делаю пинг 192.168.8.100, а сам делаешь пинг 192.168.8.1.

Но это потому, что ты ничего вообще в сетях не понимаешь.

kostik87 ★★★★★
()
Ответ на: комментарий от kostik87

В боевой конфигурации однозначно прописывать маршрут в роутере. Благодарю!

AlexVM22
() автор топика
Ответ на: комментарий от AlexVM22

И что дальше? Ну пингуется он так.

Но ты сможешь только так и пинговать. Другой обмен пакетов, кроме как пинг с параметром /s 192.168.1.5 работать без маршрута не будет.

Тебе нужно прописывать ещё один маршрут до адреса 192.168.1.69 через адрес 192.168.1.5, выше я написал как, маску нужно правильно указывать.

kostik87 ★★★★★
()
Ответ на: комментарий от kostik87

iptables-save вообще ничего не выводит,

В этом случае используются политики по умолчанию, это нормально.

Что нормально? Всегда в этом случае политики выводились и счётчики. А подобное поведение при запуске iptables-save в LXC-контейнере.

И, подозрительно, что такие счётчики у ″iptables -L -n″. INPUT, один пакет, 85 байт, а пинг у него 40 байт. Либо ТС постоянно сбрасывает счётчик пакетов iptables, либо вобще прикалывается.

mky ★★★★★
()
Ответ на: комментарий от mky

ну вот щас

root@ATK-MP157:~# iptables -L -v -n

Chain INPUT (policy ACCEPT 72 packets, 6352 bytes) pkts bytes target prot opt in out source destination

Chain FORWARD (policy ACCEPT 33 packets, 1980 bytes) pkts bytes target prot opt in out source destination

Chain OUTPUT (policy ACCEPT 99 packets, 7232 bytes) pkts bytes target prot opt in out source destination

AlexVM22
() автор топика
Ответ на: комментарий от mky

root@ATK-MP157:~# iptables-save

Generated by iptables-save v1.8.4 on Sat Feb 8 01:22:32 2020

*filter

:INPUT ACCEPT [81:6910]

:FORWARD ACCEPT [33:1980]

:OUTPUT ACCEPT [99:7232]

COMMIT

iptables-save начала выводить инфу

AlexVM22
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.