URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 74966
[ Назад ]

Исходное сообщение
"Спутник и NAT"

Отправлено makz , 02-Июл-07 11:31 
Имеется router на ubuntu 7.04, на нем же спутниковый тюнер, наземный канал ADSL, ч-з аппаратный рутер с NAT.

#!/bin/sh
### Укажите ниже интерфейс, через который Вы связываетесь с провайдером
EXTDEV="eth1"
### Укажите ниже интерфейс, через который Linux-машина подключена к локальной сети.
PPPOEDEV="eth0"
### Укажите ниже сеть для PPPOE клиентов.
INETWORKIP="192.168.2.0/255.255.255.0"

EXTERNALIP=192.168.1.11
ENETWORKIP=$EXTERNALIP+"/255.255.255.255"
INTERNALIP=192.168.2.1
LOOPBACK="127.0.0.1"
ANYWHERE="0.0.0.0/0"
PORTS="1024:65535"
INTDEV="ppp+"
/sbin/depmod -a
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_tables
/sbin/modprobe iptable_filter
/sbin/modprobe iptable_mangle
/sbin/modprobe iptable_nat
/sbin/modprobe ipt_LOG
/sbin/modprobe ipt_limit
/sbin/modprobe ipt_MASQUERADE
/sbin/modprobe ipt_owner
/sbin/modprobe ipt_REJECT
/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
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
for file in /proc/sys/net/ipv4/conf/*/rp_filter; do
  echo 1 > $file
done
    
for file in /proc/sys/net/ipv4/conf/*/accept_redirects; do
  echo 0 > $file
done
  
for file in /proc/sys/net/ipv4/conf/*/accept_source_route; do
  echo 0 > $file
done
                    
/sbin/iptables -F
/sbin/iptables -F -t nat
/sbin/iptables - N ALLOW_ICMP
/sbin/iptables - N ALLOW_PORTS
/sbin/iptables - N CHECK_FLAGS
/sbin/iptables - N DENY_PORTS
/sbin/iptables - N DST_EGRESS
/sbin/iptables - N KEEP_STATE
/sbin/iptables - N SRC_EGRESS

# По умолчанию все входящие пакеты сбрасываем
/sbin/iptables -P INPUT DROP
/sbin/iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
/sbin/iptables -A INPUT -j ACCEPT -s $EXTERNALIP -d $ANYWHERE
/sbin/iptables -A INPUT -j ACCEPT -s $ANYWHERE -d $ANYWHERE -I $INTDEV
/sbin/iptables -A INPUT -j ACCEPT -s $ANYWHERE -d $ANYWHERE -i lo
/sbin/iptables -A INPUT -j ACCEPT -s $ANYWHERE -d $ANYWHERE -i $EXTDEV -m state --state RELATED,ESTABLISHED
/sbin/iptables -A INPUT -j ACCEPT -p icmp -s $ANYWHERE -d $ANYWHERE
/sbin/iptables -A INPUT -j ACCEPT -p udp -s $INETWORKIP --sport 53 -d $ANYWHERE

# По умолчанию все исходящие пакеты сбрасываем
/sbin/iptables -P OUTPUT DROP
/sbin/iptables -A OUTPUT -j ACCEPT -s $ANYWHERE -d $ANYWHERE -o $INTDEV
/sbin/iptables -A OUTPUT -j ACCEPT -s $ANYWHERE -d $EXTERNALIP
/sbin/iptables -A OUTPUT -j ACCEPT -s $ANYWHERE -d $ANYWHERE -o lo
/sbin/iptables -A OUTPUT -j ACCEPT -s $ANYWHERE -d $ANYWHERE -o $EXTDEV -m state --state RELATED,ESTABLISHED
/sbin/iptables -A OUTPUT -j ACCEPT -p udp -s $EXTERNALIP -d $ANYWHERE --dport 53
/sbin/iptables -A OUTPUT -j ACCEPT -p icmp -s $ANYWHERE -d $ANYWHERE
/sbin/iptables -A OUTPUT -j ACCEPT -s $ANYWHERE -d $ANYWHERE -o $EXTDEV -m state --state RELATED,ESTABLISHED

/sbin/iptables -P FORWARD ACCEPT
/sbin/iptables -A FORWARD -j ACCEPT -s $ANYWHERE -d $ANYWHERE -i $INTDEV
/sbin/iptables -A FORWARD -j ACCEPT -p icmp -s $ANYWHERE -d $ANYWHERE -i $INTDEV

## Маскарадинг клиентов
/sbin/iptables -t nat -A POSTROUTING -j SNAT -s $INETWORKIP -d $ANYWHERE -o $EXTDEV --to $EXTERNALIP
/sbin/iptables -t nat -A POSTROUTING -j MASQUERADE -s $INETWORKIP -d $ANYWHERE -o $EXTDEV

## Запуск PPPOE-SERVER
killall -w -9 pppoe-server
/usr/sbin/pppoe-server -I $PPPOEDEV -L $INTERNALIP

При отключенном спутниковом канале все это работает. Если включаю вместо этого скрипта тоннель:

#!/bin/sh

/sbin/modprobe ipip
/sbin/modprobe ip_gre

/sbin/ip route add 80.81.208.66 via 192.168.1.1 src 192.168.1.11
/sbin/ip tunnel add gre1 mode gre local 192.168.1.11 remote 80.81.208.66
/sbin/ifconfig gre1 IPадресПодписки(серенький) netmask 255.255.255.255
/sbin/ip route add 1.1.1.1 dev gre1
/sbin/ip route del default
/sbin/ip route add default via 1.1.1.1 src IPадресПодписки
echo 1 > /proc/sys/net/ipv4/ip_forward
echo 0 > /proc/sys/net/ipv4/conf/all/rp_filter

, то локально могу брать трафик со спутника, а раздать:

/sbin/iptables -t nat -A POSTROUTING -j SNAT -o gre1 --to IPадресПодписки

не получается - пингуется адрес подписки с клиента, и ничего более... :(. Как правильно сделать? Помогите пожалуйста, мозг уже плавится! :(
За реальный ip тарелочный провайдер просит денежку, но у меня есть уже реальный IP от наземного прова, нельзя ли обойтись без...?


Содержание

Сообщения в этом обсуждении
"Спутник и NAT"
Отправлено Merlin_ua , 02-Июл-07 12:20 
>не получается - пингуется адрес подписки с клиента, и ничего более... :(.
>Как правильно сделать? Помогите пожалуйста, мозг уже плавится! :(
>За реальный ip тарелочный провайдер просит денежку, но у меня есть уже
>реальный IP от наземного прова, нельзя ли обойтись без...?

Делал я кое-что похожее на Фре.
https://www.opennet.ru/openforum/vsluhforumID1/73368.html
Может чем-то поможет.
Но есть вопрос: в твоем случае каким образом пакеты, предназначенные тебе, заворачиваются из мира на спутник???


"Спутник и NAT"
Отправлено makz , 02-Июл-07 19:33 
>Делал я кое-что похожее на Фре.
>https://www.opennet.ru/openforum/vsluhforumID1/73368.html
>Может чем-то поможет.
Пробую сообразить, но free для меня китайская грамота :(
>Но есть вопрос: в твоем случае каким образом пакеты, предназначенные тебе, заворачиваются
>из мира на спутник???
Забыл, пакеты уходят в туннель(gre1), возвращаются ч-з dvb0_0.


"Спутник и NAT"
Отправлено Merlin_ua , 03-Июл-07 10:26 
>Забыл, пакеты уходят в туннель(gre1), возвращаются ч-з dvb0_0.

Я не об этом. Меня интересует как пакеты из мира заварачиваются на спутник а не на тунель???


"Спутник и NAT"
Отправлено makz , 03-Июл-07 11:07 
>>Забыл, пакеты уходят в туннель(gre1), возвращаются ч-з dvb0_0.
>
>Я не об этом. Меня интересует как пакеты из мира заварачиваются на
>спутник а не на тунель???

Как, я понятия не имею, но через что - наверное через шлюз 80.81.208.66 - а оттуда по серым IP в адрес подписки.


"Спутник и NAT"
Отправлено makz , 03-Июл-07 19:48 
Кажись что-то начал понимать:
iptables -t nat -A POSTROUTING  -s 192.168.0.0/24 -d ! 192.168.0.0/24 -j MASQUERADE

Оно работает! Осталось понять куда заворачивать SNAT, чтоб обойтись без маскарада...


"Спутник и NAT"
Отправлено ru , 04-Июл-07 08:50 
>Кажись что-то начал понимать:
>iptables -t nat -A POSTROUTING  -s 192.168.0.0/24 -d ! 192.168.0.0/24 -j
>MASQUERADE
>
>Оно работает! Осталось понять куда заворачивать SNAT, чтоб обойтись без маскарада...
В ип адрес gre тонеля


"Спутник и NAT"
Отправлено makz , 04-Июл-07 19:59 
>В ип адрес gre тонеля

После этого почему-то пользователь перестает DNS видеть (80.81.208.66)


"Спутник и NAT"
Отправлено perece , 04-Июл-07 15:24 
>Кажись что-то начал понимать:
>iptables -t nat -A POSTROUTING  -s 192.168.0.0/24 -d ! 192.168.0.0/24 -j
>MASQUERADE
>
>Оно работает! Осталось понять куда заворачивать SNAT, чтоб обойтись без маскарада...
а чем не устраивает маскарадинг? это тот же SNAT, частный случай. называется так просто.
слово не нравится?

\^P^/


"Спутник и NAT"
Отправлено makz , 04-Июл-07 19:57 
>а чем не устраивает маскарадинг? это тот же SNAT, частный случай. называется

Так вроде тормознее он по слухам.


"Спутник и NAT"
Отправлено perece , 09-Июл-07 13:47 
>>а чем не устраивает маскарадинг? это тот же SNAT, частный случай. называется
>
>Так вроде тормознее он по слухам.
да ну? кстати, вы по _слухам_ давненько в IT ориентируетесь?
кроме первого, коннектообразующего пакета (там в случае MASQ будет некоторая доп. деятельность) разницы _вообще_никакой_. по большому счету MASQ это минимальная, косметическая надстройка над DNAT.

\^P^/