AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题

问题[ip-aliasing](server)

Martin Hope
ZZR3556
Asked: 2021-04-10 08:11:41 +0800 CST

在 CentOS-8 上尝试添加别名 IP 地址,破坏了 DNS

  • 0

我正在努力在托管云环境中建立 CentOS-8 机器,作为将我公司的运营从本地机器迁移出来的一部分。我需要向此脚本定义的接口添加 2 个别名 IP 地址。

[root@XXXXXXXX network-scripts]# cat ifcfg-ens192
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens192
UUID=e10ccada-6834-4f7f-b415-78e2d0b61e76
DEVICE=ens192
ONBOOT=yes
IPADDR=10.1.0.25
PREFIX=24
GATEWAY=10.1.0.1
DNS1=66.129.64.228
IPV6_PRIVACY=no
DNS2=66.129.96.228
[root@XXXXXXXX network-scripts]#

编辑后,我有这个。

[root@XXXXXXXX network-scripts]# cat ifcfg-ens192
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens192
UUID=e10ccada-6834-4f7f-b415-78e2d0b61e76
DEVICE=ens192
ONBOOT=yes
IPADDR0=10.1.0.25
IPADDR1=10.1.0.20
IPADDR2=10.1.0.76
PREFIX=24
GATEWAY=10.1.0.1
DNS1=66.129.64.228
IPV6_PRIVACY=no
DNS2=66.129.96.228
[root@XXXXXXXX network-scripts]#

重新启动机器后,我发现 DNS 无法正常工作。

[root@XXXXXXXX network-scripts]# ping google.com
ping: google.com: Name or service not known
[root@XXXXXXXX network-scripts]# ping 66.129.64.228
connect: Network is unreachable
[root@XXXXXXXX network-scripts]# ping 66.129.96.228
connect: Network is unreachable
[root@XXXXXXXX network-scripts]#

和 ip addr 显示以下内容。

[root@XXXXXXXX network-scripts]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:50:56:af:4f:5c brd ff:ff:ff:ff:ff:ff
    inet 10.1.0.25/8 brd 10.255.255.255 scope global noprefixroute ens192
       valid_lft forever preferred_lft forever
    inet 10.1.0.20/8 brd 10.255.255.255 scope global secondary noprefixroute ens192
       valid_lft forever preferred_lft forever
    inet 10.1.0.76/8 brd 10.255.255.255 scope global secondary noprefixroute ens192
       valid_lft forever preferred_lft forever
    inet6 fe80::6a22:319:a718:3d5b/64 scope link noprefixroute
       valid_lft forever preferred_lft forever
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
    link/ether 52:54:00:7f:16:df brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
       valid_lft forever preferred_lft forever
4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc fq_codel master virbr0 state DOWN group default qlen 1000
    link/ether 52:54:00:7f:16:df brd ff:ff:ff:ff:ff:ff
[root@XXXXXXXX network-scripts]#

看起来这不是真正的 DNS 问题,而是 ifcfg 脚本问题,我不知道如何更正脚本。

domain-name-system ip-aliasing
  • 1 个回答
  • 64 Views
Martin Hope
AnoE
Asked: 2017-03-09 09:38:30 +0800 CST

向 pfSense 接口添加别名?

  • 4

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

背景

我们最近将一堆服务器从一个子网迁移到另一个子网。他们过去的 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。

问题

我们如何配置 pfSense 在其 LAN 接口上有一个 IP 别名?这甚至可能吗?我根本找不到关于 IP 别名(物理接口上的辅助 IP)的提及。

有没有另一种方法可以使用 pfSense 实现我们想要的?

ip-aliasing pfsense
  • 1 个回答
  • 9677 Views
Martin Hope
DiogoSaraiva
Asked: 2016-05-06 14:21:08 +0800 CST

如果不推荐使用,我应该使用什么来代替 eth0:1

  • 1

通常我创建/etc/sysconfig/network-scripts/ifcfg-eth0:1 ,/etc/sysconfig/network-scripts/ifcfg-eth0:2但我在互联网上看到它已被弃用使用 eth0 :1

那么我可以用什么来让 VPS 使用额外的 IP?

通常我的文件是:

DEVICE=eth0
BOOTPROTO=static
IPADDR=164.132.193.xxx
NETMASK=255.255.255.255
ONBOOT=yes
GATEWAY=164.132.192.1 

和新的

在 ifcfg-eth0:1

DEVICE=eth0:1
BOOTPROTO=static
IPADDR=91.134.28.xxx
NETMASK=255.255.255.255
ONBOOT=yes

在 ifcfg-eth0:2 中:

DEVICE=eth0:2
BOOTPROTO=static
IPADDR=91.134.158.xxx
NETMASK=255.255.255.255
ONBOOT=yes

我现在该怎么办?使用额外的IP,因为它已被弃用?

我在 CentOS/RHEL 6 中使用“ip”命令在重新启动时看到了这个Persist IP 地址别名

但我不知道额外的 IP 网关...

centos networking ip ip-aliasing centos7
  • 1 个回答
  • 205 Views
Martin Hope
Curtis
Asked: 2012-06-26 15:06:47 +0800 CST

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

  • 10

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

脚本的默认策略如下:

iptables -P INPUT DROP

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

iptables -A INPUT -p tcp --dport 3306 -j ACCEPT

有了这个规则,我可以毫无问题地从任何源 IP 连接到服务器上的任何目标 IP 的 MySQL。但是,当我尝试通过将上面的行替换为以下内容来限制对三个 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 

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

  • 我可以从 .184、.196 和 .251 主机连接到 MySQL 服务器,只要使用它的默认 IP 地址或与默认 IP 地址位于同一子网中的 IP 别名连接到 MySQL 服务器即可。

  • 当我来自 .184 或 .196 主机时,我无法使用从与服务器默认 IP 不同的子网分配给服务器的 IP 别名连接到 MySQL,但 .251 工作正常。从 .184 或 .196 主机,telnet 尝试只是挂起...

    # telnet 209.xxx.xxx.22 3306
    Trying 209.xxx.xxx.22...
    
  • 如果我删除 .251 行(使 .196 成为最后添加的规则),.196 主机仍然无法使用 IP 别名连接到 MySQL(因此导致不一致行为的不是规则的顺序)。我知道,这个特定的测试很愚蠢,因为这三个规则的添加顺序无关紧要,但我想有人可能会问。

  • 如果我切换回“公共”规则,所有主机都可以使用默认或别名 IP(在任一子网中)连接到 MySQL 服务器:

    iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
    

服务器在 CentOS 5.4 OpenVZ/Proxmox 容器 (2.6.32-4-pve) 中运行。

而且,以防万一您更喜欢在 iptables 脚本的上下文中查看问题规则,这里是 (xxx=masked octect):

# Flush old rules, old custom tables
/sbin/iptables --flush
/sbin/iptables --delete-chain

# Set default policies for all three default chains
/sbin/iptables -P INPUT DROP
/sbin/iptables -P FORWARD DROP
/sbin/iptables -P OUTPUT ACCEPT

# Enable free use of loopback interfaces
/sbin/iptables -A INPUT -i lo -j ACCEPT
/sbin/iptables -A OUTPUT -o lo -j ACCEPT

# All TCP sessions should begin with SYN
/sbin/iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP

# Accept inbound TCP packets (Do this *before* adding the 'blocked' chain)
/sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# Allow the server's own IP to connect to itself
/sbin/iptables -A INPUT -i eth0 -s 208.xxx.xxx.178 -j ACCEPT

# Add the 'blocked' chain *after* we've accepted established/related connections
#   so we remain efficient and only evaluate new/inbound connections
/sbin/iptables -N BLOCKED
/sbin/iptables -A INPUT -j BLOCKED

# Accept inbound ICMP messages
/sbin/iptables -A INPUT -p ICMP --icmp-type 8 -j ACCEPT
/sbin/iptables -A INPUT -p ICMP --icmp-type 11 -j ACCEPT

# ssh (private)
/sbin/iptables -A INPUT -p tcp --dport 22 -m state --state NEW -s xxx.xxx.xxx.xxx -j ACCEPT          

# ftp (private)
/sbin/iptables -A INPUT -p tcp --dport 21 -m state --state NEW -s xxx.xxx.xxx.xxx -j ACCEPT          

# www (public)
/sbin/iptables -A INPUT -p tcp --dport 80 -j ACCEPT                                
/sbin/iptables -A INPUT -p tcp --dport 443 -j ACCEPT                               

# smtp (public)
/sbin/iptables -A INPUT -p tcp --dport 25 -j ACCEPT                                
/sbin/iptables -A INPUT -p tcp --dport 2525 -j ACCEPT                              

# pop (public)
/sbin/iptables -A INPUT -p tcp --dport 110 -j ACCEPT                               

# mysql (private)
/sbin/iptables -A INPUT -p tcp --dport 3306 -m state --state NEW -s 208.xxx.xxx.184 -j ACCEPT 
/sbin/iptables -A INPUT -p tcp --dport 3306 -m state --state NEW -s 208.xxx.xxx.196 -j ACCEPT 
/sbin/iptables -A INPUT -p tcp --dport 3306 -m state --state NEW -s 208.xxx.xxx.251 -j ACCEPT 

有任何想法吗?提前致谢。:-)

mysql iptables ip-aliasing
  • 1 个回答
  • 735 Views
Martin Hope
ace
Asked: 2010-04-11 21:39:56 +0800 CST

Centos:多个IP地址

  • 1

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

centos ip ip-aliasing
  • 3 个回答
  • 8129 Views
Martin Hope
Joe Holloway
Asked: 2009-05-27 08:26:45 +0800 CST

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

  • 16

我有一台运行 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

(以 192.168.xx 为例,假设这些是经过 NAT 处理的公共 IP 地址范围)

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

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

假设我通过 ssh 连接到 192.168.1.101 上的服务器并以交互方式运行 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     0.0.0.0         UG    100    0        0 eth0

我可以摆弄路由表或让我们的客户更改他们的防火墙规则以获得我需要的行为,但我试图了解它是如何工作的,以了解操作系统中是否存在错误或只是我的幼稚理解所有部分如何组合在一起。

谢谢

linux ftp ssh tcpip ip-aliasing
  • 6 个回答
  • 32758 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve