Как пинговать с клиента в сети на сервер, не подключенный к сети, подключенный к разным интерфейсам на одном и том же Linux-компьютере

Я работаю над одной коробкой Linux. Я хочу что-то подобное.

сеть --->wlan0---->eth0-> другой сервер.

И интерфейс wlan0, и интерфейс eth0 находятся в одной коробке Linux. Я использую dhcp, который назначает что-то, скажем, 192.168.3.21 моему интерфейсу wlan0. Я назначаю статический IP скажем 192.168.3.101 моему интерфейсу eth0 и 192.168.3.102 другому серверу. Теперь я хочу пропинговать из сети (192.168.3.XX) другой сервер по адресу 192.168.3.102 и мой eth0 по адресу 192.168.3.101. Я не могу этого сделать.

Я даже не могу пропинговать мой другой сервер в 192.168.3.102 из моей коробки linux.

Я включил ip forwarding через команду "echo 1 > /proc/sys/net/ipv4/ip_forward".

Я использовал следующую команду, чтобы включить пересылку nat тоже.

iptables -A FORWARD -i wlan0 -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i eth0 -o wlan0 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Тем не менее я не могу пинговать.

Пожалуйста, дайте мне знать, что мне не хватает. Любая помощь будет высоко ценится.

Вот вывод iptables-save:-

# Generated by iptables-save v1.6.0 on Mon Feb 19 10:17:54 2018
*raw
:PREROUTING ACCEPT [481:39595]
:OUTPUT ACCEPT [325:24634]
COMMIT
# Completed on Mon Feb 19 10:17:54 2018
# Generated by iptables-save v1.6.0 on Mon Feb 19 10:17:54 2018
*nat
:PREROUTING ACCEPT [1:229]
:INPUT ACCEPT [1:229]
:OUTPUT ACCEPT [1:76]
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -o wlan0 -j MASQUERADE
-A POSTROUTING -o eth0 -j MASQUERADE
COMMIT
# Completed on Mon Feb 19 10:17:54 2018
# Generated by iptables-save v1.6.0 on Mon Feb 19 10:17:54 2018
*mangle
:PREROUTING ACCEPT [482:39927]
:INPUT ACCEPT [474:38801]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [325:24634]
:POSTROUTING ACCEPT [325:24634]
COMMIT
# Completed on Mon Feb 19 10:17:54 2018
# Generated by iptables-save v1.6.0 on Mon Feb 19 10:17:54 2018
*filter
:INPUT ACCEPT [63:6229]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [1:76]
-A FORWARD -i wlan0 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
COMMIT
# Completed on Mon Feb 19 10:17:54 2018

Вот мой вывод для IP-маршрута: -

по умолчанию через 192.168.0.1 dev wlan0 метрика 10 192.168.0.0/24 dev wlan0 ссылка на ядро ​​протока src 192.168.0.190 192.168.0.0/24 dev eth0 ссылка на ядро ​​протока src 192.168.0.235

1 ответ

Если вы хотите иметь маршрутизатор с двумя интерфейсами, они должны находиться в отдельных подсетях (пример 192.168.0.0/24 отличается от 192.168.5.0/24). У вас есть столкновение здесь, видимое в вашем ip routeэто не сработает.

Если вы хотите использовать одну и ту же подсеть на обоих интерфейсах, это не маршрутизатор, а двухпортовый коммутатор, который обычно называют мостом.

  • Вы можете создать один мостовой интерфейс и назначить там один IP, возможно, через DHCP.
  • Wlan0 и eth0 должны быть оставлены без IP-адресов, они становятся прозрачными членами моста.

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

Создайте интерфейс моста

brctl addbr br0

Добавить интерфейсы к мосту

brctl addif eth0

brctl addif wan0

Обнулить IP интерфейсы.

ifconfig eth0 0.0.0.0 promisc up

ifconfig wan0 0.0.0.0 promisc up

Включите интерфейс моста

ifconfig br0 10.0.1.1 netmask 255.255.255.0 broadcast 10.0.1.255 
Другие вопросы по тегам