Discussion:
[support] External DHCP problem
Roland Wilhelm
2013-11-04 17:40:52 UTC
Permalink
An HTML attachment was scrubbed...
URL: <http://ml.nautilus6.org/pipermail/support/attachments/20131104/805f2ddf/attachment-0001.html>
Roland Wilhelm
2013-11-05 19:51:45 UTC
Permalink
Am 04.11.2013 18:40, schrieb Roland Wilhelm:
> Hi everyone,
> I'm currently working with UMIP (MCoA, DSMIP6 and NEMO) on Linux
> Kernel 3.10.17. I set the below shown testbed up, to test my system.
> The goal is to use an external DHCP, integrated in ConnMan to manage
> all the WiFi APs and different technologies.
> First of all, i tested the system with the integrated DHCP in UMIP and
> everthing works perfectly.
> After all, i uncommented the line "UseDhcp true" in the UMIP config
> file and the communication between MR (wlan0) and HA (eth0) doesn't
> work anymore.
> I used the following procedure:
> 1. Uncommented "UseDhcp true" (I also tried UseDhcp false)
> 2. Start UMIP
> 3. dhclient wlan0 (Interface configuration, routing tables, XFRM
> policy and state see below)
> Pinging the HA from the MR brought the following results:
> 1. According to Wireshark, the encapsulation seems to be IPv4 (outer
> Header) | ICMP | IPv4 (src: CoAv4, dst: HAv4) | UDP (DSMIP6 4191) |
> IPv6 (src: HoAv6, dst: HAv6) | ICMPv6. The outer header with source
> address CoAv4 and destination CoAv4 (Yes, they are identically) and
> the following ICMP looks really strange!
> 2. So, i set the following rules within netfilter to trace the packet flow
> iptables -t raw -A OUTPUT -j LOG --log-prefix "** RAW OUT ** "
> iptables -t mangle -A OUTPUT -j LOG --log-prefix "** MANGLE OUT ** "
> iptables -t mangle -A POSTROUTING -j LOG --log-prefix "** MANLGE POST
> ** "
> My Questions are:
> 1. Have anyone ever used an external DHCP with UMIP?
> 2. Does anyone have an idea, where the strange outer header and ICMP
> come from?
> Thanks.
> Regards,
> Roland
> ************* SYSLOG TRACE **************************************
> Nov 4 17:47:53 IPD-PC kernel: [ 1383.691567] ** RAW OUT ** IN=
> OUT=wlan0 SRC=192.168.0.28 DST=200.0.0.10 LEN=132 TOS=0x00 PREC=0x00
> TTL=64 ID=1690 PROTO=UDP SPT=4191 DPT=4191 LEN=112
> Nov 4 17:47:53 IPD-PC kernel: [ 1383.691579] ** MANGLE OUT ** IN=
> OUT=wlan0 SRC=192.168.0.28 DST=200.0.0.10 LEN=132 TOS=0x00 PREC=0x00
> TTL=64 ID=1690 PROTO=UDP SPT=4191 DPT=4191 LEN=112
> Nov 4 17:47:53 IPD-PC kernel: [ 1383.691588] ** MANLGE POST ** IN=
> OUT=wlan0 SRC=192.168.0.28 DST=200.0.0.10 LEN=132 TOS=0x00 PREC=0x00
> TTL=64 ID=1690 PROTO=UDP SPT=4191 DPT=4191 LEN=112
> Nov 4 17:47:54 IPD-PC kernel: [ 1384.692214] ** RAW OUT ** IN= OUT=lo
> SRC=192.168.0.28 DST=192.168.0.28 LEN=160 TOS=0x00 PREC=0xC0 TTL=64
> ID=6347 PROTO=ICMP TYPE=3 CODE=1 [SRC=192.168.0.28 DST=200.0.0.10
> LEN=132 TOS=0x00 PREC=0x00 TTL=64 ID=62305 PROTO=UDP SPT=4191 DPT=4191
> LEN=112 ]
> Nov 4 17:47:54 IPD-PC kernel: [ 1384.692237] ** MANGLE OUT ** IN=
> OUT=lo SRC=192.168.0.28 DST=192.168.0.28 LEN=160 TOS=0x00 PREC=0xC0
> TTL=64 ID=6347 PROTO=ICMP TYPE=3 CODE=1 [SRC=192.168.0.28
> DST=200.0.0.10 LEN=132 TOS=0x00 PREC=0x00 TTL=64 ID=62305 PROTO=UDP
> SPT=4191 DPT=4191 LEN=112 ]
> Nov 4 17:47:54 IPD-PC kernel: [ 1384.692257] ** MANLGE POST ** IN=
> OUT=lo SRC=192.168.0.28 DST=192.168.0.28 LEN=160 TOS=0x00 PREC=0xC0
> TTL=64 ID=6347 PROTO=ICMP TYPE=3 CODE=1 [SRC=192.168.0.28
> DST=200.0.0.10 LEN=132 TOS=0x00 PREC=0x00 TTL=64 ID=62305 PROTO=UDP
> SPT=4191 DPT=4191 LEN=112 ]
> *** TESTBED MIPv6, MCoA, DSMIP and NEMO ***
>
> Internet access
> ------------------------
> |
> |
> | wlan0
> -------------------
> | Gateway |
> -------------------
> | eth0 (192.168.0.1)
> |
> | 192.168.0.0/24
> ------------------------------
> |
> |
> | eth1 (192.168.0.2)
> ----------------------------- dummy0 (2010::1/64)
> | Home Agent |-------------------------------------
> | NAT64/DNS64 |
> ---------------------------
> | eth0 (HAv4 200.0.0.10, HAv6 2010::1, HoA MR 2010::2)
> |
> | 200.0.0.0/24
> ---------------------------------
> | |
> | |
> | 200.0.0.53 | 200.0.0.55
> ------------------ ------------
> | Ethernet | | Wifi |
> | router | | AP |
> ------------------ -----------
> | | 192.168.0.0/24
> |
> ---------------------------------------------------------------------
> | 192.168.42.0/24 |
> --------------------- |
> | |
> | |
> | eth0 (CoAv4#1 192.168.42.100) |
> | |
> ---------- wlan0 (CoAv4#2 192.168.0.28) |
> | MR
> |-----------------------------------------------------------------------------
>
> ----------
> | wlan2 (EITHER APv6 2010:0:0:2::1/64 or APv4 192.168.100.1)
> |
> | EITHER MNPv6 2010:0:0:2::/64 or MNPv4 192.168.100.0/24
> -----------------------------------------------------
> | |
> | |
> MNN#1 MNN#2 ...
> ***** Interface wlan0 configuration *************
> wlan0 Link encap:Ethernet Hardware Adresse 00:23:14:22:9e:a0
> inet Adresse:192.168.0.28 Bcast:192.168.0.255
> Maske:255.255.255.0
> inet6-Adresse: 2010::2/128 G?ltigkeitsbereich:Global
> inet6-Adresse: fe80::223:14ff:fe22:9ea0/64
> G?ltigkeitsbereich:Verbindung
> inet6-Adresse: 192.168.0.28/128 G?ltigkeitsbereich:Global
> UP BROADCAST RUNNING MULTICAST MTU:1500 Metrik:1
> RX packets:133 errors:0 dropped:0 overruns:0 frame:0
> TX packets:1417 errors:0 dropped:0 overruns:0 carrier:0
> Kollisionen:0 Sendewarteschlangenl?nge:1000
> RX-Bytes:30638 (30.6 KB) TX-Bytes:146893 (146.8 KB)
> ***** IPv4 routing table (route -n) *************
> Kernel-IP-Routentabelle
> Ziel Router Genmask Flags Metric Ref
> Use Iface
> 0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 wlan0
> 192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 wlan0
> ***** IPv6 routing table (route -6) *************
> Kernel-IPv6-Routentabelle
> Destination Next Hop Flag Met Ref Use If
> 192.168.0.28/128 :: U 256 0 0 wlan0
> 2010::2/128 :: U 256 0 0 wlan0
> fe80::/64 :: U 256 0 0 wlan0
> ::/0 :: U 1024 0 0 wlan0
> ::/0 :: !n -1 1 441 lo
> ::1/128 :: Un 0 1 4 lo
> 192.168.0.28/128 :: Un 0 1 0 lo
> 2010::2/128 :: Un 0 1 0 lo
> fe80::223:14ff:fe22:9ea0/128 :: Un 0 1 0 lo
> ff00::/8 :: U 256 0 3 wlan0
> ::/0 :: !n -1 1 441 lo
> ***** XFRM policy *************
> src 2010::1/128 dst 2010::2/128
> dir in priority 6 ptype sub
> tmpl src :: dst ::
> proto route2 reqid 0 mode ro
> level use
> src ::/0 dst ::/0 proto ipv6-icmp type 136
> dir out priority 12 ptype sub
> src ::/0 dst ::/0 proto mobility-header
> dir out priority 12 ptype sub
> src 200.0.0.10/32 dst 192.168.0.28/32 proto udp
> dir in priority 2 ptype sub
> tmpl src 200.0.0.10 dst 192.168.0.28
> proto 166 reqid 0 mode tunnel
> level use
> src 2010::2/128 dst 2010::1/128 proto mobility-header type 5
> dir out priority 2 ptype sub
> tmpl src 192.168.0.28 dst 200.0.0.10
> proto 166 reqid 0 mode tunnel
> level use
> src 2010::2/128 dst ::/0
> dir out priority 14 ptype sub
> tmpl src 192.168.0.28 dst 200.0.0.10
> proto 166 reqid 0 mode tunnel
> level use
> src 2010::2/128 dst ::/0
> dir out priority 13 ptype sub
> mark 20/0xffffffff
> tmpl src 192.168.0.28 dst 200.0.0.10
> proto 166 reqid 0 mode tunnel
> level use
> src 192.168.100.0/24 dst 0.0.0.0/0
> dir out priority 14 ptype sub
> tmpl src 192.168.0.28 dst 200.0.0.10
> proto 166 reqid 0 mode tunnel
> level use
> src 192.168.100.0/24 dst 0.0.0.0/0
> dir out priority 13 ptype sub
> mark 20/0xffffffff
> tmpl src 192.168.0.28 dst 200.0.0.10
> proto 166 reqid 0 mode tunnel
> level use
> src 2010:0:0:2::/64 dst ::/0
> dir out priority 14 ptype sub
> tmpl src 192.168.0.28 dst 200.0.0.10
> proto 166 reqid 0 mode tunnel
> level use
> src 2010:0:0:2::/64 dst ::/0
> dir out priority 13 ptype sub
> mark 20/0xffffffff
> tmpl src 192.168.0.28 dst 200.0.0.10
> proto 166 reqid 0 mode tunnel
> level use
> src ::/0 dst ::/0
> dir in priority 19 ptype sub
> tmpl src :: dst ::
> proto route2 reqid 0 mode ro
> level use
> src ::/0 dst ::/0 proto mobility-header type 7
> dir out priority 3 ptype sub
> src 192.168.100.0/24 dst 192.168.100.0/24
> dir out priority 0 ptype sub
> src 2010:0:0:2::/64 dst 2010:0:0:2::/64
> dir out priority 0 ptype sub
> src 2010::2/128 dst 2010:0:0:2::/64
> dir out priority 0 ptype sub
> src 2010::2/128 dst 2010::2/128
> dir in priority 0 ptype sub
> src 2010::2/128 dst 2010::2/128
> dir out priority 0 ptype sub
> src ::/0 dst ::/0 proto ipv6-icmp type 0
> dir out priority 12 ptype sub
> src ::/0 dst ::/0 proto ipv6-icmp type 136
> dir out priority 3 ptype main
> src ::/0 dst ::/0 proto ipv6-icmp type 135
> dir out priority 12 ptype main
> src ::/0 dst ::/0 proto ipv6-icmp type 135
> dir out priority 12 ptype sub
> src ::/0 dst ::/0 proto mobility-header type 5
> dir in priority 9 ptype sub
> tmpl src :: dst ::
> proto hao reqid 0 mode ro
> level use
> ***** XFRM states *************
> src 200.0.0.10 dst 192.168.0.28
> proto 166 reqid 0 mode tunnel
> replay-window 0 flag nopmtudisc
> encap type 4 sport 4191 dport 4191 addr 0.0.0.0
> sel src 200.0.0.10/32 dst 192.168.0.28/32 proto udp
> src 192.168.0.28 dst 200.0.0.10
> proto 166 reqid 0 mode tunnel
> replay-window 0 flag nopmtudisc
> encap type 4 sport 4191 dport 4191 addr 0.0.0.0
> sel src ::/0 dst ::/0
> src :: dst ::
> proto route2 reqid 0 mode ro
> replay-window 0 flag wildrecv
> coa ::
> sel src ::/0 dst ::/0
> src :: dst ::
> proto hao reqid 0 mode ro
> replay-window 0 flag wildrecv
> coa ::
> sel src ::/0 dst ::/0
> ***** MR config file *********************
> # Sample UMIP configuration file for a
> # NEMO, DSMIPv6 and MCoA-enabled Mobile Router
> NodeConfig MN;
> # Set DebugLevel to 0 if debug messages are not wished
> DebugLevel 10;
> # Enable the optimistic handovers
> OptimisticHandoff enabled;
> # The Binding Lifetime (in sec.)
> MnMaxHaBindingLife 60;
> # Disable RO
> DoRouteOptimizationCN disabled;
> DoRouteOptimizationMN disabled;
> UseCnBuAck disabled;
> MnDiscardHaParamProb enabled;
> # Enable DSMIPv6
> MnUseDsmip6 enabled;
> # Enable the use of IPv4 traffic
> # inside the mobile network.
> MnUseIPv4Traffic enabled;
> # Use NEMO Explicit Mode
> MobRtrUseExplicitMode enabled;
> # List of the interfaces that will be used
> # on the mobile node. All of the interfaces will
> # be used at the same time (with MCoA).
> Interface "eth0" {
> MnIfPreference 1;
> # The integrated DHCPv4 client can be used by
> # un-commenting the below line, or simply use
> # an external DHCPv4 client.
> #UseDhcp true;
> # BID of the interface
> Bid 10;
> #Tunnel true;
> }
> Interface "wlan0" {
> MnIfPreference 2;
> # BID of the interface
> Bid 20;
> #UseDhcp true;
> #Tunnel true;
> }
> # Replace eth0 with one of the interface used on
> # the mobile node.
> MnHomeLink "eth0" {
> IsMobRtr enabled;
> HomeAgentAddress 2010::1;
> HomeAddress 2010::2/64 (2010:0:0:2::/64);
> # Enable MCoA and register the interfaces used for MCoA
> # Replace eth0 and wlan0 with the egress interface names.
> MCoAReg enabled;
> MCoAIface "eth0", "wlan0";
> # DSMIPv6 - The IPv4 parameters must be statically set. Put
> # here the IPv4 HoA and IPv4 MNP if any.
> HomeAgentV4Address 200.0.0.10;
> HomeV4Address 192.168.10.1/24 (192.168.100.0/24);
> }
> # Disable IPsec. It is not compatible with MCoA and DSMIPv6.
> UseMnHaIPsec disabled;
> KeyMngMobCapability disabled;
> *********** UMIP Log ********************
> TCP MSS: 1200
> RTNETLINK answers: Network is down
> net.ipv4.conf.default.rp_filter = 0
> net.ipv4.conf.all.rp_filter = 0
> net.ipv4.conf.eth0.rp_filter = 0
> net.ipv4.conf.wlan0.rp_filter = 0
> net.ipv4.conf.wlan2.rp_filter = 0
> net.ipv4.ip_forward = 1
> net.ipv6.conf.all.forwarding = 1
> net.ipv4.ip_no_pmtu_disc = 1
> mip6d: Kein Prozess gefunden
> mip6d[15954]: UMIP Mobile IPv6 for Linux v1.0 started (Mobile Node)
> Mon Nov 4 16:37:10 main: UMIP Mobile IPv6 for Linux started in debug
> mode, not detaching from terminal
> Mon Nov 4 16:37:10 conf_show: Configuration file =
> /opt/Entwicklung/configfiles/mn/mr_nemo.conf
> Mon Nov 4 16:37:10 conf_show: VT hostname = localhost
> Mon Nov 4 16:37:10 conf_show: VT service = 7777
> Mon Nov 4 16:37:10 conf_show: NodeConfig = 1
> Mon Nov 4 16:37:10 conf_show: DebugLevel = 10
> Mon Nov 4 16:37:10 conf_show: DebugLogFile = stderr
> Mon Nov 4 16:37:10 conf_show: DoRouteOptimizationCN = disabled
> Mon Nov 4 16:37:10 conf_show: NonVolatileBindingCache = disabled
> Mon Nov 4 16:37:10 conf_show: PolicyModulePath = [internal]
> Mon Nov 4 16:37:10 conf_show: KeyMngMobCapability = disabled
> Mon Nov 4 16:37:10 conf_show: UseMnHaIPsec = disabled
> Mon Nov 4 16:37:10 conf_show: MnMaxHaBindingLife = 60
> Mon Nov 4 16:37:10 conf_show: MnMaxCnBindingLife = 420
> Mon Nov 4 16:37:10 conf_show: MnUseDsmip6 = enabled
> Mon Nov 4 16:37:10 conf_show: MnUseIPv4Traffic = enabled
> Mon Nov 4 16:37:10 conf_show: MnDiscardHaParamProb = enabled
> Mon Nov 4 16:37:10 conf_show: MnResetDhaadAtHome = disabled
> Mon Nov 4 16:37:10 conf_show: MnFlushAllAtHome = disabled
> Mon Nov 4 16:37:10 conf_show: MnMaxHaConsecutiveResends = 5
> Mon Nov 4 16:37:10 conf_show: MnMaxCnConsecutiveResends = 0
> Mon Nov 4 16:37:10 conf_show: SendMobPfxSols = enabled
> Mon Nov 4 16:37:10 conf_show: DoRouteOptimizationMN = disabled
> Mon Nov 4 16:37:10 conf_show: MnUseAllInterfaces = disabled
> Mon Nov 4 16:37:10 conf_show: UseCnBuAck = disabled
> Mon Nov 4 16:37:10 conf_show: InterfaceInitialInitDelay = 2.000000
> Mon Nov 4 16:37:10 conf_show: MnRouterProbes = 0
> Mon Nov 4 16:37:10 conf_show: MnRouterProbeTimeout = 0.000000
> Mon Nov 4 16:37:10 conf_show: InitialBindackTimeoutFirstReg = 1.500000
> Mon Nov 4 16:37:10 conf_show: InitialBindackTimeoutReReg = 1.000000
> Mon Nov 4 16:37:10 conf_show: InitialSolicitTimer = 3.000000
> Mon Nov 4 16:37:10 conf_show: OptimisticHandoff = enabled
> Mon Nov 4 16:37:10 conf_show: MobRtrUseExplicitMode = enabled
> Mon Nov 4 16:37:10 conf_show: NoHomeReturn = disabled
> Mon Nov 4 16:37:10 xfrm_cn_init: Adding policies and states for CN
> Mon Nov 4 16:37:10 xfrm_mn_init: Adding policies and states for MN
> Mon Nov 4 16:37:10 conf_home_addr_info: IPv6 Home Address
> 2010:0:0:0:0:0:0:2
> Mon Nov 4 16:37:10 conf_home_addr_info: IPv4 Home Address 192.168.10.1
> Mon Nov 4 16:37:10 conf_home_addr_info: Mobile Router capability
> Mon Nov 4 16:37:10 conf_home_addr_info: IPv6 Mobile Network Prefix
> 2010:0:0:2:0:0:0:0/64
> Mon Nov 4 16:37:10 conf_home_addr_info: IPv4 Mobile Network Prefix
> 192.168.100.0/24
> Mon Nov 4 16:37:10 conf_home_addr_info: MCoA enabled for interface(s):
> Mon Nov 4 16:37:10 conf_home_addr_info: - eth0 (index: 3)
> Mon Nov 4 16:37:10 conf_home_addr_info: - wlan0 (index: 4)
> Mon Nov 4 16:37:10 conf_home_addr_info: HA address 2010:0:0:0:0:0:0:1
> Mon Nov 4 16:37:10 conf_home_addr_info: Added new home_addr_info
> successfully
> Mon Nov 4 16:37:10 dhcp_dna_init: dhcp_dna: DHCP disabled for
> interface: 3 (eth0)
> Mon Nov 4 16:37:10 dhcp_dna_init: dhcp_dna: DHCP disabled for
> interface: 4 (wlan0)
> Mon Nov 4 16:37:10 dhcp_dna_init: dhcp_dna: dhcp_listen thread NOT
> started
> mip6d[15954]: Interface 1 (lo):type 772 unsupported
> Mon Nov 4 16:37:10 __md_discover_router: discover link on iface wlan0 (4)
> Mon Nov 4 16:37:10 __md_discover_router: Triggering DHCP config on
> iface wlan0 (4)
> Mon Nov 4 16:37:10 trigger_dhcp_configuration: dhcp_dna: DHCP not
> configured to run on interface 4
> mip6d[15954]: Interface 6 (mon.wlan2):type 803 unsupported
> mip6d[15954]: Interface 1 (lo):type 772 unsupported
> mip6d[15954]: Interface 6 (mon.wlan2):type 803 unsupported
> Mon Nov 4 16:37:12 __md_discover_router: discover link on iface wlan0 (4)
> Mon Nov 4 16:37:12 __md_discover_router: Triggering DHCP config on
> iface wlan0 (4)
> Mon Nov 4 16:37:12 trigger_dhcp_configuration: dhcp_dna: DHCP not
> configured to run on interface 4
> Mon Nov 4 16:37:14 __md_discover_router: discover link on iface wlan0 (4)
> Mon Nov 4 16:37:14 __md_discover_router: Triggering DHCP config on
> iface wlan0 (4)
> Mon Nov 4 16:37:34 trigger_dhcp_configuration: dhcp_dna: DHCP not
> configured to run on interface 4
> Mon Nov 4 16:37:36 __md_add_v4_rules_routes: installing IPv4 rule and
> route for CoA with BID 20
> Mon Nov 4 16:37:36 __md_update_v4_iface_routes: installing default
> IPv6 route via iface wlan0 (4)
> Mon Nov 4 16:37:36 __md_update_v4_iface_routes: failed to add default
> IPv6 route via iface wlan0 (4), it probably already exists
> Mon Nov 4 16:37:36 mcoa_mn_chk_ho_verdict: Verdict 3 for iface 4
> Mon Nov 4 16:37:36 mn_move: 2232
> Mon Nov 4 16:37:36 mn_move: in foreign net
> Mon Nov 4 16:37:36 mn_block_rule_add: blackhole is already set.
> Mon Nov 4 16:37:36 mn_send_home_bu: 948
> Mon Nov 4 16:37:36 mn_get_home_lifetime: CoA lifetime 71999 s, HoA
> lifetime 4294967295 s, BU lifetime 60 s
> Mon Nov 4 16:37:36 __tunnel_add: created tunnel 4 from 2010::2 to
> 2010::1 user count 1
> Mon Nov 4 16:37:36 flag_hoa: set HoA 2010:0:0:0:0:0:0:2/128 iif 4
> flags 12 preferred_time 4294967295 valid_time 4294967295
> Mon Nov 4 16:37:36 process_first_home_bu: New bule for HA
> Mon Nov 4 16:37:36 xfrm_pre_bu_add_bule: total BULE: 1 (0 IPv6 - 1 IPv4)
> Mon Nov 4 16:37:36 xfrm_udp_out_encap_add: Updating output UDP
> encaps. policies and states
> Mon Nov 4 16:37:36 xfrm_udp_in_encap_add: Adding input UDP encaps. state
> Mon Nov 4 16:37:36 bul_add: Adding bule
> == BUL_ENTRY ==
> IPv6 Home address 2010:0:0:0:0:0:0:2
> IPv4 Home address 192.168.10.1
> Care-of address 192.168.0.28
> CN address 2010:0:0:0:0:0:0:1
> lifetime = 60, delay = 1500
> BID = 20
> flags: IP6_MH_BU_HOME IP6_MH_BU_ACK IP6_MH_BU_MR
> Mon Nov 4 16:37:36 mn_send_home_bu: New bule for HA
> Mon Nov 4 16:37:36 mh_send: sending MH type 5
> from 2010:0:0:0:0:0:0:2
> to 2010:0:0:0:0:0:0:1
> Mon Nov 4 16:37:36 mh_send: local CoA 0:0:0:0:0:ffff:c0a8:1c
> Mon Nov 4 16:37:36 bul_update_timer: Updating timer
> == BUL_ENTRY ==
> IPv6 Home address 2010:0:0:0:0:0:0:2
> IPv4 Home address 192.168.10.1
> Care-of address 192.168.0.28
> CN address 2010:0:0:0:0:0:0:1
> lifetime = 60, delay = 1500
> BID = 20
> flags: IP6_MH_BU_HOME IP6_MH_BU_ACK IP6_MH_BU_MR
> Mon Nov 4 16:37:36 tunnel_mod: modifying tunnel 4 end points with
> from 192.168.0.28 to 200.0.0.10
> Mon Nov 4 16:37:36 tunnel_mod: Switching from one tunnel type to another
> Mon Nov 4 16:37:36 __tunnel_mod: MCOA_DFLT_TNL_ADD for BID 20
> Mon Nov 4 16:37:36 __tunnel_mod: Switching from IPv6 to IPv4 tunnel,
> deleting old states
> Mon Nov 4 16:37:36 __tunnel_mod: modified tunnel iface 4 from
> 192.168.0.28 to 200.0.0.10
> Mon Nov 4 16:37:36 mn_ext_tunnel_ops: Tunnel modifications on same
> tunnel, no need to move HoA
> Mon Nov 4 16:37:36 __md_discover_router: discover link on iface wlan0 (4)
> Mon Nov 4 16:37:36 __md_discover_router: Triggering DHCP config on
> iface wlan0 (4)
> Mon Nov 4 16:37:36 trigger_dhcp_configuration: dhcp_dna: DHCP not
> configured to run on interface 4
> Mon Nov 4 16:37:37 mcoa_mn_chk_ho_verdict: Verdict 5 for iface 4
> Mon Nov 4 16:37:37 bu_resend: BU resend type 0
> Mon Nov 4 16:37:37 mn_get_home_lifetime: CoA lifetime 4294967295 s,
> HoA lifetime 4294967295 s, BU lifetime 60 s
> Mon Nov 4 16:37:37 xfrm_pre_bu_add_bule: total BULE: 1 (0 IPv6 - 1 IPv4)
> Mon Nov 4 16:37:37 xfrm_udp_out_encap_add: Updating output UDP
> encaps. policies and states
> Mon Nov 4 16:37:37 xfrm_udp_in_encap_add: Adding input UDP encaps. state
> Mon Nov 4 16:37:37 mh_send: sending MH type 5
> from 2010:0:0:0:0:0:0:2
> to 2010:0:0:0:0:0:0:1
> Mon Nov 4 16:37:37 mh_send: local CoA 0:0:0:0:0:ffff:c0a8:1c
> Mon Nov 4 16:37:37 bul_update_timer: Updating timer
> == BUL_ENTRY ==
> IPv6 Home address 2010:0:0:0:0:0:0:2
> IPv4 Home address 192.168.10.1
> Care-of address 192.168.0.28
> CN address 2010:0:0:0:0:0:0:1
> lifetime = 60, delay = 3000
> BID = 20
> flags: IP6_MH_BU_HOME IP6_MH_BU_ACK IP6_MH_BU_MR
> Mon Nov 4 16:37:38 __md_discover_router: discover link on iface wlan0 (4)
> Mon Nov 4 16:37:38 __md_discover_router: Triggering DHCP config on
> iface wlan0 (4)
> Mon Nov 4 16:37:38 trigger_dhcp_configuration: dhcp_dna: DHCP not
> configured to run on interface 4
> Mon Nov 4 16:37:40 __md_discover_router: discover link on iface wlan0 (4)
> Mon Nov 4 16:37:40 __md_discover_router: Triggering DHCP config on
> iface wlan0 (4)
> Mon Nov 4 16:37:40 trigger_dhcp_configuration: dhcp_dna: DHCP not
> configured to run on interface 4
> Mon Nov 4 16:37:40 bu_resend: BU resend type 0
> Mon Nov 4 16:37:40 mn_get_home_lifetime: CoA lifetime 4294967295 s,
> HoA lifetime 4294967295 s, BU lifetime 60 s
> Mon Nov 4 16:37:40 xfrm_pre_bu_add_bule: total BULE: 1 (0 IPv6 - 1 IPv4)
> Mon Nov 4 16:37:40 xfrm_udp_out_encap_add: Updating output UDP
> encaps. policies and states
> Mon Nov 4 16:37:40 xfrm_udp_in_encap_add: Adding input UDP encaps. state
> Mon Nov 4 16:37:40 mh_send: sending MH type 5
> from 2010:0:0:0:0:0:0:2
> to 2010:0:0:0:0:0:0:1
> Mon Nov 4 16:37:40 mh_send: local CoA 0:0:0:0:0:ffff:c0a8:1c
> Mon Nov 4 16:37:40 bul_update_timer: Updating timer
> == BUL_ENTRY ==
> IPv6 Home address 2010:0:0:0:0:0:0:2
> IPv4 Home address 192.168.10.1
> Care-of address 192.168.0.28
> CN address 2010:0:0:0:0:0:0:1
> lifetime = 60, delay = 6000
> BID = 20
> flags: IP6_MH_BU_HOME IP6_MH_BU_ACK IP6_MH_BU_MR
> Mon Nov 4 16:37:42 __md_discover_router: discover link on iface wlan0 (4)
> Mon Nov 4 16:37:42 __md_discover_router: Triggering DHCP config on
> iface wlan0 (4)
> Mon Nov 4 16:37:42 trigger_dhcp_configuration: dhcp_dna: DHCP not
> configured to run on interface 4
> Mon Nov 4 16:37:44 __md_discover_router: discover link on iface wlan0 (4)
> Mon Nov 4 16:37:44 __md_discover_router: Triggering DHCP config on
> iface wlan0 (4)
> Mon Nov 4 16:37:44 trigger_dhcp_configuration: dhcp_dna: DHCP not
> configured to run on interface 4
> Mon Nov 4 16:37:46 __md_discover_router: discover link on iface wlan0 (4)
> Mon Nov 4 16:37:46 __md_discover_router: Triggering DHCP config on
> iface wlan0 (4)
> Mon Nov 4 16:37:46 trigger_dhcp_configuration: dhcp_dna: DHCP not
> configured to run on interface 4
> Mon Nov 4 16:37:46 bu_resend: BU resend type 0
> Mon Nov 4 16:37:46 mn_get_home_lifetime: CoA lifetime 4294967295 s,
> HoA lifetime 4294967295 s, BU lifetime 60 s
> Mon Nov 4 16:37:46 xfrm_pre_bu_add_bule: total BULE: 1 (0 IPv6 - 1 IPv4)
> Mon Nov 4 16:37:46 xfrm_udp_out_encap_add: Updating output UDP
> encaps. policies and states
> Mon Nov 4 16:37:46 xfrm_udp_in_encap_add: Adding input UDP encaps. state
> Mon Nov 4 16:37:46 mh_send: sending MH type 5
> from 2010:0:0:0:0:0:0:2
> to 2010:0:0:0:0:0:0:1
> Mon Nov 4 16:37:46 mh_send: local CoA 0:0:0:0:0:ffff:c0a8:1c
> Mon Nov 4 16:37:46 bul_update_timer: Updating timer
>
>
> _______________________________________________
> Support mailing list
> Support at ml.nautilus6.org
> http://ml.nautilus6.org/mailman/listinfo/support
Hi,

I investigated the external DHCP Client issue and found the reason for it.
It seems, that UMIP doesn't set the gateway in the created routing
tables (PBR), if an external DHCP Client is used.
Normally, the rule in a routing table (e.g table 20) looks like 'default
device wlan0 via Gateway ...', but if an external DHCP Client is used,
the rule looks like 'default device wlan0 ...'. So, the interface
doesn't know its gateway and produce and IPv4 ICMP error message.
I set the right rules manually and it works.

The question here is, does UMIP even know the gateway address because of
the external DHCP Client?
In the coming days, I will try to localize and fix it.


Regards,
Roland
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://ml.nautilus6.org/pipermail/support/attachments/20131105/4ea3bf5f/attachment-0001.html>
Romain KUNTZ
2013-11-06 08:57:40 UTC
Permalink
Hello Roland,

On 05 Nov 2013, at 20:51 , Roland Wilhelm <rwilhelm at gmx.org> wrote:
> Hi,
>
> I investigated the external DHCP Client issue and found the reason for it.
> It seems, that UMIP doesn't set the gateway in the created routing tables (PBR), if an external DHCP Client is used.
> Normally, the rule in a routing table (e.g table 20) looks like 'default device wlan0 via Gateway ...', but if an external DHCP Client is used, the rule looks like 'default device wlan0 ...'. So, the interface doesn't know its gateway and produce and IPv4 ICMP error message.

Yes, that seem to be the issue.

> I set the right rules manually and it works.

My MCoA/DMSIPv6 testbed is down at the moment so I cannot test it, but let?s see if I can guide you.

> The question here is, does UMIP even know the gateway address because of the external DHCP Client?
> In the coming days, I will try to localize and fix it.

The gateway is installed by movement.c / __md_add_v4_rules_routes(). This functions parse the list of available IPv4 gateway (iface->v4_rtrs), and install the first one that has a valid link-local address. However, this list of gateways is initialized by the dhcp_configuration() function from the integrated DHCP client. So if you use an external DHCP client, it will not be initialized correctly.

So there is clearly a bug here. A little bit of history will help you to understand where this comes from: at the beginning, the DSMIPv6 implementation was separated from the MCoA one. So, when using an external DHCP client, the default GW was installed by the DHCP client, in the default routing table, and everybody was happy.

With MCoA however, the route has to be installed on a specific routing table (which number matches the BID of the interface towards which the route is installed). It seems that when I have merged the DSMIPv6 implementation and the MCoA one, I have not taken this case into account and only worked with the integrated client.

So, in your case, you can either:
- add some script to the DHCP client side in order to add the default gw address in the correct routing table (but this would require to retrieve the BID from somewhere).
- add some code to UMIP in order to add the GW into the correct table: this probably requires to capture some RT_NETLINK events when the default route is installed by the external DHCP client, and re-install the route into the correct routing table.

Best,
Romain
Roland Wilhelm
2013-11-12 16:49:07 UTC
Permalink
Hello Romain,

Thank you for the fast answer and guide.
To my mind, the best solution would be to capture RT_NETLINK events (RTM_NEWROUTE and RTM_DELROUTE) in order to add or remove the right gateway address in the according routing table when the default gateway is changed.
I am just about to implement it. I am not completely done and it has to be testet yet, but so far it works. I am going to keep it compatible for using it with the integrated DHCP client.
Are you interrested in a patch for it?
The only limitation I encountered so far, is that I only get the default gateway and not all gateway addresses.
I guess, this limitation could be bypassed by parsing the broadcast messages of the external DHCP client (e.g. DHCP-ACK). But, if you just want to use one interface at a time it should work.

Thanks and Best,
Roland

> Gesendet: Mittwoch, 06. November 2013 um 09:57 Uhr
> Von: "Romain KUNTZ" <r.kuntz at gmail.com>
> An: "Roland Wilhelm" <rwilhelm at gmx.org>
> Cc: "UMIP support" <support at ml.nautilus6.org>
> Betreff: Re: [support] External DHCP problem
>
> Hello Roland,
>
> On 05 Nov 2013, at 20:51 , Roland Wilhelm <rwilhelm at gmx.org> wrote:
> > Hi,
> >
> > I investigated the external DHCP Client issue and found the reason for it.
> > It seems, that UMIP doesn't set the gateway in the created routing tables (PBR), if an external DHCP Client is used.
> > Normally, the rule in a routing table (e.g table 20) looks like 'default device wlan0 via Gateway ...', but if an external DHCP Client is used, the rule looks like 'default device wlan0 ...'. So, the interface doesn't know its gateway and produce and IPv4 ICMP error message.
>
> Yes, that seem to be the issue.
>
> > I set the right rules manually and it works.
>
> My MCoA/DMSIPv6 testbed is down at the moment so I cannot test it, but let?s see if I can guide you.
>
> > The question here is, does UMIP even know the gateway address because of the external DHCP Client?
> > In the coming days, I will try to localize and fix it.
>
> The gateway is installed by movement.c / __md_add_v4_rules_routes(). This functions parse the list of available IPv4 gateway (iface->v4_rtrs), and install the first one that has a valid link-local address. However, this list of gateways is initialized by the dhcp_configuration() function from the integrated DHCP client. So if you use an external DHCP client, it will not be initialized correctly.
>
> So there is clearly a bug here. A little bit of history will help you to understand where this comes from: at the beginning, the DSMIPv6 implementation was separated from the MCoA one. So, when using an external DHCP client, the default GW was installed by the DHCP client, in the default routing table, and everybody was happy.
>
> With MCoA however, the route has to be installed on a specific routing table (which number matches the BID of the interface towards which the route is installed). It seems that when I have merged the DSMIPv6 implementation and the MCoA one, I have not taken this case into account and only worked with the integrated client.
>
> So, in your case, you can either:
> - add some script to the DHCP client side in order to add the default gw address in the correct routing table (but this would require to retrieve the BID from somewhere).
> - add some code to UMIP in order to add the GW into the correct table: this probably requires to capture some RT_NETLINK events when the default route is installed by the external DHCP client, and re-install the route into the correct routing table.
>
> Best,
> Romain
>
>
>
Romain KUNTZ
2013-11-14 10:39:47 UTC
Permalink
Hello Roland,

On 12 Nov 2013, at 17:49 , Roland Wilhelm <rwilhelm at gmx.org> wrote:
> Hello Romain,
>
> Thank you for the fast answer and guide.
> To my mind, the best solution would be to capture RT_NETLINK events (RTM_NEWROUTE and RTM_DELROUTE) in order to add or remove the right gateway address in the according routing table when the default gateway is changed.

Yes that is probably be the best way to go, so that UMIP would work with any DHCP client.

> I am just about to implement it. I am not completely done and it has to be testet yet, but so far it works. I am going to keep it compatible for using it with the integrated DHCP client.
> Are you interrested in a patch for it?

Of course, feel free to post the patch on the mailing list. I would be happy to review it and integrate it to the current DSMIPv6/MCoA patch.

> The only limitation I encountered so far, is that I only get the default gateway and not all gateway addresses.
> I guess, this limitation could be bypassed by parsing the broadcast messages of the external DHCP client (e.g. DHCP-ACK). But, if you just want to use one interface at a time it should work.

I see. In case multiple interfaces have to be used, the integrated client can still be used for some / all the interfaces.

Best,
Romain


>> Gesendet: Mittwoch, 06. November 2013 um 09:57 Uhr
>> Von: "Romain KUNTZ" <r.kuntz at gmail.com>
>> An: "Roland Wilhelm" <rwilhelm at gmx.org>
>> Cc: "UMIP support" <support at ml.nautilus6.org>
>> Betreff: Re: [support] External DHCP problem
>>
>> Hello Roland,
>>
>> On 05 Nov 2013, at 20:51 , Roland Wilhelm <rwilhelm at gmx.org> wrote:
>>> Hi,
>>>
>>> I investigated the external DHCP Client issue and found the reason for it.
>>> It seems, that UMIP doesn't set the gateway in the created routing tables (PBR), if an external DHCP Client is used.
>>> Normally, the rule in a routing table (e.g table 20) looks like 'default device wlan0 via Gateway ...', but if an external DHCP Client is used, the rule looks like 'default device wlan0 ...'. So, the interface doesn't know its gateway and produce and IPv4 ICMP error message.
>>
>> Yes, that seem to be the issue.
>>
>>> I set the right rules manually and it works.
>>
>> My MCoA/DMSIPv6 testbed is down at the moment so I cannot test it, but let?s see if I can guide you.
>>
>>> The question here is, does UMIP even know the gateway address because of the external DHCP Client?
>>> In the coming days, I will try to localize and fix it.
>>
>> The gateway is installed by movement.c / __md_add_v4_rules_routes(). This functions parse the list of available IPv4 gateway (iface->v4_rtrs), and install the first one that has a valid link-local address. However, this list of gateways is initialized by the dhcp_configuration() function from the integrated DHCP client. So if you use an external DHCP client, it will not be initialized correctly.
>>
>> So there is clearly a bug here. A little bit of history will help you to understand where this comes from: at the beginning, the DSMIPv6 implementation was separated from the MCoA one. So, when using an external DHCP client, the default GW was installed by the DHCP client, in the default routing table, and everybody was happy.
>>
>> With MCoA however, the route has to be installed on a specific routing table (which number matches the BID of the interface towards which the route is installed). It seems that when I have merged the DSMIPv6 implementation and the MCoA one, I have not taken this case into account and only worked with the integrated client.
>>
>> So, in your case, you can either:
>> - add some script to the DHCP client side in order to add the default gw address in the correct routing table (but this would require to retrieve the BID from somewhere).
>> - add some code to UMIP in order to add the GW into the correct table: this probably requires to capture some RT_NETLINK events when the default route is installed by the external DHCP client, and re-install the route into the correct routing table.
>>
>> Best,
>> Romain
>>
>>
>>
Loading...