Mam pytanie, które było już poruszanie na wielu forach, Ale może gdzieś robie jakiś banalny błąd, którego nie mogę rozwiązać, Mianowicie mam dwa łącza i chciałbym, żeby było tak, że jak pakiet np. Ping idzie jednym łączem to, żeby nim wracał, bo teraz np. mam sytuacje, ze Request idzie jednym a reply wraca drugim i nie wiem co z tym zrobić, Do połączenia tych dwóch łącz użyłem skryptu: #!/bin/bash IP_ZEWNETRZNE1=xxx.xxx.xxx.xxx SIEC1=xxx.xxx.xxx.ss1 GATEWAY1=xxx.xxx.xxx.gg1 IP_ZEWNETRZNE2=yyy.yyy.yyy.yyy SIEC2=yyy.yyy.yyy.ss2 GATEWAY2=yyy.yyy.yyy.gg2
#eth0 i eth2 interfejsy podlaczone do netu. ip rule del fwmark 0x20 lookup 20 ip rule del from $IP_ZEWNETRZNE1 lookup 20 ip route add $SIEC1 dev eth0 src $IP_ZEWNETRZNE1 table 20 ip rule add fwmark 0x20 table 20 ip route add default via $GATEWAY1 table 20 ip rule del fwmark 0x30 lookup 30 ip rule del from $IP_ZEWNETRZNE2 lookup 30 ip route add $SIEC2 dev eth2 src $IP_ZEWNETRZNE2 table 30 ip route add default via $GATEWAY2 table 30 ip rule add fwmark 0x30 table 30 ip rule add from $IP_ZEWNETRZNE1 table 20 ip rule add from $IP_ZEWNETRZNE2 table 30 iptables -A POSTROUTING -t nat -s 192.168.0.0/24 -o eth0 -j SNAT --to $IP_ZEWNETRZNE1 iptables -A POSTROUTING -t nat -s 192.168.0.0/24 -o eth2 -j SNAT --to $IP_ZEWNETRZNE2 iptables -A POSTROUTING -t nat -s 192.168.1.0/24 -o eth0 -j SNAT --to $IP_ZEWNETRZNE1 iptables -A POSTROUTING -t nat -s 192.168.1.0/24 -o eth2 -j SNAT --to $IP_ZEWNETRZNE2 #ssh iptables -t mangle -A PREROUTING -p tcp --dport 22 -j MARK --set-mark 0x20 #iptables -t mangle -A PREROUTING -p tcp --dport 22 -j RETURN # poczta iptables -t mangle -A PREROUTING -p tcp --dport 25 -j MARK --set-mark 0x20 #iptables -t mangle -A PREROUTING -p tcp --dport 25 -j RETURN iptables -t mangle -A PREROUTING -p tcp --dport 110 -j MARK --set-mark 0x20 iptables -t mangle -A PREROUTING -p tcp --dport 110 -j RETURN iptables -t mangle -A PREROUTING -p tcp --dport 995 -j MARK --set-mark 0x20 iptables -t mangle -A PREROUTING -p tcp --dport 995 -j RETURN # DNS iptables -t mangle -A PREROUTING -p tcp --dport 53 -j MARK --set-mark 0x20 iptables -t mangle -A PREROUTING -p tcp --dport 53 -j RETURN iptables -t mangle -A PREROUTING -p udp --dport 53 -j MARK --set-mark 0x20 iptables -t mangle -A PREROUTING -p udp --dport 53 -j RETURN # www iptables -t mangle -A PREROUTING -p tcp --dport 80 -j MARK --set-mark 0x20 iptables -t mangle -A PREROUTING -p tcp --dport 80 -j RETURN iptables -t mangle -A PREROUTING -p udp --dport 80 -j MARK --set-mark 0x20 iptables -t mangle -A PREROUTING -p udp --dport 80 -j RETURN # www - szyfrowane iptables -t mangle -A PREROUTING -p tcp --dport 443 -j MARK --set-mark 0x20 iptables -t mangle -A PREROUTING -p udp --dport 443 -j MARK --set-mark 0x20 ip route add default scope global nexthop via $GATEWAY1 dev eth0 weight 1 \ nexthop via $GATEWAY2 dev eth2 weight 1 ip route flush ciche nie wiem czy coś źle opisałem, ale z tego co wyczytałem na necie, jeżeli pakiety icmp nie są markowane 0x20 bo nie markowałem ich za pomoca iptables, to powinny pojsc do tablicy 30, a tablica 30 to przynajmniej tak mi się zdaje, ze to jest drugie łącze. Pytanie gdzie popełniłem błąd i czemu pakiety podróżują różnymi łączami. Dla pomocy ip rule zwraca: 0: from all lookup local 32724: from IP_ZEWNETRZNE2 lookup 30 32725: from IP_ZEWNETRZNE1 lookup 20 32726: from all fwmark 0x30 lookup 30 32727: from all fwmark 0x20 lookup 20 32766: from all lookup main 32767: from all lookup default A ip route: SIEC1 dev eth0 proto kernel scope link src IP_ZEWNETRZNE1 SIEC2 dev eth2 proto kernel scope link src IP_ZEWNETRZNE2 192.168.1.0/24 dev eth1 proto kernel scope link src 192.168.1.254 192.168.0.0/24 dev eth1 proto kernel scope link src 192.168.0.1 default nexthop via GATEWAY1 dev eth0 weight 1 nexthop via GATEWAY2 dev eth2 weight 1 Pomoc jest niezbędna :), sam sobie nie dam rady, Walcze z tym od trzech dni, a moje umiejętności są zbyt małe. Pozdrawiam Adam.