Przestarzały /etc/sysconfig/static-nat - co z tym można zrobić?
Bohdan R. Rau
ethanak w polip.com
Sob, 21 Sie 2010, 13:35:56 CEST
Witam
Jako że mój stareńki routerek poprosił o przejście na zasłużoną emeryturę,
złożyłem sobie jakąś maszynkę i zainstalowałem Th. Ponieważ konfiguracja
była raczej trywialna (dwie zewnętrzne klasy /29 + lokalna natowana)
stwierdziłem, że przepiszę po prostu co trzeba ze starej konfiguracji (Ra).
No i zonk. O ile zewnętrzne klasy były routowane prawidłowo, o tyle nata
nie miałem. Po bliższych oględzinach okazało się, że kernele od 2.6 nie
obsługują route add nat.
No i teraz pytanko co z tym fantem zrobić?
Moja propozycja: sprawdzać przy starcie network, czy kernel jest 2.6 czy
niższy, i jeśli 2.6y+ to zamienić wywołania ip rule i ip route na
odpowiednie iptables - czyli dla każdego read src,via,dst zrobić:
iptables -I POSTROUTING -t nat -s $src -j SNAT --to-source $dst
Albo - wersja leniwa: po wykryciu że kernel jest 2.6+ i coś siedzi w
static-nat skrypt powinien się grzecznie wykrzaczyć z odpowiednim błędem...
Bo tak jak jest to raczej zostać nie powinno. Komunikat błędu jest mylący,
a network stop nie usuwa reguły. W dodatku dodana reguła uniemożliwia
połączenie z natowaną klasą (co jest jeszcze bardziej mylące).
Jeśli trzeba mogę spróbować napisać jakiegoś patcha, ale wolałbym nie -
pewnie jest tu parę osób które się na tym lepiej ode mnie znają :)
Pytanko - czy Th przewiduje w ogóle instalację kernela 2.4 czy można to
sprawdzanie sobie darować?
ethanak
--
http://milena.polip.com/ - Pa pa, Ivonko!
Więcej informacji o liście dyskusyjnej pld-devel-pl