routing , nat

4 отговора 409 прегледа
#1

routing , nat

Здравейте,
От няколко дена в главата ми изплува следната ситуация:
Как да направа така , че BSD-то (FreeBSD 5.2.1) да прави 2 pptp връзки към един и същ доставчик и едновременно с това да позволява 2 компютъра в локалната мрежа да имат интернет , като единият минава през 1-та връзка в случая tun0 , а другият да минава през другата връзка tun1.Проблемът основно ми се състой в това , че има само 1 default gw (то и нормално да е 1 ) , който е или IP-то зададено при първата pptp връзка или при втората.Евентуално мога да опиша мрежи който да се рутират през едниния канал и други които да минават през default gw-а , но не ми е това целта , искам да отделя 2-те самостоятелно , т.е. ако имам:

tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1500
inet 10.10.3.7 --> 10.11.0.65 netmask 0xffffffff
Opened by PID 155

tun1: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1500
inet 10.10.3.8 --> 10.11.0.80 netmask 0xffffffff
Opened by PID 158

и 2 PC-та PC1 - 192.168.0.11 и PC2 - 192.168.0.12 , да направя така , че трафика на PC1 да минава през tun0 (10.11.0.65) ,а този на PC2 да минава през tun1 (10.11.0.80) ,PC1,2 се nat-ват от BSD-то.

*************************************************
PC1--| ****************** tun0*****************
*******|****************** |------------ \********
*******|------ rl0 - BSD -| *************|- ISP*
*******| ***************** |-------------/********
PC2--| ****************** tun1*****************
**************************************************
Възможно ли е да се реализира това с FreeBSD , и ако да , какво да прочета за целта.

Мерси

Отговор
в отговор на someone #2

Re: routing , nat

man ipnat

[линк]
Отговор
в отговор на MartinT #3

Re: routing , nat

Проблема е , че имам 2 различни default gw-а през които трябва да минават 2-те връзки

Отговор
в отговор на someone #4

Re: routing , nat

При положение, че искаш пакети от две различни машини да заминават към различни gw ..... спасението е в source routing или т.н. policy routing. Под FreeBSD това може да се реализира с ipf (т.е. с firewall ... колкото и тъжно да звучи)

Пример:
pass out quick on xl0 to xl1:x.x.x.x from a.a.a.a/32 to any
pass out quick on xl0 to xl1:y.y.y.y from b.b.b.b/32 to any

И.

FreeBSD will root jOOr phat anus.
Отговор
в отговор на someone #5

Re: routing , nat

Здравей,
решението е по-просто отколкото можеш да си го представиш.
Трябват ти 2 nat процеса - едото РС през единия, другого през другия и готово.
Оставяш си defaultgateway едното IP на ISP. Той ти е необходим, само за да има интернет routera ти, ако искаш разбира се .
Забрави всякакви твърдо дефинирани routing таблици, това все пак е FreeBSD не е Linux !!!

Аз съм фен на ipfw
rc.firewall за 2 натнати мрежи принципно изглежда долу горе така:

ogw=80.80.80.1
oip=80.80.80.200

ogw1=80.70.70.1
oip1=80.70.70.200

${fwcmd} add 60 divert 8868 all from 10.1.1.0/24 to not 10.1.0.0/16
${fwcmd} add 65 divert 8868 all from any to any recv em0
${fwcmd} add 70 fwd ${ogw} ip from ${oip} to any

${fwcmd} add 80 divert 8869 all from 10.1.2.0/24 to not 10.1.0.0/16
${fwcmd} add 85 divert 8869 all from any to any recv em1
${fwcmd} add 90 fwd ${ogw1} ip from ${oip1} to any

${fwcmd} add 300 pass all from any to any via lo0
${fwcmd} add 310 deny all from any to 127.0.0.0/8
${fwcmd} add 320 deny ip from 127.0.0.0/8 to any
.......
от тук натам си редиш каквито правила си искаш
примерно пълен достъп за двете мрежи:
${fwcmd} add 62910 pass all from any to 10.1.1.0/24
${fwcmd} add 62915 pass all from any to 10.1.2.0/24
${fwcmd} add 62920 pass all from 10.1.1.0/24 to any
${fwcmd} add 62925 pass all from 10.1.2.0/24 to any

и не забравяй:
${fwcmd} add 65000 deny all from any to any

за да няма съмнения ...

Дерзай...

Ако нещо не е ясно:
freebsd handbook
google.com
bsdforums.org
.....

Успех !!!



Отговор