Bộ định tuyến Linux: ping không định tuyến trở lại


14

Tôi có một hộp Debian mà tôi đang cố gắng thiết lập như một bộ định tuyến và một hộp Ubuntu mà tôi đang sử dụng như một máy khách.

Vấn đề của tôi là khi máy khách Ubuntu cố gắng ping máy chủ trên Internet, tất cả các gói bị mất (mặc dù, như bạn có thể thấy bên dưới, chúng dường như đi đến máy chủ và quay lại mà không gặp vấn đề gì).

Tôi đang làm điều này trong Ubuntu Box:

# ping -I eth1 my.remote-server.com
PING my.remote-server.com (X.X.X.X) from 10.1.1.12 eth1: 56(84) bytes of data.
^C
--- my.remote-server.com ping statistics ---
13 packets transmitted, 0 received, 100% packet loss, time 12094ms

(Tôi đã thay đổi tên và IP của máy chủ từ xa để bảo mật).

Từ Bộ định tuyến Debian tôi thấy điều này:

# tcpdump -i eth1 -qtln icmp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth1, link-type EN10MB (Ethernet), capture size 65535 bytes
IP X.X.X.X > 10.1.1.12: ICMP echo reply, id 305, seq 7, length 64
IP 10.1.1.12 > X.X.X.X: ICMP echo request, id 305, seq 8, length 64
IP X.X.X.X > 10.1.1.12: ICMP echo reply, id 305, seq 8, length 64
IP 10.1.1.12 > X.X.X.X: ICMP echo request, id 305, seq 9, length 64
IP X.X.X.X > 10.1.1.12: ICMP echo reply, id 305, seq 9, length 64
IP 10.1.1.12 > X.X.X.X: ICMP echo request, id 305, seq 10, length 64
IP X.X.X.X > 10.1.1.12: ICMP echo reply, id 305, seq 10, length 64
IP 10.1.1.12 > X.X.X.X: ICMP echo request, id 305, seq 11, length 64
IP X.X.X.X > 10.1.1.12: ICMP echo reply, id 305, seq 11, length 64
^C
9 packets captured
9 packets received by filter
0 packets dropped by kernel

# tcpdump -i eth2 -qtln icmp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth2, link-type EN10MB (Ethernet), capture size 65535 bytes
IP 192.168.1.10 > X.X.X.X: ICMP echo request, id 360, seq 213, length 64
IP X.X.X.X > 192.168.1.10: ICMP echo reply, id 360, seq 213, length 64
IP 192.168.1.10 > X.X.X.X: ICMP echo request, id 360, seq 214, length 64
IP X.X.X.X > 192.168.1.10: ICMP echo reply, id 360, seq 214, length 64
IP 192.168.1.10 > X.X.X.X: ICMP echo request, id 360, seq 215, length 64
IP X.X.X.X > 192.168.1.10: ICMP echo reply, id 360, seq 215, length 64
IP 192.168.1.10 > X.X.X.X: ICMP echo request, id 360, seq 216, length 64
IP X.X.X.X > 192.168.1.10: ICMP echo reply, id 360, seq 216, length 64
IP 192.168.1.10 > X.X.X.X: ICMP echo request, id 360, seq 217, length 64
IP X.X.X.X > 192.168.1.10: ICMP echo reply, id 360, seq 217, length 64
^C
10 packets captured
10 packets received by filter
0 packets dropped by kernel

Và tại máy chủ từ xa, tôi thấy điều này:

# tcpdump -i eth0 -qtln icmp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
IP Y.Y.Y.Y > X.X.X.X: ICMP echo request, id 360, seq 1, length 64
IP X.X.X.X > Y.Y.Y.Y: ICMP echo reply, id 360, seq 1, length 64
IP Y.Y.Y.Y > X.X.X.X: ICMP echo request, id 360, seq 2, length 64
IP X.X.X.X > Y.Y.Y.Y: ICMP echo reply, id 360, seq 2, length 64
IP Y.Y.Y.Y > X.X.X.X: ICMP echo request, id 360, seq 3, length 64
IP X.X.X.X > Y.Y.Y.Y: ICMP echo reply, id 360, seq 3, length 64
IP Y.Y.Y.Y > X.X.X.X: ICMP echo request, id 360, seq 4, length 64
IP X.X.X.X > Y.Y.Y.Y: ICMP echo reply, id 360, seq 4, length 64
IP Y.Y.Y.Y > X.X.X.X: ICMP echo request, id 360, seq 5, length 64
IP X.X.X.X > Y.Y.Y.Y: ICMP echo reply, id 360, seq 5, length 64
IP Y.Y.Y.Y > X.X.X.X: ICMP echo request, id 360, seq 6, length 64
IP X.X.X.X > Y.Y.Y.Y: ICMP echo reply, id 360, seq 6, length 64
IP Y.Y.Y.Y > X.X.X.X: ICMP echo request, id 360, seq 7, length 64
IP X.X.X.X > Y.Y.Y.Y: ICMP echo reply, id 360, seq 7, length 64
IP Y.Y.Y.Y > X.X.X.X: ICMP echo request, id 360, seq 8, length 64
IP X.X.X.X > Y.Y.Y.Y: ICMP echo reply, id 360, seq 8, length 64
IP Y.Y.Y.Y > X.X.X.X: ICMP echo request, id 360, seq 9, length 64
IP X.X.X.X > Y.Y.Y.Y: ICMP echo reply, id 360, seq 9, length 64

18 packets captured
228 packets received by filter
92 packets dropped by kernel

Ở đây "XXXX" là IP của máy chủ từ xa của tôi và "YYYY" là IP công cộng của mạng cục bộ của tôi. Vì vậy, điều tôi hiểu là các gói ping được phát ra từ hộp Ubuntu (10.1.1.12), đến bộ định tuyến (10.1.1.1), từ đó đến bộ định tuyến tiếp theo (192.168.1.1) và đến máy chủ từ xa (XXXX ). Sau đó, họ quay trở lại bộ định tuyến Debian, nhưng họ không bao giờ lấy lại được hộp Ubuntu.

Tôi đang thiếu gì?

Đây là thiết lập bộ định tuyến Debian:

# ifconfig
eth1      Link encap:Ethernet  HWaddr 94:0c:6d:82:0d:98  
          inet addr:10.1.1.1  Bcast:10.1.1.255  Mask:255.255.255.0
          inet6 addr: fe80::960c:6dff:fe82:d98/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:105761 errors:0 dropped:0 overruns:0 frame:0
          TX packets:48944 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:40298768 (38.4 MiB)  TX bytes:44831595 (42.7 MiB)
          Interrupt:19 Base address:0x6000 

eth2      Link encap:Ethernet  HWaddr 6c:f0:49:a4:47:38  
          inet addr:192.168.1.10  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::6ef0:49ff:fea4:4738/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:38335992 errors:0 dropped:0 overruns:0 frame:0
          TX packets:37097705 errors:0 dropped:0 overruns:0 carrier:1
          collisions:0 txqueuelen:1000 
          RX bytes:4260680226 (3.9 GiB)  TX bytes:3759806551 (3.5 GiB)
          Interrupt:27 

eth3      Link encap:Ethernet  HWaddr 94:0c:6d:82:c8:72  
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
          Interrupt:20 Base address:0x2000 

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:16436  Metric:1
          RX packets:3408 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3408 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:358445 (350.0 KiB)  TX bytes:358445 (350.0 KiB)

tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:10.8.0.1  P-t-P:10.8.0.2  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:2767779 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1569477 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100 
          RX bytes:3609469393 (3.3 GiB)  TX bytes:96113978 (91.6 MiB)


# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.8.0.2        0.0.0.0         255.255.255.255 UH    0      0        0 tun0
127.0.0.1       0.0.0.0         255.255.255.255 UH    0      0        0 lo
10.8.0.0        10.8.0.2        255.255.255.0   UG    0      0        0 tun0
192.168.1.0     0.0.0.0         255.255.255.0   U     1      0        0 eth2
10.1.1.0        0.0.0.0         255.255.255.0   U     0      0        0 eth1
0.0.0.0         192.168.1.1     0.0.0.0         UG    0      0        0 eth2

# arp -n 
# Note: Here I have changed all the different MACs except the ones corresponding to the Ubuntu box (on 10.1.1.12 and 192.168.1.12)
Address                  HWtype  HWaddress           Flags Mask            Iface
192.168.1.118            ether   NN:NN:NN:NN:NN:NN   C                     eth2
192.168.1.72             ether   NN:NN:NN:NN:NN:NN   C                     eth2
192.168.1.94             ether   NN:NN:NN:NN:NN:NN   C                     eth2
192.168.1.102            ether   NN:NN:NN:NN:NN:NN   C                     eth2
10.1.1.12                ether   00:1e:67:15:2b:f0   C                     eth1
192.168.1.86             ether   NN:NN:NN:NN:NN:NN   C                     eth2
192.168.1.2              ether   NN:NN:NN:NN:NN:NN   C                     eth2
192.168.1.61             ether   NN:NN:NN:NN:NN:NN   C                     eth2
192.168.1.64             ether   NN:NN:NN:NN:NN:NN   C                     eth2
192.168.1.116            ether   NN:NN:NN:NN:NN:NN   C                     eth2
192.168.1.91             ether   NN:NN:NN:NN:NN:NN   C                     eth2
192.168.1.52             ether   NN:NN:NN:NN:NN:NN   C                     eth2
192.168.1.93             ether   NN:NN:NN:NN:NN:NN   C                     eth2
192.168.1.87             ether   NN:NN:NN:NN:NN:NN   C                     eth2
192.168.1.92             ether   NN:NN:NN:NN:NN:NN   C                     eth2
192.168.1.100            ether   NN:NN:NN:NN:NN:NN   C                     eth2
192.168.1.40             ether   NN:NN:NN:NN:NN:NN   C                     eth2
192.168.1.53             ether   NN:NN:NN:NN:NN:NN   C                     eth2
192.168.1.1              ether   NN:NN:NN:NN:NN:NN   C                     eth2
192.168.1.83             ether   NN:NN:NN:NN:NN:NN   C                     eth2
192.168.1.89             ether   NN:NN:NN:NN:NN:NN   C                     eth2
192.168.1.12             ether   00:1e:67:15:2b:f1   C                     eth2
192.168.1.77             ether   NN:NN:NN:NN:NN:NN   C                     eth2
192.168.1.66             ether   NN:NN:NN:NN:NN:NN   C                     eth2
192.168.1.90             ether   NN:NN:NN:NN:NN:NN   C                     eth2
192.168.1.65             ether   NN:NN:NN:NN:NN:NN   C                     eth2
192.168.1.41             ether   NN:NN:NN:NN:NN:NN   C                     eth2
192.168.1.78             ether   NN:NN:NN:NN:NN:NN   C                     eth2
192.168.1.123            ether   NN:NN:NN:NN:NN:NN   C                     eth2


# iptables -L -n
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination   

# iptables -L -n -t nat
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         
MASQUERADE  all  --  10.1.1.0/24         !10.1.1.0/24         
MASQUERADE  all  -- !10.1.1.0/24          10.1.1.0/24         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination 

Và đây là hộp Ubuntu:

# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:1e:67:15:2b:f1  
          inet addr:192.168.1.12  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::21e:67ff:fe15:2bf1/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:28785139 errors:0 dropped:0 overruns:0 frame:0
          TX packets:19050735 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:32068182803 (32.0 GB)  TX bytes:6061333280 (6.0 GB)
          Interrupt:16 Memory:b1a00000-b1a20000 

eth1      Link encap:Ethernet  HWaddr 00:1e:67:15:2b:f0  
          inet addr:10.1.1.12  Bcast:10.1.1.255  Mask:255.255.255.0
          inet6 addr: fe80::21e:67ff:fe15:2bf0/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:285086 errors:0 dropped:0 overruns:0 frame:0
          TX packets:12719 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:30817249 (30.8 MB)  TX bytes:2153228 (2.1 MB)
          Interrupt:16 Memory:b1900000-b1920000 

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:16436  Metric:1
          RX packets:86048 errors:0 dropped:0 overruns:0 frame:0
          TX packets:86048 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:11426538 (11.4 MB)  TX bytes:11426538 (11.4 MB)

# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG    0      0        0 eth0
0.0.0.0         10.1.1.1        0.0.0.0         UG    100    0        0 eth1
10.1.1.0        0.0.0.0         255.255.255.0   U     0      0        0 eth1
10.8.0.0        192.168.1.10    255.255.255.0   UG    0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 eth0
192.168.1.0     0.0.0.0         255.255.255.0   U     1      0        0 eth0

# arp -n
# Note: Here I have changed all the different MACs except the ones corresponding to the Debian box (on 10.1.1.1 and 192.168.1.10)
Address                  HWtype  HWaddress           Flags Mask            Iface
192.168.1.70             ether   NN:NN:NN:NN:NN:NN   C                     eth0
192.168.1.90             ether   NN:NN:NN:NN:NN:NN   C                     eth0
192.168.1.97             ether   NN:NN:NN:NN:NN:NN   C                     eth0
192.168.1.103            ether   NN:NN:NN:NN:NN:NN   C                     eth0
192.168.1.13             ether   NN:NN:NN:NN:NN:NN   C                     eth0
192.168.1.120                    (incomplete)                              eth0
192.168.1.111            ether   NN:NN:NN:NN:NN:NN   C                     eth0
192.168.1.118            ether   NN:NN:NN:NN:NN:NN   C                     eth0
192.168.1.51             ether   NN:NN:NN:NN:NN:NN   C                     eth0
192.168.1.102                    (incomplete)                              eth0
192.168.1.64             ether   NN:NN:NN:NN:NN:NN   C                     eth0
192.168.1.52             ether   NN:NN:NN:NN:NN:NN   C                     eth0
192.168.1.74                     (incomplete)                              eth0
192.168.1.94             ether   NN:NN:NN:NN:NN:NN   C                     eth0
192.168.1.121            ether   NN:NN:NN:NN:NN:NN   C                     eth0
192.168.1.72             ether   NN:NN:NN:NN:NN:NN   C                     eth0
192.168.1.87             ether   NN:NN:NN:NN:NN:NN   C                     eth0
192.168.1.91             ether   NN:NN:NN:NN:NN:NN   C                     eth0
192.168.1.71             ether   NN:NN:NN:NN:NN:NN   C                     eth0
192.168.1.78             ether   NN:NN:NN:NN:NN:NN   C                     eth0
192.168.1.83             ether   NN:NN:NN:NN:NN:NN   C                     eth0
192.168.1.88                     (incomplete)                              eth0
192.168.1.82             ether   NN:NN:NN:NN:NN:NN   C                     eth0
192.168.1.98             ether   NN:NN:NN:NN:NN:NN   C                     eth0
192.168.1.100            ether   NN:NN:NN:NN:NN:NN   C                     eth0
192.168.1.93             ether   NN:NN:NN:NN:NN:NN   C                     eth0
192.168.1.73             ether   NN:NN:NN:NN:NN:NN   C                     eth0
192.168.1.11             ether   NN:NN:NN:NN:NN:NN   C                     eth0
192.168.1.85                     (incomplete)                              eth0
192.168.1.112            ether   NN:NN:NN:NN:NN:NN   C                     eth0
192.168.1.89             ether   NN:NN:NN:NN:NN:NN   C                     eth0
192.168.1.65             ether   NN:NN:NN:NN:NN:NN   C                     eth0
192.168.1.81             ether   NN:NN:NN:NN:NN:NN   C                     eth0
10.1.1.1                 ether   94:0c:6d:82:0d:98   C                     eth1
192.168.1.53             ether   NN:NN:NN:NN:NN:NN   C                     eth0
192.168.1.116            ether   NN:NN:NN:NN:NN:NN   C                     eth0
192.168.1.61             ether   NN:NN:NN:NN:NN:NN   C                     eth0
192.168.1.10             ether   6c:f0:49:a4:47:38   C                     eth0
192.168.1.86                     (incomplete)                              eth0
192.168.1.119            ether   NN:NN:NN:NN:NN:NN   C                     eth0
192.168.1.66             ether   NN:NN:NN:NN:NN:NN   C                     eth0
192.168.1.1              ether   NN:NN:NN:NN:NN:NN   C                     eth0
192.168.1.1              ether   NN:NN:NN:NN:NN:NN   C                     eth1
192.168.1.92             ether   NN:NN:NN:NN:NN:NN   C                     eth0

# iptables -L -n
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination  

# iptables -L -n -t nat
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination 

Chỉnh sửa: Theo đề xuất của Patrick, tôi đã thực hiện một tcpdump con hộp Ubuntu và tôi thấy điều này:

# tcpdump -i eth1 -qtln icmp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth1, link-type EN10MB (Ethernet), capture size 65535 bytes
IP 10.1.1.12 > X.X.X.X: ICMP echo request, id 21967, seq 1, length 64
IP X.X.X.X > 10.1.1.12: ICMP echo reply, id 21967, seq 1, length 64
IP 10.1.1.12 > X.X.X.X: ICMP echo request, id 21967, seq 2, length 64
IP X.X.X.X > 10.1.1.12: ICMP echo reply, id 21967, seq 2, length 64
IP 10.1.1.12 > X.X.X.X: ICMP echo request, id 21967, seq 3, length 64
IP X.X.X.X > 10.1.1.12: ICMP echo reply, id 21967, seq 3, length 64
IP 10.1.1.12 > X.X.X.X: ICMP echo request, id 21967, seq 4, length 64
IP X.X.X.X > 10.1.1.12: ICMP echo reply, id 21967, seq 4, length 64
IP 10.1.1.12 > X.X.X.X: ICMP echo request, id 21967, seq 5, length 64
IP X.X.X.X > 10.1.1.12: ICMP echo reply, id 21967, seq 5, length 64
IP 10.1.1.12 > X.X.X.X: ICMP echo request, id 21967, seq 6, length 64
IP X.X.X.X > 10.1.1.12: ICMP echo reply, id 21967, seq 6, length 64
^C
12 packets captured
12 packets received by filter
0 packets dropped by kernel

Vì vậy, câu hỏi là: nếu tất cả các gói dường như đến và đi, tại sao ping báo cáo mất gói 100%?


cấu hình iptables của bạn trông như thế nào? Bạn đang chặn các gói ICMP?
Zypher

Không, tôi không phải. Tôi vừa thêm đầu ra iptables -L -ncho bộ định tuyến Debian. Nó trống rỗng.
El Barto

Tôi, nhưng những điều này không làm điều đó?:MASQUERADE all -- 10.1.1.0/24 !10.1.1.0/24 MASQUERADE all -- !10.1.1.0/24 10.1.1.0/24
El Barto

1
Điều gì về một tcpdump từ 'hộp Ubuntu'? Tcpdump từ 'bộ định tuyến debian' hiển thị rõ ràng các gói trả lời được gửi. Tcpdump hoạt động bên ngoài quá trình lọc mức kernel, vì vậy nếu kernel bỏ trả lời vì bất kỳ lý do gì, tcpdump trên 'ub Ubuntu box' ít nhất nên hiển thị chúng vào hộp. Một lưu ý khác, bạn đã cung cấp rất nhiều thông tin hữu ích theo cách rất rõ ràng, rất vui khi có ở đây.
Patrick

Cảm ơn, @Patrick. Tôi đã thực hiện một tcpdump trên hộp Ubuntu và các gói dường như sẽ quay trở lại, nhưng ping vẫn hiển thị mất gói 100%.
El Barto

Câu trả lời:


9

Từ câu hỏi của bạn trong các ý kiến:

Trên máy chủ từ xa tôi thấy yêu cầu và trả lời. Nhưng trên bộ định tuyến Debian tôi không thấy gì cả ... trên bất kỳ giao diện nào! Tôi đoán là bây giờ, hộp Ubuntu đang nói chuyện trực tiếp với bộ định tuyến trên 192.168.1.1. ĐỪNG gửi yêu cầu với IP 10.1.1.12, vì vậy nó không thể định tuyến lại. Nhưng tại sao??

Từ máy chủ Ubuntu:

# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG    0      0        0 eth0 <---
0.0.0.0         10.1.1.1        0.0.0.0         UG    100    0        0 eth1

Tại thời điểm bạn chụp bảng định tuyến này, bạn có mặc định số liệu thấp hơn thông qua việc eth0trỏ đến bộ định tuyến của bạn tại 192.168.1.1 (tức là không phải máy debian). Mặc định số liệu thấp hơn luôn được theo dõi trước, điều đó có nghĩa là Ubuntu muốn gửi tất cả lưu lượng truy cập không được kết nối trực tiếp tới 192.168.1.1.

Khi bạn có thời gian chết, vui lòng xóa mặc định đó bằng

route del default gw 192.168.1.1 dev eth0

Tôi vẫn đang giải quyết vấn đề lớn hơn (dấu vết sniffer ban đầu hiển thị phản hồi ping trên Ubuntu: eth1, nhưng không có lệnh ping nào được HĐH chấp nhận). Bạn có thể vui lòng ping từ Ubuntu: eth1 và đồng thời chụp trên Debian: eth2 để chứng minh điều gì đang xảy ra với NAT sau khi bạn buộc Ubuntu gửi lại tất cả lưu lượng truy cập thông qua Debian không?


Cảm ơn, câu trả lời của bạn về số liệu là hữu ích. Ngay bây giờ tôi không thể xóa tuyến mặc định qua 192.168.1.1, nhưng tôi sẽ kiểm tra lại sau. Hiện tại tcpdump trên Debian: eth2 không hiển thị gì cả, (tôi nghĩ vậy) vì các gói đang được gửi trực tiếp đến 192.168.1.1. Nhưng những gì xảy ra trước đây là trên bài viết gốc của tôi. Kiểm tra xem nó nói "Từ Bộ định tuyến Debian tôi thấy điều này".
El Barto

Thật khó để nói về vấn đề ban đầu ... đề nghị của tôi: sắp xếp lại mọi thứ sau khi bạn xóa mặc định ... thực hiện tất cả các ảnh chụp sniffer của bạn cùng một lúc. Ngoài ra, nếu có thể, hãy lấy thông tin địa chỉ mac src / Dest ngoài IP src / Dest ... thế giới hoàn hảo là sử dụng tshark(wireshark ở chế độ văn bản) và bạn có thể chỉ định trường nào bạn muốn chụp ... xem tôi câu hỏi ở đây cho một ví dụ. Cuối cùng, bạn có thể ping các điểm đến khác trên internet khi sự cố đang xảy ra không?
Mike Pennington

Cảm ơn, Mike. Tôi sẽ kiểm tra mà không có lộ trình mặc định trong một vài giờ khi mọi người rời khỏi văn phòng. Về những điểm đến khác, thật buồn cười. Tôi vừa thử ping google.com và tôi nhận được kết quả giống như trước đây tôi đã ping máy chủ từ xa của mình: Tôi có thể thấy các gói ICMP đến và đi qua các giao diện thích hợp nhưng pingvẫn hiển thị mất gói 100%. Tôi đoán sự khác biệt này giữa Google và máy chủ từ xa của tôi có liên quan đến bộ đệm tuyến. Tôi có đúng không
El Barto

Tôi chưa thể nói về lý do thất bại ping ... Tôi không có đủ bằng chứng. Đây là một vấn đề bất thường ... một vài gợi ý để giúp chẩn đoán. Sử dụng ping -v <destination>để xem liệu bạn có nhận được nhiều chẩn đoán hơn về lý do tại sao ping không thành công hay không ... Ngoài ra, vui lòng đi bộ ping của bạn, bắt đầu với localhost, sau đó là addr ip ethernet ip, sau đó là gw mặc định, một hop sau, và cho đến khi bạn tìm thấy chúng ở đâu bắt đầu thất bại Ngoài ra, vui lòng không chỉ định giao diện khi bạn làm như vậy ...
Mike Pennington

Tôi sẽ kiểm tra trong một vài giờ. Hiện tại nếu tôi ping mà không chỉ định giao diện, nó sẽ định tuyến qua cổng mặc định là 192.168.1.1.
El Barto

8

Bạn đã kiểm tra xem tính năng lọc đường dẫn ngược có được bật trên hộp Ubuntu không?

Đó là cài đặt sysctl ( net.ipv4.conf.all.rp_filter), nó sẽ lọc các gói đến nếu địa chỉ nguồn xuất hiện trên giao diện "sai" (nghĩa là không phải giao diện mà kernel sẽ định tuyến đến)

Bạn cũng có thể net.ipv4.conf.all.log_martians=1thử để xem những gì đang xảy ra.


1
Nhận xét này đã đưa tôi đi đúng hướng, nhưng tôi phải vô hiệu hóa nó cho giao diện cụ thể, như:sysctl net.ipv4.conf.eth1.rp_filter=0
konrad

2

Chìa khóa để thực hiện công việc này là tạo các bảng định tuyến riêng cho các giao diện khác nhau và báo cho ngăn xếp mạng sử dụng các bảng định tuyến này thay vì bảng mặc định.

Trong trường hợp của bạn, điều này sẽ làm cho ping -I eth2 8.8.8.8công việc:

# register the 'foo' table name and give it id 1
echo '1 foo' >> /etc/iproute2/rt_tables

# setup routing table 'foo'
ip route add 192.168.1.0/24 dev eth2 src 192.168.1.10 table foo
ip route add default via 192.168.1.1 table foo

# use routing table 'foo' for address 192.168.1.10
ip rule add from 192.168.1.10 table foo

Thông tin thêm về định tuyến cho nhiều đường lên có thể được tìm thấy trong LARTC HOWTO: http://lartc.org/howto/lartc.rpdb.mult Môn-links.html


-1

Nếu iptables của bạn hoàn toàn trống (ngoài tuyên bố giả trang) thì có thể bạn cần thêm chuỗi FORWARDING để cho phép lưu lượng truy cập qua hộp. Hãy thử bắt đầu từ một cấu hình làm việc đã biết-

http://wiki.debian.org/DebianFirewall#Using_iptables_for_IPv4_traffic

Điều này cũng bao gồm xác nhận rằng bạn được đặt để chuyển tiếp trong sysctl và như vậy.


Chuỗi FORWARD có chính sách được đặt thành CHẤP NHẬN, tiền phạt của nó. Tcpdump cũng cho thấy các gói được chuyển tiếp đúng (cả hai hướng).
Patrick

Có thể tôi đang thiếu một cái gì đó, nhưng tuyến đường mặc định của bạn từ hộp Ubuntu là thông qua một bộ định tuyến riêng chứ không phải hộp Debian. Trên hộp Ubuntu, bạn chỉ định bạn muốn các gói nguồn từ 10.1.1.12 nhưng tuyến mặc định của bạn là thông qua 192.168.1.1. Nếu bạn muốn bộ định tuyến Debian dịch lưu lượng này thì máy chủ Ubuntu cần định tuyến lưu lượng ra bên ngoài thông qua thiết bị đó chứ không phải bộ định tuyến. Hãy thử thêm một tuyến đường đến máy chủ từ xa của bạn thông qua hộp Debian và xem cách nó hoạt động.
rnxrx

Vấn đề là hộp Debian hiện đang đứng sau một bộ định tuyến khác. Vì vậy, đường dẫn mà các gói nên đi theo là từ hộp Ubuntu, đến hộp Debian, thông qua bộ định tuyến khác đến máy chủ từ xa trên Internet (và trở lại). Từ những gì tôi thấy trên tcpdump, điều này dường như đang hoạt động, nhưng tại một số điểm bị thiếu vì pingbáo cáo các gói bị mất.
El Barto

-1

Bạn cần cấu hình NAT.

Trong cấu hình thông thường, mạng cục bộ sử dụng một trong các mạng con địa chỉ IP "riêng tư" được chỉ định. Một bộ định tuyến trên mạng đó có một địa chỉ riêng trong không gian địa chỉ đó. Bộ định tuyến cũng được kết nối với Internet với một địa chỉ "công cộng" được chỉ định bởi nhà cung cấp dịch vụ Internet. Khi lưu lượng truyền từ mạng cục bộ sang Internet, địa chỉ nguồn trong mỗi gói được dịch nhanh chóng từ một địa chỉ riêng sang địa chỉ công cộng. Bộ định tuyến theo dõi dữ liệu cơ bản về từng kết nối hoạt động (đặc biệt là địa chỉ đích và cổng). Khi trả lời trở lại bộ định tuyến, nó sử dụng dữ liệu theo dõi kết nối mà nó được lưu trữ trong giai đoạn ra ngoài để xác định địa chỉ riêng trên mạng nội bộ để chuyển tiếp trả lời.


NAT đã được cấu hình. Lưu ý rằng các gói trong cả tcpdump trên bộ định tuyến và tcpdump trên máy chủ từ xa đều hiển thị các gói đã được SNATed đến địa chỉ mới. Các tcpdumps cũng hiển thị các gói trả về đang được khôi phục đúng cách.
Patrick
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.