标签: linux-networking

在 RHEL5/CentOS/Amazon Linux 上覆盖 DHCP 主机名

我在 EC2 上运行 Amazon Linux(基于 RHEL5)。

我有自己的域名指向实例的弹性 IP。Amazon 通过 DHCP 自动为实例分配一个通用(并且在 Internet 上不可见)主机名。

这个仅供内部使用的主机名会中断发送电子邮件,因为 SMTP 服务器想要查看真实(和公共)主机名。我可以通过手动运行“主机名”命令来设置真正的公共主机名来修复电子邮件。

我在 /etc/sysconfig/network 中设置了 HOSTNAME,但 DHCP 主机名似乎覆盖了它。

有没有一种好的/正确的方法来设置我的主机名并且总是忽略 DHCP 对它的看法,而仍然使用 DHCP 否则?

我可以想到很多麻烦的事情要做(运行一个脚本来撤销 DHCP 所做的事情,或者其他什么),但想知道是否有一个实际的配置设置来强制主机名。

dhcp centos rhel5 linux-networking amazon-ec2

7
推荐指数
3
解决办法
1万
查看次数

在 linux 上查询套接字的 TCP 缓冲区大小

有没有办法查找 TCP 套接字的发送/接收缓冲区大小?

我已经研究过 netstat 和 ss,以及原始的 /proc/net/tcp。那里有很多好东西,包括传输中的字节数、计时器、进程名称等。

但我希望能够诊断某些进程是否正在设置 SO_{SND,RCV}BUF ......更有趣的是,内核实际上为每个 SKB 使用了什么值。

tcp linux-networking

7
推荐指数
1
解决办法
3万
查看次数

Linux e1000e(Intel 网络驱动程序)问题与恢复和 pcie=off

这个问题的延续这一个

我的以太网芯片组和 e1000e 驱动程序有很多问题:

02:00.0 Ethernet controller: Intel Corporation 82573L Gigabit Ethernet Controller
Run Code Online (Sandbox Code Playgroud)

显然,如果没有pcie=off它根本不起作用,即使有这个选项,它在我从暂停状态恢复后也不起作用。有没有人对此有任何建议?它是一个上游错误吗?这是当我尝试从 dmesg 恢复和使用我的以太网卡时发生的情况。

如果您想查看众多诊断工具的结果,请务必查看我之前的问题,其中包含大量有关我的配置的信息

[20837.993481] e1000e 0000:02:00.0: eth0: Detected Hardware Unit Hang:
[20837.993485]   TDH                  <55>
[20837.993488]   TDT                  <7b>
[20837.993490]   next_to_use          <7b>
[20837.993492]   next_to_clean        <54>
[20837.993494] buffer_info[next_to_clean]:
[20837.993496]   time_stamp           <4e4097>
[20837.993498]   next_to_watch        <55>
[20837.993501]   jiffies              <4e58a2>
[20837.993503]   next_to_watch.status <0>
[20837.993505] MAC Status             <80080703>
[20837.993507] PHY Status             <796d>
[20837.993510] PHY 1000BASE-T Status  <4000>
[20837.993512] PHY Extended Status    <3000>
[20837.993514] PCI …
Run Code Online (Sandbox Code Playgroud)

linux-networking ubuntu-10.10

7
推荐指数
1
解决办法
2622
查看次数

为什么 ip route add 不起作用,但 ip route add 的细节较少,然后更改有效?

我有 ip route add 的问题。令人惊讶的是,我可以添加路由然后更改它,但我不能直接添加它:

# ip route add 192.168.0.0/16 via 192.168.255.254 src 192.168.1.101
RTNETLINK answers: No such process
Run Code Online (Sandbox Code Playgroud)

但:

# ip route add 192.168.0.0/16 dev eth0
# ip route change 192.168.0.0/16 via 192.168.255.254 src 192.168.1.101
Run Code Online (Sandbox Code Playgroud)

我的接口文件是:

iface lo inet loopback
auto eth0
iface eth0 inet static
    address 178.xxx.xxx.xxx
    netmask 255.255.255.192
    network 178.xxx.xxx.xxx
    broadcast 178.xxx.xxx.xxx
    gateway 178.xxx.xxx.xxx
auto eth0:1
iface eth0:1 inet static
    address 192.168.1.101
    netmask 255.255.0.0
Run Code Online (Sandbox Code Playgroud)

我有点失落,我必须说。我可以添加然后更改,但不明白为什么它分两步工作而不是直接工作并不令人满意。我一直在阅读手册页而不理解。

在答案的帮助下更新:

我现在在eth0和上有一个网关eth0:0,但是由于我希望除 之外的所有流量都192.168.0.0/16标记为来自我的178.xxx.xxx.xxx地址,因此我添加了一个路由规则。也许eth0 …

ip route linux-networking

7
推荐指数
1
解决办法
6万
查看次数

PREFIX 与 NETMASK

我确实在 Centos 6 中设置了一个虚拟网络接口,将 ifcfg-eth0 复制到 ifcfg-eth0:1 并更改了适当的变量。但是连接不稳定。尽管预先存在的变量之一是PREFIX=24我必须添加NETMASK=255.255.255.0到虚拟接口脚本中才能使连接稳定。这些变量不应该有同样的效果吗?

编辑:

这是 ifcfg-eth0:1 不稳定:

DEVICE="eth0:1"
NM_CONTROLLED="yes"
ONBOOT=yes
HWADDR=00:26:18:24:4D:xx
TYPE=Ethernet
BOOTPROTO=none
IPADDR=69.64.93.x
PREFIX=24
GATEWAY=64.150.183.1
DNS1=69.64.66.11
DNS2=69.64.66.10
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth0:1"
Run Code Online (Sandbox Code Playgroud)

在稳定版中,我刚刚添加了这一行:

NETMASK=255.255.255.0
Run Code Online (Sandbox Code Playgroud)

ifconfig 输出先不稳定后稳定:

eth0:1    Link encap:Ethernet  HWaddr 00:26:18:24:4D:xx  
          inet addr:69.64.93.x  Bcast:69.255.255.255  Mask:255.0.0.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Interrupt:28 Base address:0x6000 

eth0:1    Link encap:Ethernet  HWaddr 00:26:18:24:4D:xx  
          inet addr:69.64.93.x  Bcast:69.64.93.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Interrupt:28 Base address:0x6000 
Run Code Online (Sandbox Code Playgroud)

networking linux-networking

7
推荐指数
1
解决办法
3万
查看次数

RTNETLINK 回答:执行“服务网络重启”时文件存在

执行任一命令:

sudo service network restart
sudo ifup bond0
Run Code Online (Sandbox Code Playgroud)

导致以下错误(这是唯一的错误):

Bringing up interface eth0:  RTNETLINK answers: File exists
Run Code Online (Sandbox Code Playgroud)

以下是相关接口的配置:

DEVICE="bond0"
IPADDR="10.100.48.6"
NETMASK="255.255.254.0"
ONBOOT="yes"

DEVICE="eth0"
MASTER="bond0"
SALVE="yes"
HWADDR="78:2B:CB:57:B5:B3"
NM_CONTROLLED="no"
ONBOOT="yes"

DEVICE="eth4"
MASTER="bond0"
SLAVE="yes"
HWADDR="00:1B:21:C9:F4:54"
NM_CONTROLLED="no"
ONBOOT="yes"
Run Code Online (Sandbox Code Playgroud)

当绑定驱动程序试图奴役它时,dmesg 输出表明 eth0 尚未准备好:

dmesg | egrep '(eth0)|(bond0)'
bnx2 0000:01:00.0: eth0: Broadcom NetXtreme II BCM5709 1000Base-T (C0) PCI Express found
at mem d4000000, IRQ 36, node addr 78:2b:cb:57:b5:b3
ADDRCONF(NETDEV_UP): bond0: link is not ready
bnx2 0000:01:00.0: eth0: using MSIX
ADDRCONF(NETDEV_UP): eth0: link is not ready
bonding: …
Run Code Online (Sandbox Code Playgroud)

networking linux linux-networking

7
推荐指数
1
解决办法
2万
查看次数

Linux 上的检查点 VPN

我需要与为我提供以下设置的客户一起设置 Checkpoint VPN 客户端:

  • 认证类型:P12证书
  • 密码: *****
  • 对等站点:IP_ADDRESS

他们告诉我 VPN 服务器是:

  • IPSO 6.2
  • 检查点 R70.40

我没有更多了。我可以毫无问题地连接 Checkpoint 的 Windows 客户端。

我有哪些选择?

我在这个网站和其他网站上阅读了其他相关问题,但没有明确的答案。

linux vpn checkpoint linux-networking

7
推荐指数
1
解决办法
2万
查看次数

只能调出两个界面之一

我的 HP Proliant DL 360 G4p 服务器出现了一个奇怪的问题。它有两个千兆以太网接口,但我只能调出其中一个。这让我开始害怕,这就是我转向这里的原因。我正在运行 x64 ubuntu 11.10 服务器版本。

lshw -c network 显示第二个接口被禁用。我不知道为什么要启用它。

$ sudo lshw -c network
  *-network:0
       description: Ethernet interface
       product: NetXtreme BCM5704 Gigabit Ethernet
       vendor: Broadcom Corporation
       physical id: 2
       bus info: pci@0000:02:02.0
       logical name: eth0
       version: 10
       serial: 00:18:71:e3:6d:26
       size: 100Mbit/s
       capacity: 1Gbit/s
       width: 64 bits
       clock: 66MHz
       capabilities: pcix pm vpd msi bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt 1000bt-fd autonegotiation
       configuration: autonegotiation=on broadcast=yes driver=tg3 driverversion=3.119 duplex=full firmware=5704-v3.27b, ASFIPMIc v2.36 …
Run Code Online (Sandbox Code Playgroud)

ubuntu linux-networking interface

7
推荐指数
1
解决办法
3万
查看次数

是否可以使用与供应商无关的 API 每秒处理数百万个数据报?

我正在研究是否可以在 Windows 中实现一个 HPC 应用程序,该应用程序使用十几个或最多 200 个多播组(即使用 MSI-X 和 RSS,我可以)以高速率接收小型 UDP 多播数据报(主要是 100-400 字节)扩展到多个内核),对每个数据包进行一些处理,然后将其发送出去。通过 TCP 发送我设法达到了我需要的程度(6.4Gb/秒)而没有撞墙,但是以高 pps 速率接收数据报却成了一个问题。

最近对 Windows 2012 R2 上带有 2 端口 10Gb 以太网 NIC 的高规格 NUMA 机器进行的测试中,我每秒只能接收数十万个 UDP 数据报(早期丢弃,即没有实际处理数据,使用 2x12 内核从等式中删除我的应用程序的处理开销以查看它的速度有多快,并且测试的 12 个多播组的内核部分似乎分布在一个 NUMA 节点的 8 或 10 个内核上(设置了最大 RSS 队列)到 16) - 尽管使用 .net 应用程序,因此本机应用程序应该能够运行得更快。

但即使是Len Holgate他的高性能 Windows RIO 测试中只能以 500kpps 的速度接收 UDP 数据包,使用 1024 …

networking performance linux-networking windows-server-2012-r2

7
推荐指数
1
解决办法
849
查看次数

测量覆盖网络性能的正确方法

我目前正在检查不同 Docker 覆盖网络的性能(尤其是 UDP 吞吐量)。为此,我在与 Docker 覆盖网络连接的两台主机之间创建点对点连接,然后iperf在 Docker 容器内运行以检查吞吐量。我注意到每次我iperf作为客户端运行向iperf作为服务器运行的另一个容器发送数据时,客户端主机的CPU使用率达到100%。我通过运行在此处找到的以下命令获得了该结果:

top -bn1 | grep "Cpu(s)" | \
       sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | \
       awk '{print 100 - $1"%"}'
Run Code Online (Sandbox Code Playgroud)

因此,对我而言,吞吐量测试的限制因素似乎是主机的 CPU 容量,因为它以 100% 的速度运行并且无法产生更多流量来使网络连接饱和。我想知道这是否是一个iperf特定问题,所以我想使用不同的工具运行相同的测试,但不确定哪种替代方案最好。主机正在运行 Ubuntu。例如,我发现qperf,uperfnetpipe

此外,更一般地说,我开始想知道吞吐量性能的瓶颈通常是什么。它不总是与CPU容量或链路带宽有关吗?哪些因素与覆盖网络没有直接关系。

这是否意味着应用程序(或覆盖网络)的吞吐量仅取决于它需要多少 CPU 周期来传输一定数量的数据以及它如何压缩它以适应它通过网络(如果这将是瓶颈)。

iperf linux-networking cpu-usage stress-testing docker

7
推荐指数
1
解决办法
655
查看次数