标签: ip-aliasing

使用 IP 别名时,操作系统如何确定哪个 IP 地址将用作出站 TCP/IP 连接的源?

我有一台运行 Ubuntu Server 的服务器,在单个 NIC 上有四个 IP 地址。

eth0       192.168.1.100
eth0:0     192.168.1.101
eth0:1     192.168.1.102
eth0:2     192.168.1.103
Run Code Online (Sandbox Code Playgroud)

(以 192.168.xx 为例,假设这些是 NAT-ed 到一系列公共 IP 地址)

我们的一个客户通过 FTP 发布他们的库存,因此我们每晚登录以从他们的服务器下载一个大文件。他们的防火墙希望我们的(被动)FTP 连接从 192.168.1.100 建立。

鉴于我的服务器在一个适配器上逻辑上有四个 IP 地址,操作系统如何确定哪个 IP 地址用作出站 TCP/IP 连接的源?

假设我在 192.168.1.101 上通过 ssh 进入我的服务器并以交互方式运行 FTP。出站 TCP/IP 连接是否会使用 192.168.1.101,因为操作系统知道这是连接我的 shell 的接口?

如果 FTP 任务通过没有 shell 的 cron 作业以非交互方式运行怎么办?

你可能会说,这让我很困惑,所以我希望我的问题至少是有道理的。

编辑

为了澄清我问的原因——我没有对路由表进行任何更改,它实际上将“eth0”列为 0.0.0.0 路由的 IFace。但是,所有迹象表明它实际上使用 eth0:0 作为源。

Destination    Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.1.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0
0.0.0.0        192.168.1.1 …
Run Code Online (Sandbox Code Playgroud)

linux tcpip ssh ftp ip-aliasing

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

使用“ip”命令在 CentOS/RHEL 6 中重新启动后保留 IP 地址别名

我一直使用 ifcfg-eth0:1 别名文件来创建其他地址。但是,在最近的 rhel 文档中,它指出:

由于 iproute 包的 ip 命令现在支持为同一个接口分配多个地址,因此不再需要使用这种将多个地址绑定到同一个接口的方法。

此外,该站点上的许多答案和评论都提到不推荐使用 ifconfig 并且应该使用“ip”来代替。我可以将它用于实时更改,但是如何在不使用别名文件的情况下在重新启动后保留更改?

linux ip-aliasing centos6 rhel6

13
推荐指数
2
解决办法
9187
查看次数

iptables 不允许 mysql 连接到别名 ips?

我在提供 MySQL 服务的服务器上有一个相当简单的 iptables 防火墙,但 iptables 似乎给了我非常不一致的结果。

脚本的默认策略如下:

iptables -P INPUT DROP
Run Code Online (Sandbox Code Playgroud)

然后我可以使用以下规则公开 MySQL:

iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
Run Code Online (Sandbox Code Playgroud)

有了这条规则,我可以从任何源 IP 连接到服务器上的任何目标 IP,而不会出现问题。但是,当我尝试通过将上面的行替换为以下内容来限制对三个 IP 的访问时,我遇到了麻烦(xxx=masked octect):

iptables -A INPUT -p tcp --dport 3306 -m state --state NEW -s 208.XXX.XXX.184 -j ACCEPT 
iptables -A INPUT -p tcp --dport 3306 -m state --state NEW -s 208.XXX.XXX.196 -j ACCEPT 
iptables -A INPUT -p tcp --dport 3306 -m state --state NEW -s 208.XXX.XXX.251 -j ACCEPT 
Run Code Online (Sandbox Code Playgroud)

一旦上述规则到位,就会发生以下情况:

  • 可以从 .184、.196 …

mysql iptables ip-aliasing

10
推荐指数
1
解决办法
733
查看次数

不同子网中的 FreeBSD IP 别名和默认传出 IP 地址

我有一个 FreeBSD VPS,直到最近它在/29子网中分配了 3 个公共 IP 地址。在进行传出连接时,使用的 IP 地址始终是非别名的“ .20 ”,但是现在我在不同的/29子网中添加了另一个包含 3 个 ip 地址的块,并且传出 IP 更改为“ .44 ”。

以下是添加第二个子网别名之前和之后的rc.conf设置。

前:

ifconfig_em0="inet 70.70.70.20 netmask 255.255.255.248"
ifconfig_em0_alias0="inet 70.70.70.21 netmask 255.255.255.248"
ifconfig_em0_alias1="inet 70.70.70.22 netmask 255.255.255.248"
defaultrouter="70.70.70.17"
Run Code Online (Sandbox Code Playgroud)

现在:

ifconfig_em0="inet 70.70.70.20 netmask 255.255.255.248"
ifconfig_em0_alias0="inet 70.70.70.21 netmask 255.255.255.248"
ifconfig_em0_alias1="inet 70.70.70.22 netmask 255.255.255.248"
ifconfig_em0_alias2="inet 60.60.60.44 netmask 255.255.255.248"
ifconfig_em0_alias3="inet 60.60.60.45 netmask 255.255.255.248"
ifconfig_em0_alias4="inet 60.60.60.46 netmask 255.255.255.248"
defaultrouter="70.70.70.17"
Run Code Online (Sandbox Code Playgroud)

阅读 ifconfig 的手册条目,我不确定别名的正确网络掩码。手册条目说:

alias   Establish an additional network address for this interface.  This
        is …
Run Code Online (Sandbox Code Playgroud)

networking freebsd ip-aliasing

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

为 pfSense 接口添加别名?

注意:也许“背景”和“计划”并不是真正必要的;请立即跳到“问题”...

背景

我们最近将一堆服务器从一个子网迁移到另一个子网。他们曾经拥有 IP 地址 192.168.0.0/24;现在他们有 10.1.2.0/24。

为了避免实际更改服务器上的地址并使切换尽可能简单,我们没有对它们进行任何更改;他们仍然被配置为使用 192.168.0.x 并且对 10.1.2.x 一无所知。

相反,它们前面的路由器(pfSense 2.3.2)进行 1:1 NAT,在两个子网之间进行映射。

这里没有进行 VLAN 或其他特殊组网;只是某台机器的两个常规物理以太网端口,一个用于 LAN,一个用于 WAN(WAN 端是一个简单的以太网上行链路,没有拨号/DSL 或类似的东西)。

一切都很好,一切都很好。我可以使用它们的 10.1.2.x 地址(由路由器 NAT 处理)从外部访问服务器;并且我可以从服务器到达外部 - 它们出现了 10.1.2.x 地址,正如人们所期望的那样。

计划

现在,路由器在 LAN 接口上具有 IP 192.168.0.1,并且该 IP 被配置为服务器的默认网关(通常的简单设置)。

现在我们要摆脱旧的 192.168.0.x 地址和 NAT 转换。为了避免在我们必须进行切换的时间有一个实例,我想这样做,以便我可以一个接一个地移动服务器。

据我了解,这可以通过为路由器的物理接口提供额外的 IP 地址 10.1.2.1(在 Linux 机器上,我会简单地添加一个 IP 别名)来完成,在服务器上添加新的 IP 地址作为 IP 别名(不管是同时还是单独),将服务器切换为使用 10.1.2.1 作为默认网关而不是 192.168.0.1,禁用该服务器 IP 的 1:1 NAT,并完成它。然后,服务器将使用其 10.1.2.x IP 作为“主”IP,并且仍会侦听旧 IP,以防 LAN 内的其他人仍在使用该 IP。然后,我们可以随着时间的推移逐步淘汰旧 IP。

问题

我们如何将 pfSense 配置为在其 LAN 接口上具有 IP 别名?这甚至可能吗?我根本找不到关于 …

ip-aliasing pfsense

4
推荐指数
1
解决办法
8275
查看次数

Centos:多个IP地址

我刚刚从我的主机上购买了 10 个额外的 IP。我如何将这些指向我的 CentOS 5 服务器?

ip centos ip-aliasing

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

这个别名是如何工作的

我正在尝试在我的 ubuntu 12.04 来宾上执行 ip 别名,但它不起作用。

host
11.x.11.2

guest 
11.x.11.3
Run Code Online (Sandbox Code Playgroud)

来宾正在与主机使用桥接网络。

在指定的客人

auto eth0
iface eth0 inet static
    address 11.x.11.2
    netmask 255.255.255.0
    network 11.x.11.0
    broadcast 11.x.11.255
    gateway 11.x.11.1

auto eth0:0
iface eth0:0 inet static
    address 11.x.11.3
    netmask 255.255.255.0
    network 11.x.11.0
    broadcast 11.x.11.255
    gateway 11.x.11.1
Run Code Online (Sandbox Code Playgroud)

网络重新启动后,它显示 无法启动 eth0:0。.即使重新启动也没有用。

但是当更改配置顺序和网络重启解决了这个问题

auto eth0
iface eth0 inet static
address 11.x.11.3
netmask 255.255.255.0
network 11.x.11.0
broadcast 11.x.11.255
gateway 11.x.11.1

auto eth0:0
iface eth0:0 inet static
address 11.x.11.2
netmask 255.255.255.0
network 11.x.11.0
broadcast 11.x.11.255
gateway …
Run Code Online (Sandbox Code Playgroud)

networking ip ip-aliasing

0
推荐指数
1
解决办法
473
查看次数

更改主IP时IP别名丢失

我的/etc/network/interfaces:

auto eth0
iface eth0 inet static
    address 192.168.3.75
    netmask 255.255.255.0
    gateway 192.168.3.0
Run Code Online (Sandbox Code Playgroud)

情况一:

linux启动后,我设置了一个IP别名: ifconfig eth0:0 192.168.3.111

现在ifconfig报告两个 IP 地址192.168.3.75ateth0192.168.3.111ateth0:0

当我改变主IP到另一个网络:ifconfig eth0 192.168.1.111别名eth0:0丢失

情况二:

linux启动后,我设置了一个IP别名: ifconfig eth0:0 192.168.4.111

现在ifconfig报告两个 IP 地址192.168.3.75ateth0192.168.4.111ateth0:0

当我将主 IP 更改为另一个网络时:ifconfig eth0 192.168.1.111别名eth0:0 保持不变

如何正确更改主 IP,以免丢失所有别名?

networking linux ip-aliasing

0
推荐指数
1
解决办法
987
查看次数

标签 统计

ip-aliasing ×8

linux ×3

networking ×3

ip ×2

centos ×1

centos6 ×1

freebsd ×1

ftp ×1

iptables ×1

mysql ×1

pfsense ×1

rhel6 ×1

ssh ×1

tcpip ×1