Re: [freebsd] TCP vs UDP в контексте туннеля.

2022-06-27 Пенетрантность Nick Kostirya via freebsd
On Tue, 28 Jun 2022 03:03:35 +0700
Eugene Grosbein  wrote:

> On 27.06.2022 10:11, Nick Kostirya via freebsd wrote:
> > On Mon, 27 Jun 2022 01:36:39 +0700
> > Eugene Grosbein  wrote:
> >   
> >> 25.06.2022 13:47, Nick Kostirya via freebsd пишет:  
> >>> Привет.
> >>>
> >>> В туннель заворачивается на сервере X (192.168.10.1) вот так
> >>>
> >>> ${fwcmd} nat 2 config if vmx0 same_ports reset redirect_port udp 
> >>> 192.168.10.111:8080 8080 redirect_port tcp 192.168.10.111:8080 8080
> >>>
> >>>
> >>> На сервере Y (192.168.10.111) запросы tcpdump показывает приходят на 
> >>> 192.168.10.111, но вот ответы...
> >>>
> >>> UDP ответ идет с 192.168.0.111 (вне туннеля) по внешнему интерфейсу rl0
> >>> а
> >>> TCP ответ идет с 192.168.10.111 (адрес туннеля), но тоже по внешнему 
> >>> интерфейсу rl0
> >>>
> >>>
> >>> Почему так? 
> >>>
> >>>
> >>> Для UDP заворачиваю в туннель вот так
> >>> ${fwcmd} add fwd 192.168.10.1 all from me 8080 to any out via rl0
> >>>
> >>> И все работает. Сервер видит ответ X и пересылает дальше.
> >>>
> >>> А вот с TCP forward не работает.
> >>
> >> Нужен полный вывод ipfw show без каких-либо редактирований, разве что 
> >> можешь заменить публичные адреса.  
> > 
> > На W.W.W.W делаю запрос, который X.X.X.X перенаправляет в тeннель 
> > 192.168.10.1 -> 192.168.10.111
> > # echo hello | nc -w 1 X.X.X.X 8080
> > 
> > 
> > 
> > Ответ на дальнем конце туннеля (192.168.10.111), где стоит TCP сервер
> > 
> > 
> > # tcpdump -A -i rl0 'port 8080'  
> 
> Я просил вывод ipfw show, а не tcpdump.


Прошу прошение.

UDP 

Начало туннеля.

# ipfw show
001001  34 nat 1 ip from any to me 8080 in via vmx0
002002  62 nat 1 ip from any 8080 to any
65000   563352 allow ip from any to any
65535 8928 1279978 deny ip from any to any



${fwcmd} nat 1 config if vmx0 same_ports reset redirect_port udp 
192.168.10.111:8080 8080 redirect_port tcp 192.168.10.111:8080 8080
${fwcmd} add nat 1 ip from any to me 8080 in via vmx0
${fwcmd} add nat 1 ip from any 8080 to any



Сервер в конце туннеля

# ipfw show
00100   0 0 fwd 192.168.10.1 ip from 192.168.10.111 8080 to any via rl0
00200   131 fwd 192.168.10.1 ip from me 8080 to any out via rl0
65000 120 11064 allow ip from any to any
65535 122 10052 allow ip from any to any


${fwcmd} add fwd 192.168.10.1 all from 192.168.10.111 8080 to any via rl0
${fwcmd} add fwd 192.168.10.1 all from me 8080 to any out via rl0



TCP

Начало туннеля.

# ipfw show
001001  60 nat 1 ip from any to me 8080 in via vmx0
002000   0 nat 1 ip from any 8080 to any
65000  1047636 allow ip from any to any
65535 8928 1279978 deny ip from any to any

Сервер в конце туннеля

# ipfw show
00100   4   240 fwd 192.168.10.1 ip from 192.168.10.111 8080 to any via rl0
00200   0 0 fwd 192.168.10.1 ip from me 8080 to any out via rl0
65000  63  4599 allow ip from any to any
65535 122 10052 allow ip from any to any



___
freebsd mailing list
freebsd@uafug.org.ua
http://mailman.uafug.org.ua/mailman/listinfo/freebsd


Re: [freebsd] TCP vs UDP в контексте туннеля.

2022-06-26 Пенетрантность Nick Kostirya via freebsd
On Mon, 27 Jun 2022 01:36:39 +0700
Eugene Grosbein  wrote:

> 25.06.2022 13:47, Nick Kostirya via freebsd пишет:
> > Привет.
> > 
> > В туннель заворачивается на сервере X (192.168.10.1) вот так
> > 
> > ${fwcmd} nat 2 config if vmx0 same_ports reset redirect_port udp 
> > 192.168.10.111:8080 8080 redirect_port tcp 192.168.10.111:8080 8080
> > 
> > 
> > На сервере Y (192.168.10.111) запросы tcpdump показывает приходят на 
> > 192.168.10.111, но вот ответы...
> > 
> > UDP ответ идет с 192.168.0.111 (вне туннеля) по внешнему интерфейсу rl0
> > а
> > TCP ответ идет с 192.168.10.111 (адрес туннеля), но тоже по внешнему 
> > интерфейсу rl0
> > 
> > 
> > Почему так? 
> > 
> > 
> > Для UDP заворачиваю в туннель вот так
> > ${fwcmd} add fwd 192.168.10.1 all from me 8080 to any out via rl0
> > 
> > И все работает. Сервер видит ответ X и пересылает дальше.
> > 
> > А вот с TCP forward не работает.  
> 
> Нужен полный вывод ipfw show без каких-либо редактирований, разве что можешь 
> заменить публичные адреса.

На W.W.W.W делаю запрос, который X.X.X.X перенаправляет в тeннель 192.168.10.1 
-> 192.168.10.111
# echo hello | nc -w 1 X.X.X.X 8080



Ответ на дальнем конце туннеля (192.168.10.111), где стоит TCP сервер


# tcpdump -A -i rl0 'port 8080'
06:03:48.740345 IP 192.168.10.111.http-alt > W.W.W.W.35922: Flags [S.], seq 
1829934935, ack 3960482503, win 65535, options [mss 1460,nop,wscale 6,sackOK,TS 
val 3660567064 ecr 2622412667], length 0
E..<..@.@..c..
oak.Rm..W..*..`.
./...N.{
06:03:49.740412 IP 192.168.10.111.http-alt > W.W.W.W.35922: Flags [S.], seq 
1829934935, ack 3960482503, win 65535, options [mss 1460,nop,wscale 6,sackOK,TS 
val 3660568064 ecr 2622412667], length 0
E..<..@.@..c..
oak.Rm..W..*..x.
./...N.{
06:03:51.976288 IP 192.168.10.111.http-alt > W.W.W.W.35922: Flags [S.], seq 
1829934935, ack 3960482503, win 65535, options [mss 1460,nop,wscale 6,sackOK,TS 
val 3660570300 ecr 2622412667], length 0
E..<..@.@..c..
oak.Rm..W..*
./...N.{
06:03:56.266309 IP 192.168.10.111.http-alt > W.W.W.W.35922: Flags [S.], seq 
1829934935, ack 3960482503, win 65535, options [mss 1460,nop,wscale 6,sackOK,TS 
val 3660574590 ecr 2622412667], length 0
E..<..@.@..c..
oak.Rm..W..*
./.~.N.{


Выше - это ответ на вот это запрос, который пришел по ng0 тунелю:

# tcpdump -A -i ng0 'port 8080'
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ng0, link-type NULL (BSD loopback), capture size 262144 bytes
06:06:39.524166 IP W.W.W.W.35924 > 192.168.10.111.http-alt: Flags [S], seq 
1945733787, win 64240, options [mss 1178,sackOK,TS val 2622583445 ecr 
0,nop,wscale 7], length 0
E..<..@.3...ak
o.T..so.
.Qr.


___
freebsd mailing list
freebsd@uafug.org.ua
http://mailman.uafug.org.ua/mailman/listinfo/freebsd


Re: [freebsd] Есть ли особенности проброса порта в туннель?

2022-06-26 Пенетрантность Nick Kostirya via freebsd
On Mon, 27 Jun 2022 01:35:12 +0700
Eugene Grosbein  wrote:

 
> > А почему на сервере Y в tcpdump видны запросы
> > 
> > 12:50:08.219710 IP X.X.X.X.41173 > 192.168.12.111.http: Flags [S], seq 
> > 3645315935, win 65535, options [mss 16344,nop,wscale 6,sackOK,TS val 
> > 1553419922 ecr 0], length 0
> > 
> > Но в ipfw нет?  
> 
> Вероятно, до прохода по ipfw после расшифровки пакеты не доходят.

То есть, не все пакеты проходят ipfw. Спасибо за информацию.

> Нужен вывод netstat -sp ipsec и netstat -sp esp
> 
> > И что означает ip в nat config ?
> > Описание "Define an ip address to use for aliasing." на понятно.  
> 
> Вместо if можно использовать ip.
> Если использовать if, то ipfw nat берет с указанного интерфейса два параметра:
> IP в качестве aliasing address (то есть, "внешнего) и MTU для PMTUD,
> для отправки ICMP need-frag при необходимости.

Спасибо.

> 
> Если же вместо if указать ip, то он будет его использовать, но ICMP need-frag 
> отправлять не будет.
> 
> Что касается исходной проблемы: пора в деталях описывать, каким образом 
> устанавливается IPSec-туннель:
> используется ли IKE-агент? Используется ли NAT-T? Что в выводе упомянутых 
> выше команд
> netstat -sp ipsec и netstat -sp esp и какие счетчики растут, когда проблема 
> воспроизводится повторно?

Это не зависит от туннеля. Пробовал l2tp (чистый, без ipsec), ipsec (ручное 
создание, без IKE), openvpn и, кажется, gif.

Для UDP заработало.

На внешнем сервере.

${fwcmd} nat 1 config if vmx0 same_ports reset redirect_port udp 
192.168.10.111:8080 8080 redirect_port tcp 192.168.10.111:8080 8080
${fwcmd} add nat 1 ip from any to me 8080 in via vmx0
${fwcmd} add nat 1 ip from any 8080 to any

(192.168.10.111 - адресс другой сторону туннеля, 192.168.10.1 - это сторона 
туннеля)

На внутреннем нужно было добавить.

${fwcmd} add fwd 192.168.10.1 all from me 8080 to any out via rl0
Так как ответы уходили от  192.168.1.111 через rl0 (ip на внешнем интерфейсе)

А вот ответы по TCP уходят от 192.168.10.111 через rl0 (ip туннеля)
Но правило 
${fwcmd} add fwd 192.168.10.1 all from 192.168.10.111 8080 to any out via rl0
хоть и улавливает пакет, не хочет перенаправлять пакет в туннель (наверное 
из-за того, что пакет уже имеет в качестве отправителя адрес туннеля).


Поэтому возник вопрос почему у UDP и TCP разные отправители и как все таки 
завернуть TCP назад в туннель.
___
freebsd mailing list
freebsd@uafug.org.ua
http://mailman.uafug.org.ua/mailman/listinfo/freebsd


Re: [freebsd] TCP vs UDP в контексте туннеля.

2022-06-25 Пенетрантность Nick Kostirya via freebsd
On Sat, 25 Jun 2022 09:47:00 +0300
Nick Kostirya via freebsd  wrote:

> Привет.
> 
> В туннель заворачивается на сервере X (192.168.10.1) вот так
> 
> ${fwcmd} nat 2 config if vmx0 same_ports reset redirect_port udp 
> 192.168.10.111:8080 8080 redirect_port tcp 192.168.10.111:8080 8080
> 
> 
> На сервере Y (192.168.10.111) запросы tcpdump показывает приходят на 
> 192.168.10.111, но вот ответы...
> 
> UDP ответ идет с 192.168.0.111 (вне туннеля) по внешнему интерфейсу rl0
> а
> TCP ответ идет с 192.168.10.111 (адрес туннеля), но тоже по внешнему 
> интерфейсу rl0
> 
> 
> Почему так? 


Проверил на NetBSD - аналогично. Но почему так?


> 
> 
> Для UDP заворачиваю в туннель вот так
> ${fwcmd} add fwd 192.168.10.1 all from me 8080 to any out via rl0
> 
> И все работает. Сервер видит ответ X и пересылает дальше.
> 
> А вот с TCP forward не работает.

А это еще не пробовал. Нужно читать про npf...
___
freebsd mailing list
freebsd@uafug.org.ua
http://mailman.uafug.org.ua/mailman/listinfo/freebsd


[freebsd] TCP vs UDP в контексте туннеля.

2022-06-25 Пенетрантность Nick Kostirya via freebsd
Привет.

В туннель заворачивается на сервере X (192.168.10.1) вот так

${fwcmd} nat 2 config if vmx0 same_ports reset redirect_port udp 
192.168.10.111:8080 8080 redirect_port tcp 192.168.10.111:8080 8080


На сервере Y (192.168.10.111) запросы tcpdump показывает приходят на 
192.168.10.111, но вот ответы...

UDP ответ идет с 192.168.0.111 (вне туннеля) по внешнему интерфейсу rl0
а
TCP ответ идет с 192.168.10.111 (адрес туннеля), но тоже по внешнему интерфейсу 
rl0


Почему так? 


Для UDP заворачиваю в туннель вот так
${fwcmd} add fwd 192.168.10.1 all from me 8080 to any out via rl0

И все работает. Сервер видит ответ X и пересылает дальше.

А вот с TCP forward не работает.
___
freebsd mailing list
freebsd@uafug.org.ua
http://mailman.uafug.org.ua/mailman/listinfo/freebsd


Re: [freebsd] Есть ли особенности проброса порта в туннель?

2022-06-24 Пенетрантность Nick Kostirya via freebsd
On Fri, 24 Jun 2022 14:30:01 +0700
Eugene Grosbein  wrote:


> > На сервере Y с IP 192.168.12.111 в туннеле (13.1-RELEASE)
> > Вижу только входящий пакет и все.
> > # tcpdump -n -i ipsec0 -a 'port 8080 or port 80'
> > 06:07:03.106586 IP X.X.X.X.62673 > 192.168.12.111.80: Flags [S], seq 
> > 1358968744, win 65535, options [mss 16344,nop,wscale 6,sackOK,TS val 
> > 3568935363 ecr 0], length 0  
> 

> 
> Разница в том, что в первом случае адрес источника был X.X.X.X, а во втором 
> 192.168.12.1.
> Либо входящий пакет был убит файрволом на приёмной стороне, либо ответ не 
> находит роута в туннель
> и уходит в другой интерфейс или вообще никуда.

В ipfw разрешено для tcp все.

Таблица роутинга вот такая:

DestinationGatewayFlags Netif Expire
defaultX.X.X.XUGS rl0
127.0.0.1  link#2 UH  lo0
192.168.0.0/24 link#1 U   rl0
192.168.0.111  link#1 UHS lo0
192.168.12.1   link#5 UH   ipsec0
192.168.12.111 link#5 UHS lo0


Получается ответы, на запроси от X.X.X.X, хоть и пришли через тунель, уходят на 
X.X.X.X, а не в тунель 192.168.12.1.

Но их почему-то не видно tcpdump -i rl0 'port 8080 or port 80'.

Пробовал добавить.
ipfw add 200 fwd 192.168.12.1 tcp from 192.168.12.111 80 to any
не помогло.



А почему на сервере Y в tcpdump видны запросы

12:50:08.219710 IP X.X.X.X.41173 > 192.168.12.111.http: Flags [S], seq 
3645315935, win 65535, options [mss 16344,nop,wscale 6,sackOK,TS val 1553419922 
ecr 0], length 0

Но в ipfw нет?
# ipfw show
001000  0 deny icmp from any to any in icmptypes 5
001010  0 count ip from any to any 80
001020  0 count ip from any to any 8080
001030  0 count ip from any to any 80 via rl0
001040  0 count ip from any to any 8080 via rl0
001050  0 count ip from any to any 80 via ipsec0
001060  0 count ip from any to any 8080 via ipsec0
65000 4547 905487 allow ip from any to any



И что означает ip в nat config ?
Описание "Define an ip address to use for aliasing." на понятно.

Пробовал использовать его, в надежде, что вместо пакета 
IP X.X.X.X.41173 > 192.168.12.111.http
прийдет 
IP 192.168.12.1.41173 > 192.168.12.111.http
и соответственно ответ уйдет в туннель на 192.168.12.1, но не сработало.


___
freebsd mailing list
freebsd@uafug.org.ua
http://mailman.uafug.org.ua/mailman/listinfo/freebsd


[freebsd] Есть ли особенности проброса порта в туннель?

2022-06-23 Пенетрантность Nick Kostirya via freebsd
Привет.

У меня вопрос: есть ли особенности проброса порта в туннель?

У сервера X (12.3-RELEASE-p5)

${fwcmd} nat 1 config if vmx0 redirect_port tcp 192.168.12.111:80 8080
${fwcmd} add nat 1 ip from any to any 8080
(упростил уже до такого)

Делаю для проверки
echo hello | nc X.X.X.X 8080



На сервере Y с IP 192.168.12.111 в туннеле (13.1-RELEASE)
Вижу только входящий пакет и все.
# tcpdump -n -i ipsec0 -a 'port 8080 or port 80'
06:07:03.106586 IP X.X.X.X.62673 > 192.168.12.111.80: Flags [S], seq 
1358968744, win 65535, options [mss 16344,nop,wscale 6,sackOK,TS val 3568935363 
ecr 0], length 0



Когда на сервере X делаю запрос напрямую по туннелю без redirect_port

echo hello | nc 192.168.12.111 80

То на сервере Y вижу сразу и ответ

# tcpdump -n -i ipsec0 -a 'port 8080 or port 80'
06:28:41.232011 IP 192.168.12.1.49774 > 192.168.12.111.80: Flags [S], seq 
1477405936, win 65535, options [mss 1360,nop,wscale 6,sackOK,TS val 878248554 
ecr 0], length 0
06:28:41.232045 IP 192.168.12.111.80 > 192.168.12.1.49774: Flags [S.], seq 
3253001398, ack 1477405937, win 65535, options [mss 1360,nop,wscale 6,sackOK,TS 
val 2263718684 ecr 878248554], length 0

Может что-то есть такое, что я не знаю?

И там и там net.inet.ip.forwarding=1
___
freebsd mailing list
freebsd@uafug.org.ua
http://mailman.uafug.org.ua/mailman/listinfo/freebsd


Re: [freebsd] Туннель с клиентом за натом

2022-06-22 Пенетрантность Nick Kostirya via freebsd
On Wed, 22 Jun 2022 16:12:51 +0700
Eugene Grosbein  wrote:


> Первый подозреваемый - роутер Tenda. Проверить это легко, нужно повторить 
> тест с пингом
> и tcpdump смотреть параллельно как на gif, так и на физическом интерфейсе, 
> чтобы видеть,
> а сколько реально пакетов приходит со стороны Tenda?

Нашел. Это не в туннеле дело. :-)
И без туннеля дубликаты.
Пропинговал все IP, что показал traceroute, и увидел, что дубликаты делает один 
из маршрутизаторов на пути от клиента к серверу.

Спасибо.
___
freebsd mailing list
freebsd@uafug.org.ua
http://mailman.uafug.org.ua/mailman/listinfo/freebsd


Re: [freebsd] Туннель с клиентом за натом

2022-06-21 Пенетрантность Nick Kostirya via freebsd
On Wed, 22 Jun 2022 10:38:36 +0700
Eugene Grosbein  wrote:

> 22.06.2022 9:34, Nick Kostirya via freebsd пишет:
> > Привет.
> > 
> > Вопрос про туннель с клиентом за натом.
> > 
> > 
> > Сервер: X.X.X.X 192.168.12.1  (FreeBSD 12.3)
> > NAT:Y.Y.Y.Y   192.168.0.1
> > Слиент:   192.168.0.5   192.168.12.5  (FreeBSD 12.3)
> > 
> > 
> > На сервере (X.X.X.X):
> > 
> > ifconfig gif0 create
> > ifconfig gif0 inet tunnel X.X.X.X Y.Y.Y.Y
> > ifconfig gif0 inet 192.168.12.1/24 192.168.12.5
> > 
> > 
> > На клиенте (192.168.0.5):
> > 
> > ifconfig gif0 create
> > ifconfig gif0 inet tunnel 192.168.0.5 X.X.X.X
> > ifconfig gif0 inet 192.168.12.5/24 192.168.12.1
> > 
> > 
> > TCP - работает, а вот UDP и ICMP дают дубликати.
> > 
> > При этом tcpdump показывает, что UDP уже на gif0 интерфейсе сервера, а ICMP 
> > echo дает дубликати ответа, видные tcpdump на клиенте, если пинговать с 
> > клиента и наоборот.
> > 
> > Аналогичная картина наблюдается для ipsec.
> > 
> > Как это объяснить и исправить?
> > 
> > Спасибо.  
> 
> не надо художественно излагать показания tcpdump. Их надо показывать.
> И ещё очень важно, что за роутер делает NAT. Потому что не любой NAT отроутит 
> инкапсуляцию gif/IPIP,
> а если она дополнительно обёрнута ещё во что-то типа UDP (как это делает 
> IPSec NAT-T),
> то это надо тоже явным образом описывать.
> 
> Потому что как сейчас описано - ничо не понятно.



UDP


На клиенте
# echo hello | nc -u 192.168.12.1 

# tcpdump -i gif0
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on gif0, link-type NULL (BSD loopback), capture size 262144 bytes
08:42:41.200475 IP 192.168.12.5.14623 > 192.168.12.1.: UDP, length 6


На сервере получаю
# nc -u -l 
hello
hello


# tcpdump -i gif0
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on gif0, link-type NULL (BSD loopback), capture size 262144 bytes
07:42:40.938382 IP 192.168.12.5.14623 > 192.168.12.1.: UDP, length 6
07:42:40.939678 IP 192.168.12.5.14623 > 192.168.12.1.: UDP, length 6


---

Ping


На клиенте.


# ping -c 3 192.168.12.1
PING 192.168.12.1 (192.168.12.1): 56 data bytes
64 bytes from 192.168.12.1: icmp_seq=0 ttl=64 time=112.012 ms
64 bytes from 192.168.12.1: icmp_seq=0 ttl=64 time=113.694 ms (DUP!)
64 bytes from 192.168.12.1: icmp_seq=1 ttl=64 time=112.483 ms
64 bytes from 192.168.12.1: icmp_seq=1 ttl=64 time=113.131 ms (DUP!)
64 bytes from 192.168.12.1: icmp_seq=2 ttl=64 time=114.567 ms

--- 192.168.12.1 ping statistics ---
3 packets transmitted, 3 packets received, +2 duplicates, 0.0% packet loss
round-trip min/avg/max/stddev = 112.012/113.177/114.567/0.899 ms


#  tcpdump -i gif0
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on gif0, link-type NULL (BSD loopback), capture size 262144 bytes
08:22:30.774131 IP 192.168.12.5 > 192.168.12.1: ICMP echo request, id 39435, 
seq 0, length 64
08:22:30.886033 IP 192.168.12.1 > 192.168.12.5: ICMP echo reply, id 39435, seq 
0, length 64
08:22:30.887670 IP 192.168.12.1 > 192.168.12.5: ICMP echo reply, id 39435, seq 
0, length 64
08:22:31.798535 IP 192.168.12.5 > 192.168.12.1: ICMP echo request, id 39435, 
seq 1, length 64
08:22:31.910871 IP 192.168.12.1 > 192.168.12.5: ICMP echo reply, id 39435, seq 
1, length 64
08:22:31.911573 IP 192.168.12.1 > 192.168.12.5: ICMP echo reply, id 39435, seq 
1, length 64
08:22:32.807997 IP 192.168.12.5 > 192.168.12.1: ICMP echo request, id 39435, 
seq 2, length 64
08:22:32.922373 IP 192.168.12.1 > 192.168.12.5: ICMP echo reply, id 39435, seq 
2, length 64
08:22:32.923572 IP 192.168.12.1 > 192.168.12.5: ICMP echo reply, id 39435, seq 
2, length 64


На сервере

# tcpdump -i gif0
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on gif0, link-type NULL (BSD loopback), capture size 262144 bytes
07:22:30.566485 IP 192.168.12.5 > 192.168.12.1: ICMP echo request, id 39435, 
seq 0, length 64
07:22:30.566501 IP 192.168.12.1 > 192.168.12.5: ICMP echo reply, id 39435, seq 
0, length 64
07:22:30.567795 IP 192.168.12.5 > 192.168.12.1: ICMP echo request, id 39435, 
seq 0, length 64
07:22:30.567807 IP 192.168.12.1 > 192.168.12.5: ICMP echo reply, id 39435, seq 
0, length 64
07:22:31.590655 IP 192.168.12.5 > 192.168.12.1: ICMP echo request, id 39435, 
seq 1, length 64
07:22:31.590669 IP 192.168.12.1 > 192.168.12.5: ICMP echo reply, id 39435, seq 
1, length 64
07:22:31.591988 IP 192.168.12.5 > 192.168.12.1: ICMP echo request, id 39435, 
seq 1, length 64
07:22:31.591996 IP 192.168.12.1 > 192.168.12.5: ICMP echo reply, id 39435, seq 
1, length 64
07:22:32.602660 IP 192.168.12

[freebsd] Туннель с клиентом за натом

2022-06-21 Пенетрантность Nick Kostirya via freebsd
Привет.

Вопрос про туннель с клиентом за натом.


Сервер: X.X.X.X 192.168.12.1  (FreeBSD 12.3)
NAT:Y.Y.Y.Y   192.168.0.1
Слиент:   192.168.0.5   192.168.12.5  (FreeBSD 12.3)


На сервере (X.X.X.X):

ifconfig gif0 create
ifconfig gif0 inet tunnel X.X.X.X Y.Y.Y.Y
ifconfig gif0 inet 192.168.12.1/24 192.168.12.5


На клиенте (192.168.0.5):

ifconfig gif0 create
ifconfig gif0 inet tunnel 192.168.0.5 X.X.X.X
ifconfig gif0 inet 192.168.12.5/24 192.168.12.1


TCP - работает, а вот UDP и ICMP дают дубликати.

При этом tcpdump показывает, что UDP уже на gif0 интерфейсе сервера, а ICMP 
echo дает дубликати ответа, видные tcpdump на клиенте, если пинговать с клиента 
и наоборот.

Аналогичная картина наблюдается для ipsec.

Как это объяснить и исправить?

Спасибо.
___
freebsd mailing list
freebsd@uafug.org.ua
http://mailman.uafug.org.ua/mailman/listinfo/freebsd


Re: [freebsd] zfs import

2022-06-14 Пенетрантность Nick Kostirya via freebsd
On Tue, 14 Jun 2022 01:44:22 +0700
Eugene Grosbein  wrote:

> 13.06.2022 22:57, Nick Kostirya via freebsd пишет:
> > On Mon, 13 Jun 2022 18:39:41 +0300
> > Владимир Друзенко via freebsd  wrote:  
> >> Nick Kostirya via freebsd писал(а) 2022-06-13 17:52:  
> >>>
> >>> Вопрос про zfs. FreeBSD 13.1
> >>> Есть диск с zfs (созданный bsdinstall).
> >>> Затем добавили еще диск с целью перенести на нее систему, а второй
> >>> оставить для разных больших файлов.
> >>> Загрузился с флешки и bsdinstall создал на весь диск zfs и установил.
> >>> В биосе сказал грузиться с нового диско, но FreeBSD все равно
> >>> грузиться со старого диска.  
> 
> Не надо было так делать. Есть гораздо более простой и быстрый путь:
> добавить второй диск в существующий пул командой zpool attach poolname 
> old_device new_device
> 
> Это делает пул зеркалом. Надо дождаться окончания зеркалирования данных,
> проверяя прогресс командой zpool status. Затем можно удалить старый диск из 
> пула
> командой zpool detach.
> 
> Предварительно почитать man zpool-attach и man zpool-detach.
> Важно не спутать с командой zpool add, которая тоже добавляет диск в пул,
> но делает из пула не зеркало, а аналог gconcat, когда объём пула становится
> суммарным объёмом двух дисков, данные распределяются по всему объёму и такой
> пул уже невозможно разобрать потом, только через спасение данных и 
> уничтожение пула целиком.
> 
> >>> Что еще нужно подкрутить?
> >>
> >> Название рутового пула случайно не одинаковое?  
> > 
> > Ой, оба из под bsdinstall, значит одинаковые. А как выкрутиться в этой 
> > ситуации?
> > 
> > Читаю про ZFS: все про зеркала рассказывают...
> > А как же поступают в такой ситуации: вставил диск с другой компьютера 
> > что-бы данные скопировать?  
> 
> У пулов кроме имени есть уникальные ID, импортировать пул с тем же именем 
> можно вручную по ID.
> man zpool-import.



Импортировать по ID получилось, если загрузиться с install флешки.
А при загрузке с диска один пулл, наверное, ложиться поверх второго.
Когда их назвал разными именами, то при загрузке импортировался только пулл с 
диска, с которого шла загрузка.
Почему, если имена совпадаю, загрузчик лезет в другой диск - не понятно.


Далее возник вопрос, как добраться до данных второго диска.
Некоторые каталоги оказываются пустые, например /usr/local/

# zpool import -N tank

# zfs list
tank743M   107G   96K  /zroot
tank/ROOT   740M   107G   96K  none
tank/ROOT/default   740M   107G  740M  /
tank/tmp120K   107G  120K  /tmp
tank/usr484K   107G   96K  /usr
tank/usr/home   196K   107G  196K  /usr/home
tank/usr/ports   96K   107G   96K  /usr/ports
tank/usr/src 96K   107G   96K  /usr/src
tank/var648K   107G   96K  /var
tank/var/audit   96K   107G   96K  /var/audit
tank/var/crash   96K   107G   96K  /var/crash
tank/var/log160K   107G  160K  /var/log
tank/var/mail   104K   107G  104K  /var/mail
tank/var/tmp 96K   107G   96K  /var/tmp



# mount -t zfs tank/ROOT/default /mnt
# ll /mnt/usr/local/
total 0

# umount /mnt
# mount -t zfs tank/usr /mnt
# ll /mnt/
total 0


Почем так не понятно.


___
freebsd mailing list
freebsd@uafug.org.ua
http://mailman.uafug.org.ua/mailman/listinfo/freebsd


Re: [freebsd] zfs

2022-06-13 Пенетрантность Nick Kostirya via freebsd
On Mon, 13 Jun 2022 18:39:41 +0300
Владимир Друзенко via freebsd  wrote:

> Nick Kostirya via freebsd писал(а) 2022-06-13 17:52:
> 
> > Привет.
> > 
> > Вопрос про zfs. FreeBSD 13.1
> > Есть диск с zfs (созданный bsdinstall).
> > Затем добавили еще диск с целью перенести на нее систему, а второй
> > оставить для разных больших файлов.
> > Загрузился с флешки и bsdinstall создал на весь диск zfs и установил.
> > В биосе сказал грузиться с нового диско, но FreeBSD все равно
> > грузиться со старого диска.
> > 
> > Что еще нужно подкрутить?  
> 
> Название рутового пула случайно не одинаковое?

Ой, оба из под bsdinstall, значит одинаковые. А как выкрутиться в этой ситуации?

Читаю про ZFS: все про зеркала рассказывают...
А как же поступают в такой ситуации: вставил диск с другой компьютера что-бы 
данные скопировать?
___
freebsd mailing list
freebsd@uafug.org.ua
http://mailman.uafug.org.ua/mailman/listinfo/freebsd


[freebsd] zfs

2022-06-13 Пенетрантность Nick Kostirya via freebsd
Привет.

Вопрос про zfs. FreeBSD 13.1
Есть диск с zfs (созданный bsdinstall).
Затем добавили еще диск с целью перенести на нее систему, а второй оставить для 
разных больших файлов.
Загрузился с флешки и bsdinstall создал на весь диск zfs и установил.
В биосе сказал грузиться с нового диско, но FreeBSD все равно грузиться со 
старого диска.

Что еще нужно подкрутить?
___
freebsd mailing list
freebsd@uafug.org.ua
http://mailman.uafug.org.ua/mailman/listinfo/freebsd


[freebsd] Ryzen 5 5500U and bhyve

2021-12-10 Пенетрантность Nick Kostirya via freebsd
Привет.

Прочитал, что для использования bhyve нужны POPCNT и NRIPS.

В dmess вижу POPCNT, но вместо NRIPS вижу только SVM: NP,NRIP
Это оно? Будет или работать bhyve на Ryzen 5 5500U?



CPU: AMD Ryzen 5 5500U with Radeon Graphics  (2096.11-MHz K8-class CPU)
  Origin="AuthenticAMD"  Id=0x860f81  Family=0x17  Model=0x68  Stepping=1
  
Features=0x178bfbff
  
Features2=0x7ed8320b
  AMD Features=0x2e500800
  AMD 
Features2=0x75c237ff>
  Structured Extended 
Features=0x219c91a9
  Structured Extended Features2=0x44
  XSAVE Features=0xf
  AMD Extended Feature Extensions ID EBX=0x90cf757
  SVM: NP,NRIP,VClean,AFlush,DAssist,NAsids=32768
  TSC: P-state invariant, performance statistics
real memory  = 8589934592 (8192 MB)
avail memory = 6007091200 (5728 MB)
___
freebsd mailing list
freebsd@uafug.org.ua
http://mailman.uafug.org.ua/mailman/listinfo/freebsd


Re: [freebsd] PPPoE и PPTP, GRE, IPSEC

2021-11-11 Пенетрантность Nick Kostirya via freebsd
Когда-то у меня был дома интернет через pppoe.
Использовал l2tp (mpd5) и ipsec.
Выставил mtu 1400.
Работало нормально.


On Thu, 11 Nov 2021 09:25:55 +0200 (EET)
Yaroslav Shvets  wrote:

> Hello All.
> 
> Провайдер предоставляет интернет через pppoe.
> Данный сервер должен также выступать как множественным
> pptp-клиентом, так и pptp-сервером (mpd5).
> Предполагается также подключение по IPSEC.
> Не исключены в будущем другие туннели.
> Конфигурация давно отлажена и успешно работает
> через классический сетевой интерфейс.
> 
> Будет ли это все нормально работать через PPPoE?
> Есть ли смысл связываться или стоит выбрать
> классическое подключение к провайдеру?
> 
> -- 
> Yaroslav Shvets
> ___
> freebsd mailing list
> freebsd@uafug.org.ua
> http://mailman.uafug.org.ua/mailman/listinfo/freebsd
___
freebsd mailing list
freebsd@uafug.org.ua
http://mailman.uafug.org.ua/mailman/listinfo/freebsd


Re: [freebsd] socket

2021-04-21 Пенетрантность Nick Kostirya via freebsd
On Wed, 21 Apr 2021 19:39:14 +0300
Nick Kostirya via freebsd  wrote:

> Привет.
> 
> Вопрос по сокетам.
> 
> Забыл открыть сокет в неблокирующем режиме.
> После select записывалось столько данных, сколько влезало, и операция записи 
> не блокировалась. 
> 
> А вот при запуске под Линуксом обнаружил эту ошибку, так как там запись 
> блокируется.
> 
> Это такая особенность FreeBSD или всех BSD?
> А как под Солярисом?

Ой. 
Сокеты наследуют неблокирующий режим от accept. Так что они работают в 
неблокирующем режиме.
А вот под Linux не наследуется.

Порылся в своих записях: оказывается давным давно уже сталкивался с этим. :-)

Спасибо.
___
freebsd mailing list
freebsd@uafug.org.ua
http://mailman.uafug.org.ua/mailman/listinfo/freebsd


[freebsd] socket

2021-04-21 Пенетрантность Nick Kostirya via freebsd
Привет.

Вопрос по сокетам.

Забыл открыть сокет в неблокирующем режиме.
После select записывалось столько данных, сколько влезало, и операция записи не 
блокировалась. 

А вот при запуске под Линуксом обнаружил эту ошибку, так как там запись 
блокируется.

Это такая особенность FreeBSD или всех BSD?
А как под Солярисом?
___
freebsd mailing list
freebsd@uafug.org.ua
http://mailman.uafug.org.ua/mailman/listinfo/freebsd


Re: [freebsd] dts

2021-04-14 Пенетрантность Nick Kostirya via freebsd
On Wed, 14 Apr 2021 17:18:11 +0300
"George L. Yermulnik"  wrote:

> Hello!
> 
> On Wed, 14 Apr 2021 at 16:24:22 (+0300), Nick Kostirya via freebsd wrote:
> 
> > > Вот редиски. Повторюсь -- анонса для широкого круга лиц не было.  
> 
> > :-(
> > Теперь, чтобы dts скопилировать, все исходника скачивать нужно.
> > А раньше можно было просто:  
> 
> В git такое тоже можно сделать. С чуть большим кол-вом телодвижений, правда.
> Придётся просто привыкнуть :shrug:

Как? Разве git позволяет скачать часть?
___
freebsd mailing list
freebsd@uafug.org.ua
http://mailman.uafug.org.ua/mailman/listinfo/freebsd


Re: [freebsd] dts

2021-04-14 Пенетрантность Nick Kostirya via freebsd
On Wed, 14 Apr 2021 15:54:07 +0300
Anton Saietskii  wrote:

 
> Вот редиски. Повторюсь -- анонса для широкого круга лиц не было.

:-(
Теперь, чтобы dts скопилировать, все исходника скачивать нужно.
А раньше можно было просто:

set S=/tmp/src
set URL=http://svn.freebsd.org/base/stable/12
svnlite co $URL/sys/gnu/dts $S/gnu/dts
svnlite co $URL/sys/dts $S/dts
fetch -o $S/make_dtbo.sh $URL/sys/tools/fdt/make_dtbo.sh
___
freebsd mailing list
freebsd@uafug.org.ua
http://mailman.uafug.org.ua/mailman/listinfo/freebsd


Re: [freebsd] netgraph

2021-04-04 Пенетрантность Nick Kostirya via freebsd
On Mon, 5 Apr 2021 12:10:00 +0700
Eugene Grosbein  wrote:

> Если цель это получить данные именно из UART на другой машине, то конкрето 
> эта задача,
> разумеется, давным давно решена и много раз. В /usr/ports/comms хватает 
> разного софта для этого:
> comserv, remserial. Или, если вместо этого хочется "экспортировать" локальный 
> /dev/cuau0 так,
> чтобы удаленный хост мог подключиться по TCP и получить поток данных,
> там же serialoverip, sredird, tits, и тот же comserv, который умеет и так.

Большое спасибо.
___
freebsd mailing list
freebsd@uafug.org.ua
http://mailman.uafug.org.ua/mailman/listinfo/freebsd


Re: [freebsd] netgraph

2021-04-04 Пенетрантность Nick Kostirya via freebsd
On Mon, 5 Apr 2021 00:04:50 +0700
Eugene Grosbein  wrote:

> 02.04.2021 14:43, Nick Kostirya via freebsd пишет:
> > Привет. 
> > 
> > У меня наивный вопрос про netgraph.
> > 
> > Я правильно понял, что при помощи ng_socket можно соединить два компьютера 
> > в одну сеть через, например, UART проводами или при помощи радио?
> > Для этого лишь достаточно написать демона, который будет просто 
> > перекладывать байты из socket в UART сразу или передавать радиочипу?  
> 
> Не этой нодой.
> 
> ng_socket это "переходник" между BSD-сокетами стека TCP/IP и внутренностями 
> NETGRAPH и не более того.
> То есть, если у нас есть некая абстрактная нода или сеть нод внутри NETGRAPH 
> и их надо кормить
> данными, приходящими из TCP/IP (или в обратную сторону, или в обе), для этого 
> можно использовать ng_socket.

А в случае UART можно использовать ng_tty(4)?
Общение с железкой осуществляется через gpio и uart. Сначала она настраивается 
через uart, потом при помощи gpio переключается в режим, когда через uart 
(/dev/cuaU* или /dev/ttyU*) идут только данные, которые прямо без обработки 
можно заворачивать в TCP/IP.
Получится, после настрой железки, при помощи ng_tty создать netgraph ноду и ее 
при помощи ng_ksocket соединить ее к стеку TCP/IP?

> 
> Для передачи данных (соединения в сеть) через UART штатный драйвер uart(4) 
> уже создаёт файлы устройств
> в /dev, плюс драйвер этот реализует абстракцию termios(4) line discipline и 
> уже написаны демоны,
> которые перекладывают байты в девайс и обратно: ppp, mpd5 и раньше ещё был 
> slattach, но протокол SLIP
> для работы поверх UART выпилили давно из FreeBSD (во время FreeBSD 4 он ещё 
> работал).
> 
> Если вам интересно использование именно NETGRAPH через некое железо, то 
> плясать надо от драйвера
> этого железа, в какой форме драйвер принимает данные для отправки или выдаёт 
> принятые от железа данные?

Драйверов пока нет. Другие железки работают через spi протокол. Но что-то они 
не хочет дружить с микрокомпьютером под управление FreeBSD, так что скорее 
всего сделаю через промежуточный микропроцессор, который spi будет 
преобразовывать в uart. Тем более, что упомянутая выше так сама делает.

> 
> Если вы сами пишете такой драйвер - вполне возможно реализовать новую ноду 
> NETGRAPH,
> которая с одной стороны будет частью драйвера, общающейся с железом 
> "напрямую",
> а с другой стороны посредством нетграфовых хуков может быть соединена с 
> ng_iface или ng_eiface
> или ng_device.


___
freebsd mailing list
freebsd@uafug.org.ua
http://mailman.uafug.org.ua/mailman/listinfo/freebsd


[freebsd] netgraph

2021-04-02 Пенетрантность Nick Kostirya via freebsd
Привет. 

У меня наивный вопрос про netgraph.

Я правильно понял, что при помощи ng_socket можно соединить два компьютера в 
одну сеть через, например, UART проводами или при помощи радио?
Для этого лишь достаточно написать демона, который будет просто перекладывать 
байты из socket в UART сразу или передавать радиочипу?
___
freebsd mailing list
freebsd@uafug.org.ua
http://mailman.uafug.org.ua/mailman/listinfo/freebsd