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

Linux секция за напреднали => Хардуерни и софтуерни проблеми => Темата е започната от: flipz в Aug 31, 2008, 16:03



Титла: Route and iptables
Публикувано от: flipz в Aug 31, 2008, 16:03
Здравейте имам локална мрежа която съм сегментирал с управляем switch чрез Vlan. Използвам slackware 12.1 за рутер и се чудя как да рутирам или редиректна с iptables даден адрес в случеят на моето пц- за да виждам всички сигменти от мрежата.
Схемата е следната:

1 port = vlan2
2 port = vlan3
3 port = vlan4
9 port е включен във всички vlan-и и съответно вижда всички портове, именно той е за интернет-а и идва от rutera
* класическа схема :)

та се чудя как е по удачно, чрез рутиране .. или iptables

благодарен съм за всяка идея.





Титла: Route and iptables
Публикувано от: flipz в Aug 31, 2008, 16:46
вече се справих ..

Forward source i destination


Титла: Route and iptables
Публикувано от: flipz в Sep 09, 2008, 17:21
в същност не се получи както трябва. има нереални стойности в отговорите ...


някой може ли да даде съвет по темата


Титла: Route and iptables
Публикувано от: p3tzata_ в Sep 09, 2008, 17:46
Обърках се ...





Титла: Route and iptables
Публикувано от: gat3way в Sep 09, 2008, 20:17
Предполагам сегментацията също така е и на L3 ниво, демек отделните влан-ове са и също отделни IP subnets?

Ммм...предполагам си заредил 8021q модула и си си създал 3 vlan интерфейса с vconfig?

Ем останалото е просто, просто им вдигни някакъв адрес, вдигни ip forwarding-a (echo 1 > /proc/sys/net/ipv4/ip_forward), на клиентските машини сет-вай съответните routes през съответния адрес и готово. iptables и някакви специални статични routes не ти трябват.


Титла: Route and iptables
Публикувано от: flipz в Sep 10, 2008, 09:47
не ползвам 802.1q само съм разделил на vlani както съм описал по горе. нямам и отделни IP subnets - просто ми беше необходимо да се изолират сигментите за да се намали натоварването и да не се пълнят мак-таблиците на суичовете.
echo 1 > /proc/sys/net/ipv4/ip_forward -това ми е активно

съответните клиентски машини не мога да ги обходя всички- това не е добър алгоритъм .. те си имат gw и той е този по който получават интернет от сървъра т.е. както съм писал по горе.

линукс сървърчето ми вижда всички пц-та в лан-а .. който ми е на eth0 та идеята е да направя така в него за да може примерно като съм на моето пц да мога да си ги виждам на картичката къде как работят и тн. т.е. някакво препращане


Титла: Route and iptables
Публикувано от: gat3way в Sep 10, 2008, 09:56
На каква картичка да ги видиш?


Титла: Route and iptables
Публикувано от: flipz в Sep 10, 2008, 10:02
имам си едно програмче на което са ми начертани магистралите на мрежичката и сигментите .. като съответно на различни места съм си изкарал пц-та .. програмата работи с пингване .. и когато някое пц. е вкл. тя си го пингва и ми дава, че там работи. т.е. сутрин докато си пия кафенцето виждам дали цялата мрежа работи и дали някъде не е забило устройство.


Титла: Route and iptables
Публикувано от: gat3way в Sep 10, 2008, 10:19
Ем значи от цялата работа разбирам, че рутера ти е вързан на порт, който е member на всичките vlan-и и искаш той да ти прави inter-vlan рутиране така че машините в отделните влан-и да си имат L2 изолация, но на L3 ниво да се виждат, благодарение на това, че рутерът ти forward-ва пакети между отделните влан-и.

Ако това е целта на занятието (доколкото разбирам е това - искаш машина от един влан сегмент да "вижда" по IP протокола хост от друг влан, за да ти го изобрази там на твоята карта), значи нещата са доста доволно ясни.

Първо, винаги когато правиш локална мрежа, цепиш я на влан-и с идеята да има inter-vlan routing, хостовете в отделните влан сегменти им се дават IP адреси от отделни IP събнети. Това е с идеята да е възможен routing decision-a на рутера, който се занимава с това. Значи не може в единия влан да имаш хостове с адреси (пр.) 192.168.1.3, 192.168.1.5, а на другия да имаш хостове с адреси 192.168.1.2 и 192.168.1.4, както разбираш ще стане каша и рутерът няма да знае пакетите с какъв VLAN id да ти ги таг-не така че да отидат където трябва.

Само по себе си, ако рутерът е под линукс това не е достатъчно. Без определени iptables правила които да NAT-ват, няма как рутинг решението да хване и да препрати пакет от/към един и същ интерфейс. И тъй като това с iptables е грозно и не съм много наясно дали ще сработи като хората, продължаваме нататък :)

Значи се дефинират върху този физически интерфейс (eth0 ли беше) 3 vlan интерфейса - демек eth0.2, eth0.3, eth0.4. Това става с vconfig. Тези три интерфейса имат съответно IP адрес. Този адрес се ползва от машините от съответния сегмент като default gateway.

Оттам нататък, рутерът ти вече има грижата да препраща пакети между отделните влан-и.

Значи не знам дали ползваш DHCP, ако ползваш всичко ще е много лесно и почти безболезнено, просто променяш дефинициите за leases, вкл. и адреса на default gw-a, както и ако се наложи адресите които раздаваш така че да IP subnet-ите да съвпадат с влан сегментите.

Ако не ползваш dhcp тогава е много грозно, трябва да ходиш на всяка една машина и да й променяш настройките, което е свръх-досадно и може и да се окаже невъзможно.


Мммм принципно там дизайна на мрежата се изчиства като идея преди да влезе в действие. В последствие може да се окаже голям зор да промениш нещата, както се оказва.





Титла: Route and iptables
Публикувано от: flipz в Sep 10, 2008, 10:57
значи точно така аз и в началото съм го писал, че порта вижда вс.останали който не се виждат помежду си. те са access не са trunk защото нали клиентските машини са Win и на повечето не може да се прави vlan та съответно нямам подобни и няма смисал да създавам vlan-и на eth0 което както каза ми е GW за клиентите.

целта е: влан2 в който участват порт1 и порт9 на суича и влан3 в който са порт2 и порт9 да не се виждат по между си.

т.е. всички пц-та на порт1 и на порт2 нямат достъп т.е. са отделни сигменти. изолирани са .. не знам как точно се нарича дали е порт-мапинг или каквото и да е .. осъществява се с vlan то всеки различно го нарича изглежда.
Това е конфигурацията която съм направил:
set vlan 2 add port 1,9 untag
set vlan 3 add port 2,9 untag
set vlan 4 add port 3,9 untag
set vlan 100 add port 1-3,9 untag
set port 1 pvid 2
set port 2 pvid 3
set port 3 pvid 4
set port 9 pvid 100
set vlan 2-4,100 fid 5
set vlan 2-4,100 enable

И сега сървърът е вкл. към порт9 той вижда вс-те клонове и идеята ми е.
да направя по някакъв начин примерно едно IP да може да вижда всички пц-та както ги вижда и сървърът.

примерно моето пц е на 2порт и искам да пинг-на клиент от 3порт. и това да се случи чрез сървърът понеже той вижда всичко. нещо предполагам с Forward Postrouting i etc. трябва да стане .. но незнам точно как все още.


Титла: Route and iptables
Публикувано от: gat3way в Sep 10, 2008, 11:33
Сървърът ги "вижда" защото е вързан на порт - член на всичките там влан-и.

Значи ти все пак трябва да имаш inter-vlan рутиране така че машина от единия vlan да вижда машини от другия vlan.

Ако искаш да ограничиш това само до определен хост от дадения vlan, тогава си слагаш съответните правила във FORWARD.

Vlan интерфейси създаваш не защото изключително много държиш да си "оцветяваш" трафика. Въпросът е че сървърът ти когато види пакет "идващ" от хост от единия vlan/subnet трябва да го forward-не към хоста от другия vlan/subnet. Routing decision-a се взема на база destination адреса и пакетът се препраща към интерфейса, чиито адрес/маска съответстват на destination-a (или има специално набит статичен маршрут, ако не отговаря на двете - минава през default gw-a).

Ако отделните vlan сегменти не са и отделни събнети, първо пакет изпратен от един хост от сегмента няма да тръгне да "излиза" през рутера ти, т.е за него този хост ще бъде в същият етернет сегмент и ще почне да се опитва да го открие чрез arp заявки.

Но да речем че на този хост има нещо от сорта на route add dst_host gw server_ip и тогава тези пакети да се опитват да се рутират през твоят сървър.

Твоят сървър ще види един пакет, идващ от eth0 и предназначен за друг хост, принадлежащ на събнета на eth0. Routing decision няма да се вземе въобще и няма да има кой да каже "изпрати обратно този пакет през eth0".

Компромисен вариант има, разбира се. На хоста, на който си чертаеш картата набиваш по един статичен маршрут до другите хостове през рутера, на рутера слагаш по едно  SNAT правило за целта iptables -t nat -A POSTROUTING -s srcip -d dstip -j SNAT --to-source routerip, тогава вероятно да - ще стане (ще е желателно разните icmp redirects на сървъра да се забранят - echo 0 > /proc/sys/net/ipv4/conf/eth0/send_redirects). Но това е грубо решение.


Титла: Route and iptables
Публикувано от: bulg в Sep 10, 2008, 11:57
flips, с молба за линк/име на програмчето-картичка?


Титла: Route and iptables
Публикувано от: flipz в Sep 10, 2008, 13:21
gat3way: благодаря, точно за тази команда се борих, но не ми дойде на ум как да я формулирам .. т.е. както ми я написа.
сега ще опитам .. само да видя опита на cern и до къде са я закарали с този 'адронен ускорител'


Титла: Route and iptables
Публикувано от: 1010 в Sep 10, 2008, 15:17
set vlan 2 add port 1,9 untag
set vlan 3 add port 2,9 untag
set vlan 4 add port 3,9 untag
set vlan 100 add port 1-3,9 untag

Искам да попитам ако съм разбрал правилно...на въпросния 9 порт всички vlain id-та са  access ( untagged ) ? и
Каква марка е комутатора?


Титла: Route and iptables
Публикувано от: flipz в Sep 12, 2008, 11:30
ами то си пише, но да access са

ZTE 16 портов


Титла: Route and iptables
Публикувано от: gat3way в Sep 12, 2008, 12:17
А какво стана, нат-ват ли се успешно сега нещата?


Титла: Route and iptables
Публикувано от: diel в Sep 14, 2008, 16:41
Този тип vlan се наричат PVLAN - Private VLAN.
Най добре ще стане да сложи неговото PC  в друг събнет и на сървъра да филтрира трафика с iptables към хостовете (в случая да пропусне само icmp).
Така като праща пакети към хостовете при всички случаи ще минават през машината.


Титла: Route and iptables
Публикувано от: flipz в Sep 14, 2008, 20:09
Цитат (gat3way @ Сеп. 12 2008,13:17)
А какво стана, нат-ват ли се успешно сега нещата?

ето за това се борих човече ... точно това исках да те питам от самото начало и да се получи. благодаря за помоща и поздрави.