freebsd. можно из jail'a ходить к 127.0.0.1 ?
%telnet 127.0.0.1 3306
А что у тебя на 3306?
---
...Я работаю антинаучным аферистом...
MySQL?
steel ~(0/2)$ telnet 127.0.0.1 3306
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
8
4.1.22-log:x-w4;h~`F,zW#H"n){Rf.M
^CConnection closed by foreign host.
без jail всё коннектиться
первое, что в глаза бросилось, забинденное на 127.0.0.1
Пингов пробовал посылать?
---
...Я работаю антинаучным аферистом...
allow ip from any to any via lo0
да и на другие порты тоже самое.
mysql не должен ничего резать
или я не знаю, как это убрать, может sysctl переменную какую поставить
вы уверены, что localhost = 127.0.1.1 ?
логин-то в мускуле localhost
----
а не, похоже не в этом проблема
Никто не избежит правосудия.
А сам интерфейс поднят?
ifconfig -a
netstat -r
---
...Я работаю...
tcpdump не помогает?
telnet 127.0.0.1 53
тоже не проходит
в любом случае его нужно настраивать.
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
inet 127.0.1.1 netmask 0xff000000
%netstat -r
netstat: kvm not available
Routing tables
rt_tables: symbol not in namelist
%
то, что нет таблиц маршрутизации, как-то странно, вроде в других jail'aх я их видел
tcpdump не помогает?
55 steel ~(0/3)# tcpdump -i lo0 -v
tcpdump: listening on lo0, link-type NULL (BSD loopback capture size 96 bytes
17:55:20.380200 IP (tos 0x10, ttl 64, id 30053, offset 0, flags [DF], proto: TCP (6 length: 64) 127.0.1.1.60869 > 127.0.1.1.domain: S, cksum 0x5a0c (correct 2051117769:2051117769(0) win 65535 <mss 16344,nop,wscale 1,nop,nop,timestamp 1433883217 0,sackOK,eol>
17:55:20.380243 IP (tos 0x10, ttl 64, id 30054, offset 0, flags [DF], proto: TCP (6 length: 40) 127.0.1.1.domain > 127.0.1.1.60869: R, cksum 0xb4c7 (correct 0:0(0) ack 2051117770 win 0
что-то ездит, но от этого не легче
route change default 127.0.0.1
---
...Я работаю...
2. на реальный интерфейс нужно алиас прописать с jail ip-адресом
А также:
man jail: Setting up the Host Environment, Configuring the Jail, Starting the Jail
а с 172.16.... можно?
разницы между ними я не вижу просто особой.
просто к внешнему(195.128.... ипу не хочется привязывать, т.к. он имеется только при включенном ppp соединении.
но "man jail" все равно нужно освоить
think:~:|>jail /jail jj x.x.x.x /usr/bin/telnet 127.0.0.1 6000
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
^]
telnet> quit
Connection closed.
think:~:|>
В /jail находится ld-elf.so, telnet и библиотеки необходимые для чего работы. На 6000 слушают локальные иксы.
давай для начала разберёмся, почему из 127.0.1.1 не виден 127.0.0.1.
я так понимаю, что jail - это некоторый продвинутый chroot, в котором процессы не могут видеть не-jail процессы, могут биндиться только на некоторые адреса и т.д.
естественно занатить можно, тогда и алиас не нужен будет.
не очень понял.
как это не нужен?
скажем есть апач на 127.0.0.1
я хочу сделать ещё апач в jail для внешних подключений.
делаю на адрес 127.0.1.1 и потом все входящии на какой-нибудь 195.1.1.1:80 -> 127.0.1.1:80
%ifconfig lo0Так у тебя адреса 127.0.0.1 больше нет. Вот telnet туда и не ходок больше.
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
inet 127.0.1.1 netmask 0xff000000
сейчас затестил с named.
это как можно объяснить вообще?
пусть отправляет пакет, когда тот уже будет не в jail (т.е. где-то в ядре по таблицам маршрутизации он в нужное место отправится
Since jail is implemented using IP aliases, one of the
first things to do is to disable IP services on the host system that lis-
ten on all local IP addresses for a service. If a network service is
present in the host environment that binds all available IP addresses
rather than specific IP addresses, it may service requests sent to jail
IP addresses.
У тебя named и в host и в jail окружениях крутится ?
а зачем ему чтобы он был локальным?Вот он по таблицам маршрутизации и отправляется в lo0, ведь у тебя там находится сеть 127/8. Т.к. адреса 127.0.0.1 там не наблюдается, то пакеты никуда не приходят и выбрасываются.
пусть отправляет пакет, когда тот уже будет не в jail (т.е. где-то в ядре по таблицам маршрутизации он в нужное место отправится
пакеты же доставляет ядро, а оно должно знать про 127.0.0.1
я же написал.
что это было испытание.
там ничего не было забиндено изначально
если так размышлять, то забиндив jail на 10.10.10.10/24, локальным не будет адрес 10.10.10.11, поэтому пакеты до него не будут доходить.Конечно он не будет локальным. Локальным будет только 10.10.10.10.
пакеты же доставляет ядро, а оно должно знать про 127.0.0.1Ядро ничего не знает про 127.0.0.1. Этот адрес не волшебный.
может это и не ядро.
про знать - это то, что адрес имеется в таблице маршрутизации host, а не jail.
Таблица маршрутизации одна в FreeBSD, общая для всех jail. Согласно таблице маршрутизации адрес 127.0.0.1 должен находиться где-то за интерфейсом lo0. lo0 - loopback интерфейс, то есть он не умеет пакеты никуда посылать, он умеет только доставлять их локально, при условии, что dst IP address пакета является одним из адресов самого loopback интерфейса.
telnet localhost 3306
не работает не только из jail но и из host?
1. остановить все jail-ы
2.
ifconfig lo0 inet 127.0.0.1 netmask 255.0.0.0
ifconfig lo1 inet 127.0.1.1 netmask 255.0.0.0
3. jail /jail/aaa aaa.aaa 127.0.1.1 /bin/csh
steel ~(0/2)$ telnet localhost 3306
Trying ::1...
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
8
4.1.22-logшxRqatE9.z,@k{H4mH]}}|w
$19:30 Trying ::1...
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
8
4.1.22-logшxRqatE9.z,@k{H4mH]}}|w
1. остановить все jail-ы
2.
ifconfig lo0 inet 127.0.0.1 netmask 255.0.0.0
ifconfig lo1 inet 127.0.1.1 netmask 255.0.0.0
3. jail /jail/aaa aaa.aaa 127.0.1.1 /bin/csh
это уже намноооооого интересней.
т.е. имеет значение, какой интерфейс?
т.е. алиасы не катят вообще?
а как же куча примеров в инете?
ты же не хочешь так делать, сам же говорил
я не понимаю разницы между lo0 и em0, например
т.е. имеет значение, какой интерфейс?
нихуя не имеет.
просто ты расхуячил используемый в host окружении ip-адрес 127.0.0.1.
можно сделать и так:
ifconfig lo13 inet 127.0.0.1 netmask 255.0.0.0
ifconfig lo0 inet 127.0.1.1 netmask 255.0.0.0
man 4 em
man 4 lo
38 steel /jail(0/3)# ifconfig lo1
lo1: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
inet 127.0.2.1 netmask 0xff000000
38 steel /jail(0/3)# jail /jail/pubwww pubwww.local 127.0.2.1 /usr/bin/telnet 127.0.0.1 3306
Trying 127.0.0.1...
telnet: connect to address 127.0.0.1: Connection refused
telnet: Unable to connect to remote host
38 steel /jail(0/3)#
неа..
чувак с тебя 5 баксов за телепатию
Если нет - то сделай, если есть - проверь он UP или DOWN
нихуя не имеет.ну конечно имеется ввиду приципиальное различие, а не номер.
т.е. различие:
127.0.0.1 и 127.0.1.1 на одном девайсе (lo0)
или на разных
Я так не понял есть у тебя 127.0.0.1 или нет? В начале треда ты показал, что его нет.
steel /jail(0/3)# jail /jail/pubwww pubwww.local 127.0.1.1 /sbin/ifconfig lo0
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
inet 127.0.1.1 netmask 0xff000000
43 steel /jail(0/3)# /sbin/ifconfig lo0
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
inet 127.0.0.1 netmask 0xff000000
inet 127.0.1.1 netmask 0xff000000
inet 127.0.1.2 netmask 0xff000000
43 steel /jail(0/3)#
сорри, что запутал, нужно было там написать, что это из jail запускалась команда
43 lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
inet 127.0.1.1 netmask 0xff000000
43 steel /jail(0/3)# /sbin/ifconfig lo0
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
inet 127.0.0.1 netmask 0xff000000
inet 127.0.1.1 netmask 0xff000000
inet 127.0.1.2 netmask 0xff000000
43 steel /jail(0/3)#
сорри, что запутал, нужно было там написать, что это из jail запускалась команда
ты из host окружения результат ifconfig покажи
там подряд из host и из jail
ты лучше скажи - проблема решилась при этих настройках ?
там выше листинг
mysql у тебя в jail или host окружении крутится ?
в jail ничего не крутится.
для проверки поставь всё-разрешающее правило - первым.
allow ip from 127.0.0.1/8 to 127.0.0.1/8
allow ip from 127.0.0.1/8 to 127.0.0.1/8Может так нужно ?
allow ip from 127.0.0.0/8 to 127.0.0.0/8
$20:38 steel ~(0/2)$ sudo ipfw add 98 allow ip from 127.0.0.1/8 to 127.0.0.1/8
00098 allow ip from 127.0.0.0/8 to 127.0.0.0/8
тут что-то странное происходит, главной странностью я по-прежнему считаю то, что поведение в jail
telnet 127.0.0.1 53
меняется если на хосте биндить named на 127.0.0.1 и на всё.
в первом случае коннекта нет, во втором есть.
как это может быть связано - я не пойму.
сделай allow ip from any to any
55 steelemail ~(0/3)# tcpdump -i lo0 -vtcpdump: listening on lo0, link-type NULL (BSD loopback capture size 96 bytes17:55:20.380200 IP (tos 0x10, ttl 64, id 30053, offset 0, flags [DF], proto: TCP (6 length: 64) 127.0.1.1.60869 > 127.0.1.1.domain: S, cksum 0x5a0c (correct 2051117769:2051117769(0) win 65535 <mss 16344,nop,wscale 1,nop,nop,timestamp 1433883217 0,sackOK,eol>17:55:20.380243 IP (tos 0x10, ttl 64, id 30054, offset 0, flags [DF], proto: TCP (6 length: 40) 127.0.1.1.domain > 127.0.1.1.60869: R, cksum 0xb4c7 (correct 0:0(0) ack 2051117770 win 0дык вот он косяк где.
я сначала не увидел.
почему-то вместо 127.0.0.1 он коннектиться на 127.0.1.1
откуда такое поведение взялось?
nat ?
127.0.0.1/8 не натится точно.
ну ты пидорчук
алиасы 127.0.1.1 и 127.0.2.1 нужно добавлять на lo0 с маской 255.255.255.255
считаю, что это непринципиально.
(для надёжности, проверил - не принципиально)
кстати.. вроде на 127 можно и без этого (но это вопрос)
это условие(что добавлять с /32) я так понимаю нужно, чтобы не появлялось двух одинаковых записей в таблице маршрутизации, т.к. он имеено на это и ругается, когда добавляешь
гы, название темы смешное... а на хрен нужен этот jail, если в инет ходить не умеет
мне интересно, почему он так странно себя ведёт с локальным хостом.
или это не странность, а так и должно быть, просто я не понимаю чего-то
%telnet 172.16.22.100 53
Trying 172.16.22.100...
Connected to steel.local.
Escape character is '^]'.
^C^D
^C
^C^C^C^C^C^C^CConnection closed by foreign host.
%
%
%telnet 127.0.0.1 53
Trying 127.0.0.1...
telnet: connect to address 127.0.0.1: Connection refused
telnet: Unable to connect to remote host
%
172.16.22.100 - мой ип.
может это специально lo0 особенным сделали из соображений безопасности ?
6.4. Restriction to one IP number.
Restricting TCP and UDP access to just one IP number was done almost entirely in the code which manages ``protocol control blocks''. When a jailed process binds to a socket, the IP number provided by the process will not be used, instead the pre-configured IP number of the jail is used.
BSD based TCP/IP network stacks sport a special interface, the loop-back interface, which has the ``magic'' IP number 127.0.0.1. This is often used by processes to contact servers on the local machine, and consequently special handling for jails were needed. To handle this case it was necessary to also intercept and modify the behaviour of connection establishment, and when the 127.0.0.1 address were seen from a jailed process, substitute the jails configured IP number.
Finally the APIs through which the network configuration and connection state may be queried were modified to report only information relevant to the configured IP number of a jailed process.
http://docs.freebsd.org/44doc/papers/jail/jail-6.html
т.е. если забиндить named на 127.0.2.1:53, иконнектиться из jail (127.0.1.1) - то всё оки.
этой чудо особенностью обладает только 127.0.0.1, видимо, чтобы не было глюков сильных
Оставить комментарий
Phoenix
собираю мир с опциямиcd /usr/src
make buildworld
make installworld DISTDIR=/jail/aaa
cd /usr/src/etc
make distribution DISTDIR=/jail/aaa
запускаю
jail /jail/aaa aaa.aaa 127.0.1.1 /bin/csh
%telnet 127.0.0.1 3306
Trying 127.0.0.1...
telnet: connect to address 127.0.0.1: Connection refused
telnet: Unable to connect to remote host
%