два канала - два natd

Настройка сетевых служб, маршрутизации, фаерволлов. Проблемы с сетевым оборудованием.
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
filosan
проходил мимо

два канала - два natd

Непрочитанное сообщение filosan » 2009-01-09 19:23:31

Захотелось чтоб два канала для выхода в инет использовались одновременно. Поднимаю второй natd. Причём чтоб он акуратно опускался и поднимался вместе с файрволом и первым natd. Делаю:

Код: Выделить всё

# cp /etc/rc.d/natd /etc/rc.d/natd2
новый файлик правлю:

Код: Выделить всё

#!/bin/sh
#
# $FreeBSD: src/etc/rc.d/natd,v 1.3.2.1 2006/12/20 12:23:57 yar Exp $
#

# PROVIDE: natd
# KEYWORD: nostart nojail

. /etc/rc.subr
. /etc/network.subr

name="natd2"
rcvar=`set_rcvar`
command="/sbin/natd"
pidfile="/var/run/${name}.pid"
start_precmd="natd2_precmd"

natd2_precmd()
{
	if ! ${SYSCTL} net.inet.divert > /dev/null 2>&1; then
		if ! kldload ipdivert; then
			warn unable to load IPDIVERT module.
			return 1
		fi
	fi

	if [ -n "${natd2_interface}" ]; then
		dhcp_list="`list_net_interfaces dhcp`"
		for ifn in ${dhcp_list}; do
			case "${natd2_interface}" in
			${ifn})
				rc_flags="$rc_flags -dynamic"
				;;
			esac
		done

		if echo "${natd2_interface}" | \
		    grep -q -E '^[0-9]+(\.[0-9]+){0,3}$'; then
			rc_flags="$rc_flags -a ${natd2_interface}"
		else
			rc_flags="$rc_flags -n ${natd2_interface}"
		fi
	fi

	return 0
}

load_rc_config $name
run_rc_command "$1"
в /etc/rc.conf добавляю:

Код: Выделить всё

natd2_enable="YES"
natd2_interface="rl2"
natd2_flags="-m -u -p 8669 -dynamic"
Ну и в /etc/rc.d/ipfw добавляем запуск и остановку natd2 аналогично первому

В итоге при старте вижу надпись что nad2 загружен, но процесса такого нет! Грешу на /etc/rc.d/natd2, но ума не приложу что не так.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
voider
лейтенант
Сообщения: 830
Зарегистрирован: 2008-02-21 20:35:03
Откуда: msk

Re: два канала - два natd

Непрочитанное сообщение voider » 2009-01-09 21:55:01

переходи на pf и не парься :)
pf.conf

Код: Выделить всё

ext_if="xl0"
int_if="nve0"
vpn_if="ng0"

nat on $ext_if proto { tcp udp icmp } from $int_if:network to any -> ($ext_if) 
nat on $vpn_if proto { tcp udp icmp } from $int_if:network to any -> ($vpn_if)

pass out

Аватара пользователя
voider
лейтенант
Сообщения: 830
Зарегистрирован: 2008-02-21 20:35:03
Откуда: msk

Re: два канала - два natd

Непрочитанное сообщение voider » 2009-01-09 22:00:29

2 демонв ната стартуютьс ятак

Код: Выделить всё

/sbin/natd -n ng0
/sbin/natd -p 8667 -P /var/run/natd2.pid -n lx1

Аватара пользователя
voider
лейтенант
Сообщения: 830
Зарегистрирован: 2008-02-21 20:35:03
Откуда: msk

Re: два канала - два natd

Непрочитанное сообщение voider » 2009-01-09 22:06:09

Захотелось чтоб два канала для выхода в инет использовались одновременно.
а это уже другая тема.

filosan
проходил мимо

Re: два канала - два natd

Непрочитанное сообщение filosan » 2009-01-10 20:30:59

voider писал(а):2 демонв ната стартуютьс ятак

Код: Выделить всё

/sbin/natd -n ng0
/sbin/natd -p 8667 -P /var/run/natd2.pid -n lx1
Всё же хотелось бы чтобы второй нат поднимался и опускался вместе с первым и ipfw и чтоб конфигить его из rc.conf. Просто не понятно почему он не стартует.

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: два канала - два natd

Непрочитанное сообщение paradox » 2009-01-10 20:46:04

natd для ассиметричных каналов
и для тех кому лень

настраивайте pfnat и немучайтесь

Аватара пользователя
voider
лейтенант
Сообщения: 830
Зарегистрирован: 2008-02-21 20:35:03
Откуда: msk

Re: два канала - два natd

Непрочитанное сообщение voider » 2009-01-11 0:24:28

filosan писал(а):
voider писал(а):2 демонв ната стартуютьс ятак

Просто не понятно почему он не стартует.
из эрси.конфа можна стартануть командой natd enable только один демон ната

Аватара пользователя
voider
лейтенант
Сообщения: 830
Зарегистрирован: 2008-02-21 20:35:03
Откуда: msk

Re: два канала - два natd

Непрочитанное сообщение voider » 2009-01-11 0:30:57

такое пойдет? подкорректируй под себя :)


Код: Выделить всё

ipfw table 12 add 85.21.52.1 255.255.255.255


# первый Nat до инета 1
ipfw add 48 divert 8667 ip from table\(12\) to any in via lx1
ipfw add 49 divert 8667 ip from any to table\(12\) out via lx1

# второй nat до инета 2
ipfw add 51 divert 8668 ip from any to any in via ng0
ipfw add 52 divert 8668 ip from any to not table\(12\) out via ng0

Аватара пользователя
Fioktist
мл. сержант
Сообщения: 84
Зарегистрирован: 2007-04-06 4:06:28
Откуда: Россия

Re: два канала - два natd

Непрочитанное сообщение Fioktist » 2009-01-11 1:06:57

filosan писал(а):Захотелось чтоб два канала для выхода в инет использовались одновременно. Поднимаю второй natd. Причём чтоб он акуратно опускался и поднимался вместе с файрволом и первым natd.
вот это реально работало на FreeBSD 6.2

rc.conf

Код: Выделить всё

ifconfig_xl1="inet 192.168.111.99 netmask 255.255.255.0"
ifconfig_xl0="inet 192.168.54.88 netmask 255.255.248.0"
ifconfig_ste0="inet 10.10.10.1 netmask 255.255.255.248"
defaultrouter="192.168.111.250"

firewall_enable="YES"
firewall_script="/etc/rc.fir3.run"

natd_enable="YES"
natd -a 192.168.111.99 -p 8668
natd -a 192.168.54.88 -p 8778
gateway_enable="YES"

/etc/rc.fir3.run

Код: Выделить всё

# Заварачиваем трафик в  (NAT)
${ipfw} add 10 divert 8668 all from ${homenet} to any out via xl1
${ipfw} add 20 divert 8668 all from any to ${ipout1} in via xl1
${ipfw} add 30 divert 8778 all from ${homenet} to any out via xl0
${ipfw} add 40 divert 8778 all from any to ${ipout2} in via xl0
сейчас FreeBSD 7.1 там нат с ядром компилируется

Код: Выделить всё

####    main rule
options         IPFIREWALL
options         IPFIREWALL_VERBOSE
options         IPFIREWALL_VERBOSE_LIMIT=150
options         IPFIREWALL_NAT #обязательно для ядерного нат
options         LIBALIAS #обязательно для ядерного нат
options         IPFIREWALL_FORWARD
options         IPDIVERT
options         DUMMYNET
options         HZ=1000
####    end main rule

а в файерволе надо 6 строк для 2х "натов", только правила NAT после ssh правил

Код: Выделить всё

# SSH
${ipfw} add 930 allow tcp from me 22 to 192.168.255.2,192.168.255.3
${ipfw} add 940 allow tcp from 192.168.255.2,192.168.255.3 to me 22
${ipfw} add 950 deny log tcp from me 22 to any
${ipfw} add 960 deny log tcp from any to me 22

# Делаем NAT (трансляцию сетевых адресов) всему, что не ушло на squid
${ipfw} nat 8 config ip ${ipGT}
${ipfw} nat 9 config ip ${ipMA}
${ipfw} add 1020 nat 8 ip from ${DomNet} to any out via ${ethGT}
${ipfw} add 1030 nat 8 ip from any to ${ipGT} in via ${ethGT}
${ipfw} add 1040 nat 9 ip from ${DomNet} to any out via ${ethMA}
${ipfw} add 1050 nat 9 ip from any to ${ipMA} in via ${ethMA}
правда теперь я все больше в сторону PF посматриваю а не IPFW...

вот тут уже было про 6.2 http://forum.lissyara.su/viewtopic.php? ... 48&start=0
а тут про 7.0 и там даже 3 NAT интерфейса http://forum.lissyara.su/viewtopic.php? ... =25#p90388
Самое возмутительное в аргументах оппонента - это изобилие правды.

filosan
проходил мимо

Re: два канала - два natd

Непрочитанное сообщение filosan » 2009-01-11 13:48:52

Fioktist писал(а):
вот это реально работало на FreeBSD 6.2

rc.conf

Код: Выделить всё

ifconfig_xl1="inet 192.168.111.99 netmask 255.255.255.0"
ifconfig_xl0="inet 192.168.54.88 netmask 255.255.248.0"
ifconfig_ste0="inet 10.10.10.1 netmask 255.255.255.248"
defaultrouter="192.168.111.250"

firewall_enable="YES"
firewall_script="/etc/rc.fir3.run"

natd_enable="YES"
natd -a 192.168.111.99 -p 8668
natd -a 192.168.54.88 -p 8778
gateway_enable="YES"
не работает. bsd 6.3. при старте много раз выводится natd: Unable to bind divert socket: Address already in use

rmn
старшина
Сообщения: 427
Зарегистрирован: 2008-10-03 18:52:02

Re: два канала - два natd

Непрочитанное сообщение rmn » 2009-01-11 14:14:30

filosan писал(а):не работает. bsd 6.3. при старте много раз выводится natd: Unable to bind divert socket: Address already in use
правильно. rc.conf выполняется несколько раз и каждый раз выполняется

Код: Выделить всё

natd -a 192.168.111.99 -p 8668
natd -a 192.168.54.88 -p 8778
надо убрать из rc.conf natd_enable="YES" (и строчки, запускающие натд) и создать в /etc/rc.d выполняемый файлик, к примеру:

startnatd.sh:

Код: Выделить всё

#!/bin/sh

natd -a 192.168.111.99 -p 8668
natd -a 192.168.54.88 -p 8778

filosan
проходил мимо

Re: два канала - два natd

Непрочитанное сообщение filosan » 2009-01-12 13:11:57

rmn писал(а):надо убрать из rc.conf natd_enable="YES" (и строчки, запускающие натд) и создать в /etc/rc.d выполняемый файлик
Да, так гораздо лучше. Спасибо.