Я провожу сетевой эксперимент по пересылке IP-пакетов, но я не знаю, почему он работает.
У меня есть машина linux с двумя сетевыми интерфейсами, eth0 и eth1, оба со статическим IP-адресом (eth0: 192.168.100.1, eth1: 192.168.101.2).
Моя цель проста, я просто хочу переслать ip-пакеты из eth1 с адресатом в подсети 192.168.100.0/24 в eth0 и переслать ip-пакеты из eth0 с адресатом в подсети 192.168.101.0/24 в eth1.
Я включил IP-пересылку с:
sysctl -w net.ipv4.ip_forward=1
моя таблица маршрутизации выглядит так:
# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.100.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.101.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
Но, когда я пытаюсь пинговать с 192.168.100.25 до 192.168.101.47, это не работает.
источник
iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT
иiptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
к моим таблицам. И моя политика INPUT, OUTPUT и FORWARD - всеACCEPT
.traceroute
на своем хосте, это показывает, что пакет идет к «маршрутизатору» (192.168.100.1), но это не идет дальше.Вам необходимо добавить маршрут к 192.168.100.25 и 192.168.101.47.
Если ваш сервер пересылки имеет IP-адреса 192.168.100.1 и 192.168.101.1, вы должны добавить в клиент 192.168.100.25
и в клиенте 192.168.101.47
(Это работает только с включенной пересылкой, без iptables).
источник