|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Alexander V. Zinin 2:5020/400 17 May 2004 17:06:54 To : Ivan Voytas Subject : Re: route и natd ошибка для моей подсети -------------------------------------------------------------------------------- Hello, Ivan! You wrote to Alexander V. Zinin on Mon, 17 May 2004 12:45:10 +0000 (UTC): IV> Так ведь неправильно решил. Подпорка это, а не решение. У тебя на rl0 IV> прописана подсеть, куда входит хост, который сидит на rl1. Hеправильно IV> это. Hаверное, я неправильно объяснил проблему. Есть два выхода в инет и локальную сеть(это сети: 10/8, 217.10.32/20). Через rl0 - бесплатный, но медленный. Через rl1 - платный(лок. сеть бесплатна), но быстрый. Hужно, чтобы локальный траффик шёл быстро, а инет шёл медлено, но бесплатно. То есть через платный канал внешний траффик не шёл. Локалка идет через rl1, внешка через rl0. Шлюз на rl0 - 217.10.43.1, IP = 217.10.43.32/24 Шлюз на rl1 - 10.0.0.1, IP=10.0.0.42/19 10/8, 217.10.32/20(кроме 217.10.43.1 и 217.10.43.255) идут через rl1(217.10.43.1). Это быстрая локалка. Всё остальное идет через rl0(10.0.0.1). Это медленный инет. Что я сделал: ;--------------------------------------------------------------------------- ---------------------- route -q add default 217.10.43.1 route -q add 10.0.0.0/8 10.0.0.1 route -q add 217.10.32.0/20 10.0.0.1 /etc/route.pl natd -p 8668 -n rl0 natd -p 8669 -n rl1 ;--------------------------------------------------------------------------- ---------------------- # cat route.pl #!/usr/bin/perl use strict; my $i; my $cmd; print("Starting /etc/route.pl\n"); for($i = 2; $i <= 254; $i++) { $cmd = "route -q add 217.10.43.$i 10.0.0.1"; system($cmd); } ;--------------------------------------------------------------------------- ---------------------- NAT: CTV="{ 10.0.0.0/8, 217.10.32.0/20 }" Internet="{ not 10.0.0.0/8, 217.10.32.0/20, 192.168.1.0/24, 192.168.100.0/24 }" ipfw add divert 8668 all from any to ${Internet} via rl0 ipfw add divert 8668 all from ${Internet} to any via rl0 ipfw add divert 8669 all from any to ${CTV} via rl1 ipfw add divert 8669 all from ${CTV} to any via rl1 ;--------------------------------------------------------------------------- ---------------------- AVZ>> CTV="{ 10.0.0.0/8, 217.10.32.0/20 }" AVZ>> Internet="{ not 10.0.0.0/8, 217.10.32.0/20, 192.168.1.0/24, AVZ>> 192.168.100.0/24 }" IV> Хм, а ты уверен, что ты хотел написать именно это? "not 10.0.0.0/8" IV> по-моему включает весь интернет. Тут не только not 10.0.0.0/8, тут [ not (10.0.0.0/8 or 217.10.32.0/20 or 192.168.1.0/24 or 192.168.100/24) ] 192.168.100.0/24 - это сеть кабельного модема, короче неважно, у обоих модемов, и на rl0, и на rl1 эта подсеть :-) AVZ>> route -q flush IV> Зачем так жестоко? :) Это делает скрипт, при старте системы. Проблема была в том, что траффик на 217.10.43.0/24 шёл через rl0(217.10.43.32/24), не зависимо от того, прописан ли маршрут на 217.10.32.0/20. Так и должно быть. Потому как 217.10.43.1 находится на rl0, а не rl1, иначе бы ничего не работало. Другого решения я не вижу. Пока, вроде, всё правильно работает :) With best regards, Alexander V. Zinin. E-mail: zinin@comtv.ru --- ifmail v.2.15dev5.3 * Origin: Comcor-TV (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/1337067bc9a6f.html, оценка из 5, голосов 10
|