Archive for advance

arping без указания интерфейса

// Май 26th, 2011 // No Comments » // advance, console, Network, sh/bash, Tool

Когда на компьютере очень много интерфейсов, очень не удобно искать через какой нужно сделать arping, а на память запомнить все — чаще всего тоже не возможно… Появилась идея написать скрипт, который сам будет выбирать нужный.

#!/bin/sh

SNET=`echo $1 | awk −F. '{printf "%s\\\.%s\\\.%s\\\.",$1,$2,$3}'`
#freeBSD
IF=`ifconfig |grep "$SNET" −B6 | awk −F: '/flags/ { print $1 }'`
#linux
#IF=`ifconfig |grep "$SNET" −B6 | awk '/Link/ { print $1 }'`

arping −c3 −i $IF $1

использовать просто:

./script.sh 10.5.84.24

ВНИМАНИЕ! Есть некоторые ограничения:

1) предполагается, что адреса разбиты по 24й маске (255.255.255.0)

2) при количестве алиасов больше 5ти, на тех адресах, которые были добавлены с после — не будет работать

как работает и откуда ограничения под катом

(далее…)

изменение MTU средствами iptables

// Апрель 16th, 2010 // 1 Comment » // advance, iptables, linux, MTU

Суть проблемы: ADSL модем в режиме моста (bridge) или pptp соединение к провайдеру и маршрутизатор на линуксе.
Допустим все поднято, линукс бегает в интернет, но вот беда, пользователи за линуксом не хотят открывать сайты, хотя пинги и трейсы ходят, проблема кроется в том, что по умолчанию для ethernet размер пакета составляет 1500 байт, а для виртуального канала, т.к. происходить капсулирование пакетов, обычно 1472, иногда и того меньше, соответственно пакеты просто не помещаются, для этого нужно изменить размер пакета, т.е. заставить создавать соединение с нужным размером.
Для начала проверим, какое MTU нам подойдет, проверяется обычным пингом с указанием размера пакета, пример:

ping ya.ru -l 1472

если пинг не проходит, уменьшаем число до того момента, пока не подойдет, с шагом 28.
Потом нужно создать правило в iptables, что бы автоматически соединения принимали нужный размер пакетов

iptables -I FORWARD -o ppp0 -p tcp -j TCPMSS --tcp-flags syn,fin,ack syn --set-mss 1472

соответсвенно исходящий туннелированный интерфейс ppp0 поменять на свой и 1472 поменять на свое число