Информация:

У меня есть маршрутизатор, окно linux и клиенты, подключенные к коммутатору.

Маршрутизатор это ссылка на внешний / интернет с IP и подсетью:

  • 192.168.8.1

  • 192.168.8.0/24

соответственно мой linux box (raspberry pi) настроен на статический IP-конфиг (подробности см. ниже), который подключается к маршрутизатору с помощью ip 192.168.8.254

Все мои клиенты (и я) используют коммутатор Ethernet, который подключается к Linux. IP-адрес linux box (на коммутаторе Ethernet) - 192.168.1.254 и он работает с подсетью 192.168.1.0/24

Я включил переадресацию пакетов на Linux, а также добавил правила iptables для пересылки трафика между обоими интерфейсами.

clients <--> switch < --- > eth0(PI) <==> wlan0(PI) < ---- > router <--> google

Я нашел этот вопрос на SF, но я не уверен, если / как это применимо.

Проблема:

Трафик не пересылается.

На моем ПК я могу пропинговать linux box (eth0) 192.168.1.254 , но не 8.8.8.8 .

В окне linux я могу пропинговать мой компьютер 192.168.1.245 , маршрутизатор 192.168.8.1 и Google 8.8.8.8

Некоторый поиск в Google по этой проблеме не показывает ничего, что я не пробовал.

Пожалуйста, смотрите информацию ниже

Буду признателен за помощь, если требуется дополнительная информация, пожалуйста, оставьте комментарий

Подробности: (ссылка на вставку деталей)

// маршрут sudo -n

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.8.1     0.0.0.0         UG    0      0        0 wlan0
0.0.0.0         192.168.8.1     0.0.0.0         UG    303    0        0 wlan0
169.254.0.0     0.0.0.0         255.255.0.0     U     202    0        0 eth0
192.168.0.0     0.0.0.0         255.255.0.0     U     0      0        0 wlan0
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.8.0     0.0.0.0         255.255.255.0   U     303    0        0 wlan0

// sudo iptables -L

Chain INPUT (policy ACCEPT)
target     prot opt source               destination        

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination        
ACCEPT     all  --  anywhere             anywhere             state NEW,RELATED,ESTABLISHED
ACCEPT     all  --  anywhere             anywhere             state NEW,RELATED,ESTABLISHED

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

// / etc / network / interfaces

# interfaces(5) file used by ifup(8) and ifdown(8)

# Please note that this file is written to be used with dhcpcd
# For static IP, consult /etc/dhcpcd.conf and 'man dhcpcd.conf'

# Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d

auto lo
iface lo inet loopback

allow-hotplug wlan0
iface wlan0 inet static
        address 192.168.8.254
        netmask 255.255.0.0
        gateway 192.168.8.1
        network 192.168.8.0
        broadcast 192.168.8.255
        metric 0
    post-up route add default gw 192.168.8.1 metric 0
    pre-down route del default gw 192.168.8.1
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

allow-hotplug eth0
iface eth0 inet static
        address 192.168.1.254
        gateway 192.168.8.254
        netmask 255.255.255.0
        network 192.168.1.0
        broadcast 192.168.1.255
        metric 1
    post-up route add default gw 192.168.8.254 metric 1
    pre-down route del default gw 192.168.8.254

1 ответ1

0

Пожалуйста, обратите внимание:

Создавая этот вопрос, я выяснил решение,

Но я чувствовал, что другие тоже могут извлечь из этого пользу:

Я немного прочел эту тему, но подумал, что это может быть что-то, связанное с маршрутизацией до / после, но не мог понять, как это сделать.

Решение:

Читая здесь, я натолкнулся на несколько интересных тем, но мне самому не повезло,

после дополнительных поисков, я нашел эту полезную страницу с git, объясняющую похожую ситуацию.

Таким образом, я попытался:

sudo iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE

Любая моя проблема была решена.

Надеюсь, это поможет кому-то

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .