首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何配置码头默认网桥与不寻常的网络配置?

如何配置码头默认网桥与不寻常的网络配置?
EN

Stack Overflow用户
提问于 2014-12-16 20:02:21
回答 1查看 16.1K关注 0票数 2

基本上,在工作中,我有一个dhcp地址分配为:

代码语言:javascript
复制
eth0      Link encap:Ethernet  HWaddr 5c:26:0a:5a:b8:48  
          inet addr:10.10.10.193  Bcast:10.10.10.255  Mask:255.255.255.0
          inet6 addr: <addr here>/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:3591236 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2057576 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:3449424352 (3.4 GB)  TX bytes:384131635 (384.1 MB)
          Interrupt:20 Memory:e2e00000-e2e20000 

有了这个,我的主机,就能很好地连接到互联网。但我的对接机没有一个能在工作中连接到互联网。它们的配置如下所示:

代码语言:javascript
复制
docker0   Link encap:Ethernet  HWaddr 56:84:7a:fe:97:99  
          inet addr:172.17.42.1  Bcast:0.0.0.0  Mask:255.255.0.0
          inet6 addr: fe80::5484:7aff:fefe:9799/64 Scope:Link
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:117799 errors:0 dropped:0 overruns:0 frame:0
          TX packets:170586 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:4858816 (4.8 MB)  TX bytes:122237788 (122.2 MB)

当我在家坐在一个传统的192.168路由器交换机下时,一切都正常。

因此,我在想,如果我以某种方式让docker0接口坐在eth0后面,那么一切都会正常工作,无论是在家里还是在工作中。但我不熟悉配置linux接口。我找到了一篇关于几乎完全相同的问题的文章,但是按照这些命令将接口br0添加到10.10.10.200/24中,会出现以下症状:

  1. 我的主机再也不能解析域名了。移除接口br0使它立即再次工作。
  2. 现在,这些被篡改的应用程序可以ping 4.2.2.1,但不需要8.8.8.8或8.8.4.4,也不能解析域名。在/etc/default/docker.io中添加--dns 4.2.2.1tp DOCKER_OPTS并不能解决这个问题。
  3. 在br0接口被移除后,已被篡改的应用程序不再能够ping 4.2.2.1、8.8.8.8或8.8.4.4。

我没有更改iptables;它对基本的ubuntu14.04主机使用默认的对接器配置更改。

如何最好地配置接口,以使停靠程序允许在家中和工作中连接到internet?

EN

回答 1

Stack Overflow用户

发布于 2014-12-30 07:59:21

有关网络和网桥的详细信息可以在以下网站上找到:

因为我有一个带有Ubuntu14.04的VM,所以我不确定它是否会重现解决方案。但是,我的办公室也有相同的情况,一些VPN服务器提供与Docker默认在docker0桥上使用的相同的默认网络IP。当VPN启动时,能够从办公室使用Docker而不能使用docker的行为确实令人沮丧。

因此,我在您使用http://jpetazzo.github.io/2013/10/16/configure-docker-bridge-network/的链接中使用了相同的策略,但是在RHEL6.5服务器上。然而,我确实尝试了许多不同的方法来让它发挥作用:

  1. 使用不同的IP范围
  2. 用不同的面具
  3. 首先尝试手动设置,然后自动化永久解决方案。

我有关于RHEL 6.5的解决方案如下:

代码语言:javascript
复制
[root@pppdc9prd6dq newww]# cat /etc/sysconfig/network-scripts/ifcfg-bridge0
TYPE=Bridge
DEVICE=bridge0
NETMASK=255.255.252.0
IPADDR=192.168.5.1
ONBOOT=yes
BOOTPROTO=none
NM_CONTROLLED=no
DELAY=0

手动加桥

下面是手动创建桥的步骤:

1.停止码头工人

代码语言:javascript
复制
$ sudo service docker stop

2.创建桥

代码语言:javascript
复制
$ ip link add bridge0 type bridge
$ ip addr add 192.168.5.1/20 dev bridge0
$ ip link set bridge0 up

3.更新Docker守护进程以使用桥

代码语言:javascript
复制
$ vim /etc/docker/daemon.json
$ { "bridge": "bridge0"}

4.重新启动码头

代码语言:javascript
复制
sudo service start docker

如果一切正常,只需永久添加修补程序即可。

持久的

1.与手动相同

2.更新以下文件

代码语言:javascript
复制
$ vim /etc/network/interfaces
auto bridge0
iface bridge0 inet static
    address 192.168.5.1
    netmask 255.255.252.0
    bridge_ports dummy0
    bridge_stp off
    bridge_fd 0

3.与手动相同

4.与手动相同

并确保在服务器上安装了bridge-utils,否则桥接口就不会出现。

也许那能行?无论如何,在这里尝试任何事情,我们都可以讨论和改变这个解决方案。我相信,当更多的人开始在VPN的内部使用Docker时,他们会对此产生问题。

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

https://stackoverflow.com/questions/27512926

复制
相关文章

相似问题

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