Tem Posted February 25, 2010 · Report post Имеется сервер под CentOS, на нем поднято несколько вланов vlan101 Link encap:Ethernet HWaddr 00:1B:21:40:EC:C9 inet addr:10.10.0.9 Bcast:10.10.0.15 Mask:255.255.255.248 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:57771 errors:0 dropped:0 overruns:0 frame:0 TX packets:192936243 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:2873852 (2.7 MiB) TX bytes:3935923457 (3.6 GiB) vlan102 Link encap:Ethernet HWaddr 00:1B:21:40:EC:C9 inet addr:10.10.0.17 Bcast:10.10.0.23 Mask:255.255.255.248 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:9473 errors:0 dropped:0 overruns:0 frame:0 TX packets:449179 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:450500 (439.9 KiB) TX bytes:353661591 (337.2 MiB) vlan103 Link encap:Ethernet HWaddr 00:1B:21:40:EC:C9 inet addr:10.10.0.1 Bcast:10.10.0.3 Mask:255.255.255.252 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:54633 errors:0 dropped:0 overruns:0 frame:0 TX packets:27851335 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:2597860 (2.4 MiB) TX bytes:2646215483 (2.4 GiB) vlan104 Link encap:Ethernet HWaddr 00:1B:21:40:EC:C9 inet addr:10.10.0.25 Bcast:10.10.0.31 Mask:255.255.255.248 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:35882 errors:0 dropped:0 overruns:0 frame:0 TX packets:1836503 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:6228336 (5.9 MiB) TX bytes:1885815026 (1.7 GiB) Сервак воткнут в Dlink 3028, на немvlan101 port1 untag, 28 tag vlan102 port2 untag, 28 tag и т.д. чтобы клиенты не страдали подменой ип в иптаблес прописал след. iptables -t filter -I INPUT --in-interface ! vlan101 -d 10.10.0.9 -j DRОP iptables -t filter -I INPUT --in-interface ! vlan102 -d 10.10.0.17 -j DRОP и т.д. Все отлично пашет, но с сервера не пингуются клиентские ипишники, а извне все норма. Проблема вприниципе не особо напрягает, но всеж хочется разрулить её. Share this post Link to post Share on other sites
vitalyb Posted February 25, 2010 (edited) · Report post например, пакет приходит из vlan103, т.е. вполне себе подходит под правило "не vlan101", и режется потому, что dst у него не 10.10.0.9, конечно, а 10.10.0.1 неправильно. покажите все правила Edited February 25, 2010 by vitalyb Share this post Link to post Share on other sites
Abram Posted February 25, 2010 · Report post iptables -t filter -I INPUT --in-interface ! vlan101 -d 10.10.0.9 -j DRОPЯ б скорее писалiptables -t filter -I INPUT -i vlan101 ! -d 10.10.0.9 -j DRОP Кстати, в последнее время принято отрицание (т.е восклицательный знак) в iptables ставить перед опцией. Share this post Link to post Share on other sites
Tem Posted February 26, 2010 (edited) · Report post например, пакет приходит из vlan103, т.е. вполне себе подходит под правило "не vlan101", и режется потому, что dst у него не 10.10.0.9, конечно, а 10.10.0.1неправильно. покажите все правила других правил нету, только етиеще один глюк...когда пытаюсь удалить правило выдает iptables: Bad rule (does a matching rule exist in that chain?) хотя если создать такоеже правило и сразу удалить, то все норма, но стоит подождать некоторое время и все...ошибка. iptables -t filter -I INPUT --in-interface ! vlan101 -d 10.10.0.9 -j DRОPЯ б скорее писалiptables -t filter -I INPUT -i vlan101 ! -d 10.10.0.9 -j DRОP Кстати, в последнее время принято отрицание (т.е восклицательный знак) в iptables ставить перед опцией. а разве ето правило не будет дропать всё, что идет из vlan101 не на 10.10.0.9 ? Edited February 26, 2010 by Tem Share this post Link to post Share on other sites
belial Posted February 28, 2010 · Report post какието бессмысленные правла: iptables -t filter -I INPUT --in-interface ! vlan101 -d 10.10.0.9 -j DRОP iptables -t filter -I INPUT --in-interface ! vlan102 -d 10.10.0.17 -j DRОP зачем вам они? страдали подменой IP? что вы имеете ввиду? Пакеты между вланам без маскараднга хотите чтобы ходил? Share this post Link to post Share on other sites
Tem Posted February 28, 2010 · Report post ну вот например ...есть два клиента Клиент А (vlan101) его ip 10.10.0.2, шлюз 10.10.0.1 , маска 255.255.255.252 Клиент B (vlan102) его ip 10.10.0.10, шлюз 10.10.0.9 , маска 255.255.255.248 на сервере имеется 2 интерфейса eth0 uplink eth1 смотрит в локалку и имеет ip, ну скажем 10.20.30.1/24 создаю на нем 2 vlan интерфейса vconfig add eth1 101 vconfig add eth1 102 ifconfig vlan101 10.10.0.1 netmask 255.255.255.252 ifconfig vlan102 10.10.0.9 netmask 255.255.255.248 на свиче создаю 2 влана vlan101 порт1 унтаггед (в него воткнут клиент), порт 28 таггед (в него воткнут сервер) vlan102 порт2 унтаггед (в него воткнут клиент), порт 28 таггед (в него воткнут сервер) Клиент В ставит у себя ip 10.10.0.9 и маску 255.255.255.0, а шлюзом пропишет 10.10.0.1, то у него все будет работать. Поетому этими правилами и пытаюсь закрыть доступ к "левым" шлюзам, хотя может ето и не нужно делать ? Share this post Link to post Share on other sites
micros Posted February 28, 2010 · Report post Клиент В ставит у себя ip 10.10.0.9 и маску 255.255.255.0, а шлюзом пропишет 10.10.0.1, то у него все будет работать. Так будет работать только если все в одном vlan, а у вас разные. Курите дальше, чего то вы не допоняли или не так настроили :0) Пакеты между вланам без маскараднга хотите чтобы ходил? А они и так ходят ;) Share this post Link to post Share on other sites
Tem Posted February 28, 2010 · Report post да, блин, уже запарился курить, поетому тут и спросил :) Думаю уже забить на ето, ибо пашет только подмена шлюза...ип юзера если сменить, то сразу все перестает работать. Share this post Link to post Share on other sites
micros Posted March 1, 2010 · Report post Да какая нафик подмена шлюза??? Vlan - это разные подсети - обмен трафиком между подсетями только через шлюз. В случае с маской 252 у вас в подсети всего 4 адреса - 1-сеть, 2-броадкаст, 3-шлюз, 4-абонент, т.е. абонент может использовать только 4й IP - в вашем случае это: 10.10.0.1 - адрес шлюза 10.10.0.2 - адрес абонента 10.10.0.0 - сеть 10.10.0.3 - броадкаст Все! выход в мир у юзера только через 10.10.0.1, какой бы он IP себе не поставил работать будет у него только с 10.10.0.2 потому что это его подсеть, к ней добавляется тег 802.1q, и пакеты других подсетей там не ходят. В случае с маской 248 - абонент может поставить себе побольше адресов, но шлюз в этой подсети все равно 1 :) и единственное, что юзера могут поменять - IP внутри подсети, а если убрать шлюз или сменить его - они увидят только друг друга в пределах 1го Vlan. А если у вас все работает с любыми адресами - возникает подозрение, что все по прежнему в одном vlan, возможно даже в default А какое железо и Ос у вас? (ну так для интереса) Share this post Link to post Share on other sites
Tem Posted March 1, 2010 · Report post Еслиб были в одном Vlan'е то еслиб я поставил у второго клиента ипишник из подсети первого, то тоже работало. Железо: свич длинк 3028....сервак под управлением CentOS, сетевушки Intel Corporation 82576 Gigabit Network Connection (rev 01) Share this post Link to post Share on other sites
vitalyb Posted March 1, 2010 · Report post Возможно речь идет о том, что Linux по умолчанию на ARP запросы отвечает со всех интерфейсов обо всех адресах. Если клиент поставит "чужой" шлюз - он точно так же ARP'ом получит тот же мак шлюза (потому что мак в разных виланах один и тот же) и у него всё будет работать. Чисто эстетический момент. Share this post Link to post Share on other sites