Здравствуйте.Машинка FreeBsd 7.2 release (хотя я так понимаю версия не важна).
Итак есть интерфейс:
ifconfig_rl0="inet 10.0.0.1 netmask 255.255.255.0"естественно есть lo0:
ifconfig_lo0="inet 127.0.0.1"Прописываю еще один ip к loopback:
ifconfig_lo0_alias0="inet 10.0.0.2 netmask 255.255.255.0"Подключаю к rl0 комп. прописываю на его интерфейсе ip адрес:
10.0.0.3Пингую с него (т.е. с 10.0.0.3) адрес интерфейса 10.0.0.1. Есть пинг.
Пингую с компа (т.е. с 10.0.0.3) адрес 10.0.0.2, т.е. адрес привязанные к loopbackу. Не пингуется!
Понимаю, что что-то не сделал, но не могу найти информацию, что не сделал.
Подскажите как заставить отзываться ip привязанный к loopback интерфейсу.P.S. Естественно в rc.conf: gateway_enable="YES"
>[оверквотинг удален]
>Пингую с него (т.е. с 10.0.0.3) адрес интерфейса 10.0.0.1. Есть пинг.
>
>Пингую с компа (т.е. с 10.0.0.3) адрес 10.0.0.2, т.е. адрес привязанные к
>loopbackу. Не пингуется!
>
>Понимаю, что что-то не сделал, но не могу найти информацию, что не
>сделал.
>Подскажите как заставить отзываться ip привязанный к loopback интерфейсу.
>
>P.S. Естественно в rc.conf: gateway_enable="YES"Ммм... Во-первых, нельзя ставить адреса из одной подсети на разные интерфейсы, потому что это мини-конфликт маршрутизации - бздя не знает на какой интерфейс этот траффик направить. В линухе такое прокатывает, но, имхо, это не правильно. Странно вообще как Вам бздя разрешила такое замутить. Во-вторых - в бзде алиас определяется по-другому:
ifconfig rl0 192.168.0.5 netmask 255.255.255.255 alias
(обратите внимание на маску подсети). Ну и в rc.conf соответственно писать надо.
В-третьих на кой чёрт этот алиас вопше на loopback-интерфейсе? Или я что-то не то курю?
respect,
ronin
>В-третьих на кой чёрт этот алиас вопше на loopback-интерфейсе?тот же вопрос.
>>В-третьих на кой чёрт этот алиас вопше на loopback-интерфейсе?
>
>тот же вопрос.Насраиваю bgp, нужен он мне на Loopbacke, что бы к loopbackу bgp привязать.
Типа для того, что бы когда упадет интерфейс bgp вместе с интерфейсом не упал.
>ifconfig rl0 192.168.0.5 netmask 255.255.255.255 aliasЗнаю что так :), просто выше я строки из rc.conf'а привел.
Да и с маской все понимаю, просто уж и так и так писал никак...
Говорят делай все заработает....>[оверквотинг удален]
>
>(обратите внимание на маску подсети). Ну и в rc.conf соответственно писать надо.
>
>
>В-третьих на кой чёрт этот алиас вопше на loopback-интерфейсе? Или я что-то
>не то курю?
>
>
>respect,
>ronin
>>ifconfig rl0 192.168.0.5 netmask 255.255.255.255 alias
>
>Знаю что так :), просто выше я строки из rc.conf'а привел.
>Да и с маской все понимаю, просто уж и так и так
>писал никак...
>Говорят делай все заработает....Сорри, тут уж я оплошал меленько... Давно с бздёй не работал. Вопшем, цитата из man ifconfig в студию:
alias Establish an additional network address for this interface. This
is sometimes useful when changing network numbers, and one wishes
to accept packets addressed to the old interface. If the address
is on the same subnet as the first network address for this
interface, a non-conflicting netmask must be given. Usually
0xffffffff is most appropriate.Тоесть, если на этом интерфейсе нет айпи с того же субнета, то у Вас алиас оперделён правильно.
Теперь остаётся только метод научного тыка. Начнём с того, можно ли на разных интерфейсах ставить айпишки из одного субнета. Как я уже сказал, низзя в бзде... По-нормальному низзя. Если сможете через какой-либо изврат - расскажите секреты мастерства :-) (подсказка - можно попробовать забриджевать lo0 и rl0).
>Насраиваю bgp, нужен он мне на Loopbacke, что бы к loopbackу bgp привязать.
>Типа для того, что бы когда упадет интерфейс bgp вместе с интерфейсом не упал.Хм... а какая в принципе разница, крутится bgpd/quagga/zebra, или нет, если интерфейс лежит? И стоит ли ради этого так извращаться? Или я опять не ту траву курю?
respect,
ronin
>Тоесть, если на этом интерфейсе нет айпи с того же субнета, то
>у Вас алиас оперделён правильно.Спасибо за пояснение. Значит это делаю правильно.
>
>Теперь остаётся только метод научного тыка. Начнём с того, можно ли на
>разных интерфейсах ставить айпишки из одного субнета. Как я уже сказал,
>низзя в бзде... По-нормальному низзя. Если сможете через какой-либо изврат -
>расскажите секреты мастерства :-) (подсказка - можно попробовать забриджевать lo0 и
>rl0).А как все таки забриджевать? Намек на комманду можно?
>Хм... а какая в принципе разница, крутится bgpd/quagga/zebra, или нет, если интерфейс
>лежит? И стоит ли ради этого так извращаться? Или я опять
>не ту траву курю?Вот из описания bgp - с эту сторону смотрю:
Loopback interfaces часто используются IBGP peer'ами. Приемущество использования loopback interfaces заключается в том, что настройка маршрутизации перестает быть связана с IP адресом физического интерфейса. При этом, даже если физический интерфейс будет down, это никоим образом не повлияет на маршрутизацию между автономными системами, т.к. он будет использовать некий псевдо-ip адрес интерфейса loopback, как идентифицирующий данный роутер.На приведенном выше рисунке роутеры A и B обмениваются таблицами маршрутизации по IBGP в пределах AS 100. Если при конфигурировании роутера A в качестве IP адреса neighbor'а мы укажем IP адрес одного из его eth iface'ов, то все, конечно же, будет работать. До тех пор, пока этот eth iface по каким-то причинам не упадет. Если это случится, то обмен таблицами маршрутизации, равно как и траффиком, прекратится в результате того, что станет невозможным установить TCP connection между раутерами A и B.
Поэтому, вместо того чтобы указывать IP адрес eth iface'а раутера B, мы сделаем следующее:
а) сконфигурим раутер B таким образом, чтобы он получил некоторый дополнительный IP адрес -- адрес его loopback iface'а.
И вот на п.А я споткнулся? :)
>А как все таки забриджевать? Намек на комманду можно?Тут одной командой не обойдёшся. Здесь идёт серия команд. Вот что у меня на моём бридже:
Конфигурация кернела:
### ADDED OPTIONS ###
option IPFIREWALL
option IPFIREWALL_VERBOSE
option IPFIREWALL_VERBOSE_LIMIT=100
option IPDIVERT
option DUMMYNET
#option BRIDGE
device if_bridgeoptions IPFIREWALL_FORWARD
options IPFILTER
options IPFILTER_LOGoptions HZ=1000
options MAXCONS=1024
options NETGRAPH
options NETGRAPH_BPF
options NETGRAPH_ETHER
options NETGRAPH_IFACE
options NETGRAPH_KSOCKET
options NETGRAPH_SOCKET
options NETGRAPH_TEEdevice pf
device pflog
device pfsyncoptions ALTQ
options ALTQ_CBQ
options ALTQ_RED
options ALTQ_RIO
options ALTQ_HFSC
options ALTQ_CDNR
options ALTQ_PRIQЭти опции добавлены в девственно чистый дефолт конфиг. Больше ничего там я не менял.
В rc.conf:gateway_enable="YES"
keymap="us.iso"
sshd_enable="YES"
sendmail_enable="NONE"
defaultrouter="172.16.0.255"
hostname="brigde1"
firewall_enable="YES"
firewall_script="/opt/lanadmin/bridge.sh"fsck_y_enable="YES"
background_fsck="NO"#smartd_enable="YES"
В /opt/lanadmin/bridge.sh:#!/bin/sh
cmd_ipfw="/sbin/ipfw"
cmd_ifconfig="/sbin/ifconfig"
cmd_route="/sbin/route"bridge_iface0="bridge0"
eth_iface0="fxp0"
eth_iface1="fxp1"eth_iface0_ip="172.16.0.254"
eth_iface0_netmask="255.255.0.0"eth_iface1_ip="172.16.0.253"
eth_iface1_netmask="255.255.0.0"default_gateway="172.16.0.255"
### SETUP_BRIDGE ###
${cmd_ifconfig} ${bridge_iface0} create
${cmd_ifconfig} ${bridge_iface0} addm ${eth_iface0}
${cmd_ifconfig} ${bridge_iface0} addm ${eth_iface1}${cmd_ifconfig} ${eth_iface0} up
${cmd_ifconfig} ${eth_iface1} up
${cmd_ifconfig} ${bridge_iface0} up${cmd_ifconfig} ${eth_iface0} inet ${eth_iface0_ip} netmask ${eth_iface0_netmask}
${cmd_ifconfig} ${eth_iface1} inet ${eth_iface1_ip} netmask ${eth_iface1_netmask}
Далее следуют правила фаерволла, но здесь они не так уж и важны (правила Вам в любом случае писать самому с учётом вашей топологиии). Здесь только поменяйте один их интерфейсов на lo0. Чесно скажу - не знаю заработает ли с lo0, но попробовать можно.
Ага, и вот на чём это хозяйство крутится:brigde1# uname -a
FreeBSD brigde1 7.1-RELEASE FreeBSD 7.1-RELEASE #0: Sun Feb 15 16:06:04 UTC 2009 root@:/usr/src/sys/i386/compile/BRIDGE i386
brigde1#
И вот как оно смотрится:brigde1# ifconfig -a
fxp0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=8<VLAN_MTU>
ether 00:02:55:e4:82:db
inet 172.16.0.254 netmask 0xffff0000 broadcast 172.16.255.255
media: Ethernet autoselect (100baseTX <full-duplex>)
status: active
fxp1: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=8<VLAN_MTU>
ether 00:06:29:29:77:f4
inet 172.16.0.253 netmask 0xffff0000 broadcast 172.16.255.255
media: Ethernet autoselect (100baseTX <full-duplex>)
status: active
plip0: flags=108810<POINTOPOINT,SIMPLEX,MULTICAST,NEEDSGIANT> metric 0 mtu 1500
pflog0: flags=0<> metric 0 mtu 33204
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x5
inet6 ::1 prefixlen 128
inet 127.0.0.1 netmask 0xff000000
pfsync0: flags=0<> metric 0 mtu 1460
syncpeer: 224.0.0.240 maxupd: 128
bridge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
ether b2:7c:39:75:53:81
id 00:00:00:00:00:00 priority 32768 hellotime 2 fwddelay 15
maxage 20 holdcnt 6 proto rstp maxaddr 100 timeout 1200
root id 00:00:00:00:00:00 priority 32768 ifcost 0 port 0
member: fxp1 flags=143<LEARNING,DISCOVER,AUTOEDGE,AUTOPTP>
ifmaxaddr 0 port 2 priority 128 path cost 200000
member: fxp0 flags=143<LEARNING,DISCOVER,AUTOEDGE,AUTOPTP>
ifmaxaddr 0 port 1 priority 128 path cost 200000
brigde1#А вообще, по бриджеванию море инфы. На том же опеннете (откуда яи брал всё это). Ищите, читайте (хотя бы для понимания, поскольку все команды и конфиги у Вас уже есть).
Удачи!respect,
ronin
С ядром работаю, без проблем.
С firewall тоже...
бридж ни разу не поднимал.Попробую разобраться, в Вашем конфиге фаервола.
Спасибо. )
Все разобрался... что до как!
Осталось попробовать.>[оверквотинг удален]
>${cmd_ifconfig} ${bridge_iface0} create
>${cmd_ifconfig} ${bridge_iface0} addm ${eth_iface0}
>${cmd_ifconfig} ${bridge_iface0} addm ${eth_iface1}
>
>${cmd_ifconfig} ${eth_iface0} up
>${cmd_ifconfig} ${eth_iface1} up
>${cmd_ifconfig} ${bridge_iface0} up
>
>${cmd_ifconfig} ${eth_iface0} inet ${eth_iface0_ip} netmask ${eth_iface0_netmask}
>${cmd_ifconfig} ${eth_iface1} inet ${eth_iface1_ip} netmask ${eth_iface1_netmask}Вопрос, а зачем это именно в фаерволе Вы делаете. Почему не сделать через rc.conf?
Картина такая# ifconfig bridge0 create
# ifconfig bridge0 addm rl0
# ifconfig bridge0 addm lo0
ifconfig: BRDGADD lo0: Invalid argument - Не дает :(Думаю ладно:
делаю:
# ifconfig lo1 create
# ifconfig bridge0 addm lo1
ifconfig: BRDGADD lo1: Invalid argument - Все равно не дает :(При этом тут же делаю:
# ifconfig bridge0 addm rl1
#
Все нормальноОтсюда делаю вывод, что loopback интерфейсы засовывать в bridge нельзя :(
Так? Кто что скажет.Так как же решить мою проблему? Есть идеи?
>[оверквотинг удален]
>
>При этом тут же делаю:
># ifconfig bridge0 addm rl1
>#
>Все нормально
>
>Отсюда делаю вывод, что loopback интерфейсы засовывать в bridge нельзя :(
>Так? Кто что скажет.
>
>Так как же решить мою проблему? Есть идеи?Очевидно, нельзя. Обьяснения, думаю, нужно искать в сорсах кернела :-)
Может создать какой-либо фейк-интерфейс? ppp0/tun0/...?respect,
ronin
>Очевидно, нельзя. Обьяснения, думаю, нужно искать в сорсах кернела :-)
>Может создать какой-либо фейк-интерфейс? ppp0/tun0/...?Вдогонку: или тупо навесить на машину ещё одну сетевуху, кабель в которую не включать, пусть работает вхолостую. А на неё навешать этот доп. адрес и забриджевать с нужным интерфейсом.
respect,
ronin
>>Очевидно, нельзя. Обьяснения, думаю, нужно искать в сорсах кернела :-)
>>Может создать какой-либо фейк-интерфейс? ppp0/tun0/...?
>
>Вдогонку: или тупо навесить на машину ещё одну сетевуху, кабель в которую
>не включать, пусть работает вхолостую. А на неё навешать этот доп.
>адрес и забриджевать с нужным интерфейсом.
>
>
>respect,
>roninКороче нашел вот это:
http://microsin.ru/content/view/267/43/
ссылка про loopback:Если нужно обеспечить доступ к Loopback Interface снаружи, то необходимо указать маршрут до подсети, которой принадлежит Loopback Interface.
Т.е. только static роутингом :(