Portál AbcLinuxu, 25. května 2025 21:28
Mám dvě sítě, které chci propojit pomocí IPSEC na IPv4 (tunel). Na jednom serveru je debian 8, na druhém obstarožní 6 a kernel 2.6.32. Na novém serveru s debian 8 není problém, nefunguje ale ipsec na kernelu 2.6.32.
IPSEC mezi oběma stroji normálně nastartuje a vytvoří tunel, ale problém je s forwardingem či s čím.
Na problematickém stroji je několik síťových karet, roli hrají síťové karty dvě:
eth0 - internet - 79.79.79.79 br0 - intranet - 192.168.1.1
Protunelovaná síť: 10.100.1.0/24
Ping ze sítě 10.100.1.0/24 na 192.168.1.1 chodí.
Ping ze sítě 10.100.1.0/24 na 192.168.1.x nechodí.
Pomocí pravidel v iptables si vypíšu cestu paketů:
iptables -A PREROUTING -t nat -s 10.100.1.0/24 -j LOG --log-prefix "IPSEC FW-I " iptables -A POSTROUTING -t nat -d 10.100.1.0/24 -j LOG --log-prefix "IPSEC FW-O " iptables -A FORWARD -d 10.100.1.0/24 -j LOG --log-prefix "IPSEC FW " iptables -A FORWARD -s 10.100.1.0/24 -j LOG --log-prefix "IPSEC FW "
v logu dostanu:
IPSEC FW-I IN=eth0 SRC=10.100.1.100 DST=192.168.1.1 ...
IPSEC používám poměrně hodně. Na jiných strojích vypadá podobný výpis v logu jinak (nevím, jestli se objevuje i výpis z pravidla FORWARD):
IPSEC FW-I IN=eth0 OUT= SRC=10.100.1.100 DST=192.168.1.1 ... IPSEC FW-O IN= OUT=br0 SRC=10.100.1.100 DST=192.168.1.1 ...
Jakým způsobem bych mohl donutit kernel 2.6.32, abych dostal pakety na potřebný síťový interface? Díky.
Řešení dotazu:
Dobrý nápad podívat se důkladně do logu ipsec démona. Ne, že bych to neudělal už před tím.
Měl jsem špatně napsané pravidlo pro setkey:
spdadd 192.168.1.0/24 10.100.1.0/24 any -P out ... spdadd 10.100.1.0/24 192.168.1.0/24 any -P out ...
Po opravě druhého out na in se to asi rozjelo. Díky.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.