Титла: Arp проблеми Публикувано от: never_mind в Apr 20, 2007, 21:31 От няколко седмици ISP-то ми прави проблеми. Има пуснат arp proxy на gw. Аз натвам 2 машини зад рутера ( debian etch ) - един Уин и един дебиан още. По някаква причина на външния интерфейс се получава това
и нета замира като отрязан с нож. Преди бях с openbsd на рутера, същият проблем. За пояснение X.X.X.X е адреса на Уин-а за НАТ, а Медиа адреса е всъщност MAC-а на гейта ( заради проксито ). Имам следния въпрос: Защо получавам такъв пакет и то само когато Уин-а генерира трафик, а не линукса? Защо през tcpdump виждам arp reply-то, но не и request-a? Как да блокирам/филтирам подобен reply, за да не ми обърква мрежата? Титла: Arp проблеми Публикувано от: gat3way в Apr 20, 2007, 23:50 Ясно е защо го получаваш, когато уиндоуса "генерира трафик".
Защо не виждаш arp broadcast-а обаче нямам идея. Как пускаш tcpdump? Този пакет не ти "обърква" мрежата. Проблемът твърде вероятно е проблем на рутера на доставчика ти, който не иска да си говори с няколко IP адреси, които отговарят на един и същ ethernet адрес в arp таблицата му. Титла: Arp проблеми Публикувано от: never_mind в Apr 21, 2007, 21:40 С 2 tcpdump-а - 1 на вътрешния и 1 на външния следя това:
когато получа на външния arp reply 192.168.143.2 is-at 00:30:48:8d:2f:b1 (oui Unknown) нета умира. След малко получавам на вътрешния arp who-has 192.168.143.2 tell 192.168.143.1 arp reply 192.168.143.2 is-at 00:a0:c9:6c:89:23 (oui Unknown) нета пак тръгва. Явно нормално си приемам броудкаста. Остава проблема откъде на къде ще получавам на външния подобен пакет? Вътрешния броудкаст от рутера към локала си е наред, през ~30 сек се премятат arp заявки 21:33:34.175015 arp who-has 192.168.143.2 tell 192.168.143.1 21:33:34.175185 arp reply 192.168.143.2 is-at 00:a0:c9:6c:89:23 (oui Unknown) 21:34:10.176326 arp who-has 192.168.143.2 tell 192.168.143.1 21:34:10.176488 arp reply 192.168.143.2 is-at 00:a0:c9:6c:89:23 (oui Unknown) 21:34:46.173634 arp who-has 192.168.143.2 tell 192.168.143.1 21:34:46.173827 arp reply 192.168.143.2 is-at 00:a0:c9:6c:89:23 (oui Unknown) Но идва момента с пакета на външния с грешен медиа адрес и сичко се насира с извинение. Ще се побъркам вече. И аз не виждам арп заявката, няма такава просто. А има reply. ![]() Титла: Arp проблеми Публикувано от: VladSun в Apr 21, 2007, 22:32 Пробвай на твоя рутер да сложиш статична АРП таблица ...
Титла: Arp проблеми Публикувано от: never_mind в Apr 24, 2007, 21:58 Това и направих, но не стана. Сега пак е статична, но сложих arptables, която да филтрира всичко от вън. Проблема изчезна. E, филтрира и комуникацията ми с gw, затова и съм задал статична таблица. Проблемът е, че позволя ли комуникация с gw, той пак ми праща пакета с частното IP. Въпрос: Мога ли да накарам tcpdump да ми показва src и dst адреса на arp пакетите?
От това
не се разбира нищо... кой праща reply и на кого? Титла: Arp проблеми Публикувано от: gat3way в Apr 24, 2007, 22:36 А, чакай, аз не съм разбрал явно.
Кой прави proxyarp, ти или доставчика? Ако го правиш ти, то защо НАТ-ваш? Титла: Arp проблеми Публикувано от: never_mind в Apr 25, 2007, 23:10 Не го правя аз, а доставчика.
Титла: Arp проблеми Публикувано от: VladSun в Apr 25, 2007, 23:42 Тогава пробвай без ARP протокол на интерфейсите и със статична таблица.
ПП: Това със статичната таблица и на вътрешните машини трябва да го направиш. Титла: Arp проблеми Публикувано от: gat3way в Apr 26, 2007, 10:22 Донякъде си представям какво точно се случва. От "другата страна" (демек след proxyarp рутера) има друга машина с ИП адрес същия като на уиндоус машината ти. Но там няма такава машина с адрес като на линукс-а ти, затова с него си нямаш проблеми.
В един момент, твоят рутер иска да разбере на какъв мак адрес съответства ип адреса на уиндоуса. Тогава или праща АРП заявки през всички интерфейси, или му се "дава" gratituous отговор от страна на рутера на доставчика ти и той го приема. Като резултат, вместо твоят рутер да осъществява L2 комуникация с уиндоуса, той се опитва да го прави с рутера на провайдъра ти. Има два начина да се избегне това, първият е както каза VladSun да се набият статични АРП ентрита, това трябва със сигурност да сработи. Другият е да изръчкаш няколко настройки на ядрото по отношение на АРП "поведението", т.е: echo 2 > /proc/sys/net/ipv4/conf/*/arp_announce echo 1 > /proc/sys/net/ipv4/conf/*/arp_filter които контролират дали ядрото трябва да се занимава с АРП "дейности" през всичките си интерфейси или само през тези, които са в същия subnet. Мисля, че и това е вариант също ![]() А всъщност и трети вариант има, да смениш адресите на НАТ-натите машини с някакви за каквито със сигурност знаеш че не се ползват. За това може да се провери лесно с arping, рутера на доставчика ти или ще отговори от тяхно име, или не - при втория вариант вероятно можеш да ползваш адреса без проблем. Титла: Arp проблеми Публикувано от: never_mind в Apr 27, 2007, 08:30 Ето каква е хавата... gat3way, това със смяната 1-во го направих, не стана... тоест не е това , и със статична не става, IP-то ми се мени по 3-пъти на ден, следователно и гейта
![]() ![]()
Сами виждате... стандартен TCP пакет на 80 порт не бива НАТ-ван. Докато другите заявки от същата сесия на браузъра на вътрешния комп са си НАТ-вани... не знам каква е причината ( претоварване на рутера, бъг в НАТ модула на ядрото, се тая ... ) и като пратя навън подобно нещо ест че гейта ще ми отговори ![]() Титла: Arp проблеми Публикувано от: gat3way в Apr 27, 2007, 11:27 Хм, обаче в такъв случай ми изглежда странно само с уиндоус-а да ти се получават такива неща...знам ли..
BTW можеш ли да ми кажеш в момента в който това се случи какви са стойностите на: /proc/sys/net/ipv4/netfilter/ip_conntrack_count /proc/sys/net/ipv4/netfilter/ip_conntrack_max /proc/sys/net/ipv4/netfilter/ip_conntrack_buckets Възможно е да си ударил лимита на conntrack entries и заради това да не успява да го НАТ-не...макар че само с 2 нат-нати машини е много странно как ще стане това. Освен ако по принцип не са много ниски. Също така, максималният брой по дефолт мисля че се сет-ваха по някаква формула, която взема предвид наличната РАМ. Ако няма много РАМ на машината е възможно да е size-нат твърде ниско, знам ли и аз... Титла: Arp проблеми Публикувано от: never_mind в Apr 28, 2007, 10:45 Пакетите са само от Уин-а, и аз не знам защо... когато вместо дебиан заредя Уин на другата вътрешна машина, и от него почва да логва не НАТ-нати пакети.
Далееч съм от лимита. Най-интересното е, че и
не ги спира, а ми е първо правило за OUTPUT ( демек най-отгоре ). Титла: Arp проблеми Публикувано от: VladSun в Apr 28, 2007, 14:27
NAT-натите пакети не са локални - т.е. не излизат от OUTPUT. NAT-a го правиш в POSTROUTING, трябва да имаш подобно правило в тази верига, след SNAT-a ... ПП: Дай един iptables -t nat -nxvL да видим за какво става въпрос. Титла: Arp проблеми Публикувано от: never_mind в Apr 28, 2007, 22:20
Това е изхода, а ето ми и НАТ правилата
Титла: Arp проблеми Публикувано от: VladSun в Apr 28, 2007, 23:09 Дай му още:
Титла: Arp проблеми Публикувано от: never_mind в Apr 29, 2007, 10:38 Въведох го правилото, но то ще се изпълни само ако пакета не е от мрежа 144. или 143. нали? Това как ще ми спре пакетите от 143. пак да излизат от време на време?
p.s Мне, пак не става.... tcpdump -n -s 1500 -vvv -e -i eth2 ether src host 00:0B:6A:B6:9A:51 and src net 192.168.0.0/16 tcpdump: listening on eth2, link-type EN10MB (Ethernet), capture size 1500 bytes 12:51:25.336770 00:0b:6a:b6:9a:51 > 00:30:48:8d:2f:b9, ethertype IPv4 (0x0800), length 54: (tos 0x0, ttl 127, id 53248, offset 0, flags [DF], proto: TCP (6), length: 40) 192.168.143.2.23080 > 82.77.18.223.1875: F, cksum 0xc357 (correct), 2447601630:2447601630(0) ack 1208257703 win 65467 12:52:06.239291 00:0b:6a:b6:9a:51 > 00:30:48:8d:2f:b9, ethertype IPv4 (0x0800), length 54: (tos 0x0, ttl 127, id 53272, offset 0, flags [DF], proto: TCP (6), length: 40) 192.168.143.2.23080 > 82.77.18.223.2037: F, cksum 0x296a (correct), 2795668862:2795668862(0) ack 3792593289 win 65467 13:06:20.051024 00:0b:6a:b6:9a:51 > 00:30:48:8d:2f:b9, ethertype IPv4 (0x0800), length 54: (tos 0x0, ttl 127, id 14922, offset 0, flags [DF], proto: TCP (6), length: 40) 192.168.143.2.23080 > 82.77.18.223.1085: F, cksum 0x6881 (correct), 985780358:985780358(0) ack 1259527679 win 65467 и още 2 докато браузвам под вътрешния дебиан 13:31:19.017017 00:0b:6a:b6:9a:51 > 00:30:48:8d:2f:b9, ethertype IPv4 (0x0800), length 66: (tos 0x0, ttl 64, id 10621, offset 0, flags [DF], proto: TCP (6), length: 52) 192.168.144.2.33409 > 64.124.204.232.80: F, cksum 0x6794 (correct), 3819647837:3819647837(0) ack 4282159949 win 432 <nop,nop,timestamp 489605 37816374> 13:33:16.514133 00:0b:6a:b6:9a:51 > 00:30:48:8d:2f:b9, ethertype IPv4 (0x0800), length 66: (tos 0x0, ttl 64, id 10622, offset 0, flags [DF], proto: TCP (6), length: 52) 192.168.144.2.33409 > 64.124.204.232.80: F, cksum 0xf4d3 (correct), 0:0(0) ack 1 win 432 <nop,nop,timestamp 518981 37816374> I give up .... Титла: Arp проблеми Публикувано от: VladSun в Apr 29, 2007, 14:44
Напротив - последното правило ти спира пакетите от цялата 192.168.0.0/16 мрежа. Имам въпрос: за какво са тия IPSEC match-ове (--dir, --pol)? Титла: Arp проблеми Публикувано от: voyager в Apr 29, 2007, 15:40 Ок, а пробва ли да правиш SNAT вместо MASQUARADE?
Доколкото съм запознат, MASQUARADE беше стария начин.. вече всичко е [S|D]NAT. Пробвай нещо от сорта: iptables -t nat -A POSTROUTING -s $INT_NET -o $OUT_IF -j SNAT --to-source $EXT_IP и сподели каква е хавата. Успех! пп: И наистина, VladSun задава много основателен въпрос... възможно е първия пакет да не попада в правилото което трябва, а просто да се форуардва без да му се прави никаква транслация (което се наблюдава). Пробвай и да ги разкараш. Колкото по-малко, по-прости и чисти правила толкова по-добре ![]() Титла: Arp проблеми Публикувано от: never_mind в Apr 29, 2007, 19:33 Еми не мога SNAT, понеже IP-то ми се мени постоянно... значи правилата ми са генерирани от shorewall, понеже ми беше по-лесно с него. Сега вече съм прочел доста за iptables и ще направя мой си скрипт с по-малко глупости вътре...
Титла: Arp проблеми Публикувано от: never_mind в Apr 30, 2007, 20:43
Пренаписах всичко, по просто от това не може... аре ся ми кажете къде бъркам в правилата, че изпускам пакети без да са НАТ-нати... Ще взема да си компилирам последното ядро, да не би да е бъг в него... |