
문제가 있습니다. 우선 Ubuntu 14.04에 서버를 설치하고 싶습니다. 2개의 인터페이스가 있습니다: dhcp 서버용 eth0과 인터넷 연결용 eth1. 그런데 동시에 두 개의 네트워크에 연결하면 PC에 인터넷이 없습니다. 그래서 서버와 인터넷 중 하나를 선택해야 합니다. 정말 끔찍합니다. 이 문제를 해결하는 방법을 알려줄 수 있는 사람이 있나요?
/etc/네트워크/인터페이스:
auto lo eth0 eth1
iface lo inet loopback
iface eth0 inet static
address 172.16.1.100
netmask 255.255.255.0
broadcast 172.16.1.255
gateway 172.16.1.254
sudo 경로 출력:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 192.168.0.1 0.0.0.0 UG 0 0 0 eth1
192.168.0.0 * 255.255.255.0 U 1 0 0 eth1
UPD: ifconfig 출력:
eth0 Link encap:Ethernet HWaddr 90:e6:ba:46:1d:50
inet6 addr: fe80::92e6:baff:fe46:1d50/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:1110 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:184287 (184.2 KB)
eth1 Link encap:Ethernet HWaddr 00:04:75:98:5f:da
inet addr:192.168.0.101 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::204:75ff:fe98:5fda/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:14498 errors:0 dropped:0 overruns:2 frame:0
TX packets:13096 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:9710708 (9.7 MB) TX bytes:1840400 (1.8 MB)
Interrupt:18 Base address:0x4c00
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:4398 errors:0 dropped:0 overruns:0 frame:0
TX packets:4398 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:527890 (527.8 KB) TX bytes:527890 (527.8 KB)
답변1
내 첫 번째 답변에 대한 출력 ifconfig
과 설명을 구성하면 문제는 NIC에서 NIC를 구성하는 방식과 관련이 있다고 생각합니다 /etc/network/interfaces
.
특정 구성이 없기 때문에eth1에서는 /etc/network/interfaces
귀하의 모뎀이 DHCP를 통해 귀하의 서버에 IP 정보를 제공하고 있다고 가정합니다. 출력 에 따라 route
기본 게이트웨이가 모뎀을 가리키고 인터넷을 가리키게 됩니다.
하지만 귀하 /etc/network/interfaces
의 파일 에는eth0기본 게이트웨이도 구성되어 있습니다(설명 gateway 172.16.1.254
).
시스템에는 두 개의 기본 게이트웨이가 있을 수 없습니다. 기본 게이트웨이 할당eth1정적 구성 비활성화eth0, IP가 없는 이유eth0결과 ifconfig
와 인터넷이 작동하고 내부 네트워크가 더 이상 작동하지 않는 이유.
해당 줄을 제거하고 다시 시도해야 합니다 gateway 172.16.1.254
.
물론 이렇게 하면 내부 LAN에 서브넷이 두 개 이상 있으면 더 이상 해당 서브넷에 연결할 수 없습니다. 서버에서 이러한 모든 서브넷에 대한 고정 경로를 구성하지 않는 한:
sudo 경로 추가 -net ABCD gw 172.16.1.254
인터페이스가 작동할 때마다 실행되도록 route
저장된 스크립트에 명령을 추가할 수 있습니다 ./etc/network/if-up.d
답변2
귀하의 게시물에 대해 제가 이해한 바에 따르면 귀하는 다음을 통해 인터넷에 연결되어 있습니다.eth1그리고 다음을 통해 내부 네트워크에 연결됩니다.eth0. 그리고 귀하의 서버는 귀하의 PC가 인터넷에 접속할 수 있도록 DHCP 서버 및 기본 게이트웨이 역할을 합니다.
먼저 PC에서 게이트웨이를 포함한 모든 DHCP 설정을 올바르게 수신했는지 확인하세요. 귀하의 질문에 따르면 172.16.1.100이어야 한다고 가정합니다.
둘째, 귀하의eth1인터넷에 잘 연결되어 있고 잘 구성되어 있습니다. 이는 분명히 ISP에 따라 다릅니다.
마지막으로 가장 중요한 작업은 서버의 두 인터페이스 간에 IP 전달을 활성화해야 한다는 것입니다. 이것이 없으면 패킷이 PC와 인터넷 간에 라우팅되지 않습니다.
수동 설정:
sudo echo 1 > /proc/sys/net/ipv4/ip_forward
부팅 시 IP 전달 플래그가 자동으로 설정되도록 하려면 다음 줄 #net.ipv4.ip_forward=1
의 주석 처리를 제거하세요./etc/sysctl.conf
또한 트래픽을 차단하는 IPtables 방화벽 규칙이 없는지 확인해야 합니다. 하다 :
iptables -L -n
규칙이 있는 경우 목록을 가져옵니다. 먼저 모든 방화벽 규칙을 비활성화한 상태에서 이 설정을 시도하겠습니다.
iptables -F
답변3
비슷한 문제가 있었지만 인터페이스 파일은 다음과 같이 비어 있었습니다.
# The loopback network interface
auto lo
iface lo inet loopback
발견된 유선 연결 파일을 이동/제거하여 문제를 해결했습니다.
/etc/NetworkManager/system-connections/Wired connection 1
재부팅 후 두 네트워크에 모두 연결할 수 있었습니다.