Portál AbcLinuxu, 2. listopadu 2025 23:14
echo "1" > /proc/sys/net/ipv4/ip_forwarda pak zapínám SNAT takto:
iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to "IP eth0"Zkoušel jsem i modifikaci s MASQURADE, ale bez výsledku. Díky za každý tip.
ip route) a obsah iptables (iptables -L -vn; iptables -t nat -L -vn). A taky vysvětli, co znamená "ani ťuk" (čili jak to testuješ).
root@router sysconfig]# /sbin/iptables -L -vn
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
73 5340 ACCEPT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
0 0 ACCEPT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
0 0 ACCEPT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:412
0 0 ACCEPT icmp -- eth0 * 0.0.0.0/0 0.0.0.0/0 icmp type 8
0 0 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
27 2471 ACCEPT all -- eth1 * 0.0.0.0/0 10.0.0.0/24
0 0 ACCEPT all -- eth1 * 0.0.0.0/0 192.168.84.1
0 0 ACCEPT all -- eth1 * 0.0.0.0/0 10.0.0.0/24
0 0 ACCEPT udp -- eth1 * 0.0.0.0/0 0.0.0.0/0 udp dpt:67
0 0 ACCEPT all -- * * 0.0.0.0/0 192.168.84.1 state RELATED,ESTABLISHED
0 0 LOG all -- * * 0.0.0.0/0 0.0.0.0/0 limit: avg 12/hour burst 5 LOG flags 0 level 4 prefix `INPUT drop: '
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT tcp -- eth0 eth1 0.0.0.0/0 10.0.0.6 tcp dpt:80
4 240 ACCEPT all -- eth1 * 0.0.0.0/0 0.0.0.0/0
4 240 ACCEPT all -- eth0 eth1 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
0 0 LOG all -- * * 0.0.0.0/0 0.0.0.0/0 limit: avg 12/hour burst 5 LOG flags 0 level 4 prefix `forward drop: '
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT all -- * * 127.0.0.1 0.0.0.0/0
33 2320 ACCEPT all -- * * 10.0.0.0/24 0.0.0.0/0
57 8440 ACCEPT all -- * * 192.168.84.1 0.0.0.0/0
0 0 ACCEPT udp -- * eth1 0.0.0.0/0 0.0.0.0/0 udp spt:67 dpt:68
0 0 LOG all -- * * 0.0.0.0/0 0.0.0.0/0 LOG flags 0 level 4 prefix `OUTPUT drop: '
Chain IN_FW (0 references)
pkts bytes target prot opt in out source destination
Chain logdrop (0 references)
pkts bytes target prot opt in out source destination
0 0 LOG all -- * * 0.0.0.0/0 0.0.0.0/0 limit: avg 5/hour burst 3 LOG flags 0 level 4 prefix `Rezervovana adresa: '
0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0
[root@router sysconfig]#
[root@router sysconfig]# /sbin/iptables -t nat -L -vn
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 DNAT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 to:10.0.0.6:80
Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 MASQUERADE all -- * eth0 0.0.0.0/0 0.0.0.0/0
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
[root@router sysconfig]# /sbin/ip route
10.0.0.0/24 dev eth1 proto kernel scope link src 10.0.0.1
192.168.84.0/24 dev eth0 proto kernel scope link src 192.168.84.1
192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1
169.254.0.0/16 dev eth1 scope link
default via 192.168.84.3 dev eth0
Lze z těchto informací něco poznat? Já mám dojem že nefunguje ip forwarding...
Pravidlo má vypadat nějak takto:
iptables -t nat -A POSTROUTING -s $LAN_IP -j SNAT --to-source $INTERNET_IP
+ příslušná pravidla v FORWARD řetězci v tabulce FILTER, třeba něco takového:
iptables -A FORWARD -i $INET_IFACE -o $LAN_IFACE -m state --state ESTABLISHED,RELATED -j ACCEPT
RHEL má nějaký defaultní FW, předpokládám, že jste jej vypnul (service iptables stop). Když tam sem dejte výpis iptables -L -n -t filter a též -t nat
cat /proc/sys/net/ipv4/ip_forwardjestli je tam opravdu 1. Pokud ano, tak zkusim docasne smazat vsechny tabulky krome nat iptables
iptables -t mangle -F iptables -Fa zkontrolovat, ze v tabulce nat zustalo jen to, co chci
iptables -t nat -nvL
[root@router sysconfig]# /sbin/iptables -L -n -t filter Chain INPUT (policy ACCEPT) target prot opt source destination ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:412 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 icmp type 8 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 ACCEPT all -- 0.0.0.0/0 10.0.0.0/24 ACCEPT all -- 0.0.0.0/0 192.168.84.1 ACCEPT all -- 0.0.0.0/0 10.0.0.0/24 ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:67 ACCEPT all -- 0.0.0.0/0 192.168.84.1 state RELATED,ESTABLISHED LOG all -- 0.0.0.0/0 0.0.0.0/0 limit: avg 12/hour burst 5 LOG flags 0 level 4 prefix `INPUT drop: ' Chain FORWARD (policy ACCEPT) target prot opt source destination ACCEPT tcp -- 0.0.0.0/0 10.0.0.6 tcp dpt:80 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED LOG all -- 0.0.0.0/0 0.0.0.0/0 limit: avg 12/hour burst 5 LOG flags 0 level 4 prefix `forward drop: ' Chain OUTPUT (policy ACCEPT) target prot opt source destination ACCEPT all -- 127.0.0.1 0.0.0.0/0 ACCEPT all -- 10.0.0.0/24 0.0.0.0/0 ACCEPT all -- 192.168.84.1 0.0.0.0/0 ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp spt:67 dpt:68 LOG all -- 0.0.0.0/0 0.0.0.0/0 LOG flags 0 level 4 prefix `OUTPUT drop: ' Chain IN_FW (0 references) target prot opt source destination Chain logdrop (0 references) target prot opt source destination LOG all -- 0.0.0.0/0 0.0.0.0/0 limit: avg 5/hour burst 3 LOG flags 0 level 4 prefix `Rezervovana adresa: ' DROP all -- 0.0.0.0/0 0.0.0.0/0 [root@router sysconfig]# /sbin/iptables -L -n -t nat Chain PREROUTING (policy ACCEPT) target prot opt source destination DNAT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 to:10.0.0.6:80 Chain POSTROUTING (policy ACCEPT) target prot opt source destination SNAT all -- 10.0.0.0/24 0.0.0.0/0 to:192.168.84.1 Chain OUTPUT (policy ACCEPT) target prot opt source destination
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.100.0/24 -d 0/0 -J MASQUERADE
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.