首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FreeBSD:向主ip上的接口中断网络添加ip别名

FreeBSD:向主ip上的接口中断网络添加ip别名
EN

Unix & Linux用户
提问于 2015-12-05 17:24:06
回答 1查看 2.5K关注 0票数 2

我正试图在我的FreeBSD框中添加一个别名到我的网卡(我想使用监狱)。它正在运行10.2Release-p7版本(通用amd64内核)。这台机器运行在Hyper虚拟机中,但我在物理盒上经历了同样的事情,唯一的区别是运行相同10.2内核的x86 (32位)版本。

网络接口hn0有一个静态IP地址: 192.168.0.51/24,我的默认路由器是192.168.0.1。在我添加别名之前,一切都很好:

代码语言:javascript
复制
ifconfig hn0 inet 192.168.0.200/32 alias

这将在hn0上创建别名,如ifconfig所示:

代码语言:javascript
复制
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
    options=600003<RXCSUM,TXCSUM,RXCSUM_IPV6,TXCSUM_IPV6>
    inet6 ::1 prefixlen 128
    inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1
    inet 127.0.0.1 netmask 0xff000000
    nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
hn0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
    options=31b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,TSO4,TSO6>
    ether 00:15:5d:00:0f:00
    inet 192.168.0.51 netmask 0xffffff00 broadcast 192.168.0.255
    inet 192.168.0.200 netmask 0xffffffff broadcast 192.168.0.200
    nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>

问题是,一旦我有了别名,我就无法到达子网之外的任何主机(即使使用主机的IP地址)。例如,google名称服务器:

代码语言:javascript
复制
ping 8.8.8.8
ping 8.8.8.8 (8.8.8.8): 56 data bytes

但是,我可以使用别名作为源来平平任何东西:

代码语言:javascript
复制
ping -S 192.168.0.200 8.8.8.8
PING 8.8.8.8 (8.8.8.8) from 192.168.0.200: 56 data bytes
64 bytes from 8.8.8.8: icmp_seq=0 ttl=56 time=11.137 ms
...

如果别名是在启动监狱时由监狱(8)创建的,则使用别名的监狱具有网络访问权限,而主机没有。删除别名后,我必须重新启动服务netif和路由,以恢复主机主IP上的网络访问。

当监狱运行时,我可以直接进入它,或者我可以使用IP别名来打开它。

基于我不能使用外部节点IP的事实,我猜测路由有问题。名称解析无法工作,因为我的框无法到达DNS服务器。下面是我在添加别名之前的netstat -rn输出:

代码语言:javascript
复制
Destination        Gateway            Flags      Netif Expire
default            192.168.0.1        UGS         hn0
127.0.0.1          link#1             UH          lo0
192.168.0.0/24     link#2             U           hn0
192.168.0.51       link#2             UHS         lo0

在创建别名之后:

代码语言:javascript
复制
Destination        Gateway            Flags      Netif Expire
default            192.168.0.1        UGS         hn0
127.0.0.1          link#1             UH          lo0
192.168.0.0/24     link#2             U           hn0
192.168.0.51       link#2             UHS         lo0
192.168.0.200      link#2             UHS         lo0
192.168.0.200/32   link#2             U           hn0

IPv6值被省略,因为我通过添加

代码语言:javascript
复制
ipv6_network_interfaces="none"
ipv6_activate_all_interfaces="NO"

至/etc/rc.conf

我不是网络设置方面的专家,但我已经阅读了关于监狱和IP别名的所有资料,但我没有发现任何有用的东西。也许我忽略了一些琐碎的东西,但我不知道是什么破坏了主机上的网络访问。

EN

回答 1

Unix & Linux用户

发布于 2015-12-05 17:45:11

net掩码太宽,请尝试

代码语言:javascript
复制
ifconfig hn0 inet 192.168.0.200/24 alias

别名通常必须在同一个网络上。

票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/247569

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档