Как пинговать с клиента в сети на сервер, не подключенный к сети, подключенный к разным интерфейсам на одном и том же 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