Страница 1 из 1

ip route & iprule во freebsd

Добавлено: 2010-02-17 14:14:59
dj_max_demon
Здраствуйте появилась задача перевести сервак с linux на freebsd! Но как всегда упёрся в мелоч! проблема такая, стоит linux на нём pptp сервер к которому подключаються клиенты с выдаваемым диапазоном 172.16.0.0/20 динамическим получением ip адресов, 3 канала в интернет! каждые 30 клиентов ходят по своему каналу! с помошью ip route и ip rule пример таков

Код: Выделить всё

ip rule add from 172.16.1.224/27 lookup VPN5 
ip rule add from 172.16.1.192/27 lookup VPN3 
ip rule add from 172.16.1.160/27 lookup VPN7 
ip rule add from 172.16.1.128/27 lookup VPN5 
ip rule add from 172.16.1.96/27 lookup VPN3 
ip rule add from 172.16.1.64/27 lookup VPN7 
ip rule add from 172.16.1.32/27 lookup VPN5 
ip rule add from 172.16.1.0/27 lookup VPN3 
ip rule add from 172.16.0.224/27 lookup VPN5 
ip rule add from 172.16.0.192/27 lookup VPN3 
ip rule add from 172.16.0.160/27 lookup VPN7 
ip rule add from 172.16.0.128/27 lookup VPN5 
ip rule add from 172.16.0.96/27 lookup VPN3 
ip rule add from 172.16.0.64/27 lookup VPN7 
ip rule add from 172.16.0.32/27 lookup VPN5 
ip rule add from 172.16.0.0/27 lookup VPN3 
......... и так далее

Код: Выделить всё

ip route add default via 192.168.1.1 table VPN3 dev eth2
ip route add default via 195.5.46.201 table VPN5 dev tun0 
ip route add default via 195.5.46.206 table VPN7 dev tun1

Код: Выделить всё

 iptables 
-A POSTROUTING -s 172.16.0.0/20 -o tun0 -j SNAT  --to-source 195.5.46.202
-A POSTROUTING -s 172.16.0.0/20 -o eth2 -j SNAT  --to-source 192.168.1.2
-A POSTROUTING -s 172.16.0.0/20 -o tun1 -j SNAT  --to-source 195.5.46.205

подскажите умельцы как можно ето организовать на фряге! ткните носом куда копать!

Re: ip route & iprule во freebsd

Добавлено: 2010-02-19 2:11:54
baton4eg
1. Почему надумали переехать?
2. по форуму можно найти:
mpd - организация сервера pptp сервера
Nat - выберай связку из: ipfw nat; natd; pf-nat

Все эти решения есть на форуме и на главной странице www.lissyara.su (раздел статьи) юзаем поиск.

Re: ip route & iprule во freebsd

Добавлено: 2010-02-19 10:07:51
dj_max_demon
Спасибо за ответ, перебрал всё но в статьях решения не нашол!
перенести сервак на фрягу решил и за некоторых казусов которые мне как раз не подходили в линухе! с фрягой тож давно работаю, но не сталкивался с таким! решилось всё 4 нат демона, и набором правил в ipfw да утомительная работа 2 суток набирать их в vi!

Re: ip route & iprule во freebsd

Добавлено: 2010-02-19 10:11:20
baton4eg
отлично, думаю не пожелеете )) главное на казусы не попасть :)

Re: ip route & iprule во freebsd

Добавлено: 2010-02-19 18:59:32
Dog
По поводу роутов на разные pptp-каналы - однозначно mpd, однако надо будет вдумчиво и серьезно покурить документацию. Без этого - никак.
NAT - либо вот эта статья, либо использовать один из многочисленных источников в интернете на тему pf nat. natd или ipnat задействовать смысла не вижу.

Re: ip route & iprule во freebsd

Добавлено: 2010-02-19 19:58:15
Смирнофф-Петров-Водкин
Dog писал(а):По поводу роутов на разные pptp-каналы - однозначно mpd
Категорически согласен!
Особливо в данном конкретном случае. Да и вообще - mpd очень удобная весчь. И как сервер, и как клиент (vpn, pppoe).
Что же касается всего остального, то хм.. все зависит от задачи и способа решения.
Но с другой стороны - что умеет фря то чего не умеет линукс? Вопрос скорее риторический, ибо сейчас начнётся - налетят как коршуны и ...
Не будем холивар разводить... =)
Чем больше узнаю фрю - тем больше начинает нравиться линукс.

Re: ip route & iprule во freebsd

Добавлено: 2010-03-10 11:57:06
dj_max_demon
зделал я ето очень варварским способом,

Код: Выделить всё

ipfw show

00600  208819   20008253 divert 8668 ip from 172.16.0.0/27 to any
00700   25273    1979825 divert 8778 ip from 172.16.0.32/27 to any
00800  187499   31236200 divert 8888 ip from 172.16.0.64/27 to any
00900  389620   40467394 divert 8668 ip from 172.16.0.96/27 to any
01000   47428    2299326 divert 8778 ip from 172.16.0.128/27 to any
01100   51566    5751049 divert 8888 ip from 172.16.0.160/27 to any
01200  295639   40179419 divert 8668 ip from 172.16.0.192/27 to any
01300   45973    4407408 divert 8778 ip from 172.16.0.224/27 to any
01400   17259    6131705 divert 8668 ip from 172.16.1.0/27 to any
01500  163181   10479275 divert 8778 ip from 172.16.1.32/27 to any
01600    6688    1838948 divert 8888 ip from 172.16.1.64/27 to any
01700  178362   18456039 divert 8668 ip from 172.16.1.96/27 to any
01800   83033    6494492 divert 8778 ip from 172.16.1.128/27 to any
01900    7141    1285151 divert 8888 ip from 172.16.1.160/27 to any
02000    6232     981270 divert 8668 ip from 172.16.1.192/27 to any
02100   52105    2239022 divert 8778 ip from 172.16.1.224/27 to any
02200   45675    4805251 divert 8668 ip from 172.16.2.0/27 to any
02300   35841    9743417 divert 8778 ip from 172.16.2.32/27 to any
02400  114432   18352663 divert 8888 ip from 172.16.2.64/27 to any
02500   25976    2425271 divert 8668 ip from 172.16.2.96/27 to any
02600   24127    1232830 divert 8778 ip from 172.16.2.128/27 to any
02700   46689    5670410 divert 8888 ip from 172.16.2.160/27 to any
02800       0          0 divert 8668 ip from 172.16.2.192/27 to any
02900       0          0 divert 8778 ip from 172.16.2.224/27 to any
03000       0          0 divert 8668 ip from 172.16.3.0/27 to any
03100       0          0 divert 8778 ip from 172.16.3.32/27 to any
03200       0          0 divert 8888 ip from 172.16.3.64/27 to any
03300       0          0 divert 8668 ip from 172.16.3.96/27 to any
03400       0          0 divert 8778 ip from 172.16.3.128/27 to any
03500       0          0 divert 8888 ip from 172.16.3.160/27 to any
03600       0          0 divert 8668 ip from 172.16.3.192/27 to any
03700       0          0 divert 8778 ip from 172.16.3.224/27 to any
03800       0          0 divert 8668 ip from 172.16.4.0/27 to any
03900       0          0 divert 8778 ip from 172.16.4.32/27 to any
04000       0          0 divert 8888 ip from 172.16.4.64/27 to any
04100       0          0 divert 8668 ip from 172.16.4.96/27 to any
04200       0          0 divert 8778 ip from 172.16.4.128/27 to any
04300       0          0 divert 8888 ip from 172.16.4.160/27 to any
04400       0          0 divert 8668 ip from 172.16.4.192/27 to any
04500       0          0 divert 8778 ip from 172.16.4.224/27 to any
04600       0          0 divert 8668 ip from 172.16.5.0/27 to any
04700       0          0 divert 8778 ip from 172.16.5.32/27 to any
04800       0          0 divert 8888 ip from 172.16.5.64/27 to any
04900       0          0 divert 8668 ip from 172.16.5.96/27 to any
05000       0          0 divert 8778 ip from 172.16.5.128/27 to any
05100       0          0 divert 8888 ip from 172.16.5.160/27 to any
05200       0          0 divert 8668 ip from 172.16.5.192/27 to any
05300       0          0 divert 8778 ip from 172.16.5.224/27 to any
05400       0          0 divert 8668 ip from 172.16.6.0/27 to any
05500       0          0 divert 8778 ip from 172.16.6.32/27 to any
05600       0          0 divert 8888 ip from 172.16.6.64/27 to any
05700       0          0 divert 8668 ip from 172.16.6.96/27 to any
05800       0          0 divert 8778 ip from 172.16.6.128/27 to any
05900       0          0 divert 8888 ip from 172.16.6.160/27 to any
06000       0          0 divert 8668 ip from 172.16.6.192/27 to any
06100       0          0 divert 8778 ip from 172.16.6.224/27 to any
06200       0          0 divert 8668 ip from 172.16.7.0/27 to any
06300       0          0 divert 8778 ip from 172.16.7.32/27 to any
06400       0          0 divert 8888 ip from 172.16.7.64/27 to any
06500       0          0 divert 8668 ip from 172.16.7.96/27 to any
06600       0          0 divert 8778 ip from 172.16.7.128/27 to any
06700       0          0 divert 8888 ip from 172.16.7.160/27 to any
06800       0          0 divert 8668 ip from 172.16.7.192/27 to any
06900       0          0 divert 8778 ip from 172.16.7.224/27 to any
07000    2133     180518 divert 8998 ip from 192.168.100.2 to any
07100    4840     409371 divert 8108 ip from 192.168.90.2 to any
07200    5995     932096 divert 8998 ip from 172.16.100.0/22 to any
07300   13311    2254305 fwd 82.207.70.113 ip from 82.207.70.114 to any
07400  582727   66596690 fwd 172.18.50.49 ip from 172.18.50.50 to any
07500  205422   31949375 fwd 192.168.1.1 ip from 192.168.1.2 to any
07600  237672   19354914 fwd 172.18.60.49 ip from 172.18.60.50 to any
07700  964097  692008028 divert 8668 ip from any to 172.18.50.50
07800  345149  348356591 divert 8778 ip from any to 172.18.60.50
07900  283652  296193246 divert 8888 ip from any to 192.168.1.2
08000   15137    5434598 divert 8998 ip from any to 82.207.70.114
08100 2108769 1195545005 divert 8108 ip from any to 10.10.0.1
08200 2864501 2345773519 allow tcp from any to any established
............. и так даелее

Код: Выделить всё

ifconfig 

re0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=389b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,WOL_UCAST,WOL_MCAST,WOL_MAGIC>
        ether 00:1d:92:f7:6c:5b
        inet 10.10.0.1 netmask 0xfffffc00 broadcast 10.10.3.255
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active
dc0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=8<VLAN_MTU>
        ether 00:00:e8:ab:06:7d
        inet 192.168.1.2 netmask 0xffffff00 broadcast 192.168.1.255
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active
rl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=8<VLAN_MTU>
        ether 00:e0:4c:4d:1d:34
        inet 82.207.70.114 netmask 0xfffffffc broadcast 82.207.70.112
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
        options=3<RXCSUM,TXCSUM>
        inet6 fe80::1%lo0 prefixlen 64 scopeid 0x4
        inet6 ::1 prefixlen 128
        inet 127.0.0.1 netmask 0xff000000
        nd6 options=3<PERFORMNUD,ACCEPT_RTADV>
ng0: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> metric 0 mtu 1460
        inet 172.18.50.50 --> 172.18.50.49 netmask 0xffffffff
ng1: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> metric 0 mtu 1460
        inet 172.18.60.50 --> 172.18.60.49 netmask 0xffffffff
ng2: flags=8890<POINTOPOINT,NOARP,SIMPLEX,MULTICAST> metric 0 mtu 1500
ng3: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> metric 0 mtu 1400
        inet 172.16.0.1 --> 172.16.100.2 netmask 0xffffffff
ng4: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> metric 0 mtu 1400
        inet 172.16.0.1 --> 172.16.1.43 netmask 0xffffffff
ng5: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> metric 0 mtu 1400
        inet 172.16.0.1 --> 172.16.0.42 netmask 0xffffffff
ng6: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> metric 0 mtu 1400
        inet 172.16.0.1 --> 172.16.2.63 netmask 0xffffffff
ng7: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> metric 0 mtu 1400
        inet 172.16.0.1 --> 172.16.0.196 netmask 0xffffffff
ng8: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> metric 0 mtu 1400
        inet 172.16.0.1 --> 172.16.2.92 netmask 0xffffffff
ng9: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> metric 0 mtu 1400
        inet 172.16.0.1 --> 172.16.0.64 netmask 0xffffffff


............. и так даелее 900 интерфейсов


Код: Выделить всё

cat /etc/rc.conf | grep natd

natd_enable="YES"
natd_flags="-a 172.18.50.50 -p 8668 -m -u -f /etc/natd.conf"
natd2_enable="YES"
natd2_flags="-a 172.18.60.50 -p 8778 -m -u -f /etc/natd2.conf"
natd3_enable="YES"
natd3_flags="-a 192.168.1.2 -p 8888 -m -u -f /etc/natd3.conf"
natd4_enable="YES"
natd4_flags="-a 82.207.70.114 -p 8998 -m -u -f /etc/natd4.conf"
natd5_enable="YES"
natd5_flags="-a 10.10.0.1 -p 8108 -m -u -f /etc/natd5.conf"


ng0 ng1 ето два канала находяшиеся на микротике далеко от сервака но в сети

что самое интересное поймал только один глюк пришлост обновить /usr/src пересобрать мир и ядро
и всё полетело!
нат 5 ето я выпустил виртуальную машину в сеть, не охота два компа ставить, на виртуалке крутиться чат)))) гад работает только под вин хп

Код: Выделить всё

uname -a

FreeBSD www.tv-com.org.ua 8.0-STABLE FreeBSD 8.0-STABLE #2: Tue Mar  9 20:05:49 EET 2010     root@www.tv-com.org.ua:/usr/obj/usr/src/sys/TV-COM  amd64


ваши мнения услышал бы, пожелания, может слишком варварский способ но он работает. :evil:

Re: ip route & iprule во freebsd

Добавлено: 2010-03-10 12:26:45
hizel
use table and tablearg, Luke.

Re: ip route & iprule во freebsd

Добавлено: 2010-03-12 10:24:26
dj_max_demon
hizel писал(а):use table and tablearg, Luke.

а на маны или примеры можеш кинуть ссылочку?

Re: ip route & iprule во freebsd

Добавлено: 2010-03-12 10:56:03
hizel
man ipfw
/tablearg

:)

Re: ip route & iprule во freebsd

Добавлено: 2010-03-17 12:01:49
dj_max_demon
крутил крутил! и всёравно пришол к одному! setfib

kernel nat + тюнинг sysctl

Код: Выделить всё

00100    5856    1076684 allow ip from any to any via lo0
00200    1647     315505 allow tcp from any to 82.207.70.114 dst-port 80 in
00300    2369    2981655 allow tcp from me 80 to any out established
00400  121451    9587172 setfib 2 ip from 172.16.0.0/27 to any
00500   12984    1977330 setfib 3 ip from 172.16.0.32/27 to any
00600   27843    2103898 setfib 4 ip from 172.16.0.64/27 to any
00700    4143     621298 setfib 2 ip from 172.16.0.96/27 to any
00800  249723   32520668 setfib 3 ip from 172.16.0.128/27 to any
00900  122026   11179104 setfib 4 ip from 172.16.0.160/27 to any
01000   41917    2013243 setfib 2 ip from 172.16.0.192/27 to any
01100   43529    4748755 setfib 3 ip from 172.16.0.224/27 to any
01200  203725   25352452 setfib 2 ip from 172.16.1.0/27 to any
01300   32444    2674956 setfib 3 ip from 172.16.1.32/27 to any
01400   69707    6683983 setfib 4 ip from 172.16.1.64/27 to any
01500   63727    8717793 setfib 2 ip from 172.16.1.96/27 to any
01600  104398    6093022 setfib 3 ip from 172.16.1.128/27 to any
01700  101811   17088206 setfib 4 ip from 172.16.1.160/27 to any
01800   25050    3227136 setfib 2 ip from 172.16.1.192/27 to any
01900   72504    5011397 setfib 3 ip from 172.16.1.224/27 to any
02000   41859    4665360 setfib 2 ip from 172.16.2.0/27 to any
02100   18781    2422960 setfib 3 ip from 172.16.2.32/27 to any
02200  243675   52477253 setfib 4 ip from 172.16.2.64/27 to any
02300   47614    6238896 setfib 2 ip from 172.16.2.96/27 to any
02400   45339    2019476 setfib 3 ip from 172.16.2.128/27 to any
02500  116282   13623865 setfib 4 ip from 172.16.2.160/27 to any
02600       0          0 setfib 2 ip from 172.16.2.192/27 to any
02700       0          0 setfib 3 ip from 172.16.2.224/27 to any
02800       0          0 setfib 2 ip from 172.16.3.0/27 to any
02900       0          0 setfib 3 ip from 172.16.3.32/27 to any
03000       0          0 setfib 4 ip from 172.16.3.64/27 to any
03100       0          0 setfib 2 ip from 172.16.3.96/27 to any
03200       0          0 setfib 3 ip from 172.16.3.128/27 to any
03300       0          0 setfib 4 ip from 172.16.3.160/27 to any
03400       0          0 setfib 2 ip from 172.16.3.192/27 to any
03500       0          0 setfib 3 ip from 172.16.3.224/27 to any
03600       0          0 setfib 2 ip from 172.16.4.0/27 to any
03700       0          0 setfib 3 ip from 172.16.4.32/27 to any
03800       0          0 setfib 4 ip from 172.16.4.64/27 to any
03900       0          0 setfib 2 ip from 172.16.4.96/27 to any
04000       0          0 setfib 3 ip from 172.16.4.128/27 to any
04100       0          0 setfib 4 ip from 172.16.4.160/27 to any
04200       0          0 setfib 2 ip from 172.16.4.192/27 to any
04300       0          0 setfib 3 ip from 172.16.4.224/27 to any
04400       0          0 setfib 2 ip from 172.16.5.0/27 to any
04500       0          0 setfib 3 ip from 172.16.5.32/27 to any
04600       0          0 setfib 4 ip from 172.16.5.64/27 to any
04700       0          0 setfib 2 ip from 172.16.5.96/27 to any
04800       0          0 setfib 3 ip from 172.16.5.128/27 to any
04900       0          0 setfib 4 ip from 172.16.5.160/27 to any
05000       0          0 setfib 2 ip from 172.16.5.192/27 to any
05100       0          0 setfib 3 ip from 172.16.5.224/27 to any
05200       0          0 setfib 2 ip from 172.16.6.0/27 to any
05300       0          0 setfib 3 ip from 172.16.6.32/27 to any
05400       0          0 setfib 4 ip from 172.16.6.64/27 to any
05500       0          0 setfib 2 ip from 172.16.6.96/27 to any
05600       0          0 setfib 3 ip from 172.16.6.128/27 to any
05700       0          0 setfib 4 ip from 172.16.6.160/27 to any
05800       0          0 setfib 2 ip from 172.16.6.192/27 to any
05900       0          0 setfib 3 ip from 172.16.6.224/27 to any
06000       0          0 setfib 2 ip from 172.16.7.0/27 to any
06100       0          0 setfib 3 ip from 172.16.7.32/27 to any
06200       0          0 setfib 4 ip from 172.16.7.64/27 to any
06300       0          0 setfib 2 ip from 172.16.7.96/27 to any
06400       0          0 setfib 3 ip from 172.16.7.128/27 to any
06500       0          0 setfib 4 ip from 172.16.7.160/27 to any
06600       0          0 setfib 2 ip from 172.16.7.192/27 to any
06700       0          0 setfib 3 ip from 172.16.7.224/27 to any
06800    2039      84101 setfib 0 ip from 192.168.100.2 to any
06900     174      16818 setfib 0 ip from 172.16.100.0/22 to any
07000  283492   28245769 nat 1 ip from 172.16.0.0/16 to any out via ng0
07100  299354   48633289 nat 2 ip from 172.16.0.0/16 to any out via ng1
07200  269479   29818797 nat 3 ip from 172.16.0.0/16 to any out via vr0
07300      28       4987 nat 4 ip from 172.16.100.0/22 to any out via rl0
07400     382      18807 nat 4 ip from 192.168.100.0/24 to any out via rl0
07500  404134  423223004 nat 1 ip from any to any in via ng0
07600  423916  451887854 nat 2 ip from any to any in via ng1
07700  370895  388101501 nat 3 ip from any to any in via vr0
07800    5548     958123 nat 4 ip from any to any in via rl0
07900     897      44381 divert 8668 ip from 192.168.90.2 to any out via re0
08000 1224051  962522968 divert 8668 ip from any to 10.10.0.1 in via re0
08100 4037263 2736280716 allow tcp from any to any established
08200    3828     223270 allow icmp from any to any icmptypes 0,8,11
08300       0          0 deny icmp from any to any frag
08400   13482    2068781 allow udp from any 53 to any
08500   13640     919620 allow udp from any to any dst-port 53
08600     104       7904 allow udp from any to any dst-port 123 via rl0
08700   29148    1415384 allow tcp from any to any dst-port 80
08800    1943      96624 allow tcp from any to any dst-port 443 via re0
08900      90       4384 allow tcp from any to any dst-port 9740
09000       0          0 allow tcp from any to any dst-port 22 via re0
09100       0          0 allow tcp from any to any dst-port 411
09200      12        552 allow tcp from any to any dst-port 25
09300       0          0 allow tcp from any to any dst-port 110
09400       0          0 allow tcp from any to any dst-port 143
09500       0          0 allow tcp from any to any dst-port 21 via re0
09600       0          0 allow tcp from any to any dst-port 20 via re0
09700   64419    3110396 allow tcp from any to any dst-port 1024-65535
09800       0          0 allow tcp from any to any dst-port 10000 via re0
09900       0          0 allow tcp from any to any dst-port 900-901 via re0
10000       0          0 allow esp from any to any via re0
10100       0          0 allow ipencap from any to any via re0
10200 2357918 1509776270 allow gre from any to any via re0
10300       0          0 allow tcp from any to any dst-port 1723 in via re0
10400       0          0 allow tcp from any 1723 to any out via re0
10500     560      34364 allow udp from any to any via ng0
10600      31       1484 allow tcp from any to any via ng0
10700     343      22005 allow udp from any to any via ng1
10800      61       2936 allow tcp from any to any via ng1
10900     420      20312 allow tcp from any to any via ng*
11000       0          0 allow gre from any to any via re0
11100  116254    9146249 deny ip from any to any
65535       0          0 allow ip from any to any

Re: ip route & iprule во freebsd

Добавлено: 2010-03-17 12:40:30
hizel
я бы свел партянку setfib, к одному правилу с tablearg и tag и четырем правилам setfib

Re: ip route & iprule во freebsd

Добавлено: 2010-03-23 12:32:36
dj_max_demon
я токо не пойму к чему можно ето связать, ты предлагаеш по тарарифы разделить мне по разным подсетям? :st: хотя прекрасно и так работает!

можеш пример привести такой связки?