iproute2を使用して隔離されたインターフェイスからインターネット接続をルーティングする方法は?

iproute2を使用して隔離されたインターフェイスからインターネット接続をルーティングする方法は?

DHCPサーバーを作成しようとしていますが、iproute2DHCP部分は正常に機能しますが、クライアントはインターネットにアクセスできません。

ホストは192.168.150.0/25ネットワークからインターネットを取得し、サブネット192.168.169.0/24のルーター/ DHCPサーバーとして機能します。

クライアントをホストと同じインターフェイスに接続すると、クライアントは正しい IP アドレス範囲で IP を取得します。

これが私のネットワーク構成です。

# Starting interfaces
ip link set dev eth0 up 
ip link set dev eth1 up

# Assigning addresses to interface 
ip addr add "192.168.150.29/25" dev eth0 brd +
ip addr add "192.168.169.1/24" dev eth1 brd +

# Specifying how eth0 will get his internet.
ip route add default dev eth0 via "192.168.150.1" scope global

私の質問は、eth0からeth1にインターネット接続をルーティングする方法です。

次のパスを追加しようとしています。

ip route add "192.168.169.1/24" dev eht0

同様ですが、次のように変更するとwrong prefix別のエラーが発生します。"192.168.169.1"10File existsNexthop has invalid gateway.

事前にありがとう

また、注:これが重要かどうかはわかりませんが、eth0とeth1はどちらもlibvirtで実行されているシステムに接続されています。

答え1

ip route add default via 192.168.169.1 dev eht0クライアントでこれを行うか、DHCPサーバーを介してパスをプッシュする必要があります(使用しているサーバーに応じて質問に割り当てられていません)。また、ip_forwardingが有効になっていること(/proc/sys/net/ipv4/ip_forward= 1)を確認し、iptables / nftablesを介してマスカレーディング(NAT)が有効になっていることを確認してください。または、IP 192.168.150.29を使用してシステムを制御する場合は、そこに追加してip route add 192.168.169.0/24 via 192.168.150.29迷彩を避けることができます。

答え2

知っていると、システムのデフォルトのファイアウォールとネットワーク管理者を無効にするのを忘れてしまったので、バックグラウンドで実行していたのでSuSeFirewall2設定wickedがめちゃくちゃになりました。

私の最終的なネットワーク設定は次のとおりです

#!/bin/bash

case "$1" in
start)
        echo "Starting the network"


        echo "search my.dns.server.ext" > /etc/resolv.conf
        echo "nameserver 192.168.150.1" >> /etc/resolv.conf

        ip addr add "192.168.150.29/25" dev eth0 brd +
        ip addr add "192.168.169.1/24" dev eth1 brd +
        ip link set dev eth0 up
        ip link set dev eth1 up
        ip route add default via 192.168.150.1 scope global

        echo 1 > /proc/sys/net/ipv4/ip_forward

        ;;
stop)
        echo "Stopping the network"
        ip addr flush eth0
        ip addr flush eth1
        ip link set dev eth0 down 
        ip link set dev eth1 down 
        ;;
restart)
        $0 stop
        $0 start
        ;;
*)
        echo "Usage $0 [start|stop|restart]"
esac

また、evilを無効にした後に手動でDNSを設定する必要がありましたが、/etc/resolv.conf今は本当に魅力的です。

:-)

関連情報