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이제는 정말 매력적으로 작동합니다.

:-)

관련 정보