Я новичок на этом сайте и хочу заранее извиниться за любые ошибки, глупые вопросы и т. Д. (Если таковые имеются).
У меня проблема с сетью, и я надеюсь, что у кого-то есть идеи, как ее решить. Я почти уверен, что это просто.
Прежде всего, давайте представим мою конфигурацию / геометрию сети:
------
( ) SRV PC-A PC-B
( ) ╔════════════╤══╗ ╔═══╤═══════════╗ ╔════════════╤══╗
( INTERNET )═══>║ 95.12.34.56│ ║ ║ │192.168.1.1║═══>║ 192.168.1.5│ ║
( ) ╟────────────┘ ║ ║ └───────────╢ ╟────────────┘ ║
( ) ║ ║ ║ ║ ╚═══════════════╝
------ ║ ┌───────────╢ ╟────────────┐ ║
║ │192.168.0.1║═══>║ 192.168.0.4│ ║
╚═══╧═══════════╝ ╚════════════╧══╝
SRV и ПК-А работать на Windows XP Pro SP2. У них обоих одинаковый программный пакет, который выполняет межсетевой экран, NAT, переадресацию портов и перезапись.
ПК-В запускает Arch Linux без iptables правила, он использует только hosts.allow и hosts.deny подходить. ПК-В также есть раздел с Windows XP Pro SP2 (свежая установка, никакого другого программного обеспечения, которое взаимодействует с системой, брандмауэр отключен).
# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
ПК-А есть правила для перенаправления и перезаписи портов:
- порт 3333 => порт 3306 @ 192.168.1.5;
- все ICMP => 192.168.1.5
Теперь поведение:
Случай 1) когда ПК-В работает Windows
- из ПК-В Я могу пинг IP из интернета, IP из 192.168.0.0/24 и IP из сетей 192.168.1.0/24
- если я запускаю сервер MySQL на ПК-В, Я могу подключиться к нему из SRV (с указанием хоста 192.168.0.4 и порта 3333), а также из ПК-А (netstat показывает установленное соединение с 192.168.0.1, когда SRV подключается с помощью перенаправления и перезаписи портов)
- из SRV Я могу пинговать ПК-В
Случай 2) когда ПК-В работает Arch Linux:
- из ПК-В Я могу пинг IP-адреса из Интернета, IP-адреса из 192.168.1.0/24 и только IP-адрес 192.168.0.4, но не другие IP-адреса из сети 192.168.1.0/24
- если я запускаю сервер MySQL на ПК-В, Я не может подключиться к нему из SRV (с указанием хоста 192.168.0.4 и порта 3333), только с ПК-А
Выполняя все эти тесты, SRV и ПК-А работали без изменений, перезапусков или чего-то подобного. Они правильно выполняют свою работу и запускают Windows на ПК-В докажите это. Я также провел проверку пакетов с помощью Wireshark, и пакеты доставляются на машину Linux.
Теперь вопрос в том, что не так с машиной Linux? Почему в Windows все работает так, как должно, а в Linux - нет?
Я предполагаю, что что-то связанное с маршрутами отсутствует.
Вероятно, система не знает, как отвечать на пакеты с исходным IP = 192.168.0.1 (но почему в этом случае она может пинговать 192.168.0.4?).
Маршруты:
# ip route show
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.5
default via 192.168.1.1 dev eth0
Вы можете использовать ssh 192.168.1.5? Вы разрешили 192.168.0.0/24 в host.allow?
192.168.1.1 отвечает за пересылку запроса с 192.168.1.5 на 192.168.0.0/24, потому что в соответствии с маршрутами 192.168.1.1 является шлюзом вашего Linux-сервера.