저는 24시간 넘게 이 작업을 해왔고 지금까지 얻은 결과는 다음과 같습니다.
- 버전 14.04.2.amd64를 실행하는 Ubuntu 서버가 있습니다.SV-01
- SV-01NIC가 두 개 있습니다.이더리움 1외부 네트워크의 경우(먼저 라우터에, 그 다음에는 인터넷에).이더리움 0내부 네트워크용(스위치로 이동한 다음 내 컴퓨터/장치로 이동)
- 현재 14.04.2 LTS(정확히 기억한다면 64비트)를 실행하는 우분투 워크스테이션이 있습니다.WS-01
- 현재 저는 Windows 7 64비트 워크스테이션을 사용하고 있습니다.WS-02
- 제 생각에는WS-01그리고WS-02IP를 동적으로 가져옵니다.SV-01DHCP 서버로 작동
사용이 기사
SV-01:/etc/network/interfaces
, 저는 이렇게 설정했어요auto lo iface lo inet loopback #Internet NIC auto eth1 iface eth1 inet static address 192.168.0.19 netmask 255.255.255.0 broadcast 192.168.0.255 network 192.168.0.0 gateway 192.168.0.1 #Internal NIC auto eth0 iface eth0 inet static address 192.168.66.254 netmask 255.255.255.0 broadcast 192.168.66.255 network 192.168.0.0
사용이 기사, IP 전달 및 msqaurading을 활성화했습니다.
#Script for setting up machine as a router #Downloaded from #https://help.ubuntu.com/community/Router echo -e "\n\nLoading simple rc.firewall-iptables version $FWVER..\n" DEPMOD=/sbin/depmod MODPROBE=/sbin/modprobe EXTIF="eth1" INTIF="eth0" #INTIF2="eth0" echo " External Interface: $EXTIF" echo " Internal Interface: $INTIF" #====================================================================== #== No editing beyond this line is required for initial MASQ testing == echo -en " loading modules: " echo " - Verifying that all kernel modules are ok" $DEPMOD -a echo "----------------------------------------------------------------------" echo -en "ip_tables, " $MODPROBE ip_tables echo -en "nf_conntrack, " $MODPROBE nf_conntrack echo -en "nf_conntrack_ftp, " $MODPROBE nf_conntrack_ftp echo -en "nf_conntrack_irc, " $MODPROBE nf_conntrack_irc echo -en "iptable_nat, " $MODPROBE iptable_nat echo -en "nf_nat_ftp, " $MODPROBE nf_nat_ftp echo "----------------------------------------------------------------------" echo -e " Done loading modules.\n" echo " Enabling forwarding.." echo "1" > /proc/sys/net/ipv4/ip_forward echo " Enabling DynamicAddr.." echo "1" > /proc/sys/net/ipv4/ip_dynaddr echo " Clearing any existing rules and setting default policy.." iptables-restore <<-EOF *nat -A POSTROUTING -o "$EXTIF" -j MASQUERADE COMMIT *filter :INPUT ACCEPT [0:0] :FORWARD DROP [0:0] :OUTPUT ACCEPT [0:0] -A FORWARD -i "$EXTIF" -o "$INTIF" -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT -A FORWARD -i "$INTIF" -o "$EXTIF" -j ACCEPT -A FORWARD -j LOG COMMIT EOF echo -e "\nrc.firewall-iptables v$FWVER done.\n"
사용이 웹사이트, 나는 그것을
SV-01:/etc/default/isc-dhcp-server/default
다음과 같이 설정했습니다INTERFACES="eth0"
사용이 웹사이트, 나는 그것을
SV-01:/etc/dhcp/dhcpd.conf
다음과 같이 설정했습니다ddns-update-style none; option domain-name "example.org"; option domain-name-servers ns1.example.org, ns2.example.org; default-lease-time 600; max-lease-time 7200; log-facility local7; host ws-01 { hardware ethernet a0:d3:c1:1f:6f:1e; fixed-address 192.168.66.1;
마지막으로 다음이 있습니다.
WS-01:/etc/network/interfaces
auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp
문제는 sudo ifdown eth0 && sudo ifup eth0
명령을 실행하는 경우입니다.WS-01, DHCP 서버를 찾을 수 없습니다. sudo dhclient
공백을 반환합니다. cat /var/lib/dhcp/dhclient.eth0.leases
ISP 라우터 IP가 표시됩니다 192.168.0.1
.
내가 벽돌벽에 부딪혔을 때 누군가 나를 도와주세요.
편집하다
SV-01의 출력: route -n
:
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 eth1
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
192.168.66.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
WS-01의 출력: route -n
:
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.66.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
in이 없다는 UG
것이 중요합니까 ?WS-01?
답변1
이것이 Linux 라우팅에 대한 지식을 향상시키기 위한 것인지는 모르겠지만, 그렇지 않다면 OpenWrt를 사용하는 것이 좋습니다.
OpenWrt에는 이미 인터페이스 관리, DHCP 서버, 방화벽, 포트 전달, IPv6 지원 및 기타 서비스가 있으며 모두 CLI 또는 웹 인터페이스를 통해 사용할 수 있습니다.
OpenWrt는 저렴한 머신, 많은 라우터(어쩌면 귀하의 것!) 및 가상 머신에 설치할 수 있습니다. 가상 머신을 라우터 장치로 사용하는 것도 인터넷에서 여러 서비스를 실행할 수 있는 호스트를 격리하는 좋은 방법입니다.
libvirt를 사용하여 OpenWrt 라우터를 가상화하고, WAN 카드를 VM에 직접 매핑하고, LAN 카드를 VM의 다른 카드로 브리지할 수 있습니다.
OpenWrt의 다운로드 주소는 다음과 같습니다.https://downloads.openwrt.org/barrier_breaker/14.07/x86/kvm_guest/이 버전은 libvirt에서 시작됩니다.
그 외에도 Celada가 설명에서 말한 것처럼 DHCP 서버가 시작되지 않으면 "dhcpd -d -f -cf /etc/dhcp/dhcpd.conf"를 사용하여 포그라운드에서 DHCP를 시작하여 출력을 확인해야 합니다.
다른 터미널에서 "tail -f /var/log/syslog"를 사용하는 것도 도움이 될 수 있습니다.