AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / user-50289

Andrew Falanga's questions

Martin Hope
Andrew Falanga
Asked: 2019-11-05 13:55:16 +0800 CST

Adicionando qdisc sob o qdisc de nível superior mq

  • 5

Este artigo do LWN sugere que se pode adicionar/substituir o agendador de rede por uma fila "sob" o "agendador fictício " do mq . Estes dois apontam para esse fim:

The mq scheduler does two things:

- present device TX queues as classes, allowing to attach
  different qdiscs to them, which are grafted to the TX queues

- present accumulated statistics of all device queue root qdiscs

Eu apreciaria ser educado sobre como fazer isso. Já tentei muitas combinações. Por exemplo, a partir desta listagem do padrão (CentOS 7.6):

# tc qdisc show dev eth2
qdisc mq 0: root 
qdisc pfifo_fast 0: parent :8 bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
qdisc pfifo_fast 0: parent :7 bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
qdisc pfifo_fast 0: parent :6 bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
qdisc pfifo_fast 0: parent :5 bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
qdisc pfifo_fast 0: parent :4 bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
qdisc pfifo_fast 0: parent :3 bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
qdisc pfifo_fast 0: parent :2 bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
qdisc pfifo_fast 0: parent :1 bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1

Eu tentei muitas variações tentando experimentar enxertar diferentes agendadores em mq . Aqui estão algumas tentativas:

# tc qdisc add dev eth2 parent 0:1 fq_codel target 1ms interval 10ms quantum 9014
RTNETLINK answers: No such file or directory
# tc qdisc add dev eth2 parent 0:1 handle 1: fq_codel target 1ms interval 10ms quantum 9014
RTNETLINK answers: No such file or directory

Alguém saberia a mágica de colocar agendadores diferentes em mq além de apenas pfifo_fast ? Um ponto que é altamente frustrante é que a página de manual, e muitos artigos da internet, fazem referência à raiz e aos pais sobre os agendadores e filas. No entanto, nenhum faz um trabalho adequado ao descrever, a partir da saída que tenho acima do tc qdisc show dev eth2comando, qual é a raiz e quais são os pais. Eu estou supondo, mas meus palpites parecem estar longe.

networking
  • 1 respostas
  • 2318 Views
Martin Hope
Andrew Falanga
Asked: 2018-11-13 14:05:23 +0800 CST

Alterando o algoritmo qdisc sysctl e tc

  • 1

Que qdisc é controlado através do tccomando versus sysctl net.core.default_qdisc? Considerar

$ tc qdisc show dev eth2
qdisc mq 0: dev eth2 root 

$ sysctl net.core.default_qdisc
net.core.default_qdisc = pfifo_fast

Neste sistema, o qdisc padrão é definido como pfifo_fast , mas o qdisc em uso é mq (Multi-queue) após uma reinicialização. É bastante óbvio que eles não estão diretamente relacionados, ou pelo menos não de uma maneira que faça sentido "fora da caixa". Este link sobre enfileiramento na pilha de rede do Linux deixa claro que tc qdisc ...se aplica à fila que fica entre a pilha de IP e a fila de drivers.

Alguém pode desambiguar esses dois para mim?

networking kernel
  • 1 respostas
  • 4347 Views
Martin Hope
Andrew Falanga
Asked: 2018-01-18 08:20:24 +0800 CST

dhcpd não está correspondendo a este endereço MAC

  • 2

Na minha pequena rede, tenho um dispositivo simples que aparentemente está usando apenas bootp(ao contrário das extensões dhcp para bootp) para obter seu endereço. Meu arquivo dhcpd.conf é mais ou menos assim

class "user" {
    match if substring(hardware, 1, 3) = 00:01:02;
    log(info, "matched to a 3com";
}

class "controller" {
    # tried matching based on two different styles I've seen on the net
    #match if substring(hardware, 1, 3) = 00:a0:45;
    match if (binary-to-ascii(16, 8, ":", substring(hardware, 0, 4)) = "1:00:a0:45");
    log(info, "found a controller");
}

subnet 192.168.0.0 netmask 255.255.0.0 {
    pool {
        allow members of "user";
        range 192.168.0.20 192.168.0.99;
        log(info, "A user just attached");
    }            

    pool {
        allow members of "controller";
        # never more than 1 on the network at a time
        range 192.168.1.240;
        log(info, "Allocated to a pwr user");
    }
}

O servidor dhcp simplesmente não corresponderá ao pool que deveria. Do registro

BOOTREQUEST from 00:a0:45:95:ce:14 via eth1: BOOTP from dynamic client and no dynamic leases

O dispositivo é NEGADO para ambas as classes. Usando tcpdump e wireshark para comparar despejos de pacotes de um laptop e do dispositivo controlador (criei temporariamente uma classe para um laptop HP, adicionei essa classe ao pool usado para "controlador" e estendi o intervalo em 2 endereços), parece o único A diferença é que o dispositivo controlador é literalmente um pacote bootp (ou seja, não possui a opção obrigatória 53 que identifica o tipo dhcp) e carrega apenas a opção 255. O laptop foi emparelhado dhcpdsem usar a binary-to-asciiconversão. Além disso, e curiosamente, o cabeçalho IP do cliente controlador usa o endereço IP alocado primeiro, 192.168.1.240, mas na seção bootp do pacote, o ciaddrcampo é 0. Se ele acredita que tem uma concessão válida, não deveria refletir isso em ciaddr?

Por que o dhcpd não corresponde ao endereço MAC deste dispositivo?

centos dhcp
  • 2 respostas
  • 2719 Views
Martin Hope
Andrew Falanga
Asked: 2018-01-12 10:10:11 +0800 CST

Por que o dhcpd não escuta na interface virtual

  • 0

Acho que pode estar faltando algo simples, mas estou a ponto de precisar de alguns olhos extras no problema. Eu preciso que 2 redes separadas estejam na mesma NIC ( eth1 ): 192.168.0.0/24 e 192.168.1.0/24 . As interfaces são:

eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
    inet 192.168.1.250  netmask 255.255.255.0  broadcast 192.168.1.255
    ether 0c:c4:7a:7d:bb:f8  txqueuelen 1000  (Ethernet)
    RX packets 24515  bytes 5405247 (5.1 MiB)
    RX errors 0  dropped 0  overruns 0  frame 0
    TX packets 31116  bytes 3036051 (2.8 MiB)
    TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    device interrupt 16  memory 0xdf200000-df220000  

eth1:1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
    inet 192.168.0.250  netmask 255.255.255.0  broadcast 192.168.0.255
    ether 0c:c4:7a:7d:bb:f8  txqueuelen 1000  (Ethernet)
    device interrupt 16  memory 0xdf200000-df220000  

em /etc/sysconfig/dhcpdeu tenho

DHCPD_INTERFACE="eth1 eth1:1"
DHCPDARGS="eth1 eth1:1"

em /etc/dhcpd.confeu tenho

subnet 192.168.0.0 netmask 255.255.255.0 {
    pool {
       ....
    }
}
subnet 192.168.1.0 netmask 255.255.255.0 {
    pool {
        ....
    }
}

No entanto, quando inicio o dhcpd, vejo isso

$ sudo journalctl -xeu dhcpd.service
  ....
dhcpd[5113]: No subnet declaration for eth1:1 (no IPv4 addresses).
dhcpd[5113]: ** Ignoring requests on eth1:1.  If this is not what
dhcpd[5113]:    you want, please write a subnet declaration
dhcpd[5113]:    in your dhcpd.conf file for the network segment
dhcpd[5113]:    to which interface eth1:1 is attached. **
  ....

Por quê?

centos dhcp
  • 1 respostas
  • 1836 Views
Martin Hope
Andrew Falanga
Asked: 2017-11-29 13:40:12 +0800 CST

Por que meu switch não está obtendo um endereço do pool especificado

  • 2

Estou trabalhando para configurar um switch da Juniper Networks por meio do Zero Touch Provisioning . No CentOS 7, o diário/log/(systemd, seja lá o que for) contém isto:

Nov 28 10:08:46 server dhcpd[8800]: Checking if packet is permitted.
Nov 28 10:08:46 server dhcpd[8800]:     Permit list: unknown clients
Nov 28 10:08:46 server dhcpd[8800]:    OK
Nov 28 10:08:46 server dhcpd[8800]: Checking if packet is permitted.
Nov 28 10:08:46 server dhcpd[8800]:     Permit list: unknown clients
Nov 28 10:08:46 server dhcpd[8800]:    OK
Nov 28 10:08:46 server dhcpd[8800]: matched a Juniper Networks QFX-5100
Nov 28 10:08:46 server dhcpd[8800]: DHCPDISCOVER from 08:b2:58:ab:dc:00 via eth2
Nov 28 10:08:47 server dhcpd[8800]: DHCPOFFER on 192.168.0.100 to 08:b2:58:ab:dc:00 (TR0217010017) via eth2
Nov 28 10:08:47 server dhcpd[8800]: Checking if packet is permitted.
Nov 28 10:08:47 server dhcpd[8800]:     Permit list: unknown clients
Nov 28 10:08:47 server dhcpd[8800]:    OK
Nov 28 10:08:47 server dhcpd[8800]: Checking if packet is permitted.
Nov 28 10:08:47 server dhcpd[8800]:     Permit list: unknown clients
Nov 28 10:08:47 server dhcpd[8800]:    OK
Nov 28 10:08:47 server dhcpd[8800]: matched a Juniper Networks QFX-5100
Nov 28 10:08:47 server dhcpd[8800]: DHCPREQUEST for 192.168.0.100 (192.168.0.250) from 08:b2:58:ab:dc:00 (TR0217010017) via eth2
Nov 28 10:08:47 server dhcpd[8800]: DHCPACK on 192.168.0.100 to 08:b2:58:ab:dc:00 (TR0217010017) via eth2

O servidor é provisionado do pool "desconhecido". Aqui estão as partes relevantes da configuração:

# Global options
max-lease-time 1800;
default-lease-time 1800;
dynamic-bootp-lease-length 120;
ddns-update-style none;

# TFTP Server IP and file
next-server 192.168.0.250; # Assumed to be the DHCP server
filename "pxelinux.0";


# Define the pxe grub filename option
option zone-pxegrub-filename code 150 = text;
option zone-pxegrub-filename "/opt/tftp_files/boot/pxelinux.0";

# Options for Juniper switch to download FW and configuration from this server
# as described here: https://www.juniper.net/documentation/en_US/junos/topics/task/configuration/software-image-and-configuration-automatic-provisioning-confguring.html
option space NEW_OP;
option NEW_OP.config-file-name code 1 = text;
option NEW_OP.image-file-name code 0 = text;
option NEW_OP.image-file-type code 2 = text;
option NEW_OP.transfer-mode code 3 = text;
option NEW_OP.alt-image-file-name code 4 = text;
option NEW_OP-encapsulation code 43 = encapsulate NEW_OP;
option option-150 code 150 = ip-address;

# bringing in the vendor specific options
vendor-option-space NEW_OP;
option NEW_OP.image-file-name "/juniper/fw/jinstall-host-qfx-5-17.2R1.13-signed.tgz";
option NEW_OP.config-file-name "/juniper/cfg/qfx-5100.cfg";
option NEW_OP.alt-image-file-name "/juniper/fw/jinstall-host-qfx-5-17.2R1.13-signed.tgz";
option NEW_OP.image-file-type "filename";
option NEW_OP.transfer-mode "tftp";

option option-150 192.168.0.250;


class "workers" {
   match if substring(hardware, 1, 3) = 00:20:0c or substring(hardware, 1, 3) = 00:18:7D;
   log(info, "matched a worker bee");
}

class "monitor" {
   match if substring(hardware, 1, 3) = 00:d0:24;
   log(info, "matched to a monitor");
}

class "JuniperSwitch" {
   match if option vendor-class-identifier ~~ "^juniper-qfx5100.+$";
   log(info, "matched a Juniper Networks QFX-5100");
}

subnet 192.168.0.0 netmask 255.255.255.0 {
   #authoritative;
   option routers 192.168.0.250;
   pool {
      allow members of "workers";
      range 192.168.0.1 192.168.0.99;
      log(info, concat("Issuing DHCP address to worker bootp requestor: ", binary-to-ascii(16, 8, ":", substring(hardware, 1, 6))));
   }
   pool {
      allow members of "monitor";
      range 192.168.0.245;
      log(info, concat("Issuing DHCP address to monitor bootp requestor: ", binary-to-ascii(16, 8, ":", substring(hardware, 1, 6))));
   }
   pool {
      allow members of "JuniperSwitch";
      allow dynamic bootp clients;
      range 192.168.0.201;
   }
   pool {
      allow unknown-clients;
      range 192.168.0.100 192.168.0.150;
   }
}

Por favor, me ajude a entender porque isso não está dando um endereço onde eu espero.

centos dhcp
  • 1 respostas
  • 109 Views

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Possível firmware ausente /lib/firmware/i915/* para o módulo i915

    • 3 respostas
  • Marko Smith

    Falha ao buscar o repositório de backports jessie

    • 4 respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    user12345 Falha ao buscar o repositório de backports jessie 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl Por que a maioria dos exemplos do systemd contém WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve