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