LINUX.ORG.RU
ФорумAdmin

внешняя подсеть


0

0

3 дня ломаю голову, не пойму в чем причина..
поможите люди добрые...

итак:
из-за отсутствия дополнительных внешних ИП адресов (так сказал сам пров), провайдер дает нам подсеть и один ИП через который мы сами должны маршрутизировать эту самаю подсеть. Для примера:
IP - 195.195.195.55
сеть - 85.85.85.112/29

дабы не тратить зря ИПешники я пустил и всю локалку через этот выданный ИП, прикрутив кальмара и iptables. Проблем нет, все довольны.
Есть у нас некое оборудование (веб-камеры и т.д.) к которым из "хрен_знает_от_куда" через инет надо иметь постоянный доступ. Маршрутизирую:
route add -net 85.85.85.112 netmask 255.255.255.248 gw 195.195.195.55

и открываю в iptables:
IPTABLES -A FORWARD -i $INET_IFACE -p ALL -d 85.85.85.112/29 -j ACCEPT

подключены 4 устройства с данными им мной ИП:
85.85.85.113
85.85.85.114
85.85.85.115
85.85.85.116

и собственно вот трабла:
два из этих устройства и пингуются и дают работать с ними с любой точки Земли, два других нет :(. Причем опробывали в локалке - устройства рабочие на все 100. В логах тока ошибки вида:
IPT INPUT packet died: IN=eth2 OUT= MAC=_МАК_ВНЕШНЕЙ_СЕТЕВУХИ_ SRC=_КАЖДЫЙ_РАЗ_РАЗНЫЕ_ВНЕШНИЕ_АДРЕСА DST=195.195.195.55 LEN=48 TOS=0x00 PREC=0x00 TTL=116 ID=22257 DF PROTO=TCP SPT=1699 DPT=1397 WINDOW=65535 RES=0x00 SYN URGP=0

даже не знаю куда смотреть и где копать...
ИП меняли - не помогает :(


какие из 2-х не работают? То есть адреса на конце покажи. Есть подозрение насчет сети и маски - ща проверю - напишу.

gserg ★★
()
Ответ на: комментарий от gserg

> какие адреса режутся?

на сколько я знаю если маска /29 т.е. 255.255.255.248, то можно использовать 6 адресов, 115 и 116 работают на ура (камера и комп), а вот все остальные (113,114,117,118) меняли все поочереди для других устройств (всякие там модульные устройства) не фурычат :(

правда, дать им 115 или 116, чет не дотумкали..

ATAMAH
() автор топика

>"IPT INPUT packet died:"

По идее, эта строчка должна быть у вас в правилах iptables. Покажите все правила в iptables.

>Причем опробывали в локалке - устройства рабочие на все 100.

Устройства бывают такие, что не знают про маршрутизацию, то есть для любого ip-адреса пытаются определить его MAC-адрес с помощью arp-запроса и работать с этим адресом. Попробуйте проверить их с адреса не из локальной сети и смотрите трафик с помощью tcpdump.

То есть, допустим на сервере на одной консоли:
"tcpdump -i eth? -n -nn host 85.85.85.114"
а на другой
"telnet -b 195.195.195.55 85.85.85.114 ПортУстройства"

mky ★★★★★
()
Ответ на: комментарий от mky

т.к. телнета нет (запрещен во всех направлениях и потому, даже не ставился), со второго конца за 500 км от устройства(217.217.217.217) дал обычный пинг сначала на рабочее устройство (85.85.85.115)

# tcpdump -i eth2 -n -nn host 85.85.85.115
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth2, link-type EN10MB (Ethernet), capture size 96 bytes
10:35:55.951566 IP 217.217.217.217 > 85.85.85.115: ICMP echo request, id 512, seq 45068, length 40
10:35:55.951604 IP 195.195.195.55 > 85.85.85.115: ICMP echo request, id 512, seq 45068, length 40
10:35:55.951726 IP 85.85.85.115 > 195.195.195.55: ICMP echo reply, id 512, seq 45068, length 40
10:35:55.951769 IP 85.85.85.115 > 217.217.217.217: ICMP echo reply, id 512, seq 45068, length 40
10:35:57.090978 IP 217.217.217.217 > 85.85.85.115: ICMP echo request, id 512, seq 45324, length 40
10:35:57.091018 IP 195.195.195.55 > 85.85.85.115: ICMP echo request, id 512, seq 45324, length 40
10:35:57.091161 IP 85.85.85.115 > 195.195.195.55: ICMP echo reply, id 512, seq 45324, length 40
10:35:57.091214 IP 85.85.85.115 > 217.217.217.217: ICMP echo reply, id 512, seq 45324, length 40
10:35:58.037069 IP 217.217.217.217 > 85.85.85.115: ICMP echo request, id 512, seq 45580, length 40
10:35:58.037102 IP 195.195.195.55 > 85.85.85.115: ICMP echo request, id 512, seq 45580, length 40
10:35:58.037237 IP 85.85.85.115 > 195.195.195.55: ICMP echo reply, id 512, seq 45580, length 40
10:35:58.037281 IP 85.85.85.115 > 217.217.217.217: ICMP echo reply, id 512, seq 45580, length 40
10:35:58.948598 IP 217.217.217.217 > 85.85.85.115: ICMP echo request, id 512, seq 45836, length 40
10:35:58.948628 IP 195.195.195.55 > 85.85.85.115: ICMP echo request, id 512, seq 45836, length 40
10:35:58.948762 IP 85.85.85.115 > 195.195.195.55: ICMP echo reply, id 512, seq 45836, length 40
10:35:58.948803 IP 85.85.85.115 > 217.217.217.217: ICMP echo reply, id 512, seq 45836, length 40
10:35:59.294630 IP 85.85.85.115.1026 > 255.255.255.255.475: UDP, length 165
10:35:59.484625 IP 195.195.195.55.475 > 85.85.85.115.1026: UDP, length 62
10:36:00.497900 IP 85.85.85.115.1026 > 255.255.255.255.475: UDP, length 165
10:36:00.498230 IP 195.195.195.55.475 > 85.85.85.115.1026: UDP, length 62
10:36:00.951192 arp who-has 85.85.85.115 tell 195.195.195.55
10:36:00.951302 arp reply 85.85.85.115 is-at 00:15:00:20:50:10
10:36:01.529062 IP 85.85.85.115.1026 > 255.255.255.255.475: UDP, length 165
10:36:01.718578 IP 195.195.195.55.475 > 85.85.85.115.1026: UDP, length 62
10:36:02.732234 IP 85.85.85.115.1026 > 255.255.255.255.475: UDP, length 165
10:36:02.732571 IP 195.195.195.55.475 > 85.85.85.115.1026: UDP, length 62

потом на проблемное (85.85.85.113)

# tcpdump -i eth2 -n -nn host 85.85.85.113
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth2, link-type EN10MB (Ethernet), capture size 96 bytes
13:04:43.018609 IP 217.217.217.217 > 85.85.85.113: ICMP echo request, id 512, seq 62220, length 40
13:04:43.018662 IP 195.195.195.55 > 85.85.85.113: ICMP echo request, id 512, seq 62220, length 40
13:04:48.202784 IP 195.195.195.55.31013 > 85.85.85.113.22: S 1842719310:1842719310(0) win 65535 <mss 1460,nop,nop,sackOK>
13:04:48.485736 IP 217.217.217.217 > 85.85.85.113: ICMP echo request, id 512, seq 62476, length 40
13:04:48.485772 IP 195.195.195.55 > 85.85.85.113: ICMP echo request, id 512, seq 62476, length 40
13:04:52.735187 arp who-has 85.85.85.113 tell 195.195.195.55
13:04:52.736723 arp reply 85.85.85.113 is-at 00:b0:19:20:30:40
13:04:53.985856 IP 217.217.217.217 > 85.85.85.113: ICMP echo request, id 512, seq 62732, length 40
13:04:53.985878 IP 195.195.195.55 > 85.85.85.113: ICMP echo request, id 512, seq 62732, length 40
13:04:59.485441 IP 217.217.217.217 > 85.85.85.113: ICMP echo request, id 512, seq 62988, length 40
13:04:59.485464 IP 195.195.195.55 > 85.85.85.113: ICMP echo request, id 512, seq 62988, length 40

причем ответ при пинге приходит "Превышен интервал ожидания..."

зы: на время не смотрите, просто так получилось :)

ATAMAH
() автор топика
Ответ на: комментарий от mky

поставил телнет...
и дал команду "telnet -b 195.195.195.55 85.85.85.113 9999"

# tcpdump -i eth2 -n -nn host 85.85.85.113
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth2, link-type EN10MB (Ethernet), capture size 96 bytes
13:24:33.397364 IP 195.195.195.55.42898 > 85.85.85.113.9999: S 3520044807:3520044 807(0) win 5840 <mss 1460,sackOK,timestamp 305285010 0,nop,wscale 5>
13:24:36.395204 IP 195.195.195.55.42898 > 85.85.85.113.9999: S 3520044807:3520044 807(0) win 5840 <mss 1460,sackOK,timestamp 305285760 0,nop,wscale 5>
13:24:38.395187 arp who-has 85.85.85.113 tell 195.195.195.55
13:24:38.396858 arp reply 85.85.85.113 is-at 00:b0:19:20:30:40
13:24:42.395200 IP 195.195.195.55.42898 > 85.85.85.113.9999: S 3520044807:3520044 807(0) win 5840 <mss 1460,sackOK,timestamp 305287260 0,nop,wscale 5>
13:24:54.395206 IP 195.195.195.55.42898 > 85.85.85.113.9999: S 3520044807:3520044 807(0) win 5840 <mss 1460,sackOK,timestamp 305290260 0,nop,wscale 5>

ATAMAH
() автор топика
Ответ на: комментарий от mky

> Покажите все правила в iptables
сори.. про iptables забыл в спешке.., исправляюсь:

===================================
#!/bin/sh
iptables --flush
iptables -t nat --flush
clear

INET_IP="195.195.195.55"
INET_IFACE="eth2"

LAN_IP="192.168.2.2"
LAN_IP_RANGE="192.168.2.0/24"
LAN_IFACE="eth0"

LO_IFACE="lo"
LO_IP="127.0.0.1"

IPTABLES="iptables"

/sbin/depmod -a
/sbin/modprobe ip_tables
/sbin/modprobe ip_conntrack
/sbin/modprobe iptable_filter
/sbin/modprobe iptable_mangle
/sbin/modprobe iptable_nat
/sbin/modprobe ipt_LOG
/sbin/modprobe ipt_limit
/sbin/modprobe ipt_state
# /sbin/modprobe ipt_owner
/sbin/modprobe ipt_REJECT
/sbin/modprobe ipt_MASQUERADE
/sbin/modprobe ip_conntrack_ftp #
# /sbin/modprobe ip_conntrack_irc
/sbin/modprobe ip_nat_ftp #
# /sbin/modprobe ip_nat_irc

echo "1" > /proc/sys/net/ipv4/ip_forward

$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT DROP
$IPTABLES -P FORWARD DROP

$IPTABLES -N bad_tcp_packets
$IPTABLES -N allowed
$IPTABLES -N tcp_packets
$IPTABLES -N udp_packets
$IPTABLES -N icmp_packets

$IPTABLES -A bad_tcp_packets -p TCP --tcp-flags SYN,ACK SYN,ACK -m \
state --state NEW -j REJECT --reject-with tcp-reset

$IPTABLES -A bad_tcp_packets -p TCP ! --syn -m state --state NEW -j \
LOG --log-prefix "New not syn:"

$IPTABLES -A bad_tcp_packets -p TCP ! --syn -m state --state NEW -j DROP

$IPTABLES -A allowed -p TCP --syn -j ACCEPT
$IPTABLES -A allowed -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A allowed -p TCP -j DROP

$IPTABLES -t nat -A PREROUTING -p TCP -s 192.168.2.0/24 --dport 80 -j REDIRECT --to-ports 3128

$IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 8 -j ACCEPT
$IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 11 -j ACCEPT

# INPUT

$IPTABLES -A INPUT -p TCP -j bad_tcp_packets
$IPTABLES -A INPUT -p UDP -s $LAN_IP -m multiport --port 69 -j DROP
$IPTABLES -A INPUT -p UDP -s $LAN_IP -m multiport --port 123 -j ACCEPT
$IPTABLES -A INPUT -p UDP -s $INET_IP -m multiport --port 69 -j DROP

$IPTABLES -A INPUT -p TCP -m multiport --port 443 -j ACCEPT
$IPTABLES -A INPUT -p TCP -s $INET_IP -m state --state RELATED -j ACCEPT

$IPTABLES -A INPUT -p ALL -i $LAN_IFACE -s $LAN_IP_RANGE -j ACCEPT
$IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $LO_IP -j ACCEPT
$IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $LAN_IP -j ACCEPT
$IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $INET_IP -j ACCEPT

$IPTABLES -A INPUT -p ALL -d $INET_IP -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -p TCP -i $INET_IFACE -j tcp_packets
$IPTABLES -A INPUT -p UDP -i $INET_IFACE -j udp_packets
$IPTABLES -A INPUT -p ICMP -i $INET_IFACE -j icmp_packets

$IPTABLES -A INPUT -m limit --limit 3/minute --limit-burst 3 -j LOG \
--log-level DEBUG --log-prefix "IPT INPUT packet died: "

# FORWARD

$IPTABLES -A FORWARD -p TCP -j bad_tcp_packets
$IPTABLES -A FORWARD -i $LAN_IFACE -p ALL -s 192.168.2.0/24 -j ACCEPT
$IPTABLES -A FORWARD -i $INET_IFACE -p ALL -d 85.85.85.112/29 -j ACCEPT
$IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

$IPTABLES -A FORWARD -m limit --limit 3/minute --limit-burst 3 -j LOG \
--log-level DEBUG --log-prefix "IPT FORWARD packet died: "

# OUTPUT

$IPTABLES -A OUTPUT -p TCP -j bad_tcp_packets

$IPTABLES -A OUTPUT -p UDP -s $LAN_IP -m multiport --port 69 -j DROP
$IPTABLES -A OUTPUT -p UDP -s $LAN_IP -m multiport --port 123 -j ACCEPT
$IPTABLES -A OUTPUT -p UDP -s $INET_IP -m multiport --port 69 -j DROP
$IPTABLES -A OUTPUT -p TCP -s $INET_IP -m multiport --port 139,445 -j DROP
$IPTABLES -A OUTPUT -p TCP -m multiport --port 443 -j ACCEPT
$IPTABLES -A OUTPUT -p ICMP -s $LAN_IP -j ACCEPT

$IPTABLES -A OUTPUT -p ALL -s $LO_IP -j ACCEPT
$IPTABLES -A OUTPUT -p ALL -s $LAN_IP -j ACCEPT
$IPTABLES -A OUTPUT -p ALL -s $INET_IP -j ACCEPT

$IPTABLES -A OUTPUT -m limit --limit 3/minute --limit-burst 3 -j LOG \
--log-level DEBUG --log-prefix "IPT OUTPUT packet died: "
# NAT

$IPTABLES -t nat -A POSTROUTING -j MASQUERADE
$IPTABLES -t nat -A POSTROUTING -o $INET_IFACE -j SNAT --to-source $INET_IP


ATAMAH
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.