Назад | Перейти на главную страницу

Как выполнить эхо-запрос от клиента в сети к серверу не в сети, подключенному к разным интерфейсам на одном и том же 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 с помощью команды "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 metric 10 192.168.0.0/24 dev wlan0 proto kernel scope link src 192.168.0.190 192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.235

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

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

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 

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

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

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