DHCPサーバーを作成しようとしていますが、iproute2
DHCP部分は正常に機能しますが、クライアントはインターネットにアクセスできません。
ホストは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"
1
0
File exists
Nexthop 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
今は本当に魅力的です。
:-)