인터페이스에 두 번째 IP 추가 - Linux(Android)

인터페이스에 두 번째 IP 추가 - Linux(Android)

아래와 같이 로컬 네트워크가 설정되어 있습니다. 지역 네트워크

브리지의 고정 IP는 10.245.245.253/30으로 설정됩니다. 내 Android 기기의 IP는 DHCP를 통해 172.17.2.200으로 설정되어 있습니다. 인터페이스 IP 설정을 10.245.245.254/30으로 변경하면 작동합니다.

하지만 DHCP IP 설정을 원하지만보조 IP 주소 또는 인터페이스로의 경로,그래서 할 수 있어네트워크에 접속하다그리고내 다리를 방문동시에.

이 명령을 시도했지만 여전히 작동하지 않습니다.

ip addr add 10.245.245.254/30 dev wlan0

이것이 내 구성입니다.

130|shell@msm8916_64:/ # busybox ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: dummy0: <BROADCAST,NOARP> mtu 1500 qdisc noop
    link/ether 76:0d:fc:b7:9d:4f brd ff:ff:ff:ff:ff:ff
3: sit0: <NOARP> mtu 1480 qdisc noop
    link/sit 0.0.0.0 brd 0.0.0.0
4: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq qlen 1000
    link/ether 00:0a:f5:80:c2:50 brd ff:ff:ff:ff:ff:ff
    inet 172.17.2.245/24 brd 172.17.2.255 scope global wlan0
       valid_lft forever preferred_lft forever
    inet 10.245.245.254/30 scope global wlan0
       valid_lft forever preferred_lft forever
    inet6 fe80::20a:f5ff:fe80:c250/64 scope link
       valid_lft forever preferred_lft forever
5: p2p0: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq qlen 1000
    link/ether 02:0a:f5:80:c2:50 brd ff:ff:ff:ff:ff:ff

shell@msm8916_64:/ # busybox ip route show
10.245.245.252/30 dev wlan0  src 10.245.245.254
172.17.2.0/24 dev wlan0  src 172.17.2.245  metric 304

shell@msm8916_64:/ # busybox traceroute 10.245.245.253
traceroute to 10.245.245.253 (10.245.245.253), 30 hops max, 38 byte packets
 1  172.17.2.1 (172.17.2.1)  12.263 ms  2.305 ms  2.102 ms

내 IP를 ping할 수 있습니다.

130|shell@msm8916_64:/ # ping 10.245.245.254
PING 10.245.245.254 (10.245.245.254) 56(84) bytes of data.
64 bytes from 10.245.245.254: icmp_seq=1 ttl=64 time=0.775 ms
64 bytes from 10.245.245.254: icmp_seq=2 ttl=64 time=0.201 ms

어떤 아이디어가 있나요?

편집 1: 큰 그림을 명확히 하기 위해. 무선 브리지는 제가 개발 중인 장치입니다. 이더넷 케이블을 연결하면 장치는 네트워크에 대한 무선 액세스를 제공합니다. 나는 그 네트워크에 대해 아무것도 모른다. 이것이 바로 내가 연결된 네트워크에 DHCP 서버가 작동하는지 확신할 수 없기 때문에 무선 브리지에서 DHCP 클라이언트를 비활성화한 이유입니다.

펌웨어 업데이트로 인해 무선 브리지의 IP 주소를 설정하고 싶습니다. 그래서 저는 외부와 충돌할 가능성이 낮은 IP 주소를 선택합니다.

내 Android 기기에서직장 인터넷 연결그리고내 다리를 방문존재하다동시에. 그래서 고정 경로를 추가하고 싶습니다.

내 구성에 대한 자세한 내용

shell@msm8916_64:/ $ busybox ip route get 10.245.245.253
10.245.245.253 via 172.17.2.1 dev wlan0  src 172.17.2.245

더있다

1|shell@msm8916_64:/ $ busybox ip rule
0:      from all lookup local
10000:  from all fwmark 0xc0000 lookup 99
13000:  from all fwmark 0x10063 lookup 97
13000:  from all fwmark 0x10069 lookup 236
14000:  from all lookup 236
15000:  from all lookup 99
16000:  from all lookup 98
17000:  from all lookup 97
19000:  from all fwmark 0x69 lookup 236
22000:  from all lookup 236
23000:  from all lookup main
32000:  from all unreachable

더있다:

shell@msm8916_64:/ # ip route list table main
10.245.245.252/30 dev wlan0  proto kernel  scope link  src 10.245.245.254
172.17.2.0/24 dev wlan0  proto kernel  scope link  src 172.17.2.245  metric 304

shell@msm8916_64:/ # ip route list table local
broadcast 10.245.245.252 dev wlan0  proto kernel  scope link  src 10.245.245.254
local 10.245.245.254 dev wlan0  proto kernel  scope host  src 10.245.245.254
broadcast 10.245.245.255 dev wlan0  proto kernel  scope link  src 10.245.245.254
broadcast 127.0.0.0 dev lo  proto kernel  scope link  src 127.0.0.1
local 127.0.0.0/8 dev lo  proto kernel  scope host  src 127.0.0.1
local 127.0.0.1 dev lo  proto kernel  scope host  src 127.0.0.1
broadcast 127.255.255.255 dev lo  proto kernel  scope link  src 127.0.0.1
broadcast 172.17.2.0 dev wlan0  proto kernel  scope link  src 172.17.2.245
local 172.17.2.245 dev wlan0  proto kernel  scope host  src 172.17.2.245
broadcast 172.17.2.255 dev wlan0  proto kernel  scope link  src 172.17.2.245

1|shell@msm8916_64:/ # iptables -t main -n -L
iptables v1.4.20: can't initialize iptables table `main': Table does not exist (do you need to insmod?)
Perhaps iptables or your kernel needs to be upgraded.

답변1

여기에는 4개의 추가 라우팅 테이블과 추가 라우팅 규칙으로 표시된 방화벽 설정이 포함된 상당히 복잡한 라우팅 설정이 있습니다. 이것이 거의 확실히 문제입니다. 따라서 exta 테이블(등)을 살펴보고 ip route list table 99, 방화벽 규칙( iptables -t table_name -n -L모든 경우 table_name)을 살펴보고 무슨 일이 일어나고 있는지 파악하세요.

편집하다

라우팅 테이블 iptables은 방화벽 테이블( )과 전혀 다르기 때문에 방화벽 테이블이 아닌 라우팅 테이블이므로 iptables -t main -n -L의미가 없습니다 .main

및 등 ip route list table 97의 출력을 사용하여 질문을 편집하십시오 . 또한 을 포함한 etc. 및 규칙에 언급될 수 있는 기타 테이블 에 대한 출력도 있습니다 . 출력이 너무 길면 모든 것을 붙여넣기 상자에 넣고 링크하세요.ip route list table 9899236iptables -t filter -n -Liptables -t nat -n -Lmangleraw

iptables읽고 싶다면 온라인에서 정책 라우팅에 대한 많은 튜토리얼을 찾을 수 있습니다. 하지만 두 번째 주소가 소스 주소가 되는 것을 방해하는 요소가 무엇인지 알아낸다고 해도 더 어려운 작업은 알아내는 것입니다.이 모든 규칙이 있고, 이를 만든 사람들은 무엇을 달성하고 싶었으며, 다른 사항을 위반하지 않고 두 번째 주소가 작동하도록 규칙을 어떻게 변경할 수 있습니까?

따라서 "어떤 종류의 방화벽 규칙이 이를 차단하기 때문에"라는 대답에 만족하신다면 그대로 두셔도 됩니다. :-)

관련 정보