我正试图在我的FreeBSD框中添加一个别名到我的网卡(我想使用监狱)。它正在运行10.2Release-p7版本(通用amd64内核)。这台机器运行在Hyper虚拟机中,但我在物理盒上经历了同样的事情,唯一的区别是运行相同10.2内核的x86 (32位)版本。
网络接口hn0有一个静态IP地址: 192.168.0.51/24,我的默认路由器是192.168.0.1。在我添加别名之前,一切都很好:
ifconfig hn0 inet 192.168.0.200/32 alias这将在hn0上创建别名,如ifconfig所示:
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名称服务器:
ping 8.8.8.8
ping 8.8.8.8 (8.8.8.8): 56 data bytes但是,我可以使用别名作为源来平平任何东西:
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输出:
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在创建别名之后:
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 hn0IPv6值被省略,因为我通过添加
ipv6_network_interfaces="none"
ipv6_activate_all_interfaces="NO"至/etc/rc.conf
我不是网络设置方面的专家,但我已经阅读了关于监狱和IP别名的所有资料,但我没有发现任何有用的东西。也许我忽略了一些琐碎的东西,但我不知道是什么破坏了主机上的网络访问。
发布于 2015-12-05 17:45:11
net掩码太宽,请尝试
ifconfig hn0 inet 192.168.0.200/24 alias别名通常必须在同一个网络上。
https://unix.stackexchange.com/questions/247569
复制相似问题