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 / 问题 / 806456
Accepted
Toaster
Toaster
Asked: 2016-10-01 15:22:48 +0800 CST2016-10-01 15:22:48 +0800 CST 2016-10-01 15:22:48 +0800 CST

在 Ubuntu 上为两个外部 IP 配置双接口

  • 772

我正在尝试为我们的 SIP 电话将第二个 ISP 连接连接到我的服务器。

eth0在192.168.1.x上有我们默认的 25Mb 服务,我已经配置了

eth1新的 6Mb 服务为10.10.1.x

两台路由器都配置了具有唯一静态 IP 的 pppoe,我有单独的交换机,以及一台带有两个以太网端口的 Ubuntu 14Lts 服务器。单独连接的任何一个都可以正常工作,但是两者都可以,我只能ping -I eth[0|1] 8.8.8.8 -c 3在一个接口上但是ping每个路由器没有问题。

如果有人可以帮助我让 Nic 启动并运行并默认主要流量通过eth0和 Just Asterisk/Sip 流量通过eth1将节省我的一天。

一些信息输出:

# cat /etc/network/interfaces

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.1.100
gateway 192.168.1.1
netmask 255.255.255.0

auto eth1
iface eth1 inet static
address 10.10.1.101
#gateway 10.10.1.1
netmask 255.255.255.0

$ sudo route

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         home.Home       0.0.0.0         UG    0      0        0 eth1
10.10.1.0       *               255.255.255.0   U     1      0        0 eth1
link-local      *               255.255.0.0     U     1000   0        0 eth0
192.168.1.0     *               255.255.255.0   U     0      0        0 eth0
192.168.122.0   *               255.255.255.0   U     0      0        0 virbr0

$ sudo ifdown eth0 && sudo ifup eth0

RTNETLINK answers: No such process
RTNETLINK answers: File exists
Failed to bring up eth0.

$ sudo ifdown eth1 && sudo ifup eth1

ifdown: interface eth1 not configured
RTNETLINK answers: File exists
Failed to bring up eth1.

$ ifconfig

eth0      Link encap:Ethernet  HWaddr 00:25:90:11:c8:44  
          inet addr:192.168.1.100  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::225:90ff:fe11:c844/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2316517 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3877952 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:1881181270 (1.8 GB)  TX bytes:5573716194 (5.5 GB)
          Interrupt:16 Memory:faee0000-faf00000 

eth1      Link encap:Ethernet  HWaddr 00:25:90:11:c8:45  
          inet addr:10.10.1.101  Bcast:10.10.1.255  Mask:255.255.255.0
          inet6 addr: fe80::225:90ff:fe11:c845/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:214622 errors:0 dropped:0 overruns:0 frame:0
          TX packets:9763 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:13988405 (13.9 MB)  TX bytes:890576 (890.5 KB)
          Interrupt:16 Memory:fafe0000-fb000000 

======================编辑1: ========================= ==

感谢 Peter Zhabin 的 iproute2 说明

apt-get install iproute2
echo "1 link2" >> /etc/iproute2/rt_tables
ip route add 10.10.1.0/24 dev eth1 src 10.10.1.101 table link2
ip route add default via 10.10.1.1 dev eth1 table link2
ip rule add from 10.10.1.101/32 table link2
ip rule add to 10.10.1.101/32 table link2

我第一次尝试时有点奇怪sudo echo "1 link2" >> /etc/iproute2/rt_tables-bash: /etc/iproute2/rt_tables: Permission denied 但我切换到 Root 以避免需要 sudo 并且没有进一步的投诉。

======================编辑2: ========================= ==

# ping -I 10.10.1.101 8.8.8.8 -c 3

PING 8.8.8.8 (8.8.8.8) from 10.10.1.101 : 56(84) bytes of data.

--- 8.8.8.8 ping statistics ---
3 packets transmitted, 0 received, 100% packet loss, time 2014ms

======================编辑3: ======================== ==

# ip rule show

0:      from all lookup local 
32764:  from all to 10.10.1.101 lookup link2 
32765:  from 10.10.1.101 lookup link2 
32766:  from all lookup main 
32767:  from all lookup default 

# ip route show

default via 192.168.1.1 dev eth0 
10.10.1.0/24 dev eth1  proto kernel  scope link  src 10.10.1.101 
169.254.0.0/16 dev eth1  scope link  metric 1000 
192.168.1.0/24 dev eth0  proto kernel  scope link  src 192.168.1.100 
192.168.122.0/24 dev virbr0  proto kernel  scope link  src 192.168.122.1 

# ip route show table link2

default via 10.10.1.1 dev eth1 
10.10.1.0/24 dev eth1  scope link  src 10.10.1.101 

显示link2 表奇怪的是有点碰巧。我不明白为什么它并不总是打印。好消息是通过 IP 进行 Ping 工作,尽管 eth1 没有。为了完成,我还包括完整的展示表

# ip route show table all

default via 10.10.1.1 dev eth1  table link2 
10.10.1.0/24 dev eth1  table link2  scope link  src 10.10.1.101 
default via 192.168.1.1 dev eth0 
10.10.1.0/24 dev eth1  proto kernel  scope link  src 10.10.1.101 
169.254.0.0/16 dev eth1  scope link  metric 1000 
192.168.1.0/24 dev eth0  proto kernel  scope link  src 192.168.1.100 
192.168.122.0/24 dev virbr0  proto kernel  scope link  src 192.168.122.1 
broadcast 10.10.1.0 dev eth1  table local  proto kernel  scope link  src 10.10.1.101 
local 10.10.1.101 dev eth1  table local  proto kernel  scope host  src 10.10.1.101 
broadcast 10.10.1.255 dev eth1  table local  proto kernel  scope link  src 10.10.1.101 
broadcast 127.0.0.0 dev lo  table local  proto kernel  scope link  src 127.0.0.1 
local 127.0.0.0/8 dev lo  table local  proto kernel  scope host  src 127.0.0.1 
local 127.0.0.1 dev lo  table local  proto kernel  scope host  src 127.0.0.1 
broadcast 127.255.255.255 dev lo  table local  proto kernel  scope link  src 127.0.0.1 
broadcast 192.168.1.0 dev eth0  table local  proto kernel  scope link  src 192.168.1.100 
local 192.168.1.100 dev eth0  table local  proto kernel  scope host  src 192.168.1.100 
broadcast 192.168.1.255 dev eth0  table local  proto kernel  scope link  src 192.168.1.100 
broadcast 192.168.122.0 dev virbr0  table local  proto kernel  scope link  src 192.168.122.1 
local 192.168.122.1 dev virbr0  table local  proto kernel  scope host  src 192.168.122.1 
broadcast 192.168.122.255 dev virbr0  table local  proto kernel  scope link  src 192.168.122.1 
fe80::/64 dev eth0  proto kernel  metric 256 
fe80::/64 dev eth1  proto kernel  metric 256 
unreachable default dev lo  table unspec  proto kernel  metric 4294967295  error -101
local ::1 dev lo  table local  proto none  metric 0 
local fe80::225:90ff:fe11:c844 dev lo  table local  proto none  metric 0 
local fe80::225:90ff:fe11:c845 dev lo  table local  proto none  metric 0 
ff00::/8 dev eth0  table local  metric 256 
ff00::/8 dev eth1  table local  metric 256 
unreachable default dev lo  table unspec  proto kernel  metric 4294967295  error -101

# ping -I eth1 8.8.8.8 -c 3

PING 8.8.8.8 (8.8.8.8) from 10.10.1.101 eth1: 56(84) bytes of data.
From 10.10.1.101 icmp_seq=1 Destination Host Unreachable
From 10.10.1.101 icmp_seq=2 Destination Host Unreachable
From 10.10.1.101 icmp_seq=3 Destination Host Unreachable

--- 8.8.8.8 ping statistics ---
3 packets transmitted, 0 received, +3 errors, 100% packet loss, time 2015ms
pipe 3

# ping -I 10.10.1.101 8.8.8.8 -c 3

PING 8.8.8.8 (8.8.8.8) from 10.10.1.101 : 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=60 time=29.4 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=60 time=29.3 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=60 time=28.8 ms

--- 8.8.8.8 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 28.804/29.192/29.433/0.310 ms
ubuntu ethernet sip
  • 1 1 个回答
  • 3384 Views

1 个回答

  • Voted
  1. Best Answer
    Peter Zhabin
    2016-10-02T08:10:49+08:002016-10-02T08:10:49+08:00

    首先,您必须为通过这些网关入站的数据包正确设置返回路径。这意味着如果有一个数据包通过 eth1 进来,响应也应该通过 eth1 而不是通过默认路由出去。

    要让它工作,您需要 iproute2,它允许您拥有多个路由表和多个网关。首先,您应该只在网络/接口下设置一个网关地址,假设它是 192.168.1.100 网络,并且您希望来自 10.10.1.101 的流量通过 10.10.1.1 路由器通过 eth1 出去。

    然后其余的将是这样的(根据需要添加 sudo):

    apt-get install iproute2
    echo "1 link2" >> /etc/iproute2/rt_tables
    ip route add 10.10.1.0/24 dev eth1 src 10.10.1.101 table link2
    ip route add default via 10.10.1.1 dev eth1 table link2
    ip rule add from 10.10.1.101/32 table link2
    ip rule add to 10.10.1.101/32 table link2
    

    这将使您的返回流量运行到正确的路由器,并且您还可以 ping -I 没有问题的两个接口。上面确实创建了第二个路由表(link2),为其设置了默认路由和范围,并添加了两条规则来处理入站和出站流量。

    如果您的手机从外部连接到此服务器,那就足够了。如果它们在内部某个地方,请评论有关您的内部网络设置的更多详细信息。

    • 0

相关问题

  • 无法通过 Ubuntu VPN 访问外部网络

  • ubuntu apt-get upgrade - 如何在 shell 中单击确定?

  • VirtualBox 上 Ubuntu 的访客优化技巧 [关闭]

  • 外部硬盘上的 virtualbox 虚拟硬盘驱动器(Vista 主机上的 ubuntu 客户机)

  • 如何在 Ubuntu 上挂载 LVM 分区?

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