标签: linux-networking

如果一条路径出现故障,让 linux 更改默认路由?

我正在配置网关/路由器 linux 框。它正在执行伪装/NA​​T。主要的 Internet 接口是 3G 调制解调器,但如果出现故障,我希望它自动尝试不同的接口。我该怎么做呢?路由规则能否自动满足这一点,或者我应该让它定期检查 3G 连接是否正常,如果没有,请尝试另一个?

干杯,

胜利者

routing linux-networking

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

将公共 IP 隧道传输到远程机器

我有一个Linux服务器有5个公共IP地址块,8.8.8.122/29。当前,8.8.8.122分配给eth0,并8.8.8.123分配给eth0:1

我在远程位置有另一台 Linux 机器B,位于 NAT 后面。我想在两者之间建立一个隧道,以便B可以使用 IP 地址8.8.8.123作为其主要 IP 地址。

OpenVPN 可能是答案,但我无法弄清楚如何设置(topology subnet或者topology p2p可能是合适的。或者我应该使用以太网桥接?)。安全和加密在这一点上不是一个大问题,所以 GRE 也可以——机器B将来自一个已知的 IP 地址,并且可以基于它进行身份验证。

我怎样才能做到这一点?任何人都可以建议在这种情况下可以使用的 OpenVPN 配置或其他方法吗?理想情况下,它还能够处理多个客户端(例如,与其他机器共享所有四个备用 IP),而不会让这些客户端使用他们无权使用的 IP。

vpn openvpn static-ip linux-networking tunnel

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

IPv6 仅在 ping 默认网关后工作。

我们现在有 2013 年,我认为在我的服务器上激活 IPv6 早就应该了。但不幸的是,我遇到了一些问题。老实说,我对 IPv6 的经验很少,所以我希望你能帮助我解决我的“小”问题。

一个小说明:以下地址被混淆了,这不是我在配置中使用的地址;)

我正在运行 Debian 压缩(Debian 2.6.32-46)并且我从我的提供商那里得到了一个 /64 IPv6 块:2a01:4f8:a0:aaaa::/64

所以我改变了/etc/network/interfaces文件如下(这也是我的供应商推荐的方式):

# Loopback device:
auto lo
iface lo inet loopback

# device: eth0
auto  eth0
iface eth0 inet static
  address   85.10.xxx.zz
  broadcast 85.10.xxx.yy
  netmask   255.255.255.224
  gateway   85.10.xxx.1


iface eth0 inet6 static
  # Main IPv6 Address of the server
  address 2a01:4f8:a0:aaaa::2
  netmask 64
  gateway fe80::1


auto eth0:1
iface eth0:1 inet static
        address 85.10.xxxx.uu
        netmask 255.255.255.224

# default route to access subnet
up route …
Run Code Online (Sandbox Code Playgroud)

networking linux ipv6 linux-networking debian-squeeze

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

在没有 HttpStubStatusModule 的情况下检查 nginx 活动连接

我们想在没有HttpStubStatusModule安装模块的情况下检查活动连接的数量。

什么是等效的 Linux 命令?

作为基线,我们在HttpStubStatusModule首先安装的机器上进行测试,例如

Active connections: 6146 <-- from HttpStubStatusModule

# netstat -an | grep :80 | wc -l
1266

# netstat -an | grep :443 | wc -l
25082
Run Code Online (Sandbox Code Playgroud)

在我看来,上述 netstat 都没有给我正确的数字。

任何的想法?

networking nginx netstat linux-networking

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

如何阻止来自 Amazon AWS IP 的传入流量?

我想阻止来自 Amazon AWS IP 的所有传入流量。

他们在此处以 json 格式发布了他们的 IP 地址列表:http : //docs.aws.amazon.com/general/latest/gr/aws-ip-ranges.html

我有一台运行 Ubuntu 14.04 LTS 的专用服务器。

有没有办法用 iptables 做到这一点?能否以某种方式对规则进行分组,以便在不影响不相关规则的情况下定期更换它们?或者也许有其他更好的方法来解决这个问题?

谢谢!

ubuntu linux-networking amazon-web-services

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

如何对 rx_missed_errors 进行故障排除?

从旧服务器迁移到新服务器,在设置所有服务后,我注意到我的 NIC 中有大量丢弃的 rx 数据包:

$ ifconfig eth2 | grep 'RX.*drop'
          RX packets:2059646370 errors:0 dropped:7142467 overruns:0 frame:0
Run Code Online (Sandbox Code Playgroud)

/sys/class/net/eth2/statistics/rx_dropped什么都不显示:

$ cat /sys/class/net/eth2/statistics/rx_dropped
0
Run Code Online (Sandbox Code Playgroud)

然后,我看到rx_missed_errors

$ cat /sys/class/net/eth2/statistics/rx_missed_errors
7142467
Run Code Online (Sandbox Code Playgroud)

如何排除故障并找出原因rx_missed_errors


我正在运行 Ubuntu 12.04.5 LTS,具有:

$ ethtool -i eth2
driver: ixgbe
version: 3.15.1-k
firmware-version: 0x800003e1
bus-info: 0000:07:00.0
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes
Run Code Online (Sandbox Code Playgroud)

linux linux-networking

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

添加辅助网络接口时,CentOS virtualbox 没有 icfg-eth1

我有一个在虚拟框中创建的 CentOS 6.7 最小发行版。作为事后的想法,我在 virtualbox 中添加了一个辅助网络接口,所以我有一个 NAT 接口和一个仅主机本地网络。当我登录到我的虚拟机并运行时:

ip link show 
Run Code Online (Sandbox Code Playgroud)

将 eth0 显示为 UP,将 eth1 显示为 DOWN。当我尝试:

ifup eth1
Run Code Online (Sandbox Code Playgroud)

我没有找到 eth1 的配置。当我查看 /etc/sysconfig/network-scripts 时,我看到一个 icfg-eth0 文件,但没有 icfg-eth1 文件。

我有几个问题:

  1. 当我在virtualbox中添加仅主机本地连接时是否应该生成icfg-eth1?
  2. 如果我必须自己创建 icfg-eth* 文件,我应该使用哪个工具来生成它?我应该安装哪个包来获取它?
  3. 我应该手动编辑 /etc/sysconfig/network-scripts 的内容吗?

linux virtualbox centos linux-networking

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

如何在内核级别诊断 Linux LACP 问题?

Linux 绑定驱动程序是否有一个底层的管理或诊断接口来确定内部发生了什么?

多年来,我一直在 Linux 机器和 Cisco 交换机之间使用链路聚合。在设置 Linux 端根本不响应 Cisco LACP 数据包的新机器时,我会定期遇到死胡同。我对每台服务器都严格遵循一套严格的说明,但结果似乎各不相同。

无论绑定包含一个从属设备还是八个从属设备,tcpdump 都会显示来自所有绑定接口上的交换机的 LACP 数据包,并且没有数据包被传回。事实上,没有数据包是传输周期。 rx_packets为接口显示可观的流量,但tx_packets为零。日志中没有关于 MII 或绑定的有趣内容。甚至没有任何错误。

目前,我正在处理一个只有两个网卡的盒子。目前,我的债券中只有 eth1。显然,这是一个退化的配置。这种情况不会随着 eth0 和 eth1 在债券中而改变;当网络堆栈完全关闭时,它只会使机器更难工作。如有必要,我可以为两个 nic 重新配置它并通过管理界面 (DRAC),但我无法通过这种方式从框中复制粘贴。

一些预习:

  • 我测试了网卡、端口和电缆。当接口未绑定时,一切都按预期工作。
  • 我已经重新启动并确认模块加载正确。
  • 我已经尝试过使用和不使用 vlan 中继;这应该无关紧要,因为链路聚合发生在堆栈中该点下方。
  • 该交换机具有通向其他 Linux 机器的工作中继通道组。即使 Linux 机器的发行版、内核和硬件不同,配置也或多或少相同。

这是今天下载的 debian 8.6。

Linux box 3.16.0-4-amd64 #1 SMP Debian 3.16.36-1+deb8u2
    (2016-10-19) x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)

一个简写的配置:

iface eth1 inet manual

auto bond0
iface bond0 inet manual
        slaves eth1
        address 10.10.10.10
        netmask 255.255.255.0
        bond_mode 4
        bond_miimon 100
        bond_downdelay 200
        bond_updelay 200 …
Run Code Online (Sandbox Code Playgroud)

linux bonding linux-networking linux-kernel lacp

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

为什么 IPv6 地址会在链路断开时刷新?

分配给网络接口的 IPv4 和 IPv6 地址之间的行为存在差异:当链接断开时,就像“ip link set down dev eth0”一样,IPv4 地址被保留,但 IPv6 地址被刷新。如果链路再次启动,IPv4 地址可以立即用于传递流量,但必须分配 IPv6 地址。

这是一个错误,还是设计使然?如果按照设计,我在哪里可以找到明确记录的内容?

一位同事认为这是一个错误,需要在即将发布的内核中修复。另一个人认为这是设计使然,因为 IPv6 假定动态寻址。我在几个不同的 Linux 发行版和不同的内核版本中发现了相同的行为,所以我几乎可以肯定这是设计使然,但我想找到文档,如来自 RFC 的引用,来解决这个问题。

如果有强制保留手动分配的 IPv6 地址的变通方法,那么了解它也会很有用。

networking linux ipv6 linux-networking

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

了解 DNS 解析器之间的区别

介绍

在尝试调试网络问题本地我们的内联网,很明显,curl host nslookupdig不同的表现。凡dighost返回有问题的URL,IP地址curlnslookup回报:

 curl: (6) Could not resolve host: internal.site.company.com
Run Code Online (Sandbox Code Playgroud)

 nslookup: can't resolve 'internal.site.company.com`
Run Code Online (Sandbox Code Playgroud)

语境

虽然这不应该的事情,在多予方面的问题的本质,这个问题上和后面发生的docker-machine(使用泊坞窗机上都进行测试virtualbox,并parallels要准确)。在docker-machine和容器它的主机都在他们所需的内部DNS服务器的正确IP地址/etc/resolv.conf。无法解析名称的机器也可以访问所需 URL 的 IP 地址。如上所述,地址是内部站点,我们的 DNS 服务器也是内部站点。该站点可从docker-machine安装的计算机访问和解析。

问题

这让我想到了这些问题......

1) 在幕后,有什么dighost做的与两者cURL和和不同nslookup

2)什么可能阻止浏览器或curl以两种方式解析 URLhostdig成功解析名称?

设置

dig -vDiG 9.11.1

host -vhost 9.11.1

curl …

domain-name-system linux-networking curl dig docker-machine

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