Mam w komputerze dwa interfejsy sieciowe:
[INDENT]- wlan1
- ppp0[/INDENT]
Chcę doprowadzić do sytuacji, w której połączenia ssh będą trasowane przez ppp0, natomiast cała reszta będzie trasowana przez wlan1 (domyślnie wszystko jest trasowane przez wlan1).
Posługuję się tym poradnikiem (Example 2). W skrócie:
- Tworzę i odpowiednio uzupełniam nową tablicę trasowania dla interfejsu ppp0. Nazywam ją "SSH_CONNECTION".
- Dodaję do firewalla następującą regułę
Dzięki niej wszystkie pakiety protokołu SSH zostaną oznaczone symbolem "1".
Kod: Zaznacz cały
iptables -A OUTPUT -t mangle -p tcp --dport 22 -j MARK --set-mark 1
- Na koniec dodaję następującą regułę
Dzięki niej wszystkie pakiety ze znacznikiem "1" powinny być trasowane zgodnie z tablicą SSH_CONNECTION.
Kod: Zaznacz cały
ip rule add from all fwmark 1 table SSH_CONNECTION
Niestety, jeżeli po wykonaniu tych czynności spróbuję nawiązać jakieś połączenie ssh, to dostaję ,,time-out''.
Okazuję się jednak, że jeżeli w punkcie trzecim wpiszę:gdzie xxx.xxx.xxx.xxx, to adres z którym próbuję nawiązać połączenie ssh, to wtedy wszystko działa jak należy i połączenie jest ustanawiane zgodnie z tym co zapisane w tablicy trasowania SSH_CONNECTION.Kod: Zaznacz cały
ip rule add to xxx.xxx.xxx.xxx table SSH_CONNECTION
Być może ma ktoś pomysł dlaczego opcja ze znacznikiem MARK nie działa?