Страницы

Поиск по вопросам

Показаны сообщения с ярлыком lan. Показать все сообщения
Показаны сообщения с ярлыком lan. Показать все сообщения

суббота, 11 января 2020 г.

Как просканировать сеть на наличие включенных компьютеров?

#cpp #linux #ip #lan


В локальных сетях есть компьютеры и у каждого из них есть свой IP адрес. Как узнать,
перебирая все IP, какие компьютеры покдлюченны в сеть. 

Я пробовал через комманду PING, получал от из нее ответ и проверял его:

string subNet = "192.168.1.";
for(int i = 1; i < 256; i++){
    string network_IP = subNet + to_string(i);
    string request = "ping " + network_IP + " -c 1 > /dev/null"; 
    string result = system(request.c_str()) == 0 ? "true" : "false";
    cout << network_IP << " available: " << result << endl;
}


но данная система работает очень долго, как можно это ускорить?
    


Ответы

Ответ 1



система работает очень долго она не работает. она ждёт ответа на ping-запрос. Если данный хост "живой", то ответ прилетает практически мгновенно. Если же хост не отвечает, то утилита ping ждёт таймаут. Величина этого таймаута задаётся ключиком "-W". Попробуйте задать "-W1" - посмотрите результат. как можно это ускорить? Насчёт таймаута я уже сказал. Но, это не радикальное средство. А радикальым решением будет написание двух функций: Отправить ICMP-запрос Ждать ответа на ICMP запрос. Тогда Вы в цикле отправляете запросы по всем адресам локальной сети - без(!) ожидания ответа. Внутри каждого отправленного ICMP запроса указываете его ID. После чего ждёте таймаут один(!) раз. Здесь цикл вызова второй вашей функции. Она принимает пакет и по ID определяет, от кого этот ответ пришёл. Всё это продолжается таймаут. Кто успел прислать ответ - тот живой. Кто не прислал - того нет в сети. Таким образом, таймаут отрабатывает только один раз. Есть ещё одна проблема: сисадмины, для предотвращения хакинга, часто запрещают хостам отправлять ответы на ICMP запросы. В качестве "рыбы" для написания этих двух функций рекомендую использовать простенький текст пользователя .failer на страничке https://forum.sources.ru/index.php?showtopic=57566

воскресенье, 29 декабря 2019 г.

Получение списка компьютеров в локальной сети

#c_sharp #lan


Как мне получить список ip адресов,mac адресов и учетных записей компьютеров в локальной
сети? 
    


Ответы

Ответ 1



По своей сути это три разных задачи, близких друг к другу по смыслу. Чтобы получить список адресов сети, можно воспользоваться следующим кодом: public void GetLocalAddress() { // доступно ли сетевое подключение if (!System.Net.NetworkInformation.NetworkInterface.GetIsNetworkAvailable()) return; // запросить у DNS-сервера IP-адрес, связанный с именем узла var host = Dns.GetHostEntry(Dns.GetHostName()); // Пройдем по списку IP-адресов, связанных с узлом foreach (var ip in host.AddressList) { // если текущий IP-адрес версии IPv4, то выведем его if (ip.AddressFamily == AddressFamily.InterNetwork) { Console.WriteLine(ip.ToString()); } } } Это для консольного приложения, но можно использовать где угодно, просто заменив Console.WriteLine. Полезные ссылки для ознакомления: Метод Dns.GetHostEntry Метод Dns.GetHostName Свойство IPHostEntry.AddressList Свойство IPAddress.AddressFamily Перечисление AddressFamily Метод NetworkInterface.GetIsNetworkAvailable С получением списка MAC-адресов дела обстоят так: public void GetMacAddress() { foreach (NetworkInterface nic in NetworkInterface.GetAllNetworkInterfaces()) { if (nic.OperationalStatus == OperationalStatus.Up) { Console.WriteLine(nic.GetPhysicalAddress().ToString()); } } } Или другой способ с помощью System.Management: public List GetMacAddress() { ManagementObjectSearcher objMOS = new ManagementObjectSearcher("Win32_NetworkAdapterConfiguration"); ManagementObjectCollection objMOC = objMOS.Get(); List MACAddress = new List(); foreach (ManagementObject objMO in objMOC) { try { MACAddress.Add(objMO["MacAddress"].ToString()); objMO.Dispose(); // а может и не нужно } catch(Exception) { } } return MACAddress; } Полезные ссылки из получения MAC-адресов: Метод NetworkInterface.GetAllNetworkInterfaces Метод NetworkInterface.GetPhysicalAddress Перечисление OperationalStatus Очень полезно: C# Get Computer's MAC address “OFFLINE” Получение учетных записей программно - это проблема, которую нужно решать отдельно. Скорее всего так просто не выйдет. К примеру для конкретной машины, на которой будет запущено приложение - можно получить данные учетной записи через System.Management, вот так: ManagementObjectSearcher usersSearcher = new ManagementObjectSearcher(@"SELECT * FROM Win32_UserAccount"); ManagementObjectCollection users = usersSearcher.Get(); Пример взят отсюда: How can I get a list Local Windows Users. В первом ответе, который принят упоминается о проблемах с брандмауэром и антивирусами, с чем я согласен. Причем учетная запись может быть доменной, а также и локальной. Это отдельный вопрос, требующий особого внимания.

Ответ 2



Что бы получить ip и mac можно использовать NetServerEnum и NetApiBufferFree из netapi32.dll - подключается через dllImport. Тем же способом и mac адреса машин. Для учетных записей к сожалению нужен будет либо доступ к домену либо пилить велосипед в виде клиент\сервера которые общаются по UDP. Клиент запускается на машине, данные которой нужно поулчить, после чего шлет всю инфу на определенный сервер (будут проблемки с антивирусами или брандмауэром, но если нужно только для своей сетки, вопрос вполне решаемый).

пятница, 27 декабря 2019 г.

Не работает Wake On Lan через Teamviewer

#lan #teamviewer


Всем привет. Подскажите с такой проблемой. Хочу будить ноут дома через TeamViewer,
в нем есть такая функция. Настроил в BIOS и в ос (windows 10) дома в нутри сети пробуждение
работает, а вот из вне не получается. В чем может быть проблема? На роутере открыт
порт udp 9.
    


Ответы

Ответ 1



Из инструкции к Teamviewer: 5.3 Wake-on-LAN через публичный адрес Если вы хотите пробудить компьютер с помощью его публичного адреса, ваш компьютер должен быть всё время идентифицирован в Интернете. Для этого нужно либо иметь постоянный IP адрес интернет-провайдера, либо ваш компьютер должен быть доступен, к примеру, с помощью динамического провайдера DNS (см. http://en.wikipedia.org/wiki/Dynamic_DNS). При выполнении одного из условий, вы можете активировать Wake-On-LAN через публичный адрес в опциях TeamViewer. Для активации TeamViewer Wake-On-LAN через публичный адрес выполните следующие действия: Запустите TeamViewer на компьютере. В главном меню выберите Дополнительно | Опции. -> Откроется диалоговое окно Опции TeamViewer. Выберите раздел Основное. В разделе Настройки сети|Функция пробуждения по сети Wake-on-LAN нажмите кнопку Конфигурация…. Откроется диалоговое окно Функция пробуждения по сети Wake-on-LAN. Нажмите кнопку-переключатель Публичный адрес. В поле Адрес введите фиксированный IP адрес или DNS имя компьютера. В поле Порт введите порт UDP, с помощью которого организуется доступ к компьютеру (см. Раздел 7.1, стр. 14). Нажмите кнопку ОК. Теперь компьютер может быть пробуждён через свой публичный адрес с помощью TeamViewer. Скажите, что из этого вы сделали? Или у вас какая-то другая схема подключения?

Ответ 2



Ответ с сайта answers.microsoft.com У кого сетевые карты на контроллере Realtek- скачивайте драйвер с сайта (Win8, Win8.1 and Server 2012 Auto Installation Program (SID:1726143)). После установки драйвера WOL заработает. Тот который от Microsoft- не работает. Realtek Данная проблема встречается только в Windows 10.

Ответ 3



Технология "Wake On Lan" (технология "Magic packet") используется для включения электропитания удаленного компьютера, находящегося в состоянии программного выключения ("Soft Off") путем посылки на его сетевой адаптер специально сформированного кадра Ethernet. То есть сетевая карта должна мерцать. Посмотрите в настройках сетевой карты доступен ли Wake on Magic Packet?

Ответ 4



Предположу, что роутер может отключаться от интернета из-за того, что к нему нет обращений в течение заданного периода времени. Стоит попробовать изменить эту настройку.

вторник, 24 декабря 2019 г.

Раздать интернет

#linux #iptables #lan #route #модемы


Почему

$ ping ya.ru
ping: unknown host ya.ru

Комп1 (принимающий инет)

$ ifconfig wlan0
wlan0     Link encap:Ethernet  HWaddr b8:03:05:c9:3e:c5  
          inet addr:192.168.0.2  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::ba03:5ff:fec9:3ec5/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:33086 errors:0 dropped:0 overruns:0 frame:0
          TX packets:62823 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:2797459 (2.7 MB)  TX bytes:90723494 (90.7 MB)

и так делал


$ ip route
default via 192.168.0.2 dev wlan0  scope link  metric 100 
192.168.0.0/24 dev wlan0  proto kernel  scope link  src 192.168.0.2  metric 9

и так делал

$ ip route
default via 192.168.0.1 dev wlan0  scope link  metric 100 
192.168.0.0/24 dev wlan0  proto kernel  scope link  src 192.168.0.2  metric 9

$ sudo iptables-save
:пусто



$ nslookup ya.ru
;; connection timed out; no servers could be reached

$ ping 8.8.8.8
connect: Network is unreachable



Комп2 (раздающий 3g)

$ ifconfig -a
eth0      Link encap:Ethernet  HWaddr b8:88:e3:67:d4:45  
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:5976 errors:0 dropped:0 overruns:0 frame:0
          TX packets:5976 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:547759 (547.7 KB)  TX bytes:547759 (547.7 KB)

ppp0      Link encap:Point-to-Point Protocol  
          inet addr:10.225.20.196  P-t-P:10.64.64.64  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:14699 errors:0 dropped:0 overruns:0 frame:0
          TX packets:13627 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3 
          RX bytes:11287729 (11.2 MB)  TX bytes:2950024 (2.9 MB)

wlan0     Link encap:Ethernet  HWaddr 50:b7:c3:2a:68:31  
          inet addr:192.168.0.1  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::52b7:c3ff:fe2a:6831/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1000 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1021 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:148348 (148.3 KB)  TX bytes:108966 (108.9 KB)

wwan0     Link encap:Ethernet  HWaddr 58:2c:80:13:92:63  
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)


$ ip route
default via 10.64.64.64 dev ppp0  metric 100 
10.64.64.64 dev ppp0  proto kernel  scope link  src 10.225.20.196 
192.168.0.0/24 dev wlan0  proto kernel  scope link  src 192.168.0.1  metric 9 

net.ipv4.ip_forward = 1

Даже после команды :

$ sudo iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d 10.0.0.0/24 -o ppp0 -j
MASQUERADE 

в iptables пусто

$ sudo iptables -L -v -n --line
Chain INPUT (policy ACCEPT 11498 packets, 8572K bytes)
num   pkts bytes target     prot opt in     out     source               destination
        

Chain FORWARD (policy ACCEPT 2 packets, 112 bytes)
num   pkts bytes target     prot opt in     out     source               destination
        

Chain OUTPUT (policy ACCEPT 11183 packets, 2394K bytes)
num   pkts bytes target     prot opt in     out     source               destination     

$ sudo iptables-save
# Generated by iptables-save v1.4.21 on Fri Aug 12 21:04:53 2016
*nat
:PREROUTING ACCEPT [437:43281]
:INPUT ACCEPT [389:28232]
:OUTPUT ACCEPT [1207:218579]
:POSTROUTING ACCEPT [66:9831]
-A POSTROUTING -o ppp0 -j MASQUERADE
COMMIT
# Completed on Fri Aug 12 21:04:53 2016
# Generated by iptables-save v1.4.21 on Fri Aug 12 21:04:53 2016
*filter
:INPUT ACCEPT [29340:31886316]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [21601:3071749]
-A FORWARD -s 192.168.0.0/24 -i wlan0 -o ppp0 -j ACCEPT
-A FORWARD -d 192.168.0.0/24 -i ppp0 -o wlan0 -j ACCEPT
COMMIT
# Completed on Fri Aug 12 21:04:53 2016

$ nslookup ya.ru
Server:     127.0.1.1
Address:    127.0.1.1#53

Non-authoritative answer:
Name:   ya.ru
Address: 93.158.134.3
Name:   ya.ru
Address: 213.180.193.3
Name:   ya.ru
Address: 213.180.204.3

Сделал :


iptables -F 
iptables -X
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
iptables -A FORWARD -i wlan0 -o ppp0 -s 192.168.0.0/24 -j ACCEPT
iptables -A FORWARD -i ppp0 -o wlan0 -d 192.168.0.0/24 -j ACCEPT


Получил

$ sudo iptables -t nat -nvL
Chain PREROUTING (policy ACCEPT 72 packets, 4357 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain INPUT (policy ACCEPT 65 packets, 3965 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 88 packets, 13008 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain POSTROUTING (policy ACCEPT 5 packets, 890 bytes)
 pkts bytes target     prot opt in     out     source               destination         
   90 12510 MASQUERADE  all  --  *      ppp0    0.0.0.0/0            0.0.0.0/0

Но маскарад так и не работает.



В итоге на комп2 есть инет и пингуется комп1. А на комп1 нет инета,хотя и пингуется
комп2. Почему нет интернета ?(
    


Ответы

Ответ 1



так как в вопросе не упомянут файл /etc/resolv.conf, скорее всего, в нём и дело. в этом файле сохраняется информация, необходимая системе для преобразования доменных имён в ip-адреса (и обратно). как минимум в нём должна присутствовать строка вида: nameserver ip-адрес где ip-адрес — это адрес dns-сервера (сервера имён), который, собственно, и выполнит (при обращении к нему со стороны вашей системы) упомянутое выше преобразование (например, ya.ru → 93.158.134.3). чем «ближе» находится сервер имён, тем быстрее будет получен от него ответ. вы можете взять адрес из аналогичного файла со второго компьютера. или воспользоваться каким-нибудь публичным: 8.8.8.8, 8.8.4.4 (поддерживаются компанией google) 77.88.8.8, 77.88.8.1 (поддерживаются компанией yandex)

Ответ 2



На обоих компах прописал в файл /etc/resolv.conf nameserver 8.8.8.8 Спасибо @alexander-barakin Сделал на компе2(с 3g инетом): iptables -F iptables -X iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE iptables -A FORWARD -i wlan0 -o ppp0 -s 192.168.0.0/24 -j ACCEPT iptables -A FORWARD -i ppp0 -o wlan0 -d 192.168.0.0/24 -j ACCEPT Спасибо @nobody И заработало. Всем спасибо!)

четверг, 5 декабря 2019 г.

Настройка 10Gb сетевой карты под Linux при работе с ethernet фреймами

#linux #сокет #lan #ethernet #raw_socket


Не уверен, что вопрос соответствует правилам, но всё же.  

Есть 10Gb карточка (марка не важна, т.к. результат повторялся и на двух других, отличных
от этой) и Debian Buster, соединенный оптикой напрямую с машинкой-источником данных.
Организован поток данных ~9Gb, состоящий из ethernet фреймов размера ~9000 байт, в
которых кроме MAC отравителя, МАС получателя, кастомного EtherType и счетчика пакетов
ничего нет.

Замеры утилитами wireshark, tshark, tcpdump (хотя они всё равно все работают через
одну библиотеку) показывают пропуск примерно каждого второго пакета. Самописный кривой
код показывает примерно то же. При этом под Windows 7 тот же wireshark (при большом
выделенном буфере) ловит все пакеты.

Проверка пропускной способности сети утилитой iperf3 на TCP трафике даёт стабильные
9.8Gb.

# uname -a

Linux debian 4.19.0-6-amd64 #1 SMP Debian 4.19.67-2 (2019-08-28) x86_64 GNU/Linux


# ifconfig enp1s0

enp1s0: flags=4163  mtu 12000
        inet 10.0.0.1  netmask 255.255.255.0  broadcast 10.0.255.255
        inet6 fe80::b2c5:54ff:feff:f37f  prefixlen 64  scopeid 0x20
        ether b0:c5:54:ff:f3:7f  txqueuelen 3000  (Ethernet)
        RX packets 1501482032  bytes 13216245041216 (12.0 TiB)
        RX errors 0  dropped 1501472982  overruns 0  frame 0
        TX packets 75  bytes 7809 (7.6 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 34  memory 0x90400000-90410000  



# ethtool -g enp1s0

Ring parameters for enp1s0:
Pre-set maximums:
RX:     1365
RX Mini:    0
RX Jumbo:   0
TX:     2048
Current hardware settings:
RX:     1365
RX Mini:    0
RX Jumbo:   0
TX:     2048

# ethtool -k enp1s0

Features for enp1s0:
rx-checksumming: on
tx-checksumming: on
    tx-checksum-ipv4: on
    tx-checksum-ip-generic: off [fixed]
    tx-checksum-ipv6: off [fixed]
    tx-checksum-fcoe-crc: off [fixed]
    tx-checksum-sctp: off [fixed]
scatter-gather: on
    tx-scatter-gather: on
    tx-scatter-gather-fraglist: on
tcp-segmentation-offload: on
    tx-tcp-segmentation: on
    tx-tcp-ecn-segmentation: off [fixed]
    tx-tcp-mangleid-segmentation: off
    tx-tcp6-segmentation: off [fixed]
udp-fragmentation-offload: off
generic-segmentation-offload: on
generic-receive-offload: on
large-receive-offload: off [fixed]
rx-vlan-offload: on
tx-vlan-offload: on
ntuple-filters: off [fixed]
receive-hashing: on
highdma: on
rx-vlan-filter: on
vlan-challenged: off [fixed]
tx-lockless: off [fixed]
netns-local: off [fixed]
tx-gso-robust: off [fixed]
tx-fcoe-segmentation: off [fixed]
tx-gre-segmentation: off [fixed]
tx-gre-csum-segmentation: off [fixed]
tx-ipxip4-segmentation: off [fixed]
tx-ipxip6-segmentation: off [fixed]
tx-udp_tnl-segmentation: off [fixed]
tx-udp_tnl-csum-segmentation: off [fixed]
tx-gso-partial: off [fixed]
tx-sctp-segmentation: off [fixed]
tx-esp-segmentation: off [fixed]
tx-udp-segmentation: off [fixed]
fcoe-mtu: off [fixed]
tx-nocache-copy: off
loopback: off [fixed]
rx-fcs: off [fixed]
rx-all: off [fixed]
tx-vlan-stag-hw-insert: off [fixed]
rx-vlan-stag-hw-parse: off [fixed]
rx-vlan-stag-filter: off [fixed]
l2-fwd-offload: off [fixed]
hw-tc-offload: off [fixed]
esp-hw-offload: off [fixed]
esp-tx-csum-hw-offload: off [fixed]
rx-udp_tunnel-port-offload: off [fixed]
tls-hw-tx-offload: off [fixed]
tls-hw-rx-offload: off [fixed]
rx-gro-hw: off [fixed]
tls-hw-record: off [fixed] 


Я плохо знаю сетевой стек и откровенно "плаваю" при настройке сети, поэтому прошу
помощи сообщества или хотя бы вектора, в котором необходимо копать. Особенно интересует
эта строка RX errors 0  dropped 1501472982  overruns 0  frame 0
    


Ответы

Ответ 1



В большинстве случаев в linux требуется подтюнить драйвер, настройки ядра и, возможно, перераспределить прерывания по ядрам. Ниже представлены примеры рабочих параметров с 10g машин под debian. # cat /etc/modprobe.d/ixgbe.conf options ixgbe MQ=1,1 options ixgbe RSS=8,8 options ixgbe InterruptThrottleRate=1,1 options ixgbe DCA=2,2 options ixgbe FCoE=0,0 options ixgbe LRO=0,0 # cat /etc/sysctl.conf # Kernel sysctl configuration file for Red Hat Linux # # For binary values, 0 is disabled, 1 is enabled. See sysctl(8) and # sysctl.conf(5) for more details. # Controls IP packet forwarding net.ipv4.ip_forward = 1 # Controls source route verification net.ipv4.conf.default.rp_filter = 0 # Do not accept source routing net.ipv4.conf.default.accept_source_route = 0 # Controls the System Request debugging functionality of the kernel kernel.sysrq = 0 # Controls whether core dumps will append the PID to the core filename. # Useful for debugging multi-threaded applications. kernel.core_uses_pid = 1 # Controls the use of TCP syncookies net.ipv4.tcp_syncookies = 1 # Controls the default maxmimum size of a mesage queue kernel.msgmnb = 65536 # Controls the maximum size of a message, in bytes kernel.msgmax = 65536 # Controls the maximum shared segment size, in bytes kernel.shmmax = 68719476736 # Controls the maximum number of shared memory segments, in pages kernel.shmall = 4294967296 # No swappiness vm.swappiness = 0 net.core.rmem_default = 8388608 net.core.wmem_default = 8388608 net.core.rmem_max = 8388608 net.core.wmem_max = 8388608 net.netfilter.nf_conntrack_max = 30000000 net.netfilter.nf_conntrack_tcp_timeout_established = 1800 net.ipv4.conf.all.arp_announce = 1 net.ipv4.conf.lo.arp_announce = 1 net.ipv4.tcp_keepalive_intvl = 15 net.ipv4.tcp_fin_timeout = 20 net.core.netdev_max_backlog = 8192 net.ipv4.tcp_tw_recycle = 1 net.ipv4.tcp_timestamps = 1 net.core.somaxconn = 16384 net.ipv4.tcp_window_scaling = 1 net.ipv4.tcp_max_orphans = 65536 net.ipv4.ip_local_port_range = 1024 65535 net.ipv4.tcp_max_syn_backlog = 4096 net.ipv4.tcp_tw_reuse = 1 net.ipv4.conf.all.rp_filter = 0 net.ipv4.tcp_orphan_retries = 0 net.ipv4.udp_mem = 51200 76800 102400 net.ipv4.tcp_mem = 51200 76800 102400 net.ipv4.tcp_keepalive_probes = 5 net.ipv4.conf.all.accept_source_route = 0 net.ipv4.tcp_congestion_control = htcp net.ipv4.tcp_keepalive_time = 1800 net.ipv4.tcp_synack_retries = 2 net.ipv6.conf.all.disable_ipv6 = 1 vm.zone_reclaim_mode = 1 vm.min_free_kbytes = 512000 net.ipv4.neigh.default.gc_thresh1 = 512 net.ipv4.neigh.default.gc_thresh2 = 1024 net.ipv4.neigh.default.gc_thresh3 = 2048 kernel.panic = 60 Прерывания можно перераспределить скриптом от intel: https://github.com/majek/ixgbe/blob/master/scripts/set_irq_affinity

Ответ 2



На данном этапе вопрос закрыт: я слишком доверял утилитам (wireshark, tshark, tcpdump) в сочетании со строкой dropped 1501472982 от ifconfig. Что на самом деле такое эти dropped (присутствующие также в выводе упомянутых программ), нужно разбираться в каждом случае отдельно, но это не безвозвратно потерянные пакеты. В моём случае достаточно было увеличения этих параметров ядра: net.core.rmem_max net.core.wmem_max net.core.rmem_default net.core.wmem_default net.core.optmem_max На имеющемся потоке данных самописный код (немного модифицированная версия вот этого https://github.com/hundeboll/rawsend) ловит каждый пакет, попытка замерить максимальную пропускную способность дала ~9.9Gb с ~0.4% потерянных пакетов (согласно внутреннему счётчику). Потери возможно из-за того, что карточка на стороне клиента чуть круче, чем на стороне сервера.

вторник, 16 июля 2019 г.

Нужен ли новый сайт в лесу AD?

у меня сейчас сеть с 2мя ДК территориально разнесёнными в офисе сеть 204.85.134.0/24 в филиале 10.10.4.0/24
Контора переезжает, и отказывается от временного филиала (где сейчас располагается второй ДК) Во время переезда у нас будет 2 ДК но второй уже не с филиала - а новый. В новом офис сеть: 10.0.0.0/23
После переезда старый контроллер будет убран. Но добавится новый "железный" ДК.
и меня интересует необходимо ли создавать новый сайт для нового офиса?
Дело в том что я решил предварительно почитать статьи по моей теме, и нашёл вот такую фразу:
Прежде чем добавлять новый сервер в домен и устанавливать на нём роль AD DS необходимо создать новый сайт (только для филиалов, в пределах одной локальной сети сайт создавать не нужно!) и определить сеть для него. Сайт (site) - одна или несколько сетей TCP\IP имеющих высокоскоростное соединение. Как правило, сайты являются географически распределёнными. При наличии современных подключений к интернету, например FTTX, и небольших объёмах репликации необходимость нескольких сайтов может не понадобиться.


Ответ

Получил ответ на тостере:
у вас все в одном месте и сайт вам не нужен , втрой КД можно и нужно иметь , все будет ок @oia
Воспользовался им - и действительно никакой проблемы для работы AD отсутствие разделения на сайты не создаёт. А учитывая что разделение временное, два раза вмешиваться в структуру леса не стоит.

вторник, 27 ноября 2018 г.

Раздать интернет

Почему
$ ping ya.ru ping: unknown host ya.ru
Комп1 (принимающий инет)
$ ifconfig wlan0 wlan0 Link encap:Ethernet HWaddr b8:03:05:c9:3e:c5 inet addr:192.168.0.2 Bcast:192.168.0.255 Mask:255.255.255.0 inet6 addr: fe80::ba03:5ff:fec9:3ec5/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:33086 errors:0 dropped:0 overruns:0 frame:0 TX packets:62823 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:2797459 (2.7 MB) TX bytes:90723494 (90.7 MB)
и так делал
$ ip route default via 192.168.0.2 dev wlan0 scope link metric 100 192.168.0.0/24 dev wlan0 proto kernel scope link src 192.168.0.2 metric 9
и так делал
$ ip route default via 192.168.0.1 dev wlan0 scope link metric 100 192.168.0.0/24 dev wlan0 proto kernel scope link src 192.168.0.2 metric 9
$ sudo iptables-save :пусто

$ nslookup ya.ru ;; connection timed out; no servers could be reached
$ ping 8.8.8.8 connect: Network is unreachable

Комп2 (раздающий 3g)
$ ifconfig -a eth0 Link encap:Ethernet HWaddr b8:88:e3:67:d4:45 UP BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:5976 errors:0 dropped:0 overruns:0 frame:0 TX packets:5976 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:547759 (547.7 KB) TX bytes:547759 (547.7 KB)
ppp0 Link encap:Point-to-Point Protocol inet addr:10.225.20.196 P-t-P:10.64.64.64 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1 RX packets:14699 errors:0 dropped:0 overruns:0 frame:0 TX packets:13627 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:3 RX bytes:11287729 (11.2 MB) TX bytes:2950024 (2.9 MB)
wlan0 Link encap:Ethernet HWaddr 50:b7:c3:2a:68:31 inet addr:192.168.0.1 Bcast:192.168.0.255 Mask:255.255.255.0 inet6 addr: fe80::52b7:c3ff:fe2a:6831/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:1000 errors:0 dropped:0 overruns:0 frame:0 TX packets:1021 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:148348 (148.3 KB) TX bytes:108966 (108.9 KB)
wwan0 Link encap:Ethernet HWaddr 58:2c:80:13:92:63 BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
$ ip route default via 10.64.64.64 dev ppp0 metric 100 10.64.64.64 dev ppp0 proto kernel scope link src 10.225.20.196 192.168.0.0/24 dev wlan0 proto kernel scope link src 192.168.0.1 metric 9
net.ipv4.ip_forward = 1
Даже после команды :
$ sudo iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d 10.0.0.0/24 -o ppp0 -j MASQUERADE
в iptables пусто
$ sudo iptables -L -v -n --line Chain INPUT (policy ACCEPT 11498 packets, 8572K bytes) num pkts bytes target prot opt in out source destination
Chain FORWARD (policy ACCEPT 2 packets, 112 bytes) num pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 11183 packets, 2394K bytes) num pkts bytes target prot opt in out source destination
$ sudo iptables-save # Generated by iptables-save v1.4.21 on Fri Aug 12 21:04:53 2016 *nat :PREROUTING ACCEPT [437:43281] :INPUT ACCEPT [389:28232] :OUTPUT ACCEPT [1207:218579] :POSTROUTING ACCEPT [66:9831] -A POSTROUTING -o ppp0 -j MASQUERADE COMMIT # Completed on Fri Aug 12 21:04:53 2016 # Generated by iptables-save v1.4.21 on Fri Aug 12 21:04:53 2016 *filter :INPUT ACCEPT [29340:31886316] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [21601:3071749] -A FORWARD -s 192.168.0.0/24 -i wlan0 -o ppp0 -j ACCEPT -A FORWARD -d 192.168.0.0/24 -i ppp0 -o wlan0 -j ACCEPT COMMIT # Completed on Fri Aug 12 21:04:53 2016
$ nslookup ya.ru Server: 127.0.1.1 Address: 127.0.1.1#53
Non-authoritative answer: Name: ya.ru Address: 93.158.134.3 Name: ya.ru Address: 213.180.193.3 Name: ya.ru Address: 213.180.204.3
Сделал :
iptables -F iptables -X iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE iptables -A FORWARD -i wlan0 -o ppp0 -s 192.168.0.0/24 -j ACCEPT iptables -A FORWARD -i ppp0 -o wlan0 -d 192.168.0.0/24 -j ACCEPT
Получил
$ sudo iptables -t nat -nvL Chain PREROUTING (policy ACCEPT 72 packets, 4357 bytes) pkts bytes target prot opt in out source destination
Chain INPUT (policy ACCEPT 65 packets, 3965 bytes) pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 88 packets, 13008 bytes) pkts bytes target prot opt in out source destination
Chain POSTROUTING (policy ACCEPT 5 packets, 890 bytes) pkts bytes target prot opt in out source destination 90 12510 MASQUERADE all -- * ppp0 0.0.0.0/0 0.0.0.0/0
Но маскарад так и не работает.

В итоге на комп2 есть инет и пингуется комп1. А на комп1 нет инета,хотя и пингуется комп2. Почему нет интернета ?(


Ответ

На обоих компах прописал в файл /etc/resolv.conf
nameserver 8.8.8.8
Спасибо @alexander-barakin
Сделал на компе2(с 3g инетом):
iptables -F iptables -X iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE iptables -A FORWARD -i wlan0 -o ppp0 -s 192.168.0.0/24 -j ACCEPT iptables -A FORWARD -i ppp0 -o wlan0 -d 192.168.0.0/24 -j ACCEPT
Спасибо @nobody
И заработало. Всем спасибо!)