Linux за българи: Форуми

Linux секция за напреднали => Хардуерни и софтуерни проблеми => Темата е започната от: batteo в May 29, 2006, 12:02



Титла: Nat routing gre routing
Публикувано от: batteo в May 29, 2006, 12:02
Здравейте има следния въпрос имам доставчик който ми пуска интернета чрез NAT и съм с реален ИП адрес,но ми реже здраво конекциите.Аз имам линукс машина за рутер.Мой приятел има достъп до неограничени конекции и сме си пуснали GRE тунел който е MASQUERADE.Неговия адрес е 10.10.10.1,а моя сме го сложили 10.10.10.2  кам мога без намесата на TC да прекарам интернет трафика от моята вътрешна мрежа 172.16.1.0/24 към неговия рутер и обратно.Проблема идва от това,че по начините които намерих чрез маскиране се маха Dеfault gateway а в моя случай това е невъзможно тъй като нета ми идва само през един физически интерфейс и GRE-to трябва да си минава през него.Ето го накратко (NAT адрес):217.79.66.8>(вътре GRE)10.10.10.1>10.10.10.2>(users)172.16.1.0/24
default gatewai i DNS:217.79.66.1
пуснал съм и BIND
адреса ми към вътрешната мрежа е 172.16.1.1


Титла: Nat routing gre routing
Публикувано от: Hapkoc в May 30, 2006, 10:34
Не съм сигурен, че напълно разбрах каква е ситуацията, но няма ли вариант да не маскираш адресите от 172.16.1.0/24, а да маршрутизираш трафика от вътрешната мрежа към 10.10.10.2 и при твоя приятел да става маскирането? Т.е. на него ше му пристигат през тунела пакети със източници от 172.16.1.0/24 и той вече при него ще им прави NAT.

С iptables при тебе трябва да е нещо от рода на:

iptables -t mangle -A PREROUTING -s 172.16.1.0/24 -d ! 172.16.1.0/24 -j ROUTE --gw 10.10.10.2

(забележка: в горния пример 10.10.10.2 е адреса на края на тунела при твоя приятел - не разбрах дали там е 10.10.10.1 или 10.10.10.2)

Горния ред ще трябва да си го провериш как точно трябва да е, понеже с iptables имам съвсем малко опит.





Титла: Nat routing gre routing
Публикувано от: BRADATA в May 30, 2006, 11:11
В случая трябва да направиш статичен root запис за ИП-то на приятеля ти за да върви тунела, а дефаулт GW се разберете какъв да е (дали при теб, пък ти да го маршрутизираш или при него, пък той да прави нат)


Титла: Nat routing gre routing
Публикувано от: Hapkoc в May 30, 2006, 12:02
BRADATA, май твоя вариант е по-чистичък, само:

Цитат
статичен root запис


май по-скоро

Цитат
статичен route запис
:))

p.s.: не е заяждане, просто ми стана забавно :)





Титла: Nat routing gre routing
Публикувано от: batteo в May 30, 2006, 12:16
стана така:
$IPTABLES -A PREROUTING -i eth1 -t mangle -p tcp  -j MARK --set-mark 1
$IP rule add fwmark 1 table www.out  
$IP route add default via 10.10.10.1 dev r0x table www.out


Титла: Nat routing gre routing
Публикувано от: BRADATA в May 30, 2006, 13:50
Цитат (Hapkoc @ Май 30 2006,13:02)
BRADATA, май твоя вариант е по-чистичък, само:

Цитат
статичен root запис


май по-скоро

Цитат
статичен route запис
:))

p.s.: не е заяждане, просто ми стана забавно :)

Радвам се :)  :)  :) , че съм те разсмял. Просто още спях. Всъщност сега точно чета една тема в един друг форум относно правописните и стилистични грешки. Наистина тоя път се "изпльоснах" яко.  B)  :p  :p  :p  :ok:

Поздрави

пп Няма да се (само)редактирам. В интерес на истината като го писах си знаех, че нещо не е наред, ама ...  :zzz:





Титла: Nat routing gre routing
Публикувано от: nothing в Jun 06, 2006, 18:28
Трябва ти паралелно рутиране, което мисля е обяснено в LARTC.
Прави се втора рутинг таблица с отделен дифолт гейтуей, който ще е 10.10.10.1 при теб.
добавяш в /etc/iproute2/rt_tables реда
100  table2
това ти е втората рутинф таблица.
#ip rule add from 10.10.10.0/24 table table2
#ip rule add from 172.16.1.0/24 table table2
с това всички заявки от тези мрежи ще бъдат обслужвани в таблица2
#ip route add default gw 10.10.10.1 table table2
така задаваш дифолт ГВ на тази втора таблица.
#ip route add 10.10.10.0/24 dev tn0 table table2
казваш на кой мрежов интерфейс (tn0) ти е мрежата 10.10.10.0
#ip route add 172.16.1.0/24 dev eth0 table table2
така казваш че мрежата 172... ти е на лан-карта eth0
пускаш си NAT с iptables и си готов.
Ако ти се вижда объркано - питай кое не съм пояснил достатъчно.