dwa łącza było ale nie wiem co z tym zrobic
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.
Reply to: