使用第二个公共 IP 地址将命名空间连接到互联网

使用第二个公共 IP 地址将命名空间连接到互联网

我有一个 Ubuntu18 服务器,有两个公共地址

我如何创建命名空间并通过第二个公共 IP 连接到互联网?

(需要启动一个程序并强制它使用第二个IP连接到互联网)

ip :

    root@vm8950217476:~# ip a
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: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 9a:40:ef:c5:bb:62 brd ff:ff:ff:ff:ff:ff
    inet 130.185.76.181/24 brd 130.185.76.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet 130.185.76.18/24 brd 130.185.76.255 scope global secondary eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::9840:efff:fec5:bb62/64 scope link
       valid_lft forever preferred_lft forever

IP路由:

root@vm8950217476:~# ip route
default via 130.185.76.254 dev eth0 proto static
130.185.76.0/24 dev eth0 proto kernel scope link src 130.185.76.181

我已经达到了这里所述的一些解决方案:

但经过几天的测试,仍然无法完成这项工作。这个过程对我来说看起来很混乱,特别是我不确定在 netns 命令中需要使用哪些地址( ip addr 、 route 、 gw ,...)

我尝试的最新步骤:

ip netns add test
ip netns exec test ip link set lo up
ip link add link eth0 name test0 type macvlan
ip link set test0 netns test
ip netns exec test ip addr add 130.185.76.18/24 brd + dev test0
ip netns exec test ip link set test0 up
ip netns exec test ip route add default via 130.185.76.254 dev test0

root@vm8950217476:~# ip netns exec test ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
From 130.185.76.18 icmp_seq=10 Destination Host Unreachable
From 130.185.76.18 icmp_seq=11 Destination Host Unreachable
From 130.185.76.18 icmp_seq=12 Destination Host Unreachable

相关内容